Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meraki_networks_wireless_ssids - additional fields in the request #121

Open
mcparaf opened this issue Jul 25, 2024 · 5 comments
Open

meraki_networks_wireless_ssids - additional fields in the request #121

mcparaf opened this issue Jul 25, 2024 · 5 comments

Comments

@mcparaf
Copy link

mcparaf commented Jul 25, 2024

Prerequisites

  • [ v ] Have you tested the operation in the API directly?
  • [ v ] Do you have the latest Terraform provider version?
  • [ x ] Review the compatibility matrix before opening an issue.

Describe the bug
When trying to create/update wireless ssids fields such as min_bitrate and band_selection always get passed to the request to the API. This makes the API think that the configuration is wrong and reject the request. Sending the request to the API manually without these fields makes the request succeed.

Expected behavior
Fields that are not specified in the terraform data do not get passed to the request to the API and the request data corresponds directly to the data provided in terraform.

Successful request:

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
    "authMode": "8021x-radius",
    "availableOnAllAps": true,
    "defaultVlanId": 666,
    "dot11r": {
        "adaptive": false,
        "enabled": false
    },
    "dot11w": {
        "enabled": true,
        "required": true
    },
    "enabled": true,
    "encryptionMode": "wpa",
    "ipAssignmentMode": "Bridge mode",
    "lanIsolationEnabled": false,
    "mandatoryDhcpEnabled": false,
    "name": "CORP",
    "perClientBandwidthLimitDown": 0,
    "perClientBandwidthLimitUp": 0,
    "perSsidBandwidthLimitDown": 0,
    "perSsidBandwidthLimitUp": 0,
    "radiusAccountingEnabled": true,
    "radiusAccountingInterimInterval": 600,
    "radiusAccountingServers": [
        {
            "host": "10.64.0.230",
            "port": 1813,
            "radsecEnabled": false,
            "secret": "cisco123"
        }
    ],
    "radiusAttributeForGroupPolicies": "Filter-Id",
    "radiusCoaEnabled": true,
    "radiusFallbackEnabled": true,
    "radiusOverride": true,
    "radiusProxyEnabled": false,
    "radiusServerAttemptsLimit": 3,
    "radiusServerTimeout": 5,
    "radiusServers": [
        {
            "host": "100.64.0.230",
            "port": 1812,
            "radsecEnabled": false,
            "secret": "abc123"
        }
    ],
    "radiusTestingEnabled": true,
    "speedBurst": {
        "enabled": false
    },
    "splashPage": "None",
    "useVlanTagging": true,
    "visible": true,
    "wpaEncryptionMode": "WPA3 192-bit Security"
}'
{
  "number": 0,
  "name": "CORP",
  "enabled": true,
  "splashPage": "None",
  "ssidAdminAccessible": false,
  "authMode": "8021x-radius",
  "dot11w": {
    "enabled": true,
    "required": true
  },
  "dot11r": {
    "enabled": false,
    "adaptive": false
  },
  "encryptionMode": "wpa-eap",
  "wpaEncryptionMode": "WPA3 192-bit Security",
  "radiusServers": [
    {
      "host": "100.64.0.230",
      "port": 1812,
      "id": "709316941310853847",
      "radsecEnabled": false,
      "openRoamingCertificateId": null,
      "caCertificate": null
    }
  ],
  "radiusAccountingEnabled": true,
  "radiusAccountingServers": [
    {
      "host": "10.64.0.230",
      "port": 1813,
      "id": "709316941310853848",
      "radsecEnabled": false,
      "openRoamingCertificateId": null,
      "caCertificate": null
    }
  ],
  "radiusTestingEnabled": true,
  "radiusServerTimeout": 5,
  "radiusServerAttemptsLimit": 3,
  "radiusFallbackEnabled": true,
  "radiusAccountingInterimInterval": 600,
  "radiusProxyEnabled": false,
  "radiusCoaEnabled": true,
  "radiusCalledStationId": "$NODE_MAC$:$VAP_NAME$",
  "radiusAuthenticationNasId": "$NODE_MAC$:$VAP_NUM$",
  "radiusAttributeForGroupPolicies": "Filter-Id",
  "ipAssignmentMode": "Bridge mode",
  "useVlanTagging": true,
  "defaultVlanId": 666,
  "radiusOverride": true,
  "minBitrate": 11,
  "bandSelection": "Dual band operation",
  "perClientBandwidthLimitUp": 0,
  "perClientBandwidthLimitDown": 0,
  "perSsidBandwidthLimitUp": 0,
  "perSsidBandwidthLimitDown": 0,
  "mandatoryDhcpEnabled": false,
  "lanIsolationEnabled": false,
  "visible": true,
  "availableOnAllAps": true,
  "availabilityTags": [],
  "speedBurst": {
    "enabled": false
  }
}

