Add HTTPS management console and response planning
This commit is contained in:
parent
a56d72edd6
commit
a7129e5666
16 changed files with 927 additions and 160 deletions
|
|
@ -64,9 +64,11 @@ def heartbeat_age(cfg: Config) -> float | None:
|
|||
|
||||
# --- external dead-man's-switch watcher -----------------------------------
|
||||
|
||||
def poll_status(url: str, token: str = "", timeout: int = 8) -> dict | None:
|
||||
def poll_status(url: str, token: str = "", timeout: int = 8,
|
||||
verify_tls: bool = True) -> dict | None:
|
||||
"""Fetch a remote dashboard's /api/status. None if unreachable."""
|
||||
import json
|
||||
import ssl
|
||||
import urllib.request
|
||||
base = url.rstrip("/")
|
||||
api = base if base.endswith("/api/status") else base + "/api/status"
|
||||
|
|
@ -74,7 +76,8 @@ def poll_status(url: str, token: str = "", timeout: int = 8) -> dict | None:
|
|||
if token:
|
||||
req.add_header("Authorization", f"Bearer {token}")
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=timeout) as resp:
|
||||
ctx = None if verify_tls else ssl._create_unverified_context()
|
||||
with urllib.request.urlopen(req, timeout=timeout, context=ctx) as resp:
|
||||
return json.loads(resp.read())
|
||||
except Exception:
|
||||
return None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue