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

    vertikaler Einbau via API

    Scheduled Pinned Locked Moved Allgemein
    6 Posts 3 Posters 51 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.
    • J
      joernc
      last edited by

      Ich versuche, über die API PDUs vertikal in einem Rack zu positionieren. Das Rack hat entsprechende Slots, und mit

            "category" : "C__CATG__LOCATION",
            "data" : {
               "insertion" : 0,
               "option" : 4,
               "pos" : 1
            },
            "object" : 11623
      

      soll eine PDU auf der Rückseite in Slot 1 verbaut werden. Ich bekomme aber die Fehlermeldung "The selected position is already taken in this rack".

      Wenn ich die PDU in der GUI händisch verbaue und einen XML-Export vorher und nachher vergleiche, werden exakt diese drei Attribute auf exakt die angegeben Werte gesetzt. Der horizontale Einbau (also "option": 3) funktioniert einwandfrei. Was ist der Trick bei vertikalem Einbau??

      Michael HuhnM 1 Reply Last reply Reply Quote 0
      • LFischerL
        LFischer
        last edited by

        Hallo @joernc ich denke du hast soweit alles richtig - aber soweit ich es sehe fehlt bei dir die Information zum "parent". Ich habe es mit folgendem Request erfolgreich getestet 🤔

        {
            "version": "2.0",
            "method": "cmdb.category.save",
            "params": {
                "category": "C__CATG__LOCATION",
                "object": 123, <-- PDU
                "data": {
                    "parent": 456, <-- Rack
                    "insertion": 0,
                    "option": 4,
                    "pos": 1
                },
                "apikey": "hello-api"
            },
            "id": 1
        }
        

        Ergebnis ist, das meine PDU auf der Rückseite in Slot 1 positioniert ist:
        image.jpeg

        Ich hoffe das hilft weiter.

        Viele Grüße
        Leo

        J 1 Reply Last reply Reply Quote 0
        • J
          joernc @LFischer
          last edited by

          @LFischer Eigentlich setze ich diese Information schon etwas vorher. Ich importiere mir alle Assets aus einer XML-Datei, und die grundsätzliche parent-child-Beziehung wird generell bei allen Objekten gesetzt. Bei einigen werden dann noch ein paar Informationen nachgereicht. Bei Patchpanels funktioniert das einwandfrei, und wenn ich den vertikalen Einbau weglasse auch bei der PDU. Ich probiere mal aus, den parent trotzdem mitzugeben und werde berichten 🙂 Auf alle Fälle schon mal Danke!

          J 1 Reply Last reply Reply Quote 0
          • J
            joernc @joernc
            last edited by

            Ne, das war's auch nicht. Ich bin im Augenblick etwas ratlos...

            Was ich auch komisch finde: Bei Patchpanels kann ich mit cmdb.category.save einfach die Lokation überschreiben, ohne dass es eine Warnung gibt. Bei PDUs (also auch den horizontal eingebauten) geht das nicht, da gibt es ebenfalls obige Fehlermeldung. Ich kann also zwei Patchpanels vertauschen, indem ich in meiner Eingabedatei die Lokationen austausche und einfach noch mal einlese und die Daten werden klaglos überschrieben. Bei zwei (horizontal montierten) PDUs klappt das nicht. Irgendwie scheinen sich die beiden Objekte unterschiedlich zu verhalten.

            1 Reply Last reply Reply Quote 0
            • Michael HuhnM
              Michael Huhn @joernc
              last edited by

              undefined @joernc

              ausschlaggebend ist die Slot-Sortierung des Racks. Steht sie auf absteigend, rechnet die API den Wert von pos wie bei einer Höheneinheit um, auch beim vertikalen Einbau. Bei einem Rack mit 42 HE wird aus Slot 1 so die Position 42, und die gibt es bei den vertikalen Slots nicht. Deshalb kommt die Meldung. Bei aufsteigender Sortierung tritt das nicht auf.

              Bei absteigend sortierten Racks kannst du als Workaround die Umrechnung vorwegnehmen: pos = Rackhöhe − Slot + 1, und parent im selben Request mitgeben. Für Slot 1 auf der Rückseite eines 42-HE-Racks also:

              "data" : {
                 "parent" : <Rack-ID>,
                 "insertion" : 0,
                 "option" : 4,
                 "pos" : 42
              }
              

              Damit wird die PDU in Slot 1 auf der Rückseite gespeichert. Gib parent immer im selben Request mit: Ohne parent im selben Request wird die Position beim vertikalen Einbau nicht gespeichert, auch im aufsteigend sortierten Rack und auch wenn das Rack vorher separat als Standort gesetzt wurde. Die API meldet dabei trotzdem Erfolg.

              J 1 Reply Last reply Reply Quote 0
              • J
                joernc @Michael Huhn
                last edited by

                @Michael-Huhn Da soll mal einer drauf kommen 🙂 Ja, jetzt funktioniert es. Besten Dank!

                Bei mir funktioniert es übrigens auch, wenn ich parent und die anderen Daten in zwei getrennten Aufrufen setze, die PDUs werden in der GUI korrekt angezeigt. Aber ich behalte mal im Hinterkopf, bei PDUs ggf. eine Ausnahme einzubauen.

                Das unterschiedliche Verhalten zu Patchpanels bezüglich des Überschreibens bereits vorhandener Werte bleibt allerdings, aber da muss ich mir dann wohl was ausdenken. Oder das wäre einen RfE oder Bug-Report wert...

                1 Reply Last reply Reply Quote 0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                • First post
                  Last post