Environment (please complete the following information):

  • Meraki Dashboard version: n260.meraki.com
  • Terraform version: 1.9.1
  • Meraki provider version: 0.2.9-alpha
  • OS Version: macOS Sonoma 14.5
fmunozmiranda added a commit that referenced this issue Aug 5, 2024
* Issue #117 Fixed.
* Issue #118 Fixed.
* Issue #120 Fixed.
* Issue #121 Fixed.
* Issue #122 Fixed.
* Issue #123 Fixed.
* Issue #124 Fixed.
* Issue #125 Fixed.
* Issue #126 Fixed.
* Issue #127 Fixed.
* Issue #128 Fixed.
* Issue #129 Fixed.
* Issue #130 Fixed.
* Issue #131 Fixed.
@fmunozmiranda fmunozmiranda mentioned this issue Aug 5, 2024
13 tasks
@fmunozmiranda
Copy link
Collaborator

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

@mcparaf
Copy link
Author

mcparaf commented Aug 8, 2024

The create operation now succeeds but the update operation still has the same problem:

2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: ==============================================================================
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: ~~~ REQUEST ~~~
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: PUT  /api/v1/networks/L_709316941310853998/wireless/ssids/0  HTTP/1.1
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: HOST   : api.meraki.com
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: HEADERS:
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: 	Accept: application/json
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: 	Authorization: Bearer ****b91c9
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: 	Content-Type: application/json
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: 	User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: BODY   :
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki: {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "authMode": "8021x-radius",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "availableOnAllAps": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "bandSelection": "Dual band operation",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "defaultVlanId": 666,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "dot11r": {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "adaptive": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": false
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "dot11w": {
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:       "required": true
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "enabled": true,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "encryptionMode": "wpa",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "ipAssignmentMode": "Bridge mode",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "lanIsolationEnabled": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "mandatoryDhcpEnabled": false,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "minBitrate": 11,
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "name": "CORP",
2024-08-08T11:47:59.884+0200 [DEBUG] provider.terraform-provider-meraki:    "perClientBandwidthLimitDown": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perClientBandwidthLimitUp": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perSsidBandwidthLimitDown": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "perSsidBandwidthLimitUp": 0,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingInterimInterval": 600,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAccountingServers": [
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "host": "10.64.0.230",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "port": 1813,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "radsecEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "secret": "cisco123"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    ],
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusAttributeForGroupPolicies": "Filter-Id",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusCoaEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusFallbackEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusOverride": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusProxyEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServerAttemptsLimit": 3,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServerTimeout": 5,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusServers": [
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "host": "100.64.0.230",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "port": 1812,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "radsecEnabled": false,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:          "secret": "abc123"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    ],
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "radiusTestingEnabled": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "speedBurst": {
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:       "enabled": false
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    },
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "splashPage": "None",
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "useVlanTagging": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "visible": true,
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki:    "wpaEncryptionMode": "WPA3 192-bit Security"
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: }
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: ------------------------------------------------------------------------------
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: ~~~ RESPONSE ~~~
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: STATUS       : 400 Bad Request
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: PROTO        : HTTP/2.0
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: RECEIVED AT  : 2024-08-08T11:47:59.87882+02:00
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: TIME DURATION: 399.298917ms
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: HEADERS      :
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: 	Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-08-08T11:47:59.885+0200 [DEBUG] provider.terraform-provider-meraki: 	Content-Type: application/json; charset=utf-8
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	Date: Thu, 08 Aug 2024 09:47:59 GMT
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	Pragma: no-cache
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Content-Type-Options: nosniff
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Frame-Options: sameorigin
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Request-Id: 156c47f4fdcedc189ac6b374c12e8f24
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Robots-Tag: none
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Runtime: 0.199708
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: 	X-Xss-Protection: 1; mode=block
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: BODY         :
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: {
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    "errors": [
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:       "Five ghz valid auto channels Please select a 5-lo channel"
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki:    ]
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: }
2024-08-08T11:47:59.886+0200 [DEBUG] provider.terraform-provider-meraki: ==============================================================================

Please note that the minBitrate and bandSelection fields are still present in the request.

@obrigg
Copy link
Contributor

obrigg commented Aug 12, 2024

Thank you. This is strange... I can see the Terraform API calls on our backend and the failed PUT request.
However, I am not able to see the successful cURL PUT request.

  1. Can you run the cURL request again, and confirm that you receive a successful response?
  2. Can you kindly share the TF execution plan file so we can reproduce the issue?

@mcparaf
Copy link
Author

mcparaf commented Aug 19, 2024

Here are logs from the provider:

2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ~~~ REQUEST ~~~
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: PUT  /api/v1/networks/L_709316941310853998/wireless/ssids/0  HTTP/1.1
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HOST   : api.meraki.com
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HEADERS:
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Accept: application/json
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Authorization: Bearer ****b91c9
2024-08-19T14:03:34.874+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Content-Type: application/json
2024-08-19T14:03:34.877+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	User-Agent: go-meraki/1.44.1 MerakiTerraform/1.47.0 Cisco
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: BODY   :
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "authMode": "8021x-radius",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "availableOnAllAps": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "bandSelection": "Dual band operation",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "defaultVlanId": 666,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "dot11r": {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "adaptive": false,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": false
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "dot11w": {
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "required": true
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "enabled": true,
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "encryptionMode": "wpa",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "ipAssignmentMode": "Bridge mode",
2024-08-19T14:03:34.878+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "lanIsolationEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "mandatoryDhcpEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "minBitrate": 11,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "name": "CORP",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perClientBandwidthLimitDown": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perClientBandwidthLimitUp": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perSsidBandwidthLimitDown": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "perSsidBandwidthLimitUp": 0,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingInterimInterval": 600,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAccountingServers": [
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       {
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "host": "10.64.0.230",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "port": 1813,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "radsecEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "secret": "cisco123"
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       }
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ],
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusAttributeForGroupPolicies": "Filter-Id",
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusCoaEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusFallbackEnabled": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusOverride": true,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusProxyEnabled": false,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServerAttemptsLimit": 3,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServerTimeout": 5,
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusServers": [
2024-08-19T14:03:34.879+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       {
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "host": "100.64.0.230",
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "port": 1812,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "radsecEnabled": false,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:          "secret": "abc123"
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       }
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ],
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "radiusTestingEnabled": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "speedBurst": {
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "enabled": false
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    },
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "splashPage": "None",
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "useVlanTagging": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "visible": true,
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "wpaEncryptionMode": "WPA3 192-bit Security"
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: }
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ------------------------------------------------------------------------------
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ~~~ RESPONSE ~~~
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: STATUS       : 400 Bad Request
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: PROTO        : HTTP/2.0
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: RECEIVED AT  : 2024-08-19T14:03:34.873664+02:00
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: TIME DURATION: 384.590375ms
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: HEADERS      :
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Cache-Control: no-cache, no-store, max-age=0, must-revalidate
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Content-Type: application/json; charset=utf-8
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Date: Mon, 19 Aug 2024 12:03:34 GMT
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Expires: Fri, 01 Jan 1990 00:00:00 GMT
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Pragma: no-cache
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Content-Type-Options: nosniff
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Frame-Options: sameorigin
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Request-Id: c3301cc40a5aeed5e1c3c05f507861e6
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Robots-Tag: none
2024-08-19T14:03:34.880+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Runtime: 0.235360
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: 	X-Xss-Protection: 1; mode=block
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: BODY         :
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: {
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    "errors": [
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:       "Five ghz valid auto channels Please select a 5-lo channel"
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha:    ]
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: }
2024-08-19T14:03:34.881+0200 [DEBUG] provider.terraform-provider-meraki_v0.2.10-alpha: ==============================================================================

Here is the curl request that mirrors the request sent by the provider (with the same error result):

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
   "authMode": "8021x-radius",
   "availableOnAllAps": true,
   "bandSelection": "Dual band operation",
   "defaultVlanId": 666,
   "dot11r": {
      "adaptive": false,
      "enabled": false
   },
   "dot11w": {
      "enabled": true,
      "required": true
   },
   "enabled": true,
   "encryptionMode": "wpa",
   "ipAssignmentMode": "Bridge mode",
   "lanIsolationEnabled": false,
   "mandatoryDhcpEnabled": false,
   "minBitrate": 11,
   "name": "CORP",
   "perClientBandwidthLimitDown": 0,
   "perClientBandwidthLimitUp": 0,
   "perSsidBandwidthLimitDown": 0,
   "perSsidBandwidthLimitUp": 0,
   "radiusAccountingEnabled": true,
   "radiusAccountingInterimInterval": 600,
   "radiusAccountingServers": [
      {
         "host": "10.64.0.230",
         "port": 1813,
         "radsecEnabled": false,
         "secret": "cisco123"
      }
   ],
   "radiusAttributeForGroupPolicies": "Filter-Id",
   "radiusCoaEnabled": true,
   "radiusFallbackEnabled": true,
   "radiusOverride": true,
   "radiusProxyEnabled": false,
   "radiusServerAttemptsLimit": 3,
   "radiusServerTimeout": 5,
   "radiusServers": [
      {
         "host": "100.64.0.230",
         "port": 1812,
         "radsecEnabled": false,
         "secret": "abc123"
      }
   ],
   "radiusTestingEnabled": true,
   "speedBurst": {
      "enabled": false
   },
   "splashPage": "None",
   "useVlanTagging": true,
   "visible": true,
   "wpaEncryptionMode": "WPA3 192-bit Security"
}'

