
9: Device Ports
SLC™ 8000 Advanced Console Manager User Guide
216
print(now.strftime("%Y-%m-%d %H:%M"))
server = sys.argv[1]
secret = sys.argv[2]
proc = subprocess.Popen(['clisession', '-U', 'sysadmin'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# wait for prompt
while True:
output_str = proc.stdout.readline()
if b'list of commands' in output_str:
proc.stdin.write(b'\n')
proc.stdin.flush()
if b']> ' in output_str:
break
if b'Invalid local user' in output_str:
print("Invalid local user passed to clisession.")
proc.stdin.close()
proc.terminate()
proc.wait()
sys.exit(1)
# Run the RADIUS command
s = "set radius server 1 host " + " secret " + "\n"
b = bytearray(s.encode())
proc.stdin.write(b)
proc.stdin.flush()
while True:
output_str = proc.stdout.readline()
if b'RADIUS settings successfully updated' in output_str:
break
elif b'set radius' not in output_str:
# RADIUS command returned an error
s1 = str(output_str)
s2 = s1.split("\\r")[1]
print("RADIUS command returned: " + s2.split("\\n")[0])
proc.stdin.close()
proc.terminate()
proc.wait()
sys.exit(1)
proc.stdin.write(b'set radius state enable\n')
proc.stdin.flush()
while True:
output_str = proc.stdout.readline()
if b'RADIUS settings successfully updated' in output_str:
break
elif b'set radius' not in output_str:
# RADIUS command returned an error
s1 = str(output_str)
s2 = s1.split("\\r")[1]