ProductProperties werden nicht mehr angezeigt

Neuling_Opsi
Beiträge: 12
Registriert: 15 Jan 2018, 12:17

ProductProperties werden nicht mehr angezeigt

Beitrag von Neuling_Opsi »

Moin,

Seit heute Morgen kommt es bei uns im OPSI Configed (und auch per RPC Call) zu Problemen beim Abrufen der Product Properties.

Im Configed:

Code: Alles auswählen

2022-04-04  12:54:21.394 -- Opsi service error:  [JSONDecodeError] Expecting value: line 1 column 1 (char 0)
2022-04-04  12:54:21.414 -- JSONReMapper: Exception on reproducing  null, java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "<local2>" is null
Als RPC:

Code: Alles auswählen

{
  "id": 1,
  "error": {
    "message": "Expecting value: line 1 column 1 (char 0)",
    "class": "JSONDecodeError",
    "details": "Traceback (most recent call last):\n  File \"opsiconfd/application/jsonrpc.py\", line 540, in process_rpcs\n  File \"opsiconfd/application/jsonrpc.py\", line 512, in process_rpc\n  File \"starlette/concurrency.py\", line 39, in run_in_threadpool\n  File \"anyio/to_thread.py\", line 28, in run_sync\n  File \"anyio/_backends/_asyncio.py\", line 818, in run_sync_in_worker_thread\n  File \"anyio/_backends/_asyncio.py\", line 754, in run\n  File \"opsiconfd/application/jsonrpc.py\", line 446, in execute_rpc\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Base/Extended.py\", line 122, in _executeMethod\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Base/Extended.py\", line 122, in _executeMethod\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Manager/AccessControl.py\", line 429, in _executeMethodProtected\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Base/Extended.py\", line 122, in _executeMethod\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Base/Extended.py\", line 122, in _executeMethod\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Base/Extended.py\", line 122, in _executeMethod\n  File \"OPSI/Backend/Base/Extended.py\", line 1880, in productPropertyState_getObjects\n  File \"<string>\", line 1, in productPropertyState_getObjects\n  File \"OPSI/Backend/Manager/Dispatcher.py\", line 199, in _dispatchMethod\n  File \"OPSI/Backend/File.py\", line 1512, in productPropertyState_getObjects\n  File \"OPSI/Backend/File.py\", line 849, in _read\n  File \"OPSI/Util/__init__.py\", line 234, in fromJson\n  File \"opsicommon/utils/__init__.py\", line 108, in from_json\n  File \"json/__init__.py\", line 346, in loads\n  File \"json/decoder.py\", line 337, in decode\n  File \"json/decoder.py\", line 355, in raw_decode\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n"
  },
  "jsonrpc": "2.0"
}
Ich kann mir die Werte zwar über den getProductProperty Aufruf holen, aber es wäre schön wenn es einen Weg geben würde, das wieder im Configed sichtbar und setzbar zu machen.

Leider stehe ich hier völlig auf dem Schlauch.
Benutzeravatar
SisterOfMercy
Beiträge: 1541
Registriert: 22 Jun 2012, 19:18

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von SisterOfMercy »

Uhmm, are the os packages and opsi packages up to date? And the configed package, which version is that?
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
kojac
Beiträge: 2
Registriert: 04 Apr 2022, 17:17

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von kojac »

moin,
wir haben scheinbar das gleiche Problem.
Mit opsi-admin kann etwas eingrenzen indem ich die problematische Methode (productPropertyState_getObjects) mit einer anderen vergleiche:

Code: Alles auswählen

method product_getObjects [] {}
# liefert eine Menge Ergebnisse

method productPropertyState_getObjects [] {}
# liefert:
ERROR: Failed to execute u'method productPropertyState_getObjects [] {}': No JSON object could be decoded (error on server)

method productPropertyState_getObjects [],{}
# liefert eine Menge Ergebnisse
man beachte das Komma im 3. Aufruf

Unser Server läuft derzeit noch mit opsi 4.1 auf Ubuntu 18.04.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1839
Registriert: 29 Mai 2008, 15:14

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von j.schneider »

Hallo,

wahrscheinlich ist in einer der Client-INIs unter /var/lib/opsi/config/clients, ein Product-Property-Wert gelandet, der Probleme bei der JSON-Dekodierung macht.
Über folgendes Skript sollte man das betroffene Produkt finden können:

Code: Alles auswählen

for product in $(opsi-admin -dS method getProductIds_list); do echo $product; opsi-admin -d method productPropertyState_getIdents '[]' "{\"productId\":\"$product\"}"; done
Grüße
Jan Schneider
F.Werner
Beiträge: 6
Registriert: 22 Feb 2012, 15:53

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von F.Werner »

Same Problem here.

Die for schleife bringt bei uns keinen Fehler zu Tage.

BTW: Aufgrund des Fehlers ist es übrigens nicht möglich im configed product propertys zu manipulieren. Ansonsten scheint so weit alles zu funktionieren.
Neuling_Opsi
Beiträge: 12
Registriert: 15 Jan 2018, 12:17

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von Neuling_Opsi »

SisterOfMercy hat geschrieben: 04 Apr 2022, 17:32 Uhmm, are the os packages and opsi packages up to date? And the configed package, which version is that?
Ist ein Ubuntu 18.04, die OS Pakete sind alle aktuell, die OPSI Pakete habe ich auch aktualisiert.

opsiconfd 4.2.0.246
python-opsi 4.2.0.277
opsi-configed 4.1.9.11.1
j.schneider hat geschrieben: 05 Apr 2022, 09:27 Hallo,

wahrscheinlich ist in einer der Client-INIs unter /var/lib/opsi/config/clients, ein Product-Property-Wert gelandet, der Probleme bei der JSON-Dekodierung macht.
Über folgendes Skript sollte man das betroffene Produkt finden können:

