JSON-API cmdb.category.update
-
Hallo,
ich versuche gerade über die JSON-API eine Kategorie upzudaten. Was im Prinzip auch funktioniert, d.h. grundsätzlich geht es.
Folgendes Beispiel in python ( der Code funktioniert im Grunde - da ist nicht das Problem - )
command = 'cmdb.category.update'
args = []
kw = {}
kw['apikey'] = apikey
kw['category'] = 'C__CMDB__SUBCAT__NETWORK_PORT'
kw['objID'] = objID
kw['data'] = {'category_id': j['id'], 'mac': j['mac'].upper().strip()}
res = client.call(command, *args, **kw)Also: Ich möchte die Mac-Adresse in der Sub-Kategorie NETWORK_PORT eintragen.
Das tut die API auch. Soweit so gut.Allerdings löscht die API dabei einige der anderen Kategorie-Einträge. Und das sollte ein "Update"-Befehl nicht tun.
Oder anders ausgedrückt: Wenn es notwendig ist, bei einem Update, den vollständigen Datensatz für die Kategorie mitzugeben, dann sollte die API das auch explizit verlangen.
d.h. entweder der Befehl sollte fehlschlagen mit der Fehlermeldung, dass nicht alle notwendigen Daten mitgeliefert wurden,
oder eben ein Update der Kategorie mit genau den Daten durchführen, die ihr übergeben wurden.Was die API aber in keinem Fall tun sollte, ist: Daten zu löschen.
lt. Quell-Code der API (und ich hab den nur überflogen) wird der Update in einen Import gewrapped. Ich denke, dass das hier das falsche vorgehen ist, oder zumindest nicht das erwartete Ergebnis liefert.
Grüße,
Alex