Zugriff auf Host Parameter aus WInst-Skript?

Antworten
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Zugriff auf Host Parameter aus WInst-Skript?

Beitrag von embl-structures »

Hallo zusammen,

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

Gruss
Frank
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Zugriff auf Host Parameter aus WInst-Skript?

Beitrag 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

Code: Alles auswählen

import OPSI
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Zugriff auf Host Parameter aus WInst-Skript?

Beitrag 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
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Zugriff auf Host Parameter aus WInst-Skript?

Beitrag 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

Code: Alles auswählen

import OPSI
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Zugriff auf Host Parameter aus WInst-Skript?

Beitrag 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
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Zugriff auf Host Parameter aus WInst-Skript?

Beitrag von embl-structures »

Und sorry dafuer, dass dieser Thread in diesem Forum gepostet worden ist (Fehltipper). Er gehoerte natuerlich in "Freier Support".
f.
Antworten