Seite 1 von 1

Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 09 Jul 2014, 15:58
von embl-structures
Hallo zusammen,

wie kann man aus einem WInst-Skript auf die Host-Parameter zugreifen?

Gruss
Frank

Re: Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 10 Jul 2014, 11:21
von n.wenselowski
Hallo Frank,

das geht über eine opsiservicecall-Sektion.
Die Methode, die du aufrufen willst ist an der Stelle configState_getHashes.
Wenn du die Standard-Settings auch haben willst, musst du zuvor mittels backend_setOptions den Wert addConfigStateDefaults auf True setzen - und später am besten wieder als False.


Gruß

Niko

Re: Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 10 Jul 2014, 12:24
von embl-structures
n.wenselowski hat geschrieben:das geht über eine opsiservicecall-Sektion.
Die Methode, die du aufrufen willst ist an der Stelle configState_getHashes.
Wenn du die Standard-Settings auch haben willst, musst du zuvor mittels backend_setOptions den Wert addConfigStateDefaults auf True setzen - und später am besten wieder als False.
Mit "Standard-Settings haben" ist wahrscheinlich gemeint, dass auch dann Werte ausgegehen werden, wenn sie noch dem Default entsprechen?

Code: Alles auswählen

pcpatch@opsi-admin> method configState_getHashes [] {"objectId":"vm-drosera-04.embl.de"}
[
          {
          "configId" : "embl.silentrun",
          "values" :
                    [
                    false
                    ],
          "objectId" : "vm-drosera-04.embl.de",
          "type" : "ConfigState"
          }
]
pcpatch@opsi-admin>
vm-drosera-04.embl.de hat einen Wert fuer embl.silentrun, welcher vom Default (false) abweicht, aber

Code: Alles auswählen

pcpatch@opsi-admin> method configState_getHashes [] {"objectId":"vm-drosera-03.embl.de"}
pcpatch@opsi-admin>
vm-drosera-03.embl.de hat fuer embl.silentrun den Defaultwert. Wird er deshalb nicht angezeigt?

Allerdings schaffe ich es nicht, addConfigStateDefaults auf True zu setzen, diese Methoden und deren Anwendung sind einfach schlecht oder gar nicht dokumentiert. Im Handbuch findet man einige Beispiele fuer Get-Funktionen, aber ich finde nichts fuer Set-Funktionen. Ich habe es mit folgenden Kommandos versucht:

Code: Alles auswählen

pcpatch@opsi-admin> method backend_setOptions addConfigStateDefaults true
ERROR: Failed to execute 'method backend_setOptions addConfigStateDefaults true'
: backend_setOptions() takes exactly 2 arguments (3 given)
pcpatch@opsi-admin> method backend_setOptions addConfigStateDefaults=true
ERROR: Failed to execute 'method backend_setOptions addConfigStateDefaults=true'
: Not a dict 'addConfigStateDefaults=true' (error on server)
pcpatch@opsi-admin> method backend_setOptions {"addConfigStateDefault":"true"}
pcpatch@opsi-admin>
Aber auch letzteres hat nichts genuetzt:

Code: Alles auswählen

pcpatch@opsi-admin> method configState_getHashes [] {"objectId":"vm-drosera-03.embl.de"}
pcpatch@opsi-admin>
Der Wert fuer embl.silentrun fuer vm-drosera-03.embl.de wird leider immer noch nicht angezeigt.

Frank

Re: Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 11 Jul 2014, 12:01
von n.wenselowski
Hallo Frank,
embl-structures hat geschrieben:Mit "Standard-Settings haben" ist wahrscheinlich gemeint, dass auch dann Werte ausgegehen werden, wenn sie noch dem Default entsprechen?
Genau das ist damit gemeint.
embl-structures hat geschrieben:Allerdings schaffe ich es nicht, addConfigStateDefaults auf True zu setzen, diese Methoden und deren Anwendung sind einfach schlecht oder gar nicht dokumentiert. Im Handbuch findet man einige Beispiele fuer Get-Funktionen, aber ich finde nichts fuer Set-Funktionen.
Ich kenne diese Funktionen auch nur durch die Arbeit direkt am Server - und dort muss ich zugeben, dass die Art sie aufzurufen sehr gewöhnungsbedürftig für einen Python-Programmierer ist ;)

Ich habe die Standard-Backend-Erweiterungen durchsucht und kam dabei auf getGeneralConfig_hash / setGeneralConfig und getGeneralConfigValue / setGeneralConfigValue (alle aus 20_legacy.conf). Ich denke, das sollte das machen, was du willst bzw. dir zeigen, wie man die backend_setOptions-Methoden im Backend-Context verwendet, um dir gegebenenfalls eine eigene Variante zu bauen.

Code: Alles auswählen

opsi-admin -d method getGeneralConfig_hash testclient.uib.local
Ich hoffe, das hilft dir weiter :)


Viele Grüße

Niko

Re: Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 11 Jul 2014, 15:51
von embl-structures
Vielen Dank. Deine Hinweise haben mich auf den richtigen Weg gebracht. Schlussendlich hat es mit

Code: Alles auswählen

method getGeneralConfigValue "embl.silentrun" mein.host.domain
am einfachsten funktionert. Das werde ich jetzt in einen OPSIServiceCall einbauen.

Frank

Re: Zugriff auf Host Parameter aus WInst-Skript?

Verfasst: 11 Jul 2014, 15:55
von embl-structures
Und sorry dafuer, dass dieser Thread in diesem Forum gepostet worden ist (Fehltipper). Er gehoerte natuerlich in "Freier Support".
f.