Code: Alles auswählen

for product in $(opsi-admin -dS method getProductIds_list); do echo $product; opsi-admin -d method productPropertyState_getIdents '[]' "{\"productId\":\"$product\"}"; done
Grüße
Jan Schneider
Die Schleife hat bei uns hier nichts gebracht. Aufgrund deines Hinweises hatte ich eigentlich zwei Produkte im Auge und habe diese nochmal mit:

Code: Alles auswählen

for client in $(opsi-admin -dS method host_getIdents '' '{"type": "OpsiClient"}'); do echo $client; opsi-admin -d method getProductProperties_hash "$productID" "$client"; done
überprüft auch da nichts.

Was sollte denn passieren? Sollte die Schleife abbrechen?

Edit: Die Variable ProductID ist natürlich hier nicht definiert, da habe ich händisch eins der beiden Verdächtigen eingesetzt.
Zuletzt geändert von Neuling_Opsi am 05 Apr 2022, 12:22, insgesamt 1-mal geändert.
F.Werner
Beiträge: 6
Registriert: 22 Feb 2012, 15:53

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von F.Werner »

Server ist Debian Version 10.12. Alle updates installiert.
Die letzten updates waren:

Start-Date: 2022-04-02 06:37:45
Commandline: /usr/bin/unattended-upgrade
Upgrade: zlib1g:amd64 (1:1.2.11.dfsg-1, 1:1.2.11.dfsg-1+deb10u1), zlib1g-dev:amd64 (1:1.2.11.dfsg-1, 1:1.2.11.dfsg-1+deb10u1)
End-Date: 2022-04-02 06:37:55

Start-Date: 2022-04-04 16:02:37
Upgrade: grafana:amd64 (8.4.4, 8.4.5)
End-Date: 2022-04-04 16:03:27

Installiert ist opsi-server-full, Version 4.2.0.66-1. opsiconfd --version
4.2.0.246 [python-opsi=4.2.0.277]

Mit

Code: Alles auswählen

for client in $(opsi-admin -dS method host_getIdents '' '{"type": "OpsiClient"}'); do echo $client; opsi-admin -d method getProductProperties_hash "$productID" "$client"; done
erhalte ich Fehlermeldungen wie diese:

Code: Alles auswählen

[3] [2022-04-05 12:11:41.470] [               ] Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:777)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:41.471] [               ] Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:387)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 375, in shell_main
  File "opsiutils/opsiadmin.py", line 778, in execute
RuntimeError: Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:41.475] [               ] Error during execution: Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:1748)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 1741, in main
  File "opsiutils/opsiadmin.py", line 388, in shell_main
  File "opsiutils/opsiadmin.py", line 375, in shell_main
  File "opsiutils/opsiadmin.py", line 778, in execute
RuntimeError: Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:44.179] [               ] Failed to execute method getProductProperties_hash '' __Rechnername1__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:777)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:44.180] [               ] Failed to execute method getProductProperties_hash '' __Rechnername2__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:387)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 375, in shell_main
  File "opsiutils/opsiadmin.py", line 778, in execute
RuntimeError: Failed to execute method getProductProperties_hash '' __Rechnername2__ : Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:44.184] [               ] Error during execution: Failed to execute method getProductProperties_hash '' __Rechnername2__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:1748)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 1741, in main
  File "opsiutils/opsiadmin.py", line 388, in shell_main
  File "opsiutils/opsiadmin.py", line 375, in shell_main
  File "opsiutils/opsiadmin.py", line 778, in execute
RuntimeError: Failed to execute method getProductProperties_hash '' __Rechnername2__ : Expecting value: line 1 column 1 (char 0)
[3] [2022-04-05 12:11:47.084] [               ] Failed to execute method getProductProperties_hash '' __Rechnername3__ : Expecting value: line 1 column 1 (char 0)   (opsiadmin.py:777)
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 774, in execute
  File "opsiutils/opsiadmin.py", line 1202, in execute
  File "<string>", line 1, in getProductProperties_hash
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1322, in getProductProperties_hash
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Base/Extended.py", line 126, in _executeMethod
  File "OPSI/Backend/Base/Extended.py", line 1913, in productPropertyState_getObjects
  File "<string>", line 1, in productPropertyState_getObjects
  File "OPSI/Backend/Manager/Dispatcher.py", line 199, in _dispatchMethod
  File "OPSI/Backend/File.py", line 1512, in productPropertyState_getObjects
  File "OPSI/Backend/File.py", line 849, in _read
  File "OPSI/Util/__init__.py", line 234, in fromJson
  File "opsicommon/utils/__init__.py", line 112, in from_json
  File "json/__init__.py", line 346, in loads
  File "json/decoder.py", line 337, in decode
  File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
.
.
.

F.Werner
Beiträge: 6
Registriert: 22 Feb 2012, 15:53

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von F.Werner »

Mist, copy-paste fehler?

Ich schätze "$productID" sollte wohl eher "productId" heissen?

Also vergesst die Fehlermeldungen...
Benutzeravatar
SisterOfMercy
Beiträge: 1541
Registriert: 22 Jun 2012, 19:18

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von SisterOfMercy »

I guess you have to fill in a valid productid that is on your server?
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1839
Registriert: 29 Mai 2008, 15:14

Re: ProductProperties werden nicht mehr angezeigt

Beitrag von j.schneider »

Die Schleife sollte bei dem betroffenen Paket eine Fehlermeldung bringen.
Vielleicht so?

Code: Alles auswählen

for product in $(opsi-admin -dS method getProductIds_list); do echo $product; opsi-admin -d method productPropertyState_getObjects '[]' "{\"productId\":\"$product\"}"; done
Antworten