Files
SnarfCode/scripts/test_etcd_snapshots.py
2026-11-03 14:32:06 -05:00

36 lines
1.1 KiB
Python

import paramiko
import sys
import datetime
sys.stdout.reconfigure(encoding='utf-8')
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
clusters = [
("aerodrome", "140.44.4.11"),
("spaceport", "140.44.4.41")
]
for name, ip in clusters:
print(f"[{name.upper()}] Connecting to {ip}...")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
cmd = f"k3s etcd-snapshot save --name pre-upgrade-{name}-{timestamp}"
print(f"[{name.upper()}] Executing: {cmd}")
stdin, stdout, stderr = ssh.exec_command(cmd)
out = stdout.read().decode().strip()
err = stderr.read().decode().strip()
if out:
print(f"[{name.upper()}] STDOUT: {out}")
if err:
print(f"[{name.upper()}] STDERR: {err}")
check_cmd = "k3s etcd-snapshot ls"
stdin, stdout, stderr = ssh.exec_command(check_cmd)
print(f"[{name.upper()}] Recent Snapshots:\n" + stdout.read().decode().strip())
ssh.close()
print("-" * 50)