Seite 1 von 1

setProductActionRequest - Failed to get Depot Server

Verfasst: 01 Jun 2017, 11:42
von luckystriker
Hallo Zusammen,

ich arbeite momentan an einem Skript, dass mir OPSI-Clients automatisch anlegt. Dies funktioniert auch soweit wunderbar, doch nun hänge ich beim nächsten Schritt fest. Die angelegten Clients sollen anschließend eine Hardware-Inventarisierung durchführen, wozu ich das Produkt "hwinvent" bei den jeweiligen Clients auf "once" setzen möchte:

Mein Code sie wie folgt aus:

Code: Alles auswählen

from OPSI.Backend.BackendManager import BackendManager

backend = BackendManager(
	dispatchConfigFile=u'/etc/opsi/backendManager/dispatch.conf', 
	backendConfigDir='/etc/opsi/backends', 
	extensionConfigDir=u'/etc/opsi/backendManager/extend.d')
	
backend.host_createOpsiClient(id='{0}.opsi.local'.format(cl_name), ipAddress='255.255.255.255', hardwareAddress='01:23:45:67:89:01')
	
backend.setProductActionRequest(productId='hwinvent', cliendId='{0}.opsi.local'.format(cl_name), actionRequest='once')
	
Nun erhalte ich leider (nachdem der Client erfolgreich angelegt wurde) eine Fehlermeldung:
Traceback (most recent call last):
File "/path/to/cgi-bin/script.py", line drölf, in <module>
backend.setProductActionRequest(productId='hwinvent', cliendId='{0}.opsi.local'.format(cl_name), actionRequest='once')
File "<string>", line 1, in setProductActionRequest
File "/usr/lib/python2.7/dist_packages/OPSI/Backend/Backend.py", line 488, in _executeMethod
return meth(**kwargs)
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 1166, in setProductActionRequest
actionRequest = actionRequest
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 1082, in setProductState
depotId = self.getDepotId(clientId=objectId)
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 711, in getDepotId
raise BackendConfigurationError(u"Failed to get depot server for client '%s'" % clientId)
BackendConfigurationError: <BackendConfigurationError(u"Failed to get depot server for client 'clientINV.opsi.local'")>
Bislang habe ich nicht damit zu kämpfen gehabt, dass er den Depot-Server nicht findet. In einem weiteren Thread hier habe ich schon gelesen, dass der Depot-Server eigentlich automatisch gesucht/gefunden wird. Die Lösung für den Thread-Ersteller war, dem Client beim Anlegen einem Depot zuzuweisen. Da bei mir auf dem Opsi-Server nur 1 Depot existiert, und ich in der Syntax der createOpsiClient-Methode nichts gefunden habe, wo man einen Depot-Server zuweisen kann, gehen mir gerade die Ansätze aus.

Kann mir jemand helfen?

Viele Grüße :)
Lucky

Re: setProductActionRequest - Failed to get Depot Server

Verfasst: 02 Jun 2017, 15:55
von ueluekmen
Hi,

Code: Alles auswählen

backend = BackendManager()
das reicht mittlerweile aus ;)

Wenn ich mir das Skript anschaue, wäre das in einem bash-Skript einfacher gewesen. Aber dennoch, siehst du den Client im configed, wenn er angelegt wird? Vielleicht reicht auch einfach ein:

Code: Alles auswählen

cl_name.lower()
im zweiten Aufruf ;)