Skip to content

Python AttributeError: 'dict' object has no attribute 'count' #206

Description

@KurpLondon

Hi team

First time using Terravision. This looks awesome. Thank you for your support.

I'm having an issue generating the diagram. Function replace_var_values() expect value to be a string. But if it receives a dict the code crashes.

Not sure what else to provide at this stage.

PS singleRegion> terravision --version
terravision, version 0.43.0

PS singleRegion> dot -v
dot - graphviz version 15.1.0 (20260618.0150)
libdir = "C:\Users\user.local\Graphviz-15.1.0-win32\bin"
Activated plugin library: gvplugin_dot_layout.dll
Using layout: dot:dot_layout
Activated plugin library: gvplugin_core.dll
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
C:\Users\user.local\Graphviz-15.1.0-win32\bin\config8
was successfully loaded.
render : cairo dot dot_json fig gd gdiplus json json0 map pic pov ps svg svg_inline tk vrml xdot xdot_json
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
textlayout : textlayout
device : bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg json json0 kitty kittyz metafile pdf pic plain plain-ext png pov ps ps2 svg svg_inline svgz tif tiff tk vrml vt vt-24bit vt-4up vt-6up vt-8up vt-8up2 wbmp webp xdot xdot1.2 xdot1.4 xdot_json
loadimage : (lib) bmp eps gd gd2 gif jpe jpeg jpg png ps svg webp

PS singleRegion>

PS singleRegion> tofu -v
OpenTofu v1.12.2
on windows_amd64

  • provider registry.opentofu.org/azure/azapi v2.7.0
  • provider registry.opentofu.org/hashicorp/aws v6.52.0
  • provider registry.opentofu.org/hashicorp/azuread v3.7.0
  • provider registry.opentofu.org/hashicorp/azurerm v4.77.0
  • provider registry.opentofu.org/hashicorp/local v2.9.0
  • provider registry.opentofu.org/hashicorp/null v3.3.0
  • provider registry.opentofu.org/hashicorp/random v3.9.0
  • provider registry.opentofu.org/hashicorp/time v0.14.0
  • provider registry.opentofu.org/microsoft/msgraph v0.3.0
  • provider registry.opentofu.org/salrashid123/http-full v1.3.1

PS singleRegion> terravision draw --debug --source . --varfile terraform.tfvars --show


