F
Frank Ruiz
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()
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()