26 lines
887 B
Python
26 lines
887 B
Python
import paramiko, json
|
|
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect('140.44.4.90', username='rancher', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
|
|
|
|
cmd = "echo Katzir476! | sudo -S sh -c 'export KUBECONFIG=/etc/rancher/rke2/rke2.yaml; PATH=$PATH:/var/lib/rancher/rke2/bin; kubectl get nodes -o json'"
|
|
stdin, stdout, stderr = c.exec_command(cmd)
|
|
out = stdout.read().decode()
|
|
data = json.loads(out)
|
|
|
|
total_cpu = 0
|
|
total_mem_kb = 0
|
|
for n in data['items']:
|
|
cpu = int(n['status']['capacity']['cpu'])
|
|
mem_str = n['status']['capacity']['memory']
|
|
if mem_str.endswith('Ki'):
|
|
mem_kb = int(mem_str[:-2])
|
|
total_cpu += cpu
|
|
total_mem_kb += mem_kb
|
|
|
|
ram_gib = total_mem_kb / (1024 * 1024)
|
|
print(f"Spacedock Harvester: nodes = {len(data['items'])}, cpu = {total_cpu}, ram = {ram_gib:.1f} GiB")
|
|
c.close()
|
|
|