Files
SnarfCode/scripts/copy_topology_to_npm.py

33 lines
1.1 KiB
Python

import paramiko, os
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect("140.44.4.71", username="root", key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
sftp = c.open_sftp()
remote_dir = "/var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/topology"
c.exec_command(f"mkdir -p {remote_dir}")
local_html = os.path.abspath("docs/snarfnet_homelab_topology.html")
local_png = os.path.abspath("docs/snarfnet_homelab_topology.png")
print(f"Uploading HTML ({os.path.getsize(local_html)} bytes)...")
sftp.put(local_html, f"{remote_dir}/snarfnet_homelab_topology.html")
print(f"Uploading PNG ({os.path.getsize(local_png)} bytes)...")
sftp.put(local_png, f"{remote_dir}/snarfnet_homelab_topology.png")
sftp.close()
# Verify files inside container
stdin, stdout, stderr = c.exec_command("docker exec $(docker ps -q --filter name=nginx-proxy-manager_app) ls -la /data/topology")
print("Container /data/topology:")
print(stdout.read().decode())
# Check md5sum locally and remotely
stdin, stdout, stderr = c.exec_command(f"md5sum {remote_dir}/*")
print("Remote md5sum:\n", stdout.read().decode())
c.close()