sync: auto-sync from HOWARD-HOME at 2026-06-21 11:22:19

Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-06-21 11:22:19
This commit is contained in:
2026-06-21 11:23:04 -07:00
parent bb3c40190f
commit 96a5dd6e7a
9 changed files with 355 additions and 58 deletions

View File

@@ -76,7 +76,22 @@ def _json_default(o):
# --- table renderers ----------------------------------------------------------
def _print_kv(d: dict) -> None:
def _print_kv(d) -> None:
# Tolerant: some API methods return a list (e.g. installation links,
# endpoint tags) rather than a dict. Render either cleanly.
if isinstance(d, list):
for i, item in enumerate(d):
if isinstance(item, dict):
if i:
print(" ---")
for k, v in item.items():
print(f" {k}: {v}")
else:
print(f" {item}")
return
if not isinstance(d, dict):
print(f" {d}")
return
for k, v in d.items():
print(f" {k}: {v}")

View File

@@ -523,7 +523,8 @@ class GravityZoneClient:
)
def create_custom_group(self, name: str, parent_id: Optional[str] = None) -> Any:
params: dict = {"name": name}
# API param is `groupName` (verified live 2026-06-21), NOT `name`.
params: dict = {"groupName": name}
if parent_id:
params["parentId"] = parent_id
result = self._jsonrpc_request("network", "createCustomGroup", params)