ProductDependency wird bei opsiservicecall nicht aufgelöst

Antworten
jensito
Beiträge: 46
Registriert: 11 Okt 2011, 14:54

ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von jensito »

Moin,

für die Umstellung von Windows 7 auf Windows 10 baue ich gerade ein Paket, dass das USMT von Microsoft verwendet, um Benutzerprofile zu sichern und nach der Frischinstallation von W10 wiederherzustellen. Wenn dieses Paket usmt-scan erfolgreich gelaufen ist, soll es das netboot-Paket win10-x64 auf Setup stellen und den Rechner durchstarten, was auch tadellos mit dem opsiservicecall setProductActionRequest funktioniert.

Zusätzlich soll aber auch das localboot-Paket "standard-10" auf once gestellt werden, das neben einigen standard-Einstellungen alle von uns benötigten Pakete auf Setup stellt. Dazu ist standard-10 mit lauter ProductDependencies versehen. Stelle ich im configeditor das standard-10-Paket auf once, werden zeitgleich die per ProductDependency verknüpften Pakete auf Setup gesetzt.

Rufe ich aber den opsiservicecall setProductActionRequest auf um standard-10 auf once zu setzen, werden die ProductDependencies NICHT beachtet.

zur Veranschaulichung noch der Code mit dem serviceCall:

Code: Alles auswählen

comment 'gewähltes Standardpaket setzen'
set $ProductToSet$ = 'standard-10'
set $ActionRequest$ = 'once'
opsiServiceCall_setProductActionRequest

[opsiServiceCall_setProductActionRequest]
"method": "setProductActionRequest"
"params": [
		"$ProductToSet$",
		"%HostID%",
		"$ActionRequest$"
		]
Da alle weiteren Pakete überhaupt erst auf Setup gestellt werden dürfen, wenn usmt-scan erfolgreich war, kann ich standard-10 nicht einfach von Hand mit setzen.

Gibt es eine Erklärung für dieses Verhalten? Kann man da was dran drehen? Oder gibt es einen anderen möglichen Weg?
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1940
Registriert: 28 Mai 2008, 10:53

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von ueluekmen »

Hi,

versuchs mal mit der Methode:

Code: Alles auswählen

opsiServiceCall_setProductActionRequestWithDependencies
wobei ich mir nicht sicher bin, ob das auch mit once funktioniert.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


jensito
Beiträge: 46
Registriert: 11 Okt 2011, 14:54

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von jensito »

Danke für die schnelle Antwort.

Leider habe ich auch keinen Erfolg mit der Methode setProductActionRequestWithDependencies...
Ich habe es einmal mit 'setup' als ActionRequest ausprobiert (und das standard-10-Paket kurz dafür umgebaut) und einmal mit once. Das komische Ergebnis, dass ich bei beiden Aufrufen bekommen habe: Die Abhängigkeiten, die als "RequiredAction : once" laufen, werden aufgelöst, zwei Pakete sind also auf once gesetzt worden! Die mit Setup aber allesamt nicht...

Noch eine Idee?

Hier ein Auszug aus dem Log. Meines Erachtens zeigt der aber nur, dass ich die Methode korrekt aufgerufen habe...

Code: Alles auswählen

