Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    Eintrag in einer Multi-Value-Kategorie per API

    Scheduled Pinned Locked Moved Betrieb
    4 Posts 2 Posters 585 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N Offline
      nklein
      last edited by

      Hallo,

      ich versuche einen neuen Eintrag in eine Multi-Value-Kategorie per API zu erstellen. Bei einer normalen Kategorie funktioniert das bei mir folgendermaßen:

      
      curl -s -H "Content-Type:application/json" -H "X-RPC-Auth-Session:$session_id" https://$idoitServer/idoit/src/jsonrpc.php \
         --data-ascii '{"version": "2.0","params": {"language": "de", "apikey": "'$apikey'", "category": "C__CATG__CUSTOM_FIELDS_OPENVAS_C", 
         "objID": "'$id'", "data": { "f_text_c_1490699768263":"'$group_timeslot'", "f_text_c_1490699791291":"'$next_time_hour'", "f_popup_c_1491468241437":"'$next_time_date'", "f_text_c_1490699801403":"'$target_id'","f_text_c_1490699806285":"'$schedule_id'","f_text_c_1491804201857":"0"}}, 
         "id": 1, "method": "cmdb.category.update" }' --noproxy $idoitServer -k > json_update_response.tmp
      
      

      Versuche ich das gleiche aber mit einem Multi-Value-Kategorie:

      
      curl -s -H "Content-Type:application/json" -H "X-RPC-Auth-Session:$session_id" https://$idoitServer/idoit/src/jsonrpc.php \
          --data-ascii '{"version": "2.0","params": {"language": "de", "apikey": "'$apikey'", "category": "C__CATG__CUSTOM_FIELDS_OPENVAS_E", 
          "objID": "'$id'", "data": { "f_text_c_1494509969047":"'$cvss'","f_text_c_1490001717552":"'$high'","f_text_c_1490001708884":"'$medium'","f_text_c_1490001700208":"'$low'","f_text_c_1490001591982":"'$log'","f_text_c_1491460705077":"'$scanstart'","f_text_c_1491460727523":"'$scanend'","f_text_c_1491460732290":"'$Dauer'","f_link_c_1493713325789":"'$link'"}}, 
          "id": 1, "method": "cmdb.category.update" }' --noproxy $idoitServer -k > json_update_response_arti.tmp
      
      

      bekomme ich

      
      {"jsonrpc":"2.0","error":{"code":-32099,"message":"i-doit system error","data":{"error":"General error: Syntax error, malformed JSON"}},"id":0}
      
      

      zurück. Ich habe es auch schon mit "cmdb.category.create" probiert. In der "i-doit JSON-RPC API" habe ich leider nichts bezüglich Multi-Value-Feldern gefunden.

      Hat hier jemand einen Tipp?

      Mfg,

      Niklas

      1 Reply Last reply Reply Quote 0
      • F Offline
        franknagel
        last edited by

        Ich bin zunächst einmal geneigt, der Fehlermeldung Glauben zu schenken, und anzunehmen, dass einer der Parameter Ihnen die JSON-Syntax kaputt macht.

        Weiterhin gilt: Bei Single-Value Kategorien können Sie create und update austauschbar verwenden. Bei Multi-Value Feldern müssen Sie im Dictionary einen Key "category_id" mit angeben, damit spezifiziert ist, welchen Eintrag Sie ändern wollen.

        1 Reply Last reply Reply Quote 0
        • N Offline
          nklein
          last edited by

          Hallo,

          leider kann ich keinen grundsätzlichen Fehler feststellen. Allerdings beschränkt sich mein Wissen im Grunde auf die funktionierenden Befehlen die ich durch ausprobieren der API und das Auswerten der cmdb.read-responses erarbeitet habe bzw. durch hilfreiche Tipps hier aus dem Forum. Aus der Doku unter https://kb.i-doit.com/pages/viewpage.action?pageId=7831613 werde ich nur bedingt schlau.

          Bei meinem letzten Problem (https://forum.i-doit.org/index.php/topic,4986.msg15377.html#msg15377) war mir die Antwort des json-requests leider keine große Hilfe, da ich immer "success" zurück bekam obwohl ich bewusst falsche Werte übergeben habe. Daher ist mein Vertrauen in die Fehlermeldung etwas getrübt ;).

          Bezüglich der "category_id". Es existiert noch kein Eintrag in der Multi-Value-Kategorie, also müsste ich in Verbindung mit cmd.create auch keine category_id angeben, oder?. Ich probiere nachher mal cmdb.update in Verbindung mit einer category_id, indem ich vorher manuell einen Eintrag über die WebGUI erstelle und schaue was passiert.

          Gruß,

          nklein

          1 Reply Last reply Reply Quote 0
          • F Offline
            franknagel
            last edited by

            @nklein:

            Hallo,

            leider kann ich keinen grundsätzlichen Fehler feststellen. Allerdings beschränkt sich mein Wissen im Grunde auf die funktionierenden Befehlen die ich durch ausprobieren der API und das Auswerten der cmdb.read-responses erarbeitet habe bzw. durch hilfreiche Tipps hier aus dem Forum. Aus der Doku unter https://kb.i-doit.com/pages/viewpage.action?pageId=7831613 werde ich nur bedingt schlau.

            Ich würde curl mit –trace verwenden, um genau zu sehen, was über die Leitung geht. Weiterhin gibt es am Ende der von Ihnen angegebenen Doku einen Link auf ein PDF, welches wohl die beste verfügbare Dokumentation darstellt, trotz einiger Cut-and-Paste Fehler.

            Bei meinem letzten Problem (https://forum.i-doit.org/index.php/topic,4986.msg15377.html#msg15377) war mir die Antwort des json-requests leider keine große Hilfe, da ich immer "success" zurück bekam obwohl ich bewusst falsche Werte übergeben habe. Daher ist mein Vertrauen in die Fehlermeldung etwas getrübt ;).

            Bezüglich der "category_id". Es existiert noch kein Eintrag in der Multi-Value-Kategorie, also müsste ich in Verbindung mit cmd.create auch keine category_id angeben, oder?. Ich probiere nachher mal cmdb.update in Verbindung mit einer category_id, indem ich vorher manuell einen Eintrag über die WebGUI erstelle und schaue was passiert.

            Genau.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post