Seite 1 von 1

Unklarheit / Fragen zur RPC-Api

Verfasst: 14 Mai 2021, 11:58
von dark alex
Hallo!

Ich baue uns gerade ein Tool, um einige Tasks mit OPSI in unser Ticketsystem zu integrieren.

Ich habe hier allerdings zwei Probleme, für die ich die Lösung nicht finde...

1. Ich muss bei einem Client per rpc den "uefi boot" haken setzen.
2. Ich muss den Client in ein anderes Depot umziehen (createClient legt die ja immer am ConfigServer/Master-Depot an)

Wie mache ich das? Da gibts doch sicher auch RPC-Calls für, oder?

Danke für die Hilfe!

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 17 Mai 2021, 16:03
von dark alex
Gibt es die Möglichkeit, den configed die RPC-Kommunikation loggen zu lassen, sodass ich mir das anschauen kann? So käme ich vielleicht um die Fragerunde herum :mrgreen:

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 17 Mai 2021, 16:06
von fkalweit
Hi,

zu 2)

Um Einen Client einem Depot zuzuordnen kannst du mit

Code: Alles auswählen

configState_create
einen ConfigState anlegen.
Als Parameter gibst du dann "clientconfig.depot.id", clientId und die "depotId" mit.

Bsp:

Code: Alles auswählen

{
  "id": 1,
  "method": "configState_create",
  "params": [
    "clientconfig.depot.id",
    "test-1.uib.local",
    "depot.test.local"
  ]
}
Vielleicht hilft dir das noch:
https://download.uib.de/opsi4.1/experim ... ate_create

Mit freundlichen Grüßen
fkalweit

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 17 Mai 2021, 16:12
von r.roeder
Wenn ihr den Loglevel den configed interaktiv oder per Kommandooption auf 4 /check setzt, werden die requests, ihr Startzeitpunkt und ihr Returnzeitpunkt geloggt :-)

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 17 Mai 2021, 16:37
von dark alex
r.roeder hat geschrieben:Wenn ihr den Loglevel den configed interaktiv oder per Kommandooption auf 4 /check setzt, werden die requests, ihr Startzeitpunkt und ihr Returnzeitpunkt geloggt :-)
Sehr geil! Vielen Dank! ich werde das morgen direkt mal ausprobieren.

Ich mach dafür mal keinen extra Thread auf, weil eigentlich related:
Wir wollen eine Art Historie in den Notizen pflegen, seht ihr ein Problem darin, den Datentyp von HOST.notes auf TEXT zu ändern? (Ist aktuell ein VARCHAR(500))
Würde der opsiconfd/configed da Probleme machen?

Fun fact - eigentlich ist das schon ein halber Bug, denn wenn ich mehr als 500 Zeichen per RPC schicke dder im configed eintippe kommt kein Fehler, aber beim nächsten Reload im configed ist der Text halt abgeschnitten (weil beim Save in die DB truncated)
P.s.: MySQL-Modul!

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 18 Mai 2021, 08:45
von dark alex
dark alex hat geschrieben:1. Ich muss bei einem Client per rpc den "uefi boot" haken setzen.
Danke dem Tipp von r.roeder hab ich die Antwort zu 1. selbst gefunden:

Code: Alles auswählen

$opsi->query('configState_create', [ 'clientconfig.dhcpd.filename', $hostData['hostId'], 'linux/pxelinux.cfg/elilo.efi' ]);
(nicht wundern, der code ist aus meiner implementierung)

Die Frage nach dem Notes-Datentyp wär dann noch offen, dann bin ich glücklich :D

//Edit:
Noch ein Danke an fkalweit für die Lösung zu 2.!

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 02 Jun 2021, 12:33
von dark alex
Also RPC-Api-Technisch hat das alles jetzt ganz gut funktioniert, die Frage bzgl des Datentyps für "notes" wäre noch offen, würde das klappen oder gibts da Probleme?
dark alex hat geschrieben:Ich mach dafür mal keinen extra Thread auf, weil eigentlich related:
Wir wollen eine Art Historie in den Notizen pflegen, seht ihr ein Problem darin, den Datentyp von HOST.notes auf TEXT zu ändern? (Ist aktuell ein VARCHAR(500))
Würde der opsiconfd/configed da Probleme machen?

Fun fact - eigentlich ist das schon ein halber Bug, denn wenn ich mehr als 500 Zeichen per RPC schicke dder im configed eintippe kommt kein Fehler, aber beim nächsten Reload im configed ist der Text halt abgeschnitten (weil beim Save in die DB truncated)
P.s.: MySQL-Modul!

Re: Unklarheit / Fragen zur RPC-Api

Verfasst: 02 Jun 2021, 13:19
von Jan.Schmidt
dark alex hat geschrieben:Ich mach dafür mal keinen extra Thread auf, weil eigentlich related:
Wir wollen eine Art Historie in den Notizen pflegen, seht ihr ein Problem darin, den Datentyp von HOST.notes auf TEXT zu ändern? (Ist aktuell ein VARCHAR(500))
Würde der opsiconfd/configed da Probleme machen?
Naja wenn es ein update gibt, das irgendwas mit der DB macht, fliegt dir das um die Ohren.

Wenn du eh was mit dem Ticketsystem baust, warum exportierst du dann nicht der Wert des Felds, suchst den String in deinem Ticketsystem und wenn die nicht gefunden werden machst du "irgendwas" je nachdem wer denn führend die Infos verwaltet?