23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
info_payload: Dict[str, Any] = {"catalog_name": catalog, "app_name": app_name, "train": train}
|
|
# v2.1.2: сначала пробуем GET (TrueNAS 25.10 часто требует GET),
|
|
# затем POST через _rest_request (там есть fallback POST→GET при 405)
|
|
info: Optional[Dict[str, Any]] = None
|
|
for ep in ("app/info", "app.info", "catalog/item", "catalog.item"):
|
|
try:
|
|
r = requests.get(
|
|
f"{self._base}/api/v2.0/{ep}",
|
|
headers=self._headers,
|
|
params=info_payload,
|
|
timeout=self.valves.request_timeout,
|
|
verify=self.valves.verify_ssl,
|
|
)
|
|
if r.status_code == 200:
|
|
info = r.json()
|
|
break
|
|
except Exception:
|
|
pass
|
|
if info is None:
|
|
info = self._post("app/info", info_payload, timeout=self.valves.request_timeout)
|
|
if info is None:
|
|
info = self._post("catalog/item", info_payload, timeout=self.valves.request_timeout)
|
|
if info is None: |