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


  • i-doit Kenner

    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


  • i-doit Kenner

    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


Log in to reply
 

Looks like your connection to Community was lost, please wait while we try to reconnect.