Closed finkjordanj closed 2 months ago
As of v0.2.5-alpha, On initial apply I can confirm the apply of an empty ruleset does apply and remove any rules built via the dashboard. However during a second apply run on state refresh the state doesn't detect any difference compared to what is applied in the dashboard so any new rules applied after the initial run does not get removed.
debug logs show the new rules but apparently not triggering a change detection
**2024-07-01T10:24:51.816-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:51 [DEBUG] resp: &{"1" false 0xc000150020 []}
2024-07-01T10:24:51.817-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:51 [DEBUG] state: id
2024-07-01T10:24:52.035-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52
2024-07-01T10:24:52.035-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ==============================================================================
2024-07-01T10:24:52.035-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ~~~ REQUEST ~~~
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: GET /api/v1/networks/L_783626335162467749/appliance/firewall/l7FirewallRules HTTP/1.1
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HOST : api.meraki.com
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HEADERS:
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Accept: application/json
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Authorization: Bearer ****30e10
2024-07-01T10:24:52.036-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Content-Type: application/json
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: BODY :
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ***** NO CONTENT *****
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ------------------------------------------------------------------------------
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ~~~ RESPONSE ~~~
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: STATUS : 200 OK
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: PROTO : HTTP/2.0
2024-07-01T10:24:52.037-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: RECEIVED AT : 2024-07-01T10:24:52.0351339-05:00
2024-07-01T10:24:52.038-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: TIME DURATION: 262.8863ms
2024-07-01T10:24:52.038-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HEADERS :
2024-07-01T10:24:52.038-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-07-01T10:24:52.038-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Content-Type: application/json; charset=utf-8
2024-07-01T10:24:52.039-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Date: Mon, 01 Jul 2024 15:24:52 GMT
2024-07-01T10:24:52.039-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-07-01T10:24:52.039-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Pragma: no-cache
2024-07-01T10:24:52.039-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-07-01T10:24:52.040-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Vary: Accept-Encoding
2024-07-01T10:24:52.040-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Content-Type-Options: nosniff
2024-07-01T10:24:52.040-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Frame-Options: sameorigin
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Request-Id: 25b48acce94aac4ea4eeebc9c4b0b9ab
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Robots-Tag: none
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Runtime: 0.067103
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: X-Xss-Protection: 1; mode=block, 1; mode=block
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: BODY :
2024-07-01T10:24:52.041-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: {
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "rules": [
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: {
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "policy": "deny",
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "type": "application",
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "value": {
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "id": "meraki:layer7/application/2664",
2024-07-01T10:24:52.042-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: "name": "Nike"
2024-07-01T10:24:52.043-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: }
2024-07-01T10:24:52.043-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: }
2024-07-01T10:24:52.043-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ]
2024-07-01T10:24:52.043-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: }
2024-07-01T10:24:52.043-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ==============================================================================
2024-07-01T10:24:52.044-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 StateRead: NetworkID value is "L_783626335162467749", Rules value is &[], RulesResponse value is &[{"deny" "application" <null> <null> 0xc00067ac30}]
2024-07-01T10:24:52.044-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 RespRead: NetworkID value is <null>, Rules value is &[], RulesResponse value is &[{"deny" "application" <null> <null> 0xc000620120}]
2024-07-01T10:24:52.044-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference NO
2024-07-01T10:24:52.044-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference NO
2024-07-01T10:24:52.044-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Antes
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldname NetworkID
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldA "L_783626335162467749"
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldB <null>
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Despues ZERO
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Antes
2024-07-01T10:24:52.045-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldname Rules
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldA []
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldB []
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Despues ZERO
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Dereference
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Antes
2024-07-01T10:24:52.046-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldname RulesResponse
2024-07-01T10:24:52.047-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldA [{"deny" "application" <null> <null> 0xc00067ac30}]
2024-07-01T10:24:52.047-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 fieldB [{"deny" "application" <null> <null> 0xc000620120}]
2024-07-01T10:24:52.047-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Despues ZERO
2024-07-01T10:24:52.047-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: 2024/07/01 10:24:52 Result Read: NetworkID value is "L_783626335162467749", Rules value is &[], RulesResponse value is &[{"deny" "application" <null> <null> 0xc000620120}]
2024-07-01T10:24:52.046-0500 [DEBUG] skipping FixUpBlockAttrs
2024-07-01T10:24:52.047-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_rpc=ReadResource @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 @module=sdk.framework tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})].value_obj.name" tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.048-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})].value_obj.id" tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_rpc=ReadResource @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 @module=sdk.framework tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.048-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 @module=sdk.framework tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})].value_obj" tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 tf_rpc=ReadResource timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.048-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules @module=sdk.framework tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})].policy" tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 tf_rpc=ReadResource timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.048-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})].type" tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 tf_rpc=ReadResource @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 @module=sdk.framework timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.049-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_rpc=ReadResource tf_attribute_path="rules_response[Value({\"policy\":\"deny\",\"type\":\"application\",\"value\":<null>,\"value_list\":<null>,\"value_obj\":{\"id\":\"meraki:layer7/application/2664\",\"name\":\"Nike\"}})]" @module=sdk.framework tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 timestamp=2024-07-01T10:24:52.036-0500
2024-07-01T10:24:52.049-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: tf_rpc=ReadResource tf_attribute_path=rules_response tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 @module=sdk.framework timestamp=2024-07-01T10:24:52.037-0500
2024-07-01T10:24:52.049-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: @module=sdk.framework tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_rpc=ReadResource @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 tf_attribute_path=network_id tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 timestamp=2024-07-01T10:24:52.037-0500
2024-07-01T10:24:52.050-0500 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: Value switched to prior value due to semantic equality logic: @caller=github.com/hashicorp/terraform-plugin-framework@v1.7.0/internal/fwschemadata/value_semantic_equality.go:87 tf_resource_type=meraki_networks_appliance_firewall_l7_firewall_rules tf_rpc=ReadResource @module=sdk.framework tf_attribute_path=rules tf_provider_addr=registry.terraform.io/CiscoDevNet/meraki tf_req_id=861ddcdf-f2b0-8aea-eb40-e8a495952f78 timestamp=2024-07-01T10:24:52.037-0500
2024-07-01T10:24:52.057-0500 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF"
2024-07-01T10:24:52.060-0500 [INFO] provider: plugin process exited: plugin=.terraform/providers/registry.terraform.io/cisco-open/meraki/0.2.5-alpha/linux_amd64/terraform-provider-meraki_v0.2.5-alpha id=25275
2024-07-01T10:24:52.060-0500 [DEBUG] provider: plugin exited
2024-07-01T10:24:52.061-0500 [DEBUG] no planned changes, skipping apply graph check
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.
2024-07-01T10:24:52.155-0500 [INFO] backend/local: apply calling Apply
2024-07-01T10:24:52.155-0500 [DEBUG] Building and walking apply graph for NormalMode plan
2024-07-01T10:24:52.156-0500 [DEBUG] ProviderTransformer: "meraki_networks_appliance_vlans.this_vlan (expand)" (*terraform.nodeExpandApplyableResource) needs provider["registry.terraform.io/cisco-open/meraki"]
2024-07-01T10:24:52.156-0500 [DEBUG] ProviderTransformer: "meraki_networks_appliance_firewall_l7_firewall_rules.this (expand)" (*terraform.nodeExpandApplyableResource) needs provider["registry.terraform.io/cisco-open/meraki"]
2024-07-01T10:24:52.157-0500 [DEBUG] ProviderTransformer: "data.meraki_networks.dev_networks (expand)" (*terraform.nodeExpandApplyableResource) needs provider["registry.terraform.io/cisco-open/meraki"]
2024-07-01T10:24:52.157-0500 [DEBUG] pruning unused provider["registry.terraform.io/hashicorp/aws"]
2024-07-01T10:24:52.158-0500 [DEBUG] ReferenceTransformer: "meraki_networks_appliance_firewall_l7_firewall_rules.this (expand)" references: [local.this_network (expand)]
2024-07-01T10:24:52.158-0500 [DEBUG] ReferenceTransformer: "data.meraki_networks.dev_networks (expand)" references: [local.organization_id (expand)]
2024-07-01T10:24:52.158-0500 [DEBUG] ReferenceTransformer: "var.repo_name" references: []
2024-07-01T10:24:52.158-0500 [DEBUG] ReferenceTransformer: "local.organization_id (expand)" references: []
2024-07-01T10:24:52.158-0500 [DEBUG] ReferenceTransformer: "local.this_network (expand)" references: [data.meraki_networks.dev_networks (expand)]
2024-07-01T10:24:52.159-0500 [DEBUG] ReferenceTransformer: "provider[\"registry.terraform.io/cisco-open/meraki\"]" references: []
2024-07-01T10:24:52.159-0500 [DEBUG] ReferenceTransformer: "meraki_networks_appliance_vlans.this_vlan (expand)" references: []
2024-07-01T10:24:52.160-0500 [DEBUG] pruneUnusedNodes: meraki_networks_appliance_vlans.this_vlan (expand) is no longer needed, removing
2024-07-01T10:24:52.160-0500 [DEBUG] pruneUnusedNodes: meraki_networks_appliance_firewall_l7_firewall_rules.this (expand) is no longer needed, removing
2024-07-01T10:24:52.160-0500 [DEBUG] pruneUnusedNodes: local.this_network (expand) is no longer needed, removing
2024-07-01T10:24:52.160-0500 [DEBUG] pruneUnusedNodes: data.meraki_networks.dev_networks (expand) is no longer needed, removing
2024-07-01T10:24:52.160-0500 [DEBUG] pruneUnusedNodes: provider["registry.terraform.io/cisco-open/meraki"] is no longer needed, removing
2024-07-01T10:24:52.161-0500 [DEBUG] pruneUnusedNodes: local.organization_id (expand) is no longer needed, removing
2024-07-01T10:24:52.161-0500 [DEBUG] Starting graph walk: walkApply
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.**
This topic is being addressed in issue #83. I will close this case because the main problem was resolved.
Prerequisites
Describe the bug When attempting to apply an empty layer7 ruleset the apply fails to apply.
debug output
Expected behavior Empty ruleset should apply overtop and remove any rules applied previously
Confirmed working when using python library and tried directly against the API.
Screenshots
Python output
Environment (please complete the following information):
Additional context