Seite 1 von 1

Mehrere productID Argumente an Methode setProductInstallationStatus übergeben

Verfasst: 14 Okt 2015, 16:51
von fly3rman
Hallo, ich versuche der Methode setProductInstallationStatus eine Liste an productID Variablen zu übergeben, was allerdings nicht klarppt
Einzelnes Argument :

Code: Alles auswählen

/# opsi-admin -d method setProductInstallationStatus "7zip" "host.bla.de" "installed"
funktioniert wundebar. Eine JSON Liste an productIDs hingegen nicht:

Code: Alles auswählen

/# opsi-admin -d method setProductInstallationStatus ["7zip","chrome"] "host.bla.de" "installed"
[2] Traceback: (Logger.py|767)
[2]      line 1641 in '<module>' in file '/usr/bin/opsi-admin' (Logger.py|767)
[2]      line 329 in 'main' in file '/usr/bin/opsi-admin' (Logger.py|767)
[2]      line 722 in 'execute' in file '/usr/bin/opsi-admin' (Logger.py|767)
[2]      ==>>> Failed to execute 'method setProductInstallationStatus [7zip,chrome] m01n051.m01de.medneo.de installed': Backend missing data error: Product '[7zip,chrome]' not found on depot 'm01opsi01.m01de.medneo.de' (opsi-admin|1649)
Für Ideen wäre ich dankbar. Ich schreibe mir solange als Abhilfe ein Script, was den Befehl mit Argumenten aus einer Datei füttert.

Re: Mehrere productID Argumente an Methode setProductInstallationStatus übergeben

Verfasst: 15 Okt 2015, 08:59
von wolfbardo
Das ist eine der praktischen Legacy-Methoden, bei der man allerdings keine Listen übergeben kann.
Näheres im opsi-Handbuch oder ...

Gruss
Bardo Wolf

Re: Mehrere productID Argumente an Methode setProductInstallationStatus übergeben

Verfasst: 15 Okt 2015, 15:55
von fly3rman
Alles klar, vielen Dank.
"Gelöst" durch ein einfaches Python Script:

Code: Alles auswählen

import os

productId = [
"acroread11",
"7zip"
]

for product in productId:
    command = "opsi-admin -d method setProductInstallationStatus \"" +product+ "\" \"host1a.bla.de\" \"installed\"" 
    print(command)
    os.system(command)

Re: Mehrere productID Argumente an Methode setProductInstallationStatus übergeben

Verfasst: 23 Okt 2015, 12:43
von n.wenselowski
Hi,

als Alternative: Backend-Erweiterung dafür schreiben.
Man kann die bereits vorhandene Methode dafür einfach als Vorlage nehmen ;)


Gruß

Niko