Anfügen der CPU Daten an ein Virtual Server Objekt
-
Hallo zusammen
Ich versuche einem Objekt vom Typ: "C__OBJTYPE__VIRTUAL_SERVER" die CPU's via API zu konfigurieren bzw. zu aktuallisieren.
Unklar ist mir wie ich an die Liste der möglichen werte z.b. für "manufacturer" komme. Gemäss doku hier ist dies "isys_catg_cpu_manufacturer__id" doch wie krieg ich eine Liste der cpu's und deren id's?Mein Aufruf sieht folgendermassen aus:
{ "jsonrpc": "2.0", "id": 1, "method": "cmdb.category.create", "params": { "objID": "{{ idoit_read.json.result.id }}", "category": "C__CATG__CPU", "data": { "manufacturer": "{{ cpu_manufaturer_id }}", "type" "{{ cpu_type_id }}", "cores": "2", "frequency": "1995", "frequency_unit": "{{ cpu_frequency_unit_id }}", "description": "updated by ansible" }, "apikey": "{{ idoit_apikey }}", "language": "{{ idoit_language }}" } }
Mit fehlen also "manufacturer_id", "type_id" und "frequency_unit_id". Ich möchte diese auslesen und falls die passende CPU nicht vorhanden ist diese auch erstellen können.
Gruss
Andi -
Moin @roadfox
bei den Herstellern und den Typen handelt es sich um Dialog+ Felder. Daher musst du einmal zuvor die Dialog+ Einträge auslesen.
(https://kb.i-doit.com/display/de/API+Methoden#APIMethoden-cmdb.dialog.read)
Für Hersteller sieht das wie folgt aus:
Request:{ "version": "2.0", "method": "cmdb.dialog.read", "params": { "category": "C__CATG__CPU", "property": "manufacturer", "apikey": "{{ api_key }}", "language": "en" }, "id": 1 }
{ "id": 1, "jsonrpc": "2.0", "result": [ { "id": "1", "const": "", "title": "AMD" }, { "id": "2", "const": "", "title": "Intel" }, { "id": "3", "const": "", "title": "IBM" },..... ..... ... }
Folgen kannst du dann auch die id anstelle des title nutzen.
Bsp.:{ "version": "2.0", "method": "cmdb.category.save", "params": { "object": XXXXXX, "data": { "title": "First_CPU", "manufacturer": 1, "type": 2 }, "category": "C__CATG__CPU", "apikey": "{{ api_key }}", "language": "en" }, "id": 1 }
Informationen, wie du Kategorien und Attribute ansteuern kannst, findest du in i-doit direkt in der Verwaltung. -> https://kb.i-doit.com/pages/viewpage.action?pageId=7831613#API(JSON-RPC)-KategorieninderIT-Dokumentation
Die Methoden cmdb.category.create und cmdb.category.update sind übrigens veraltet. Die Methode cmd.category.save ist eine zusammengefasste und verbesserte Variante
Weitere Informationen zur Nutzung der API findest du hier -> https://kb.i-doit.com/pages/viewpage.action?pageId=7831613
VG
Phil