2014-05-20 16:34:36 +08:00
|
|
|
#!/usr/bin/python
|
|
|
|
import sys,os,string
|
|
|
|
import paramiko
|
|
|
|
import socket
|
|
|
|
|
|
|
|
remote_machines=os.environ['REMOTE_MACHINES']
|
|
|
|
remote_machines=remote_machines.split(', ')
|
|
|
|
print 'remote_machines',remote_machines
|
|
|
|
|
|
|
|
remote_dir=os.environ['REMOTE_DIR']
|
|
|
|
remote_dir=remote_dir.split(', ')
|
|
|
|
print 'remote_dir',remote_dir
|
|
|
|
|
|
|
|
remote_ip=os.environ['REMOTE_IP']
|
|
|
|
remote_ip=remote_ip.split(', ')
|
|
|
|
print 'remote_ip',remote_ip
|
|
|
|
|
|
|
|
remote_user=os.environ['REMOTE_USER']
|
|
|
|
remote_user=remote_user.split(', ')
|
|
|
|
print 'remote_user',remote_user
|
|
|
|
|
|
|
|
remote_port=os.environ['REMOTE_PORT']
|
|
|
|
remote_port=remote_port.split(', ')
|
|
|
|
print 'remote_port',int(remote_port[0])
|
|
|
|
|
|
|
|
all_machines = {}
|
|
|
|
def set_default_value_to_all_machines():
|
2015-01-29 08:40:19 +08:00
|
|
|
for idx, item in enumerate(remote_machines):
|
|
|
|
all_machines[item]={}
|
|
|
|
all_machines[item]['ip']=remote_ip[idx]
|
|
|
|
all_machines[item]['dir']=remote_dir[idx]
|
|
|
|
all_machines[item]['port']=remote_port[idx]
|
|
|
|
all_machines[item]['user']=remote_user[idx]
|
|
|
|
all_machines[item]['pwd']=os.environ[item+'_PWD']
|
2014-05-20 16:34:36 +08:00
|
|
|
|
|
|
|
def reboot_machine(machine, item):
|
2015-01-29 08:40:19 +08:00
|
|
|
print 'machine:',machine, 'item:', item
|
|
|
|
remote_ip = machine['ip']
|
|
|
|
remote_port = machine['port']
|
|
|
|
remote_user = machine['user']
|
|
|
|
remote_pwd = machine['pwd']
|
|
|
|
remote_dir = os.path.join(machine['dir'],'workspace','reboot', 'reboot.py')
|
|
|
|
print remote_dir
|
|
|
|
ssh = paramiko.SSHClient()
|
|
|
|
print 'ssh:',ssh
|
|
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
|
|
ssh.connect(remote_ip, int(remote_port), remote_user, remote_pwd)
|
|
|
|
# excute reboot.py on machine
|
|
|
|
cmd = 'python '+remote_dir
|
|
|
|
if item == 'win32_win7':
|
|
|
|
cmd = 'cmd.exe /c "python '+remote_dir+'"'
|
|
|
|
stdin, stdout, stderr = ssh.exec_command(cmd)
|
|
|
|
print stdout.readlines()
|
|
|
|
ssh.close()
|
|
|
|
print 'OK'
|
2014-05-20 16:34:36 +08:00
|
|
|
|
|
|
|
def main():
|
2015-01-29 08:40:19 +08:00
|
|
|
print 'in main'
|
|
|
|
set_default_value_to_all_machines()
|
|
|
|
for item in all_machines:
|
|
|
|
reboot_machine( all_machines[item], item )
|
2014-05-20 16:34:36 +08:00
|
|
|
|
|
|
|
# -------------- main --------------
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys_ret = 0
|
|
|
|
try:
|
|
|
|
sys_ret = main()
|
|
|
|
except:
|
|
|
|
traceback.print_exc()
|
|
|
|
sys_ret = 1
|
|
|
|
finally:
|
|
|
|
sys.exit(sys_ret)
|
|
|
|
|