JSON-RPC: zwei Patchpanels mit einem Kabel verbinden
-
Ausgangssituation:
1.) Es sollen 2 Patchpanels mittels API erstellt werden, die jeweils der Einfachheit halber nur einen Ein- und Ausgang besitzen.
2.) Es soll ein Kabel erstellt werden.
3.) Die beiden Patchpanels sollen mittels des Kabels verbunden werden.Bisher erfolgreich gelöst:
1a.) Erstellung des ersten Patchpanels
Schritt 1: Erstellung des Patchpanels HUtest_PATCHPANEL_01 und aller input-ports.
request:
data = { "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__PATCH_PANEL", "title": "HUtest_PATCHPANEL_01", "description": "virtual Test-Panel", "categories": { "C__CATG__GLOBAL": [ { "category": "TEST", "purpose": "Test" } ], "C__CATG__CONNECTOR": [ { "title": "P-1-1", "type": 1, "connection_type": 16, "description": "P-1-1 Eingang" } ] }, "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "result": { "id": 50158, "message": "Object was successfully created", "categories": { "C__CATG__GLOBAL": [ "50155" ], "C__CATG__CONNECTOR": [ 53756 ] }, "success": true } }
Schritt 2: Erstellung aller output-ports und sibbling zu den entsprechenden input ports.
request:
data = { "method": "cmdb.category.save", "params": { "object": 50158, "category": "C__CATG__CONNECTOR", "data": { "title": "P-1-1", "type": 2, "connection_type": 12, "connector_sibling": 53756, "description": "P-1-1 Ausgang" }, "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "result": { "success": true, "message": "Category entry successfully saved", "entry": 53757 } }
1b.) Erstellung des zweiten Patchpanels
Schritt 1: Erstellung des Patchpanels HUtest_PATCHPANEL_02 und aller input-ports.
request:
data = { "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__PATCH_PANEL", "title": "HUtest_PATCHPANEL_02", "description": "virtual Test-Panel", "categories": { "C__CATG__GLOBAL": [ { "category": "TEST", "purpose": "Test" } ], "C__CATG__CONNECTOR": [ { "title": "P-1-1", "type": 1, "connection_type": 16, "description": "P-1-1 Eingang" } ] }, "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "result": { "id": 50159, "message": "Object was successfully created", "categories": { "C__CATG__GLOBAL": [ "50156" ], "C__CATG__CONNECTOR": [ 53758 ] }, "success": true } }
Schritt 2: Erstellung aller output-ports und sibbling zu den entsprechenden input ports.
request:
"method": "cmdb.category.save", "params": { "object": 50159, "category": "C__CATG__CONNECTOR", "data": { "title": "P-1-1", "type": 2, "connection_type": 12, "connector_sibling": 53758, "description": "P-1-1 Ausgang" }, "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "result": { "success": true, "message": "Category entry successfully saved", "entry": 53759 } }
2.) Erstellung des Kabels K-HUtest-001
request:
data = { "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__CABLE", "title": "K-HUtest-001-1", "description": "virtual Cable", "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "result": { "id": 50160, "message": "Object was successfully created", "success": true } }
Hier scheitere ich bisher:
3.) Die beiden Patchpanels mittels des Kabels verbinden.
Weder der Versuch über die Methode cmdb.category.save noch über die Methode cmdb.category.update war von Erfolg gekrönt. Hier meine Version von cmdb.category.update.
Ich vermute, dass ich mit meinem Ansatz an dieser Stelle auf dem Holzweg bin. Leider komme ich mit der Dokumentation der API nicht gut zurecht.request:
"method": "cmdb.category.update", "params": { "objID": "50158", "category": "C__CATG__CONNECTOR", "data": { "assigned_connector": "53758", "cable_connection": "50160" }, "apikey": "0815", "language": "de" }, "id": 1, "version": "2.0" }
answer:
API_RETURN = { "id": 1, "jsonrpc": "2.0", "error": { "code": -32099, "message": "i-doit system error: Please define the category entry you want to update by setting data.id or data.category_id.", "data": null
Wäre schön, wenn mir jemand der bereits erfolgreich Kabel mittels API verbunden hat, helfen könnte, liebe Grüße, hu
-
... ich beantworte es mir an dieser Stelle einfach mal selber, damit anderen evtl. geholfen sein möge: