"""
|
|
Jeffery Russell
|
|
9-26-17
|
|
"""
|
|
|
|
import subprocess
|
|
import collections
|
|
|
|
import module
|
|
|
|
INPUT_FILE = "/home/jeff/scripts/servers.txt"
|
|
Computer = collections.namedtuple("Computer", ('host', 'menue_id'))
|
|
WELCOME_MESSAGE = "*************Jeff-Tower***************"
|
|
|
|
|
|
def print_welcome_message():
|
|
"""
|
|
Prints defined greeting message to terminal
|
|
:return: None
|
|
"""
|
|
print(WELCOME_MESSAGE)
|
|
|
|
|
|
def print_menu_option(s):
|
|
"""
|
|
|
|
:param s:
|
|
:return:
|
|
"""
|
|
space = " " * (len(WELCOME_MESSAGE) - 3 - len(s))
|
|
print("* " + s + space + "*")
|
|
|
|
|
|
def main():
|
|
"""
|
|
This function inputs all the available hosts from a text file and prompts the user to connect to them
|
|
:return:
|
|
"""
|
|
print_welcome_message()
|
|
file = module.input_file(INPUT_FILE)
|
|
|
|
cmp = []
|
|
count = 1
|
|
|
|
for line in file:
|
|
cmp.append(Computer(line, count))
|
|
count += 1
|
|
|
|
print("* SSH manager V 0.2 *")
|
|
for c in cmp:
|
|
print_menu_option(str(c.menue_id) + ") " + c.host)
|
|
|
|
print_menu_option("A/' ') Exit")
|
|
print_menu_option("B/' ') Manager tools")
|
|
|
|
print("*" * len(WELCOME_MESSAGE))
|
|
i = input("Enter number of computer to connect to or enter to exit:")
|
|
|
|
if i == '' or i == 'A' or i == 'a':
|
|
subprocess.call(["clear"])
|
|
elif i == 'b' or i == 'B':
|
|
subMenu()
|
|
else:
|
|
for c in cmp:
|
|
if int(i) == c.menue_id:
|
|
subprocess.call(["ssh", c.host])
|
|
|
|
|
|
def printSubMenu():
|
|
"""
|
|
prints out a sub help menu for other options
|
|
:return: None
|
|
"""
|
|
print("**************************************")
|
|
print("* SSH manager V 0.2 Options *")
|
|
print_menu_option("1) Add Host")
|
|
print_menu_option("2) Copy SSH key to server")
|
|
print_menu_option("3) Remove host name")
|
|
print_menu_option("4) Return to ssh manager")
|
|
print_menu_option("5) Exit")
|
|
print("*" * len(WELCOME_MESSAGE))
|
|
|
|
|
|
def subMenu():
|
|
"""
|
|
calls printSubMenu and then gets input from user to make appropriate function calls
|
|
:return: None
|
|
"""
|
|
printSubMenu()
|
|
input = input("Enter selection:")
|
|
|
|
|
|
def addHost():
|
|
"""
|
|
appends an inputted host name to servers.txt
|
|
:return: None
|
|
"""
|
|
pass
|
|
|
|
|
|
def copySSHKey():
|
|
"""
|
|
calls systems ssh-copy-id with host name
|
|
:return: None
|
|
"""
|
|
pass
|
|
|
|
|
|
def removeHost():
|
|
"""
|
|
Removes a host name from servers.txt
|
|
:return: None
|
|
"""
|
|
pass
|
|
|
|
|
|
"""
|
|
Makes sure that other programs don't execute the main
|
|
"""
|
|
if __name__ == '__main__':
|
|
main()
|