Execution of opsiServiceCall_setProductActionRequest
(176)     [8] [Jun 03 09:15:41:776] [usmt-scan]     Parsing: getparam: standard-10
(177)     [8] [Jun 03 09:15:41:776] [usmt-scan]     Parsing: getparam: ******.*******.de
(178)     [8] [Jun 03 09:15:41:776] [usmt-scan]     Parsing: getparam: setup
(179)     [6] [Jun 03 09:15:41:776] [usmt-scan]        "method": "setProductActionRequestWithDependencies"
(180)     [6] [Jun 03 09:15:41:776] [usmt-scan]     Calling opsi service at https://***.***.***.***:****
(181)     [8] [Jun 03 09:15:41:777] [usmt-scan]     Sessionid OPSISID=*************
(182)     [6] [Jun 03 09:15:41:777] [usmt-scan]     JSON service request https://***.***.***.***:****/rpc setProductActionRequestWithDependencies
(183)     [8] [Jun 03 09:15:41:777] [usmt-scan]      JSON service request Furl https://***.***.***.***:****/rpc
(184)     [8] [Jun 03 09:15:41:777] [usmt-scan]      JSON service request str {"method":"setProductActionRequestWithDependencies","params":["standard-10","*****.*******.de","setup"],"id":1}
(185)     [8] [Jun 03 09:15:41:777] [usmt-scan]     Using MimeType: application/json
(186)     [8] [Jun 03 09:15:41:777] [usmt-scan]     HTTP Header: Content-Encoding: deflate\r\nContent-Type: application/json\r\nContent-Length: 113\r\nHost: ***.***.***.***:****\r\nAccept-Encoding: deflate, identity\r\nUser-Agent: opsi-script 4.11.5.14\r\nAuthorization: Basic ZXhuMDMwLmtyb3NjaGtlLmRlOjdjNDAxZTU4MGQ0YTk3Y2Q0NGQ5MzM0ZDMzOTA3Mjgy\r\nCookie: OPSISID=FH8nCTn36jEzJUQr3tU4ECizQEp25PFd\r\n
(187)     [6] [Jun 03 09:15:42:900] [usmt-scan]     JSON Bench for setProductActionRequestWithDependencies "params":["standard-10","********.********.de","se Start: 09:15:41:777 Time: 00:00:01:123
(188)     [8] [Jun 03 09:15:42:900] [usmt-scan]     JSON Call: {"method":"setProductActionRequestWithDependencies","params":["standard-10","********.*******.de","setup"],"id":1} Time: 00:00:01:123
(189)     [6] [Jun 03 09:15:42:967] [usmt-scan]     JSON result: 
jensito
Beiträge: 46
Registriert: 11 Okt 2011, 14:54

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von jensito »

Ich habe die Abhängigkeiten letztlich einfach nachgebaut. Nun ist natürlich bei jeder Änderung Doppelpflege notwendig, im Standard-10-Paket und in diesem Paket der jeweilige Servicecall... Ist nicht die schönste Lösung, funktioniert aber gut.
Hoffe, dass dieser opsiservicecall in zukünftigen Versionen die Dependencies auflösen kann. Sollte das vielleicht in einem Bugreport festgehalten werden?
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1940
Registriert: 28 Mai 2008, 10:53

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von ueluekmen »

Hi,

das ist nicht schön. Kannst du mal deine Dependency-Sektionen aus einer Controlfile von diesem standard posten?


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


jensito
Beiträge: 46
Registriert: 11 Okt 2011, 14:54

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von jensito »

Das ist das controlfile des Standard-Pakets:

Code: Alles auswählen

[Package]
version: 3
depends: 
incremental: False

[Product]
type: localboot
id: standard-10
name: Standardpakete fuer Rechner in der Zentrale
description: Fuer Windows 10
advice: 
version: 1.0
priority: 90
licenseRequired: False
productClasses: 
setupScript: 
uninstallScript: 
updateScript: 
alwaysScript: 
onceScript: once.ins
customScript: 
userLoginScript: 

[ProductDependency]
action: once
requiredProduct: adselfservice
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: adobereader
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: freepdf
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: irfanview
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: java
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: k-lite
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: office2007
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: kaspersky
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: sapgui
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: teamviewer-inhouse
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: updates
requiredAction: once
requirementType: after

[ProductDependency]
action: once
requiredProduct: vcc
requiredAction: setup
requirementType: after

[ProductDependency]
action: once
requiredProduct: winkey
requiredAction: once
requirementType: after
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von n.wenselowski »

Hi,

setProductActionRequestWithDependencies ist eine Methode, der beliebige action requests übergeben werden können. Und sie ist in einer Erweiterung (10_opsi.conf) gespeichert.
Du könntest nun aber auch ausgehend davon deine eigene Variante implementieren, die bei einem setup oder once immer beides macht. Mehr Infos dazu im Handbuch unter dem Stichwort Backend-Erweiterung.


Gruß

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
SisterOfMercy
Beiträge: 1556
Registriert: 22 Jun 2012, 19:18

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von SisterOfMercy »

Would anything change when not using requiredAction but requiredStatus?

Code: Alles auswählen

[ProductDependency]
action: setup
requiredProduct: adobe-flash-player
requiredStatus: installed
requirementType: before
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: ProductDependency wird bei opsiservicecall nicht aufgelöst

Beitrag von n.wenselowski »

Hi,
jensito hat geschrieben:Hoffe, dass dieser opsiservicecall in zukünftigen Versionen die Dependencies auflösen kann. Sollte das vielleicht in einem Bugreport festgehalten werden?
in python-opsi 4.0.7.5 wurde die Methode überarbeitet.
Aktuell ist dieses Paket in experimental zu finden, wovon wir im Einsatz einer Produktivumgebung abraten.
Wenn du zum testen kommst, würde uns natürlich auch Feedback interessieren!


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Antworten