And here is a fixed curl request that works. The difference between the fixed one and the broken one is that the fields "minBitrate" and "bandSelection" are absent, as specified by the Terraform configuration:

curl -XPUT -H "Content-Type: application/json" -H "Authorization: Bearer REDACTED" https://api.meraki.com/api/v1/networks/L_709316941310853998/wireless/ssids/0 -d '{
   "authMode": "8021x-radius",
   "availableOnAllAps": true,
   "defaultVlanId": 666,
   "dot11r": {
      "adaptive": false,
      "enabled": false
   },
   "dot11w": {
      "enabled": true,
      "required": true
   },
   "enabled": true,
   "encryptionMode": "wpa",
   "ipAssignmentMode": "Bridge mode",
   "lanIsolationEnabled": false,
   "mandatoryDhcpEnabled": false,
   "name": "CORP",
   "perClientBandwidthLimitDown": 0,
   "perClientBandwidthLimitUp": 0,
   "perSsidBandwidthLimitDown": 0,
   "perSsidBandwidthLimitUp": 0,
   "radiusAccountingEnabled": true,
   "radiusAccountingInterimInterval": 600,
   "radiusAccountingServers": [
      {
         "host": "10.64.0.230",
         "port": 1813,
         "radsecEnabled": false,
         "secret": "cisco123"
      }
   ],
   "radiusAttributeForGroupPolicies": "Filter-Id",
   "radiusCoaEnabled": true,
   "radiusFallbackEnabled": true,
   "radiusOverride": true,
   "radiusProxyEnabled": false,
   "radiusServerAttemptsLimit": 3,
   "radiusServerTimeout": 5,
   "radiusServers": [
      {
         "host": "100.64.0.230",
         "port": 1812,
         "radsecEnabled": false,
         "secret": "abc123"
      }
   ],
   "radiusTestingEnabled": true,
   "speedBurst": {
      "enabled": false
   },
   "splashPage": "None",
   "useVlanTagging": true,
   "visible": true,
   "wpaEncryptionMode": "WPA3 192-bit Security"
}'

