cisco-open / terraform-provider-meraki

A Terraform Provider for Cisco Meraki
Mozilla Public License 2.0
15 stars 6 forks source link

meraki_networks_switch_stacks_routing_static_routes - additional fields in the API request #98

Closed mcparaf closed 1 month ago

mcparaf commented 2 months ago

Prerequisites

Describe the bug When trying to edit a switch stack routing static route the provider supplies additional arguments to the API request and then API says that the additionally provided arguments were wrong. From my research it seems that the additional arguments value is downloaded directly from the API and has nothing to do with the data I provided myself. In particular, I made sure not to include the argument in my resource:

resource "meraki_networks_switch_stacks_routing_static_routes" "net_switch_stacks_routing_static_routes" {
  for_each                        = { for data in local.networks_switch_stacks_routing_static_routes : data.switch_stack_id => data }
  network_id                      = each.value.network_id
  switch_stack_id                 = each.value.switch_stack_id
  # advertise_via_ospf_enabled      = try(each.value.data.advertise_via_ospf_enabled, null)
  name                            = try(each.value.data.name, null)
  next_hop_ip                     = try(each.value.data.next_hop_ip, null)
  # prefer_over_ospf_routes_enabled = try(each.value.data.prefer_over_ospf_routes_enabled, null)
  subnet                          = try(each.value.data.subnet, null)
  # static_route_id                 = try(each.value.static_route_id, null)
}

It still adds the OSPF fields though:

2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ==============================================================================
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ~~~ REQUEST ~~~
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: PUT  /api/v1/networks/L_709316941310853998/switch/stacks/709316941310853242/routing/staticRoutes/709316941310853320  HTTP/1.1
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HOST   : api.meraki.com
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HEADERS:
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Accept: application/json
2024-07-08T10:52:30.978+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Authorization: Bearer ****b91c9
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Content-Type: application/json
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: BODY   :
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: {
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "advertiseViaOspfEnabled": false,
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "name": "test",
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "nextHopIp": "10.11.12.100",
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "preferOverOspfRoutesEnabled": true,
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "subnet": "10.20.30.0/24"
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: }
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ------------------------------------------------------------------------------
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ~~~ RESPONSE ~~~
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: STATUS       : 400 Bad Request
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: PROTO        : HTTP/2.0
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: RECEIVED AT  : 2024-07-08T10:52:30.97789+02:00
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: TIME DURATION: 123.061709ms
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: HEADERS      :
2024-07-08T10:52:30.982+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Content-Type: application/json; charset=utf-8
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Date: Mon, 08 Jul 2024 08:52:31 GMT
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Pragma: no-cache
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Content-Type-Options: nosniff
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Frame-Options: sameorigin
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Request-Id: a7edb70841b8edb869ae7daa4fdaf6ed
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Robots-Tag: none
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Runtime: 0.076989
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:   X-Xss-Protection: 1; mode=block
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: BODY         :
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: {
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    "errors": [
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:       "Cannot configure advertiseViaOspfEnabled when OSPF is disabled",
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:       "Cannot configure preferOverOspfRoutesEnabled when OSPF is disabled"
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha:    ]
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: }
2024-07-08T10:52:30.983+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.5-alpha: ==============================================================================

Expected behavior Do not include the OSPF fields in the request.

Environment (please complete the following information):

fmunozmiranda commented 1 month ago

@mcparaf please try it again with new version and update us.

fmunozmiranda commented 1 month ago

If we do not receive a response it will be closed in the next 24 hours.

mcparaf commented 1 month ago

I was on PTO.

Literally the same thing happens for the field switch_stacks.0.routing_interfaces.0.ipv6.gateway.