Files
gitlab-instance-0a899031_do…/tools/verify_live_console.py
2026-03-28 12:02:44 -05:00

58 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""重启 live-console 并验收 HTTPParamiko"""
from __future__ import annotations
import sys
import time
from pathlib import Path
import paramiko
HOST = "192.168.21.105"
USER = "live"
PASS = "12345678"
LOG = Path(__file__).resolve().parent.parent / ".deploy_logs" / "verify_live_console.log"
def main() -> int:
LOG.parent.mkdir(parents=True, exist_ok=True)
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect(HOST, username=USER, password=PASS, timeout=30)
def run(cmd: str, timeout: int = 90) -> tuple[int, str, str]:
_, stdout, stderr = c.exec_command(
"export LC_ALL=C.UTF-8 LANG=C.UTF-8; " + cmd,
timeout=timeout,
)
out = stdout.read().decode("utf-8", errors="replace")
err = stderr.read().decode("utf-8", errors="replace")
code = stdout.channel.recv_exit_status()
block = f"\n$ {cmd}\nexit={code}\n--- out ---\n{out}\n--- err ---\n{err}\n"
with LOG.open("a", encoding="utf-8", errors="replace") as fh:
fh.write(block)
tail = "\n".join(block.splitlines()[-60:])
print(tail)
return code, out, err
try:
run(
f"echo '{PASS}' | sudo -S systemctl restart live-console.service",
timeout=120,
)
time.sleep(5)
run("systemctl is-active live-console.service", timeout=20)
run("ss -tlnp 2>/dev/null | grep 8001 || true", timeout=20)
run(
"curl -sS -m 15 http://127.0.0.1:8001/health && echo "
"&& curl -sS -m 15 http://127.0.0.1:8001/server_info | head -c 1200",
timeout=40,
)
return 0
finally:
c.close()
if __name__ == "__main__":
raise SystemExit(main())