Please note that the create operation works well, it is only the update operation that fails. The fix has to be applied across all operations.
The terraform plan:

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # module.meraki.meraki_networks_switch_access_policies.net_switch_access_policies["0"] will be updated in-place
  ~ resource "meraki_networks_switch_access_policies" "net_switch_access_policies" {
      ~ guest_port_bouncing                = true -> false
        name                               = "Test Policy"
      ~ radius                             = {
          ~ critical_auth       = {
              + data_vlan_id        = (known after apply)
                # (1 unchanged attribute hidden)
            }
          + failed_auth_vlan_id = (known after apply)
        }
        # (17 unchanged attributes hidden)
    }

  # module.meraki.meraki_networks_switch_link_aggregations.net_switch_link_aggregations["0"] will be created
  + resource "meraki_networks_switch_link_aggregations" "net_switch_link_aggregations" {
      + id                   = (known after apply)
      + link_aggregation_id  = (known after apply)
      + network_id           = "L_709316941310853998"
      + switch_ports         = [
          + {
              + port_id = "7"
              + serial  = "Q5JC-C2Z2-PHZU"
            },
          + {
              + port_id = "8"
              + serial  = "Q5JC-C2Z2-PHZU"
            },
        ]
      + switch_profile_ports = (known after apply)
    }

  # module.meraki.meraki_networks_switch_routing_ospf.net_switch_routing_ospf["0"] will be updated in-place
  ~ resource "meraki_networks_switch_routing_ospf" "net_switch_routing_ospf" {
      ~ v3                         = {
          ~ enabled                = true -> false
            # (3 unchanged attributes hidden)
        }
        # (7 unchanged attributes hidden)
    }

  # module.meraki.meraki_networks_wireless_ssids.net_wireless_ssids["0"] will be updated in-place
  ~ resource "meraki_networks_wireless_ssids" "net_wireless_ssids" {
      ~ encryption_mode                     = "wpa-eap" -> "wpa"
        name                                = "CORP"
        # (41 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["1576797"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["1576869"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_login_security.login_security["709316941310853137"] will be updated in-place
  ~ resource "meraki_organizations_login_security" "login_security" {
      + login_ip_ranges             = []
        # (13 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["1576797"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["1576869"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

  # module.meraki.meraki_organizations_snmp.snmp["709316941310853137"] will be updated in-place
  ~ resource "meraki_organizations_snmp" "snmp" {
      + peer_ips            = []
        # (11 unchanged attributes hidden)
    }

This, however, does not result from any changes introduced in my terraform or yaml files. These changes are simply introduced every time. In the case of wireless SSID 0 the encryption mode is being "changed", I suspect that there is an inconsistency somewhere.

@fmunozmiranda
Copy link
Collaborator

Please try it with new version and update us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants