MAC-Adresse(n) mit API (JSON-RPC) ändern?
-
Guten Tag,
ich versuche aktuell die MAC-Adressen eines Objektes via API zu ändern. Grundsätzlich sollen alle vorhandenen MAC-Adressen geändert werden, allerdings finde ich schon nicht heraus, wie man eine einzelnde MAC ändern kann.Mein aktuelles JSON sieht so aus:
{ "version": "2.0", "method": "cmdb.object.update", "params": { "id": 723848, "title": "Test", "apikey": "****", "language": "de", "category":"C__CATG__NETWORK_PORT", }, "id": 1 }
Der Titel ändert sich auch erfolgreich, allerings weiß ich nicht, wie ich nun eine der beiden MAC-Adressen ändern kann (siehe Bild).
Mit freundlichen Grüßen
Nick -
Hallo @Nick ,
mit der Methode 'cmdb.object.update' wird nur das Objekte upgedated und zwar die Bezeichnung des Objektes.
Wenn du Daten in anderen Kategorien ändern möchtest musst du die Methode 'cmdb.category.save' verwenden.Zuerst solltest du dir aber die Doku zur i-doit API anschauen, dort sind die Methoden beschrieben und es gibt Beispiele.
Außerdem gibt es noch die Hilfe in i-doit unter Verwaltung > Schnittstelle / externe Daten > JSON-RPC API > Kategorien und Attribute. -
@michael-overkamp said in MAC-Adresse(n) mit API (JSON-RPC) ändern?:
cmdb.category.save
Hallo @Michael-Overkamp,
danke für deine Antwort. Ich habe es auch zu der Zeit mit mit 'cmdb.category.save' probiert. Ich nutze dann natürlich die Variante.Ich habe allerdings eher eine andere Frage:
Wie komme ich nun speziell an eine der MAC-Adressen ran und kann diese ändern, wenn die Kategorie mehre MAC-Adressen hat?
Aktuell sieht meine Abfrage so aus:{ "version": "2.0", "method": "cmdb.category.save", "params": { "objID": 716878, "data": { "mac": "Test" }, "catgID": "C__CATG__MODEL", "apikey": "*****", "language": "de" }, "id": 1 }
Ich habe die Doku gelesen, finde allerdings keine relevanten Informationen.
-
@nick
Hier mal meine Abfrage:{ "version": "2.0", "method": "cmdb.category.read", "params": { "objID": 716878, "apikey": "*****", "language": "de", "category":"C__CATG__NETWORK_PORT", }, "id": 1 }
Und das Ergebnis:
{ id: 1, jsonrpc: '2.0', result: [ { id: '35726', objID: '716878', title: '', interface: [], port_type: null, port_mode: [Object], plug_type: null, negotiation: null, duplex: null, speed: null, speed_type: null, standard: null, mac: '*****', mtu: null, assigned_connector: null, connector: '35726', connector_sibling: null, cable: [], active: [Object], addresses: [], layer2_assignment: [], hba: null, default_vlan: null, description: "'Mac-Adresse'", relation_direction: null }, { id: '35727', objID: '716878', title: '', interface: [], port_type: null, port_mode: [Object], plug_type: null, negotiation: null, duplex: null, speed: null, speed_type: null, standard: null, mac: '*****', mtu: null, assigned_connector: null, connector: '35727', connector_sibling: null, cable: [], active: [Object], addresses: [], layer2_assignment: [], hba: null, default_vlan: null, description: "'Mac-Adresse WAN'", relation_direction: null } ] }
-
Hallo @Nick ,
bei Multi-Value Kategorien haben die Einträge ID´s.
In deinem Beispiel sind dies:id: '35726',
und
id: '35727',
Somit würde cmdb.category.save für den Eintrag '35726' so lauten:
{ "version": "2.0", "method": "cmdb.category.save", "params": { "object": 716878, "entryID":35726, "apikey": "*****", "language": "de", "category":"C__CATG__NETWORK_PORT", "data": { "mac":"AA:AA:AA:AA:AA:AA" }, }, "id": 1 }
-
Hi @michael-overkamp
dann war ich auf einem sehr guten Weg. "entry" und "id" hatte ich auch schon probiert.
Allerdings geht es immernoch nicht ...{ id: null, jsonrpc: '2.0', error: { code: -32600, message: 'Invalid request : Provided request is not a valid json rpc.', data: null } }
Habs genau so genommen, wie du geschrieben hast.
-
@Michael-Overkamp
Ich habe das Problem gelöst. Ich hatte das ganze mit einem Javascript und der Axios Libary ausprobiert. Mit ist ein Fehler im Script unterlaufen ... Danke für deine Hilfe !!!