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

    JSON-RPC: zwei Patchpanels mit einem Kabel verbinden

    Scheduled Pinned Locked Moved Entwicklung
    2 Posts 1 Posters 374 Views 2 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.
    • huH Offline
      hu
      last edited by

      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

      1 Reply Last reply Reply Quote 0
      • huH Offline
        hu
        last edited by

        ... ich beantworte es mir an dieser Stelle einfach mal selber, damit anderen evtl. geholfen sein möge:

        → zwei Patchpanels mit einem Trunk verbinden

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