[geloest] RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Antworten
Benutzeravatar
jub
Beiträge: 61
Registriert: 25 Nov 2010, 12:40

[geloest] RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag 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

Code: Alles auswählen

backend.getProducts_hash(DepotServer)
bzw.

Code: Alles auswählen

backend.getProducts_listOfHashes(DepotServer) 
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
Zuletzt geändert von jub am 14 Mär 2024, 14:26, insgesamt 1-mal geändert.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1819
Registriert: 29 Mai 2008, 15:14

Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag 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
Benutzeravatar
jub
Beiträge: 61
Registriert: 25 Nov 2010, 12:40

Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag 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
Benutzeravatar
jub
Beiträge: 61
Registriert: 25 Nov 2010, 12:40

Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag 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"
}
:?
Rzpertt
Beiträge: 74
Registriert: 15 Jan 2021, 10:41

Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag von Rzpertt »

gibt es dann einen Ersatz für "getClientsWithOutdatedProduct" ?
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1819
Registriert: 29 Mai 2008, 15:14

Re: RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag 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
Benutzeravatar
jub
Beiträge: 61
Registriert: 25 Nov 2010, 12:40

Re: [geloest] RPC-Methoden funktionieren nach 4.3-Upgrade nicht mehr

Beitrag von jub »

Etwas verspaetet, aber: Vielen Dank!
Antworten