In main() What is the best way to call a series of functions based on the condition of the previous function exit status? I could do
if function foo(x, ssh) == True:
if function bar(x.info, ssh) == True:
if function foobar(x.info, ssh)
But I rather do it a more efficient way like place the functions(with their parameters) in a immutable list and have them iterate in a loop while exit status is True. Or does python have some sugar syntax that is even better?
import pdb
import paramiko
import time
import sys
from collections import OrderedDict
class GetInfo():
def __init__(self):
self.info = OrderedDict([('count', None),
('file_name_filename', ' '),
('continute', ' '),
('filename', None)])
self.login_info = OrderedDict([('username', 'user'),
('hostname', '50.223.222.111'),
('password', 'password')])
epoch_birth = 15842
epoch_birth = 15842
count_start = 5555
current_epoch = int(round(time.mktime(time.localtime())/86400))
count = str((current_epoch - epoch_birth) + count_start)
self.info["count"] = count
fname = "/d2/file_name"+count
self.info["filename"] = fname
def login_name(self):
name = raw_input("Enter Login Name: ")
self.login_info["login_name"] = name
def host_name(self):
name = raw_input("Enter Host Name: ")
self.login_info["host_name"] = name
def password(self):
name = raw_input("Enter Password: ")
self.login_info["password"] = name
def fname(self):
name = raw_input("Enter Filename and aboslute path: ")
self.info["password"] = name
def login(object_dict):
hostname = object_dict['hostname']
username = object_dict['username']
password = object_dict['password']
port = 5777
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect( hostname, port, username, password)
return ssh
except paramiko.AuthenticationException:
print "Wrong username/password PUNK!"
return False
except:
print "Could not connect!"
return False
def read_log(exit_status, stdin, stdout, stderr):
if exit_status:
output = stderr.readlines()
else:
output = stdout.readlines()
return ''.join(output)
def get_file(object_dict, ssh):
stdin, stdout, stderr=ssh.exec_command("bash -c 'ls -al $1' -- " + object_dict["filename"])
for i in object_dict:
stdin.write(object_dict[i]+"\n")
stdin.flush()
exit_status = stdout.channel.recv_exit_status()
print exit_status
print read_log(exit_status, stdin, stdout, stderr)
ssh.close()
def create(object_dict, ssh):
stdin, stdout, stderr=ssh.exec_command("/home/one/file_nameslice.sh")
for i in object_dict:
stdin.write(object_dict[i]+"\n")
stdin.flush()
exit_status = stdout.channel.recv_exit_status()
print read_log(exit_status, stdin, stdout, stderr)
ssh.close()
def main():
x = GetInfo()
ssh = login(x.login_info)
if ssh:
get_file(x.info, ssh)
main()