/__ ___ _ __ _ __ __ ___ ()() ___ _ __
/ // _ \ '
| '/ ` \ \ / / / _| |/ _ | '
/ / | __/ | | | | (
| |\ V /| __ \ | (_) | | | |
/ _
|| || _,| _/ ||/|__/|| ||

Preflight check..
dot command detected: C:\Users\user.local\Graphviz-15.1.0-win32\bin\dot.EXE
gvpr command detected: C:\Users\user.local\Graphviz-15.1.0-win32\bin\gvpr.EXE
git command detected: C:\Program Files\Git\cmd\git.EXE
tofu command detected: C:\Users\user\AppData\Local\Microsoft\WinGet\Packages\OpenTofu.Tofu_Microsoft.Winget.Source_8wekyb3d8bbwe\tofu.EXE
tofu version detected: OpenTofu v1.12.2

Calling Tofu..
Forcing temporary local backend to generate full infrastructure plan

Initializing the backend...

Successfully configured the backend "local"! OpenTofu will automatically
use this backend unless the backend configuration changes.

Initializing provider plugins...

  • terraform.io/builtin/terraform is built in to OpenTofu
  • Reusing previous version of hashicorp/time from the dependency lock file
  • Reusing previous version of microsoft/msgraph from the dependency lock file
  • Reusing previous version of hashicorp/aws from the dependency lock file
  • Reusing previous version of hashicorp/azurerm from the dependency lock file
  • Reusing previous version of hashicorp/local from the dependency lock file
  • Reusing previous version of salrashid123/http-full from the dependency lock file
  • Reusing previous version of hashicorp/null from the dependency lock file
  • Reusing previous version of azure/azapi from the dependency lock file
  • Reusing previous version of hashicorp/azuread from the dependency lock file
  • Reusing previous version of hashicorp/random from the dependency lock file
  • Installing hashicorp/time v0.14.0...
  • Installing hashicorp/random v3.9.0...
  • Installing hashicorp/azuread v3.7.0...
  • Installing azure/azapi v2.7.0...
  • Installing salrashid123/http-full v1.3.1...
  • Installing hashicorp/aws v6.52.0...
  • Installing hashicorp/azurerm v4.77.0...
  • Installing hashicorp/null v3.3.0...
  • Installing microsoft/msgraph v0.3.0...
  • Installing hashicorp/local v2.9.0...
  • Installed hashicorp/random v3.9.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed hashicorp/time v0.14.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed microsoft/msgraph v0.3.0. Signature validation was skipped due to the registry not containing GPG keys for this provider
  • Installed hashicorp/null v3.3.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed salrashid123/http-full v1.3.1. Signature validation was skipped due to the registry not containing GPG keys for this provider
  • Installed hashicorp/local v2.9.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed hashicorp/azuread v3.7.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed azure/azapi v2.7.0 (signed, key ID 6F0B91BDE98478CF)
  • Installed hashicorp/azurerm v4.77.0 (signed, key ID 0C0AF313E5FD9F80)
  • Installed hashicorp/aws v6.52.0 (signed, key ID 0C0AF313E5FD9F80)

Providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://opentofu.org/docs/cli/plugins/signing/

OpenTofu has been successfully initialized!

You may now begin working with OpenTofu. Try running "tofu plan" to see
any changes that are required for your infrastructure. All OpenTofu commands
should now work.

If you ever set or change modules or backend configuration for OpenTofu,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Initalising workspace: default

Generating Tofu Plan..

data.http.myIP: Reading...
data.http.myIP: Read complete after 0s [id=https://ifconfig.me/]
data.aws_route53_zone.dns_domain: Reading...
data.azuread_user.julian: Reading...
data.aws_route53_zone.dns_domain: Read complete after 1s [id=Z0703371G98MJ20CSFJV]
data.azuread_user.julian: Read complete after 0s [id=/users/66d00004-7938-4a48-a4fb-c2938fd144f5]
data.azurerm_client_config.current: Reading...
data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNTk3ZjBlNS0zMjUwLTQ0MzctODY4Yi01ODk5Nzg5ODUyOGQ7b2JqZWN0SWQ9YzE3MGUwNjktOWVkNS00M2JjLWIwODctNTEzZTExYzJhZjQ2O3N1YnNjcmlwdGlvbklkPWU4OWM5ODk0LWM3ZTItNDQxZi1hYTljLThmMzk3ZWZkZjZlMjt0ZW5hbnRJZD05ZjllMmYxMS0yZjdhLTQ1ZDYtYTY4Mi1mMjFhZjU4MzgzODE=]
data.azurerm_network_watcher.this: Reading...
data.azurerm_network_watcher.this: Read complete after 0s [id=/subscriptions/e89c9894-c7e2-441f-aa9c-8f397efdf6e2/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_uksouth]

OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:

  • create
    <= read (data resources)

OpenTofu will perform the following actions:

data.azurerm_monitor_diagnostic_categories.bootstrap will be read during apply

(config refers to values not yet known)

<= data "azurerm_monitor_diagnostic_categories" "bootstrap" {
+ id = (known after apply)
+ log_category_groups = (known after apply)
+ log_category_types = (known after apply)
+ metrics = (known after apply)
+ resource_id = (known after apply)
}

[ OUTPUT OMMITED for brevity ]

time_sleep.wait_for_rbac will be created

  • resource "time_sleep" "wait_for_rbac" {
    • create_duration = "60s"
    • id = (known after apply)
      }

Plan: 154 to add, 0 to change, 0 to destroy.

Changes to Outputs:

  • VPNGW_Instance01 = "Not Deployed"
  • VPNGW_Instance02 = "Not Deployed"
  • bootstrap_diag_categories = {
    • id = (known after apply)
    • log_category_groups = (known after apply)
    • log_category_types = (known after apply)
    • metrics = (known after apply)
    • resource_id = (known after apply)
    • timeouts = null
      }
  • fw01-mgmt-public-ip = (known after apply)
  • fw02-mgmt-public-ip = (known after apply)
  • nlb-public-ip = (known after apply)

    │ Warning: Argument is deprecated

    │ with azurerm_storage_blob.create_bootstrap_folder_structure_fw01["config"],
    │ on bootstrap.blob.tf line 106, in resource "azurerm_storage_blob" "create_bootstrap_folder_structure_fw01":
    │ 106: storage_account_name = azurerm_storage_account.bootstrap_storage_account.name

    storage_account_name has been deprecated in favour of storage_container_id and will be removed in v5.0 of the AzureRM Provider

    │ (and 23 more similar warnings elsewhere)

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Saved the plan to: C:\Users\user\AppData\Local\Temp\tfplan.bin

To perform exactly these actions, run the following command to apply:
tofu apply "C:\Users\user\AppData\Local\Temp\tfplan.bin"

Decoding plan..

Analysing plan..

Converting TF Graph Connections.. (this may take a while)

Parsing Terraform Source Files..
Added Source Location: C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\bootstrap.blob.tf
Found 1 output stanza(s)
Found 1 locals stanza(s)
Found 12 resource stanza(s)
Found 1 data stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\bootstrap.fileshare.tf
Found 1 locals stanza(s)
Found 8 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\bootstrap.tf
Found 6 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\data.tf
Found 2 data stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\dependencies.tf
Found 2 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\flowlogs.tf
Found 2 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\fw01.tf
Found 1 output stanza(s)
Found 11 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\fw02.tf
Found 1 output stanza(s)
Found 11 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\keyvault.tf
Found 8 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\law.tf
Found 1 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\locals.tf
Found 1 locals stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\NLB_external.tf
Found 1 output stanza(s)
Found 8 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\NLB_internal.tf
Found 6 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\nsg.tf
Found 2 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\PRIVATE_DO_NOT_INCLUDE.tf
Found 7 resource stanza(s)
Found 3 data stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\providers.tf
Found 5 provider stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\terraform.tfvars
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\tinyWeb.tf
Found 7 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\variables.tf
Found 6 variable stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\vpc_apps.tf
Found 1 variable stanza(s)
Found 1 locals stanza(s)
Found 8 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\vpc_infra.tf
Found 1 variable stanza(s)
Found 1 locals stanza(s)
Found 7 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\vpc_panorama.tf
Found 1 variable stanza(s)
Found 1 locals stanza(s)
Found 6 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\vpc_security.tf
Found 1 variable stanza(s)
Found 1 locals stanza(s)
Found 9 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\vpngw.tf
Found 2 output stanza(s)
Found 12 resource stanza(s)
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion_sg.auto.tfvars
Parsing C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion_vpc.auto.tfvars
Will use auto variables from file : C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\terraform.tfvars

Will use auto variables from file : C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion_sg.auto.tfvars

Will use auto variables from file : C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion_vpc.auto.tfvars

INFO: Debug flag used. Current state has been written to C:\Users\user\OneDrive\Documents\Customers\ABC Internal\CLOUD\AZURE\ PALO Landing Zone\singleRegion\tfdata.json

Detected cloud provider: AZURE (117 resources)

Terraform JSON graph dictionary:

{
"aws_route53_record.panfw-primary[0]~1": [],
"aws_route53_record.panfw-secondary[0]~1": [],
"aws_route53_record.tinyWeb[0]~1": [],
"azurerm_disk_encryption_set.DISKENCRYPTSET_rsa2048": [
"azurerm_linux_virtual_machine.fw01[0]~1",
"azurerm_linux_virtual_machine.fw02[0]~1"
],
"azurerm_key_vault.keyvault": [
"azurerm_role_assignment.DES_keyvault_access",
"azurerm_role_assignment.terraform_keyvault_access"
],
"azurerm_key_vault_key.rsa_2048_disk_key": [
"azurerm_disk_encryption_set.DISKENCRYPTSET_rsa2048"
],
"azurerm_lb.nlb-external": [
"azurerm_lb_backend_address_pool.nlb-external-backend",
"azurerm_lb_probe.nlb-external-ssh-probe"
],
"azurerm_lb.nlb-internal": [
"azurerm_lb_backend_address_pool.nlb-internal-backend",
"azurerm_lb_probe.nlb-internal-ssh-probe",
"azurerm_route.RT-fwint-default-to-NLB",
"azurerm_route.apps_default_to_firewall_nlb["apps"][apps]",
"azurerm_route.infra_default_to_firewall",
"azurerm_route.vpngw_apps_via_firewall",
"azurerm_route.vpngw_inet01_via_firewall",
"azurerm_route.vpngw_inet02_via_firewall"
],
"azurerm_lb_backend_address_pool.nlb-external-backend": [
"azurerm_lb_rule.nlb-external-rule-01",
"azurerm_lb_rule.nlb-external-rule-02",
"azurerm_network_interface_backend_address_pool_association.fw01_ext[0]~1",
"azurerm_network_interface_backend_address_pool_association.fw02_ext[0]~1"
],
"azurerm_lb_backend_address_pool.nlb-internal-backend": [
"azurerm_lb_rule.nlb-rule-all-egress-traffic",
"azurerm_network_interface_backend_address_pool_association.fw01-int[0]~1",
"azurerm_network_interface_backend_address_pool_association.fw02_int[0]~1"
],
"azurerm_lb_probe.nlb-external-ssh-probe": [
"azurerm_lb_rule.nlb-external-rule-01",
"azurerm_lb_rule.nlb-external-rule-02"
],
"azurerm_lb_probe.nlb-internal-ssh-probe": [
"azurerm_lb_rule.nlb-rule-all-egress-traffic"
],
"azurerm_lb_rule.nlb-external-rule-01": [],
"azurerm_lb_rule.nlb-external-rule-02": [],
"azurerm_lb_rule.nlb-rule-all-egress-traffic": [],
"azurerm_linux_virtual_machine.fw01[0]~1": [],
"azurerm_linux_virtual_machine.fw02[0]~1": [],
"azurerm_linux_virtual_machine.test_web_vm[0]~1": [],
"azurerm_log_analytics_workspace.az-log-analytics-workspace": [
"azurerm_monitor_diagnostic_setting.blob_diagnostic_logs",
"azurerm_monitor_diagnostic_setting.file_diagnostic_logs",
"azurerm_monitor_diagnostic_setting.storage_account_diagnostic_logs",
"azurerm_network_watcher_flow_log.vnet-security-flowlogs"
],
"azurerm_monitor_diagnostic_setting.blob_diagnostic_logs": [],
"azurerm_monitor_diagnostic_setting.file_diagnostic_logs": [],
"azurerm_monitor_diagnostic_setting.storage_account_diagnostic_logs": [],
"azurerm_network_interface.fw01-eth1-0[0]~1": [],
"azurerm_network_interface.fw01-eth1-1[0]~1": [],
"azurerm_network_interface.fw01-eth1-2[0]~1": [],
"azurerm_network_interface.fw02-eth1-0[0]~1": [],
"azurerm_network_interface.fw02-eth1-1[0]~1": [],
"azurerm_network_interface.fw02-eth1-2[0]~1": [],
"azurerm_network_interface.test_web_nic": [
"azurerm_linux_virtual_machine.test_web_vm[0]~1",
"azurerm_network_interface_security_group_association.test_web_assoc"
],
"azurerm_network_interface_backend_address_pool_association.fw01-int[0]~1": [],
"azurerm_network_interface_backend_address_pool_association.fw01_ext[0]~1": [],
"azurerm_network_interface_backend_address_pool_association.fw02_ext[0]~1": [],
"azurerm_network_interface_backend_address_pool_association.fw02_int[0]~1": [],
"azurerm_network_interface_security_group_association.fw01-eth1-0": [],
"azurerm_network_interface_security_group_association.fw01-eth1-1": [],
"azurerm_network_interface_security_group_association.fw01-eth1-2": [],
"azurerm_network_interface_security_group_association.fw02-eth1-0[0]~1": [],
"azurerm_network_interface_security_group_association.fw02-eth1-1[0]~1": [],
"azurerm_network_interface_security_group_association.fw02-eth1-2[0]~1": [],
"azurerm_network_interface_security_group_association.test_web_assoc": [],
"azurerm_network_security_group.generic_nsg["acl_fw_any"][acl_fw_any]": [],
"azurerm_network_security_group.generic_nsg["acl_fw_mgmt"][acl_fw_mgmt]": [],
"azurerm_network_security_group.test_web_nsg": [
"azurerm_network_interface_security_group_association.test_web_assoc",
"azurerm_network_security_rule.allow_http_in",
"azurerm_network_security_rule.allow_ssh_in"
],
"azurerm_network_security_rule.allow_http_in": [],
"azurerm_network_security_rule.allow_ssh_in": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_any-ANY"][acl_fw_any-ANY]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_HTTP"][acl_fw_mgmt-ADMIN_HTTP]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_HTTPS"][acl_fw_mgmt-ADMIN_HTTPS]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_SSH"][acl_fw_mgmt-ADMIN_SSH]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-HTTP"][acl_fw_mgmt-HTTP]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-HTTPS"][acl_fw_mgmt-HTTPS]": [],
"azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-SSH"][acl_fw_mgmt-SSH]": [],
"azurerm_network_watcher_flow_log.vnet-security-flowlogs": [],
"azurerm_public_ip.fw01-mgmt-public-ip-01[0]~1": [],
"azurerm_public_ip.fw02-mgmt-public-ip-01[0]~1": [],
"azurerm_public_ip.nlb-external-vip01[0]~1": [],
"azurerm_public_ip.tinyWeb_public_ip": [
"aws_route53_record.tinyWeb[0]~1",
"azurerm_network_interface.test_web_nic"
],
"azurerm_role_assignment.DES_keyvault_access": [
"time_sleep.wait_for_rbac"
],
"azurerm_role_assignment.admin_blob_storage_reader": [],
"azurerm_role_assignment.fw02-bootstrap-storage-reader[0]~1": [],
"azurerm_role_assignment.fw1-bootstrap-storage-reader[0]~1": [],
"azurerm_role_assignment.kurp_storage_account_reader": [],
"azurerm_role_assignment.terraform_keyvault_access": [
"time_sleep.wait_for_rbac"
],
"azurerm_route.RT-fwext-default-to-internet": [],
"azurerm_route.RT-fwint-default-to-NLB": [],
"azurerm_route.apps_default_to_firewall_nlb["apps"][apps]": [],
"azurerm_route.apps_default_to_internet["apps"][apps]": [],
"azurerm_route.infra_default_to_firewall["infra"][infra]": [],
"azurerm_route.infra_default_to_firewall["pvtDmz"][pvtDmz]": [],
"azurerm_route.vpngw_apps_via_firewall": [],
"azurerm_route.vpngw_inet01_via_firewall": [],
"azurerm_route.vpngw_inet02_via_firewall": [],
"azurerm_route_table.generic_rt_Apps["apps"][apps]": [],
"azurerm_route_table.generic_rt_Infra["infra"][infra]": [],
"azurerm_route_table.generic_rt_Infra["pvtDmz"][pvtDmz]": [],
"azurerm_route_table.generic_rt_panorama["mgmt"][mgmt]": [],
"azurerm_route_table.generic_rt_security["external"][external]": [],
"azurerm_route_table.generic_rt_security["internal"][internal]": [],
"azurerm_route_table.generic_rt_security["mgmt"][mgmt]": [],
"azurerm_route_table.generic_rt_security["vpngw"][vpngw]": [],
"azurerm_storage_account.bootstrap_storage_account": [
"azurerm_monitor_diagnostic_setting.blob_diagnostic_logs",
"azurerm_monitor_diagnostic_setting.file_diagnostic_logs",
"azurerm_monitor_diagnostic_setting.storage_account_diagnostic_logs",
"azurerm_role_assignment.admin_blob_storage_reader",
"azurerm_role_assignment.fw02-bootstrap-storage-reader[0]~1",
"azurerm_role_assignment.fw1-bootstrap-storage-reader[0]~1",
"azurerm_role_assignment.kurp_storage_account_reader",
"azurerm_storage_container.bootstrap_storage_container",
"azurerm_storage_share.bootstrap_share"
],
"azurerm_storage_account.vnet-security-flowlogs-storage-account": [
"azurerm_network_watcher_flow_log.vnet-security-flowlogs"
],
"azurerm_storage_blob.bootstrap_fw01_xml": [],
"azurerm_storage_blob.bootstrap_fw02_xml": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw01["config"][config]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw01["content"][content]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw01["license"][license]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw01["software"][software]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw02["config"][config]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw02["content"][content]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw02["license"][license]": [],
"azurerm_storage_blob.create_bootstrap_folder_structure_fw02["software"][software]": [],
"azurerm_storage_blob.init_cfg_fw01": [],
"azurerm_storage_blob.init_cfg_fw02": [],
"azurerm_storage_container.bootstrap_storage_container": [
"azurerm_storage_blob.create_bootstrap_folder_structure_fw01",
"azurerm_storage_blob.create_bootstrap_folder_structure_fw02"
],
"azurerm_storage_share.bootstrap_share": [
"azurerm_storage_share_directory.create_bootstrap_folder_structure"
],
"azurerm_storage_share_directory.create_bootstrap_folder_structure["fw1"][fw1]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure["fw2"][fw2]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["config"][config]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["content"][content]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["license"][license]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["software"][software]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["config"][config]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["content"][content]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["license"][license]": [],
"azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["software"][software]": [],
"azurerm_storage_share_file.fw1_bootstrap_xml": [
"azurerm_linux_virtual_machine.fw01[0]~1"
],
"azurerm_storage_share_file.fw1_init_cfg": [
"azurerm_linux_virtual_machine.fw01[0]~1"
],
"azurerm_storage_share_file.fw2_bootstrap_xml": [
"azurerm_linux_virtual_machine.fw02[0]~1"
],
"azurerm_storage_share_file.fw2_init_cfg": [
"azurerm_linux_virtual_machine.fw02[0]~1"
],
"azurerm_subnet.generic_subnet_Apps["apps-apps"][apps-apps]": [],
"azurerm_subnet.generic_subnet_Apps["apps-db"][apps-db]": [],
"azurerm_subnet.generic_subnet_Apps["apps-web"][apps-web]": [],
"azurerm_subnet.generic_subnet_Infra["infra-DomainSvcs"][infra-DomainSvcs]": [],
"azurerm_subnet.generic_subnet_Infra["infra-Exchange"][infra-Exchange]": [],
"azurerm_subnet.generic_subnet_Infra["pvtDmz-proxy"][pvtDmz-proxy]": [],
"azurerm_subnet.generic_subnet_panorama["mgmt-public"][mgmt-public]": [],
"azurerm_subnet.generic_subnet_security["external-pub01"][external-pub01]": [],
"azurerm_subnet.generic_subnet_security["internal-pvt01"][internal-pvt01]": [],
"azurerm_subnet.generic_subnet_security["mgmt-mgmt01"][mgmt-mgmt01]": [],
"azurerm_subnet.generic_subnet_security["vpngw-GatewaySubnet"][vpngw-GatewaySubnet]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-apps"][apps-apps]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-db"][apps-db]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-web"][apps-web]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Infra["infra-DomainSvcs"][infra-DomainSvcs]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Infra["infra-Exchange"][infra-Exchange]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_Infra["pvtDmz-proxy"][pvtDmz-proxy]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_panorama["mgmt-public"][mgmt-public]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_security["external-pub01"][external-pub01]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_security["internal-pvt01"][internal-pvt01]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_security["mgmt-mgmt01"][mgmt-mgmt01]": [],
"azurerm_subnet_route_table_association.generic_rtassoc_security["vpngw-GatewaySubnet"][vpngw-GatewaySubnet]": [],
"azurerm_user_assigned_identity.DES_identity": [
"azurerm_role_assignment.DES_keyvault_access"
],
"azurerm_user_assigned_identity.fw01-uami[0]~1": [],
"azurerm_user_assigned_identity.fw02-uami[0]~1": [],
"azurerm_virtual_network.VNET_Apps": [
"azurerm_subnet.generic_subnet_Apps",
"azurerm_virtual_network_peering.apps-2-fw"
],
"azurerm_virtual_network.VNET_Infra": [
"azurerm_subnet.generic_subnet_Infra"
],
"azurerm_virtual_network.VNET_panoramaMgmt": [
"azurerm_subnet.generic_subnet_panorama["mgmt-public"][mgmt-public]",
"azurerm_virtual_network_peering.panorama-2-fw"
],
"azurerm_virtual_network.VNET_security": [
"azurerm_network_watcher_flow_log.vnet-security-flowlogs",
"azurerm_subnet.generic_subnet_security"
],
"azurerm_virtual_network_peering.apps-2-fw": [],
"azurerm_virtual_network_peering.fw-2-apps": [],
"azurerm_virtual_network_peering.fw-2-panorama": [],
"azurerm_virtual_network_peering.panorama-2-fw": [],
"local_file.generate_bootstrap_script_fw01": [
"azurerm_storage_blob.bootstrap_fw01_xml",
"azurerm_storage_share_file.fw1_bootstrap_xml"
],
"local_file.generate_bootstrap_script_fw02": [
"azurerm_storage_blob.bootstrap_fw02_xml",
"azurerm_storage_share_file.fw2_bootstrap_xml"
],
"local_file.generate_init_cfg_fw01": [
"azurerm_storage_blob.init_cfg_fw01",
"azurerm_storage_share_file.fw1_init_cfg"
],
"local_file.generate_init_cfg_fw02": [
"azurerm_storage_blob.init_cfg_fw02",
"azurerm_storage_share_file.fw2_init_cfg"
],
"null_resource.accept_paloalto_terms": [
"azurerm_linux_virtual_machine.fw01[0]~1",
"azurerm_linux_virtual_machine.fw02[0]~1"
],
"null_resource.register_provider_for_encryption_at_host": [
"azurerm_linux_virtual_machine.fw01[0]~1",
"azurerm_linux_virtual_machine.fw02[0]~1"
],
"random_string.keyvault_suffix": [
"azurerm_key_vault.keyvault"
],
"terraform_data.bootstrap_fingerprint": [
"azurerm_storage_share_file.fw1_bootstrap_xml",
"azurerm_storage_share_file.fw2_bootstrap_xml"
],
"time_sleep.wait_for_fw1_rbac_propagation[0]~1": [],
"time_sleep.wait_for_fw2_rbac_propagation[0]~1": [],
"time_sleep.wait_for_rbac": [
"azurerm_key_vault_key.rsa_2048_disk_key"
]
}

