Seite 1 von 1
[geloest] RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 15 Feb 2024, 13:42
von jub
Hallo allerseits,
nach dem Upgrade auf OPSI 4.3 ist eines meiner Monitoring-Scripte aus dem Tritt geraten.
Der erste Stolperer war den Imports geschuldet. Aus
Code: Alles auswählen
from OPSI.Backend.BackendManager import BackendManager
backend = BackendManager()
ist
Code: Alles auswählen
from opsicommon.client.opsiservice import get_service_client
backend = get_service_client()
geworden. – Soweit kein Problem.
Allerdings scheitert nun der Aufruf von
bzw.
mit der Fehlermeldung:
opsicommon.exceptions.OpsiRpcError: Opsi rpc error: Bad object id: ''
Alle anderen verwendeten Methoden funktionieren.
Gerade bin ich noch auf die Idee gekommen
getProducts_hash und
getProducts_listOfHashes mit
opsi-admin zu testen. Aber auch hier erhalte ich den gleichen Fehler.
Viele Gruesse,
Jens
Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 16 Feb 2024, 07:05
von j.schneider
Hallo,
auf dem Admin-Interface https://<opsi-server>:4447/admin/#rpc-interface kann man sich die verfügbaren Methoden gut anschauen.
Bei den deprecated-Methoden befindet sich in der Regel auch ein Hinweis auf eine alternative Methode.
Je nachdem was benötigt wird kann man verwenden:
Code: Alles auswählen
{
"id": 1,
"jsonrpc": "2.0",
"method": "productOnDepot_getObjects",
"params": [
[],
{
"depotId": "<depot-id>"
}
]
}
Und z.B.:
Code: Alles auswählen
{
"id": 1,
"jsonrpc": "2.0",
"method": "product_getObjects",
"params": [
[],
{
"id": [
"hwaudit",
"swaudit",
...
]
}
]
}
Grüße
Jan Schneider
Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 16 Feb 2024, 07:49
von jub
Hallo Jan,
danke!
Dass die Methoden
deprecated sein koennten hatte ich zwar schon in Betracht gezogen, bin dann aber davon ausgegangen, dass sie zumindest noch funktionieren.
Gesucht habe ich dann umstaendlicher im Git-Repo (
https://github.com/opsi-org/python-opsi-common).
Die Exceptions in Python und die Meldungen im opsi-admin (sind ja die gleichen) sind da wenig aussagekraetftig.
Da die Methoden ja bisher nur
deprecated und noch nicht entfernt sind, wuerde ich die nun gerne (bis ich die Scripte komplett umgestellt habe) nochmal fuer meine Scripte aktivieren.
Viele Gruesse,
Jens
Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 16 Feb 2024, 08:04
von jub
Okay, ich sehe gerade, dass die Methoden so
deprecated sind, dass auch das Admin-Interface sagt:
Code: Alles auswählen
{
"id": 1,
"error": {
"message": "Bad object id: ''",
"code": 0,
"data": {
"class": "ValueError",
"details": "..."
}
},
"jsonrpc": "2.0"
}
Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 16 Feb 2024, 09:41
von Rzpertt
gibt es dann einen Ersatz für "getClientsWithOutdatedProduct" ?
Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 16 Feb 2024, 16:31
von j.schneider
Eine Methode die deprecated ist, sollte normalerweise noch funktionieren.
Sie wird aber in Zukunft entfernt werden.
Die deprecated-Methoden werden nicht mehr automatisch getestet, daher kann es hier eher zu Fehlern kommen.
In opsiconfd 4.3.7.2 sind die beiden Methoden gefixt.
Die Version liegt aktuell im experimental-Repo:
https://software.opensuse.org//download ... =opsiconfd
Generell kann man alle deprecated-Methoden durch andere Methoden ersetzen.
Manchmal sind dafür jedoch mehrere Methoden-Aufrufe notwendig.
Wir planen eine insgesamt verbesserte API für das nächste opsi Major-Release.
Grüße
Jan Schneider
Re: [geloest] RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr
Verfasst: 14 Mär 2024, 14:26
von jub
Etwas verspaetet, aber: Vielen Dank!