Seite 1 von 1

opsi-admin Befehl

Verfasst: 30 Mai 2018, 14:44
von islam
Hallo,

Wie kann ich mit dem opsi-admin Befehl die Versionsnummer von einem bestimmten Produkt auslesen und diese verändern?

ich habe das hier ausprobiert aber leider ohne Erfolg. Konnte auch keine Dokumentation dafür finden

Code: Alles auswählen

opsi-admin -dS method product_getObjects '{"productId":"internet_firefox","productVersion"}'
opsi-admin -dS method product_updateObject '{"productId":"internet_firefox","productVersion":"52.8.0"}'
Danke

Re: opsi-admin Befehl

Verfasst: 30 Mai 2018, 20:43
von bernd670
Hallo,

product_getObjects wird so aufgerufen

Code: Alles auswählen

opsi-admin -dS method product_getObjects '["productVersion"]' '{"id":"internet_firefox"}'
ich bin mir zwar nicht 100% sicher, ich glaube aber nicht, dass man mit product_updateObject die Versionsnummer ändern kann.

Gruß
Bernd

Re: opsi-admin Befehl

Verfasst: 04 Jun 2018, 13:59
von islam
Danke, wie kann man sonst die Versionsnummer ändern ohne das Paket neuzubauen?

Re: opsi-admin Befehl

Verfasst: 07 Jun 2018, 13:29
von n.wenselowski
Hi,
islam hat geschrieben:Wie kann ich mit dem opsi-admin Befehl die Versionsnummer von einem bestimmten Produkt auslesen und diese verändern?

ich habe das hier ausprobiert aber leider ohne Erfolg. Konnte auch keine Dokumentation dafür finden

Code: Alles auswählen

opsi-admin -dS method product_getObjects '{"productId":"internet_firefox","productVersion"}'
opsi-admin -dS method product_updateObject '{"productId":"internet_firefox","productVersion":"52.8.0"}'
Nur die Versionsnummer anzupassen geht so nicht, weil diese mitsamt ID und Paketversion zu den eindeutigen Merkmalen einer Software gehört.

Und nur weil eine neue Produktversion im Backend vorhanden ist heißt es nicht, dass diese auch überall zum Tragen kommt. In der Regel wirst du zusätzlich noch productOnDepot (oder sogar noch productOnClient) anpassen wollen, damit es nicht kracht.

Die Parameter der Methode product_getObjects sind leicht als erstes die Limitierung auf die anzuzeigenden Attribute und anschließend der Filter.
Die Attribute können leer gelassen werden, wenn alles angezeigt werden soll.

Code: Alles auswählen

opsi-admin -d method product_getObjects '' '{"id": "firefox"}'
Hier noch mit Filter für passende Versionen:

Code: Alles auswählen

opsi-admin -d method product_getObjects '' '{"id": "firefox", "productVersion": "deineVersion", "packageVersion": "deineVersionsnummer"}'
Bei dem Einbringen einer neuen Version ist das Vorgehen auslesen, bearbeiten und einspielen:

Code: Alles auswählen

opsi-admin -d method product_getObjects '' '{"id": "firefox", "productVersion": "deineVersion", "packageVersion": "deineVersionsnummer"}' > firefox.json
Das kannst du dann bearbeiten (neue Versionen eintragen) und wieder einspielen.
Beim Bearbeiten wichtig: alten ident rauswerfen und die Liste entfernen, weil die Methode nur jeweils ein Objekt verwendet - es dürfen also in firefox.json nicht mehrere Firefox-Objekte vorhanden sein.

Code: Alles auswählen

opsi-admin -d method product_insertObject < firefox.json

Gruß

Niko

PS: Mal ins Entwickler-Forum geschoben, weil es hier mehr um die API geht.