import pexpect
import argparse
import os
import tempfile
import sys

def space_check(ip, username, password,switchname):
    #print(f"Checking {ip}")
    #print(f"Logging in with {username} and {password}")
    try:
        child = pexpect.spawn(f"ssh -oHostKeyAlgorithms=+ssh-ed25519 {username}@{ip}")
        #child.logfile = sys.stdout.buffer
        child.expect("password:")
        child.sendline(password)
        child.expect("#")
        child.sendline("start-shell")
        child.expect('\$')
        child.sendline("df -h /var/log")
        child.expect('\$')
        print(f"-------{switchname}--------")
        print(child.before.decode("utf-8"))
        child.sendline("exit")
        child.expect("#")
    except:
        print("ERROR") 

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="check /var/log free space")
    parser.add_argument("--username", help="Username for login", required=True)
    parser.add_argument("--password", help="Password for login", required=True)
    parser.add_argument("--ip", help="IP address of switch", required=True)
    parser.add_argument("--switchname", help="switch name", required=True)

    args = parser.parse_args()

    space_check(args.ip, args.username, args.password,args.switchname)
