OK, I know what is happening, I just don't know why. I am pulling the current configuration of a port and I get the following: {'number': 5, 'name': '', 'tags': None, 'enabled': True, 'poeEnabled': False, 'type': 'trunk', 'vlan': 1, 'voiceVlan': 10, 'allowedVlans': 'all', 'isolationEnabled': False, 'rstpEnabled': True, 'stpGuard': 'disabled', 'accessPolicyNumber': None, 'linkNegotiation': 'Auto negotiate', 'portScheduleId': None, 'udld': 'Alert only', 'macWhitelist': None, 'stickyMacWhitelist': None, 'stickyMacWhitelistLimit': None} I am then changing the data to update the type, vlan, name, and voice vlan. The data being sent to the PUT is: {'number': 5, 'name': 'Test Port', 'tags': None, 'enabled': True, 'poeEnabled': False, 'type': 'access', 'vlan': 2, 'voiceVlan': None, 'allowedVlans': 'all', 'isolationEnabled': False, 'rstpEnabled': True, 'stpGuard': 'disabled', 'accessPolicyNumber': None, 'linkNegotiation': 'Auto negotiate', 'portScheduleId': None, 'udld': 'Alert only', 'macWhitelist': None, 'stickyMacWhitelist': None, 'stickyMacWhitelistLimit': None} The data that comes back following the PUT, with a response code of 200 is: {'number': 5, 'name': 'Test Port', 'tags': None, 'enabled': True, 'poeEnabled': False, 'type': 'access', 'vlan': 2, 'voiceVlan': 10, 'allowedVlans': 'all', 'isolationEnabled': False, 'rstpEnabled': True, 'stpGuard': 'disabled', 'accessPolicyNumber': None, 'linkNegotiation': 'Auto negotiate', 'portScheduleId': None, 'udld': 'Alert only', 'macWhitelist': None, 'stickyMacWhitelist': None, 'stickyMacWhitelistLimit': None} Notice how all of the values were updated, except the voice vlan? That is why it seems like something is not working behind the scenes. The other thing that seems odd is that in every other API PUT endpoint I have used, I have always had to convert the Python list/dictionary holding the data to a JSON string to replace the single quotes with ", None with null, False with false, and True with true for it to be accepted. This time the JSON compatible string still gets the response 200, but no changes at all are made to the data. Sending the Python dictionary in the PUT makes the changes listed above.
... View more