JSON-RPC: Kategorie anlegen
-
Hallo,
wenn ich ein Objekt (Server) per JSON-Request anlege, klappt das. Auch eine Kategorie wie "CPU" ist kein Problem. Nur bei "Host address" wirft es einen Fehler.
Auszug Log:
–----------------------------------------------------------
_[2014-09-08 16:37:19] INFO: JSON-RPC controller started for request: array ( 'method' => 'cmdb.category.create', 'params' => array ( 'apikey' => 'XXXXXXX', 'catgID' => 'C__CATG__IP', 'objID' => '151', 'data' => array ( 'hostname' => 'serverhostname', ), ), 'id' => 2, 'version' => '2.0',)[2014-09-08 16:37:19] INFO: Using previous authorizaton from systemapi (Testsystem)
[2014-09-08 16:37:19] INFO: Retrieving data from: category
[2014-09-08 16:37:19] INFO: Data: array (
)[2014-09-08 16:37:19] INFO: Transmitting response: {"jsonrpc":"2.0","result":{"success":false,"message":"Error while creating category entry"},"id":2}
[2014-09-08 16:37:19] INFO: Request with id 2 transmitted._ –----------------------------------------------------------
Hat jemand eine Idee?
Danke.Gruß
Dirk -
Hallo Dirk,
bei mir funktioniert folgender Aufruf:
wget -O- –no-check-certificate -o /dev/null $CMDB_API_URL --header 'Content-Type: application/json-rpc' --post-data "{"jsonrpc": "2.0", "method": "cmdb.category.create","params": {"apikey": "$CMDB_API_KEY", "objID": "$id", "catgID": "47", "data":{"net_type": "1", "ipv4_assignment": "2", "ipv4_address": "$ip"}}}"Eventuell musst Du noch net_type, ipv4_assignment und ipv4_address angeben?
Gruss,
jkondek -
Hallo jkondek,
Du bist ja wieder superschnell!
Die zusätzlichen Attribute habe ich weggelassen, da sie in der Doku als optional markiert sind.
Hier nochmal angepasst:request: array ( 'method' => 'cmdb.category.create', 'params' => array ( 'apikey' => 'XXXXXXX', 'objID' => '157', 'catgID' => '47', 'data' => array ( 'hostname' => 'serverhostname', ), ), 'id' => 2, 'version' => '2.0',)
Leider wieder ein Fehler.Gruß
Dirk -
Hallo Dirk,
nur weil in der Doku "optional" steht, heisst es nicht, dass es auch so ist! Ich hatte versucht nur die IP einzutragen, musste allerdings auch net_type und/oder (?) ipv4_assignment zusaetzlich angeben, da es sonst nicht funktioniert hat.
Hast Du es mit den zusaetzlichen Angaben denn ausprobiert?
Gruss,
jkondek -
Du hast recht!
Es funktioniert mit den ergänzten Attributen.
Nach etwas Rumprobieren festgestellt, dass es dem System genügt, wenn man den "net_type", also IPv4 oder IPv6 zuweist. Das deckt sich auch damit, dass er sich beim manuellen Anlegen mit dem Hostnamen begnügt hat, da er standardmäßig als Netztyp IPv4 zuweist.
Danke!Gruß
Dirk