opsi-admin Befehl

The place for development of / with / for opsi.
Post your API questions here!
islam
Beiträge: 85
Registriert: 19 Okt 2011, 12:08

opsi-admin Befehl

Beitragvon islam » 30 Mai 2018, 14:44

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

bernd670
Beiträge: 70
Registriert: 16 Mär 2018, 10:44

Re: opsi-admin Befehl

Beitragvon bernd670 » 30 Mai 2018, 20:43

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
MfG
Bernd

islam
Beiträge: 85
Registriert: 19 Okt 2011, 12:08

Re: opsi-admin Befehl

Beitragvon islam » 04 Jun 2018, 13:59

Danke, wie kann man sonst die Versionsnummer ändern ohne das Paket neuzubauen?

Benutzeravatar
n.wenselowski
Beiträge: 2878
Registriert: 04 Apr 2013, 12:15

Re: opsi-admin Befehl

Beitragvon n.wenselowski » 07 Jun 2018, 13:29

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.
Kein Support per DM!
_________________________
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.