meraki / dashboard-api-python

Official Dashboard API library (SDK) for Python
MIT License
289 stars 151 forks source link

No way to define band selection per SSID using API #170

Closed Philippe-Ragon closed 2 years ago

Philippe-Ragon commented 2 years ago

Meraki has recently introduced (around Oct 12th) a new way to handle band selection per SSID in the GUI.

Before this change:

In order to handle 'per SSID' case with API, one had to use:

This was working fine, I had prepared a script (using library 1.12.0) to perform harmonization of band selection settings across 400 networks worlwide.

After the change: All band selection settings are managed within RF profile i.e. for both 'all ssids' (as before) and for 'per SSID' (new). From an ergonomy point view, this change is a good thing because all information about band selection 'per SSID' are gathered into a single GUI page (RF profile definition), instead of several pages (RF profile for toggle setting, and Access Control page of each SSID).

However, the issue is that API has not been modified to reflect the change in GUI / data structure related to band selection. wireless.createNetworkWirelessRfProfile() or wireless.updateNetworkWirelessRfProfile():

My request is to add a calling argument to these endpoints to define band selection setting of one or several SSIDs. This would restore the possibility to handle 'per SSID' case using API.

Remark : wireless.getNetworkWirelessRfProfile() is correctly providing 'per SSID' settings that have been defined using new version of the GUI. Result of this endpoint now contains a new key named 'perSsidSettings' whose value is a dictionnary which contains 15 keys (one per SSID) with the following structure 'ssidNumber' : {'name' : 'nameofSSIDnumber', 'minbitrate' : xx, 'bandOperationMode' : 'dual|5Ghz|2.4Ghz', 'bandSteeringEnabled' : True|False}

This same structure could be used to set value when calling create or update endpoints. The dictionary passed in argument could contains a definition for each ssid number (0 to 14), or only for a subset of those numbers ==> only those numbers would be updated Before updating the values for a given ssid number, a consistency check based on 'name' key must be implemented. If 'ssidNumber' and 'name' are not in accordance, then an error is returned.

TKIPisalegacycipher commented 2 years ago

Definitely! This is coming to the official API, and a short time thereafter, it will be added to the corresponding version of this Python library.

Philippe-Ragon commented 2 years ago

Latest version of the library (v1.15.0) is still exhibiting the same issue. Said otherwise, 3 months later the issue has not been corrected. Is there any possibility to increase the priority of my request ?

TKIPisalegacycipher commented 2 years ago

Now available in library version 1.18.2.