Seite 1 von 1
Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 28 Jan 2015, 16:08
von mhaegele
Hallo
Wenn ich das absetze:
Code: Alles auswählen
opsi-admin -d task setActionRequestWhereOutdated setup adobe-flashplayer
werden die "post-setup abhängigkeiten" z.B. weiteres Produkt auf "setup" setzen nicht erfüllt,
über die Gui geht das,
kriegt man das über kommandozeile auch irgendwie gebacken?
Danke Vorab!
MH
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 29 Jan 2015, 23:35
von dkoch
An die Entwicklung:
Selbe Funktion wie WhereOutdated die aber setActionRequestWithDepencies verwendet statt setActionRequest
Richtig ?
Code: Alles auswählen
*** opsi-admin 2014-10-28 12:35:16.000000000 +0100
--- opsi-admin2 2015-01-29 23:33:14.962354986 +0100
*************** class CommandTask(Command):
*** 1428,1433 ****
--- 1428,1434 ----
(u'updateWhereInstalled', 'productId'),
(u'uninstallWhereInstalled', 'productId'),
(u'setActionRequestWhereOutdated', 'actionRequest', 'productId'),
+ (u'setActionRequestWhereOutdatedWithDependencies', 'actionRequest', 'productId'),
(u'setActionRequestWithDependencies', 'actionRequest', 'productId', 'clientId'),
(u'decodePcpatchPassword', u'encodedPassword', u'opsiHostKey'),
(u'setPcpatchPassword', u'*password')
*************** class CommandTask(Command):
*** 1555,1560 ****
--- 1556,1588 ----
updateProductOnClients.append(productOnClient)
shell.appendLine(productOnClient.clientId)
backend.productOnClient_updateObjects(updateProductOnClients)
+
+ if params[0] == u'setActionRequestWhereOutdatedWithDependencies':
+ if len(params) < 2:
+ raise Exception(_(u'Missing action request'))
+ if len(params) < 3:
+ raise Exception(_(u'Missing product-id'))
+ actionRequest = params[1]
+ productId = params[2]
+
+ # Get depot to client assignment
+ depotToClients = {}
+ for clientToDepot in backend.configState_getClientToDepotserver():
+ if clientToDepot['depotId'] not in depotToClients:
+ depotToClients[clientToDepot['depotId']] = []
+ depotToClients[clientToDepot['depotId']].append(clientToDepot['clientId'])
+
+ updateProductOnClients = []
+ for (depotId, clientIds) in depotToClients.items():
+ if not clientIds:
+ continue
+ for productOnDepot in backend.productOnDepot_getObjects(productId=productId):
+ for productOnClient in backend.productOnClient_getObjects(clientId=clientIds, productId=productOnDepot.productId, installationStatus=u'installed'):
+ if (productOnClient.productVersion != productOnDepot.productVersion) or (productOnClient.packageVersion != productOnDepot.packageVersion):
+ productOnClient.setActionRequestWithDependencies(actionRequest)
+ updateProductOnClients.append(productOnClient)
+ shell.appendLine(productOnClient.clientId)
+ backend.productOnClient_updateObjects(updateProductOnClients)
if params[0] == u'setActionRequestWithDependencies':
if len(params) < 2:
Lass erstmal einen von den Entwicklern drüber schauen ob ich da mangels Detailkenntnis nen fehler drin hab dann erkläre ich dir wie man es einbaut

Oder du bist mutig und wendest den patch auf opsi-admin jetzt an und testest entsprechend.
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 02 Feb 2015, 07:46
von dkoch
Code: Alles auswählen
cd /usr/bin/ && wget http://paste.triple6.org/sX4sxA/raw -O opsi-admin.patch && patch opsi-admin < opsi-admin.patch
Danach hast du dann den Task updateWhereOutdatedWithDependencies. Und der macht was du willst.
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 02 Mär 2015, 15:28
von n.wenselowski
Hallo,
der Patch von dkoch wird Teil von 4.0.6 sein.
Gruß
Niko
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 29 Okt 2015, 14:34
von sebastianwi
Hallo,
Gibts den Patch noch irgendwo? Der Downloadlink ist scheinbar nicht mehr gültig.
Danke und Grüße,
Sebastian
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 30 Okt 2015, 16:35
von n.wenselowski
Hi Sebastian,
sebastianwi hat geschrieben:Gibts den Patch noch irgendwo? Der Downloadlink ist scheinbar nicht mehr gültig.
Es ist mittlerweile Teil von 4.0.6 - kein Grund für Patches
Gruß
Niko
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 05 Nov 2015, 15:12
von sebastianwi
Ja, ich hab mich dann auch entschieden das Update zu machen.
Nun hab ich aber das nächste Problem:
Der Befehl setActionRequestWithDependencies bricht mit dem Fehler "Backend I/O error: Error occured by resolving the dependendcie that configured in product:'xxxxx'. No ProductAction will be set. (opsi-admin|1713)" ab.
Definiert sind für das Paket so in der control:
[ProductDependency]
action: setup
reqiredProduct: xxxx1
reqiredProductVersion: 2.3.21
reqiredAction: update (oder setup, je nachdem was ich gebaut habe).
Wo ist der Fehler?
Grüße, Sebastian
Re: Abhängige Produkte über Commandline auf setup setzen?
Verfasst: 06 Nov 2015, 13:36
von n.wenselowski
Hallo Sebastian,
da meine Glaskugel gerade in Reparatur ist, würde ich dich bitten mal ein Log mit Level 7 (--help /-h

) zu erzeugen und da rein zu schauen.
Da sollten ein paar Infos stehen.
Viele Grüße
Niko