Wunsch: EINFACHES API fuer den Zugriff auf OPSI-Objekte
Verfasst: 08 Jan 2014, 11:45
Hallo,
aus einem WInst-Skript auf OPSI-Objekte zuzugreifen ist eine muehsame Sache, obwohl man doch erwarten wuerde, dass man von einem Tool aus einfach die eigenen Datenstrukturen abrufen kann. Fuer die OPSI-Methoden gibt es den OpsiServiceCall, der aber (Handbuch Kapitel 8.12.2 "Sektionsformat ") nur fuer die alten OPSI 3-Methoden funktionert. Andererseits sind diese als "Legacy"-Methoden deklariert und werden u.U. irgendwann verschwinden.
So oder so ist - IMHO! - die Syntax dieser Methoden und der JSON-Objekte schwierig, fehleranfaellig und unuebersichtlich. Viel einfacher zu benutzen waeren z.B. Funktionen wie
GetObject(type, filter, returnvalue)
GetObjectList(type, filter, returnvalue)
Z.b. Das Abrufen des Status des Produktes A auf Host B: GetObject("product", product.id="A";host.name="B", "installationStatus"). Oder die Liste aller Hostnamen, auf denen Produkt "A" installiert ist: GetObjectList("host", product.id="A";productOnClient.installationStatus="installed", "hostname").
Das ist relativ unausgegoren, soll aber einfach die Richtung anzeigen, die ich mir wuenschen wuerde.
Gruss
frank
aus einem WInst-Skript auf OPSI-Objekte zuzugreifen ist eine muehsame Sache, obwohl man doch erwarten wuerde, dass man von einem Tool aus einfach die eigenen Datenstrukturen abrufen kann. Fuer die OPSI-Methoden gibt es den OpsiServiceCall, der aber (Handbuch Kapitel 8.12.2 "Sektionsformat ") nur fuer die alten OPSI 3-Methoden funktionert. Andererseits sind diese als "Legacy"-Methoden deklariert und werden u.U. irgendwann verschwinden.
So oder so ist - IMHO! - die Syntax dieser Methoden und der JSON-Objekte schwierig, fehleranfaellig und unuebersichtlich. Viel einfacher zu benutzen waeren z.B. Funktionen wie
GetObject(type, filter, returnvalue)
GetObjectList(type, filter, returnvalue)
Z.b. Das Abrufen des Status des Produktes A auf Host B: GetObject("product", product.id="A";host.name="B", "installationStatus"). Oder die Liste aller Hostnamen, auf denen Produkt "A" installiert ist: GetObjectList("host", product.id="A";productOnClient.installationStatus="installed", "hostname").
Das ist relativ unausgegoren, soll aber einfach die Richtung anzeigen, die ich mir wuenschen wuerde.
Gruss
frank