On Jun 24, 11:22 pm, Frank Ruiz <frank.r...@gmail.com> wrote: > Greetings, > > I am trying to process multiple commands using paramiko. I have > searched other threads, and I think my use case is a little different. > I am trying to login to a storage node that has a special shell, and > as such I cant execute a script on the storage node side. > > I am also trying to avoid using pexpect because I hate making system > calls.. hence my leaning towards paramiko. > > Was hoping someone could help me identify a way to process multiple > commands using paramiko. > > I have two commands listed below, however only one is getting processed. > > Any help is much appreciated. > > Thanks! > > Here is my script: > > #!/usr/bin/env python > > #-Modules--------------------------------------------------------------------- > import optparse > import sys > import paramiko > > #-Variables------------------------------------------------------------------- > plog = 'storagessh.log' > suser = 'root' > > #-Config---------------------------------------------------------------------- > > #-Subs-Defined---------------------------------------------------------------- > def options(): > global hostname > global goldenimage > global lunclone > global sshport > > usage = "usage: %prog [options] -n <nodename> -g <goldenimage> -l <lun>" > > parser = optparse.OptionParser(usage) > > parser.add_option("-n", "--node", > dest="hostname", > help="Name of storage node you are connecting to.") > parser.add_option("-g", "--gold", > dest="goldenimage", > help="Name of goldenimage to clone.") > parser.add_option("-l", "--lun", > dest="lunclone", > help="Name of lun to create.") > parser.add_option("-p", "--port", > dest="sshport", > default=22, > help="SSH port number.") > options, args = parser.parse_args() > > if not options.hostname: > parser.error("Missing hostname argument.") > exit > elif not options.goldenimage: > parser.error("Missing goldenimage argument.") > exit > elif not options.lunclone: > parser.error("Missing lun argument.") > exit > > hostname = options.hostname > goldenimage = options.goldenimage > lunclone = options.lunclone > sshport = options.sshport > > def storagessh(): > paramiko.util.log_to_file(plog) > client = paramiko.SSHClient() > client.load_system_host_keys() > client.connect(hostname, sshport, suser) > stdin, stdout, stderr = client.exec_command('show') > stdin, stdout, stderr = client.exec_command('help') > print stdout.read() > client.close() > > #--Initialization------------------------------------------------------------- > if __name__ == "__main__": > options() > storagessh()
Again, as you were asked on the original post -- full tracebacks and explain "what is not working". The use of global variables scares me -- why are those needed? -- http://mail.python.org/mailman/listinfo/python-list