Processing variables..

Processing resources..
aws_route53_record.panfw-primary[0]~1
aws_route53_record.panfw-secondary[0]~1
aws_route53_record.tinyWeb[0]~1
azurerm_disk_encryption_set.DISKENCRYPTSET_rsa2048
azurerm_key_vault.keyvault
azurerm_key_vault_key.rsa_2048_disk_key
azurerm_lb.nlb-external
azurerm_lb.nlb-internal
azurerm_lb_backend_address_pool.nlb-external-backend
azurerm_lb_backend_address_pool.nlb-internal-backend
azurerm_lb_probe.nlb-external-ssh-probe
azurerm_lb_probe.nlb-internal-ssh-probe
azurerm_lb_rule.nlb-external-rule-01
azurerm_lb_rule.nlb-external-rule-02
azurerm_lb_rule.nlb-rule-all-egress-traffic
azurerm_linux_virtual_machine.fw01[0]~1
azurerm_linux_virtual_machine.fw02[0]~1
azurerm_linux_virtual_machine.test_web_vm[0]~1
azurerm_log_analytics_workspace.az-log-analytics-workspace
azurerm_monitor_diagnostic_setting.blob_diagnostic_logs
azurerm_monitor_diagnostic_setting.file_diagnostic_logs
azurerm_monitor_diagnostic_setting.storage_account_diagnostic_logs
azurerm_network_interface.fw01-eth1-0[0]~1
azurerm_network_interface.fw01-eth1-1[0]~1
azurerm_network_interface.fw01-eth1-2[0]~1
azurerm_network_interface.fw02-eth1-0[0]~1
azurerm_network_interface.fw02-eth1-1[0]~1
azurerm_network_interface.fw02-eth1-2[0]~1
azurerm_network_interface.test_web_nic
azurerm_network_interface_backend_address_pool_association.fw01-int[0]~1
azurerm_network_interface_backend_address_pool_association.fw01_ext[0]~1
azurerm_network_interface_backend_address_pool_association.fw02_ext[0]~1
azurerm_network_interface_backend_address_pool_association.fw02_int[0]~1
azurerm_network_interface_security_group_association.fw01-eth1-0
azurerm_network_interface_security_group_association.fw01-eth1-1
azurerm_network_interface_security_group_association.fw01-eth1-2
azurerm_network_interface_security_group_association.fw02-eth1-0[0]~1
azurerm_network_interface_security_group_association.fw02-eth1-1[0]~1
azurerm_network_interface_security_group_association.fw02-eth1-2[0]~1
azurerm_network_interface_security_group_association.test_web_assoc
azurerm_network_security_group.generic_nsg["acl_fw_any"][acl_fw_any]
azurerm_network_security_group.generic_nsg["acl_fw_mgmt"][acl_fw_mgmt]
azurerm_network_security_group.test_web_nsg
azurerm_network_security_rule.allow_http_in
azurerm_network_security_rule.allow_ssh_in
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_any-ANY"][acl_fw_any-ANY]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_HTTP"][acl_fw_mgmt-ADMIN_HTTP]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_HTTPS"][acl_fw_mgmt-ADMIN_HTTPS]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-ADMIN_SSH"][acl_fw_mgmt-ADMIN_SSH]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-HTTP"][acl_fw_mgmt-HTTP]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-HTTPS"][acl_fw_mgmt-HTTPS]
azurerm_network_security_rule.generic_nsg_ingress_rules["acl_fw_mgmt-SSH"][acl_fw_mgmt-SSH]
azurerm_network_watcher_flow_log.vnet-security-flowlogs
azurerm_public_ip.fw01-mgmt-public-ip-01[0]~1
azurerm_public_ip.fw02-mgmt-public-ip-01[0]~1
azurerm_public_ip.nlb-external-vip01[0]~1
azurerm_public_ip.tinyWeb_public_ip
azurerm_role_assignment.DES_keyvault_access
azurerm_role_assignment.admin_blob_storage_reader
azurerm_role_assignment.fw02-bootstrap-storage-reader[0]~1
azurerm_role_assignment.fw1-bootstrap-storage-reader[0]~1
azurerm_role_assignment.kurp_storage_account_reader
azurerm_role_assignment.terraform_keyvault_access
azurerm_route.RT-fwext-default-to-internet
azurerm_route.RT-fwint-default-to-NLB
azurerm_route.apps_default_to_firewall_nlb["apps"][apps]
azurerm_route.apps_default_to_internet["apps"][apps]
azurerm_route.infra_default_to_firewall["infra"][infra]
azurerm_route.infra_default_to_firewall["pvtDmz"][pvtDmz]
azurerm_route.vpngw_apps_via_firewall
azurerm_route.vpngw_inet01_via_firewall
azurerm_route.vpngw_inet02_via_firewall
azurerm_route_table.generic_rt_Apps["apps"][apps]
azurerm_route_table.generic_rt_Infra["infra"][infra]
azurerm_route_table.generic_rt_Infra["pvtDmz"][pvtDmz]
azurerm_route_table.generic_rt_panorama["mgmt"][mgmt]
azurerm_route_table.generic_rt_security["external"][external]
azurerm_route_table.generic_rt_security["internal"][internal]
azurerm_route_table.generic_rt_security["mgmt"][mgmt]
azurerm_route_table.generic_rt_security["vpngw"][vpngw]
azurerm_storage_account.bootstrap_storage_account
azurerm_storage_account.vnet-security-flowlogs-storage-account
azurerm_storage_blob.bootstrap_fw01_xml
azurerm_storage_blob.bootstrap_fw02_xml
azurerm_storage_blob.create_bootstrap_folder_structure_fw01["config"][config]
azurerm_storage_blob.create_bootstrap_folder_structure_fw01["content"][content]
azurerm_storage_blob.create_bootstrap_folder_structure_fw01["license"][license]
azurerm_storage_blob.create_bootstrap_folder_structure_fw01["software"][software]
azurerm_storage_blob.create_bootstrap_folder_structure_fw02["config"][config]
azurerm_storage_blob.create_bootstrap_folder_structure_fw02["content"][content]
azurerm_storage_blob.create_bootstrap_folder_structure_fw02["license"][license]
azurerm_storage_blob.create_bootstrap_folder_structure_fw02["software"][software]
azurerm_storage_blob.init_cfg_fw01
azurerm_storage_blob.init_cfg_fw02
azurerm_storage_container.bootstrap_storage_container
azurerm_storage_share.bootstrap_share
azurerm_storage_share_directory.create_bootstrap_folder_structure["fw1"][fw1]
azurerm_storage_share_directory.create_bootstrap_folder_structure["fw2"][fw2]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["config"][config]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["content"][content]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["license"][license]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw01["software"][software]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["config"][config]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["content"][content]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["license"][license]
azurerm_storage_share_directory.create_bootstrap_folder_structure_fw02["software"][software]
azurerm_storage_share_file.fw1_bootstrap_xml
azurerm_storage_share_file.fw1_init_cfg
azurerm_storage_share_file.fw2_bootstrap_xml
azurerm_storage_share_file.fw2_init_cfg
azurerm_subnet.generic_subnet_Apps["apps-apps"][apps-apps]
azurerm_subnet.generic_subnet_Apps["apps-db"][apps-db]
azurerm_subnet.generic_subnet_Apps["apps-web"][apps-web]
azurerm_subnet.generic_subnet_Infra["infra-DomainSvcs"][infra-DomainSvcs]
azurerm_subnet.generic_subnet_Infra["infra-Exchange"][infra-Exchange]
azurerm_subnet.generic_subnet_Infra["pvtDmz-proxy"][pvtDmz-proxy]
azurerm_subnet.generic_subnet_panorama["mgmt-public"][mgmt-public]
azurerm_subnet.generic_subnet_security["external-pub01"][external-pub01]
azurerm_subnet.generic_subnet_security["internal-pvt01"][internal-pvt01]
azurerm_subnet.generic_subnet_security["mgmt-mgmt01"][mgmt-mgmt01]
azurerm_subnet.generic_subnet_security["vpngw-GatewaySubnet"][vpngw-GatewaySubnet]
azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-apps"][apps-apps]
azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-db"][apps-db]
azurerm_subnet_route_table_association.generic_rtassoc_Apps["apps-web"][apps-web]
azurerm_subnet_route_table_association.generic_rtassoc_Infra["infra-DomainSvcs"][infra-DomainSvcs]
azurerm_subnet_route_table_association.generic_rtassoc_Infra["infra-Exchange"][infra-Exchange]
azurerm_subnet_route_table_association.generic_rtassoc_Infra["pvtDmz-proxy"][pvtDmz-proxy]
azurerm_subnet_route_table_association.generic_rtassoc_panorama["mgmt-public"][mgmt-public]
azurerm_subnet_route_table_association.generic_rtassoc_security["external-pub01"][external-pub01]
azurerm_subnet_route_table_association.generic_rtassoc_security["internal-pvt01"][internal-pvt01]
azurerm_subnet_route_table_association.generic_rtassoc_security["mgmt-mgmt01"][mgmt-mgmt01]
azurerm_subnet_route_table_association.generic_rtassoc_security["vpngw-GatewaySubnet"][vpngw-GatewaySubnet]
azurerm_user_assigned_identity.DES_identity
azurerm_user_assigned_identity.fw01-uami[0]~1
azurerm_user_assigned_identity.fw02-uami[0]~1
azurerm_virtual_network.VNET_Apps
azurerm_virtual_network.VNET_Infra
azurerm_virtual_network.VNET_panoramaMgmt
azurerm_virtual_network.VNET_security
azurerm_virtual_network_peering.apps-2-fw
azurerm_virtual_network_peering.fw-2-apps
azurerm_virtual_network_peering.fw-2-panorama
azurerm_virtual_network_peering.panorama-2-fw
local_file.generate_bootstrap_script_fw01
local_file.generate_bootstrap_script_fw02
local_file.generate_init_cfg_fw01
local_file.generate_init_cfg_fw02
null_resource.accept_paloalto_terms
null_resource.register_provider_for_encryption_at_host
random_string.keyvault_suffix
terraform_data.bootstrap_fingerprint
time_sleep.wait_for_fw1_rbac_propagation[0]~1
time_sleep.wait_for_fw2_rbac_propagation[0]~1
time_sleep.wait_for_rbac
Traceback (most recent call last):
File "", line 203, in _run_module_as_main
File "", line 88, in run_code
File "c:\users\user.local\bin\terravision.exe_main
.py", line 5, in
sys.exit(main())
~~~~^^
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\terravision\terravision.py", line 829, in main
cli(
~~~^
default_map={
^^^^^^^^^^^^^
...<3 lines>...
}
^
)
^
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\click\core.py", line 1130, in call
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\terravision\terravision.py", line 480, in draw
tfdata = _safe_compile_tfdata(
debug,
...<7 lines>...
aibackend=ai_annotate,
)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\terravision\terravision.py", line 103, in _safe_compile_tfdata
return compile_tfdata(
source,
...<7 lines>...
aibackend=aibackend,
)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\terravision\terravision.py", line 293, in compile_tfdata
tfdata = _enrich_graph_data(tfdata, debug, already_processed)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\terravision\terravision.py", line 158, in _enrich_graph_data
tfdata = interpreter.resolve_all_variables(tfdata, debug, already_processed)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\modules\interpreter.py", line 58, in resolve_all_variables
tfdata = handle_metadata_vars(tfdata)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\modules\interpreter.py", line 204, in handle_metadata_vars
value = find_replace_values(value, mod, tfdata)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\modules\interpreter.py", line 552, in find_replace_values
value = replace_var_values(
var_found_list, varobject_found_list, value, module, tfdata
)
File "C:\Users\user\pipx\venvs\terravision\Lib\site-packages\modules\interpreter.py", line 448, in replace_var_values
if value.count(lookup) < 2 and obj != "" and isinstance(obj, dict):
^^^^^^^^^^^

AttributeError: 'dict' object has no attribute 'count'

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions