03-16-2020 12:56 AM
Hi,
I'm trying to update a previously GET qosRule using API. If I GET the QOS Rule I have something like this:
{
"id" : "645703596574246393",
"vlan" : null,
"protocol" : "UDP",
"srcPort" : null,
"dstPort" : null,
"dscp" : NumberInt(46)
}as you can read vlan, srcPort and distort are null because I put "Any" from the Dashboard.
If I try to PUT the same JSON I receive an error because vlan, srcPort and distort should be integer and not 0.
What I'm doing wrong here? I tried to pass "Any" instead of null but the same error occurs.
Solved! Go to Solution.
03-16-2020 01:38 AM
Looks like you need to specify them, or just leave them out of the script.
"srcPort": 2000,"srcPortRange": null,"dstPort": null,
"dstPortRange": "3000-3100",
03-16-2020 01:38 AM
Looks like you need to specify them, or just leave them out of the script.
"srcPort": 2000,"srcPortRange": null,"dstPort": null,
"dstPortRange": "3000-3100",
03-17-2020 01:11 AM
Thanks everybody, I found just few minutes later it was necessary not to specify null fields.
I think this should not be an API behavior as this logic should be inside API and not on caller.
03-16-2020 11:13 AM
Untested, but I would do something like:
if row['vlan'] is None:
del row['vlan']
if row['srcPort'] is None:
del row['srcPort']
if row['dstPort'] is None:
del row['dstPort']
03-16-2020 02:45 PM
In addition to Philip's idea, you can also do something like the below. Just modify or add checks as necessary to remove empty or Null returns.
This is copy-pasta from a script I use to update switchports. Script reads in JSON that's a result of GETting the switchport data, then adjusts it so I can later POST the result.
Edited to add: This is Python, because I love snakes.
for port in switchportsList:
empties = []
for key, value in port.items():
if value == None:
empties.append(key)
for item in empties:
try:
port.pop(item)
except:
print(f"Couldn't pop {item}")
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide