- def run_vmware(self,liste_nodes,display):
- path=os.path.dirname(sys.argv[0])
- print "* Killing any running vmware or vmplayer instance"
- self.kill_all_vmwares()
- print "* Displaying vmplayer on DISPLAY=",display
- for l in liste_nodes :
- print "* Starting vmplayer for node %s -- see vmplayer.log"%l['hostname']
- os.system('set -x; cd %s/VirtualFile-%s ; DISPLAY=%s vmplayer My_Virtual_Machine.vmx < /dev/null 2>&1 >> vmplayer.log &'%(path,l['hostname'],display))
-
- def delete_known_hosts(self):
- try:
- file1=open('/root/.ssh/known_hosts','r')
- file2=open('/root/.ssh/known_hosts_temp','w')
- while 1:
- txt = file1.readline()
- if txt=='':
- file1.close()
- file2.close()
- break
- if txt[0:4]!='test' :
- file2.write(txt)
-
-
- os.system('mv -f /root/.ssh/known_hosts_temp /root/.ssh/known_hosts')
- except Exception, e:
- print str(e)
-
- def slice_access(self,liste_nodes):
- try:
- bool=True
- bool1=True
- secondes=15
- self.delete_known_hosts()
- start_time = datetime.datetime.now()
- dead_time=start_time + datetime.timedelta(minutes=3)##adding 3minutes
- for slice in slices_specs:
- for slicenode in slice['slice_nodes']:
- timset=time.strftime("%H:%M:%S", time.localtime())
- while(bool):
- print '=========>Try to Restart the Node Manager on %s at %s:'%(slicenode['hostname'],str(timset))
- access=os.system('set -x; ssh -i /etc/planetlab/root_ssh_key.rsa root@%s service nm restart'%slicenode['hostname'] )
- if (access==0):
- print '=========>Node Manager Restarted on %s at %s:'%(slicenode['hostname'] ,str(timset))
- while(bool1):
- print '=========>Try to connect to the %s@%s at %s '%(slice['slice_spec']['name'],slicenode['hostname'],str(time.strftime("%H:%M:%S", time.localtime())))
- Date=os.system('set -x; ssh -i ~/.ssh/slices.rsa %s@%s echo "The Actual Time here is;" date'%(slice['slice_spec']['name'],slicenode['hostname']))
- if (Date==0):
- break
- elif ( start_time <= dead_time ) :
- start_time=datetime.datetime.now()+ datetime.timedelta(seconds=30)
- time.sleep(secondes)
- else:
- bool1=False
- if(bool1):
- print '=========>connected to the '+slice['slice_spec']['name']+'@'+slicenode['hostname'] +'--->'
- else:
- print '=========>access to one slice is denied but last chance'
- print '=========>Retry to Restart the Node Manager on %s at %s:'%(slicenode['hostname'],str(timset))
- access=os.system('set -x; ssh -i /etc/planetlab/root_ssh_key.rsa root@%s service nm restart'%slicenode['hostname'] )
- if (access==0):
- print '=========>Retry to connect to the %s@%s at %s '%(slice['slice_spec']['name'],slicenode['hostname'],str(time.strftime("%H:%M:%S", time.localtime())))
- Date=os.system('set -x; ssh -i ~/.ssh/slices.rsa %s@%s echo "The Actual Time here is;" date'%(slice['slice_spec']['name'],slicenode['hostname'] ))
- if (Date==0):
- print '=========>connected to the '+slice['slice_spec']['name']+'@'+slicenode['hostname']+'--->'
- else:
- print '=========>the Access is finaly denied'
- sys.exit(1)
- else :"=========>Last try failed"
- break
- elif ( start_time <= dead_time ) :
- start_time=datetime.datetime.now()+ datetime.timedelta(minutes=1)
- time.sleep(secondes)
- else:
- bool=False
-
- if (not bool):
- print 'Node manager problems'
- sys.exit(1)
-
- except Exception, e:
- print str(e)
- sys.exit(1)
-