X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FTestPlc.py;h=6c2195bb883841ff7489f5f977c6b39eb26bb886;hb=989a05c5d080035fc46a82266c33a65475d7f912;hp=8345b32687dd0351da7387d4c15e75354a1c40d5;hpb=be1eb1161e69740fbe06e3d84a4827fd2d4afaa7;p=tests.git diff --git a/system/TestPlc.py b/system/TestPlc.py index 8345b32..6c2195b 100644 --- a/system/TestPlc.py +++ b/system/TestPlc.py @@ -164,23 +164,23 @@ class TestPlc: def kill_all_qemus(self,options): for (box,nodes) in self.gather_hostBoxes().iteritems(): # this is the brute force version, kill all qemus on that host box - TestBox(box).kill_all_qemus() + TestBox(box,options.buildname).kill_all_qemus() return True # make this a valid step def list_all_qemus(self,options): for (box,nodes) in self.gather_hostBoxes().iteritems(): # push the script - TestBox(box).copy("qemu_kill.sh") + TestBox(box,options.buildname).copy("qemu_kill.sh") # this is the brute force version, kill all qemus on that host box - TestBox(box).run("./qemu_kill.sh -l") + TestBox(box,options.buildname).run_in_buildname("qemu_kill.sh -l") return True # kill only the right qemus def kill_qemus(self,options): for (box,nodes) in self.gather_hostBoxes().iteritems(): # push the script - TestBox(box).copy("qemu_kill.sh") + TestBox(box,options.buildname).copy("qemu_kill.sh") # the fine-grain version for node in nodes: node.kill_qemu() @@ -205,14 +205,17 @@ class TestPlc: self.run_in_host('rpm -e myplc') ##### Clean up the /plc directory self.run_in_host('rm -rf /plc/data') - ##### stop any running vservers - self.run_in_host('for vserver in $(ls /vservers/* | sed -e s,/vservers/,,) ; do vserver $vserver stop ; done') return True def uninstall_vserver(self,options): self.run_in_host("vserver --silent %s delete"%self.vservername) return True + def stop_all_vservers (self,options): + ##### stop any running vservers + self.run_in_host('for vserver in $(ls -d /vservers/* | sed -e s,/vservers/,,) ; do echo Stopping $vserver; vserver $vserver stop ; done') + return True + def uninstall(self,options): # if there's a chroot-based myplc running, and then a native-based myplc is being deployed # it sounds safer to have the former uninstalled too @@ -222,6 +225,7 @@ class TestPlc: self.uninstall_chroot(options) else: self.uninstall_chroot(options) + self.stop_all_vservers(options) return True ### install @@ -257,12 +261,23 @@ class TestPlc: return self.install_vserver(options) else: return self.install_chroot(options) - + ### install_rpm + def cache_rpm(self,url): + self.run_in_host('rm -rf *.rpm') + utils.header('Curling rpm from %s'%url) + id= self.run_in_host('curl -O '+url) + if (id != 0): + raise Exception,"Could not get rpm from %s"%url + return False + return True + def install_rpm_chroot(self,options): - utils.header('Installing from %s'%options.myplc_url) - url=options.myplc_url - self.run_in_host('rpm -Uvh '+url) + rpm = os.path.basename(options.myplc_url) + if (not os.path.isfile(rpm)): + self.cache_rpm(options.myplc_url) + utils.header('Installing the : %s'%rpm) + self.run_in_host('rpm -Uvh '+rpm) self.run_in_host('service plc mount') return True @@ -278,7 +293,7 @@ class TestPlc: ### def configure(self,options): - tmpname='%s/%s.plc-config-tty'%(options.path,self.name()) + tmpname='%s.plc-config-tty'%(self.name()) fileconf=open(tmpname,'w') for var in [ 'PLC_NAME', 'PLC_ROOT_PASSWORD', @@ -501,7 +516,9 @@ class TestPlc: test_site = TestSite (self,site_spec) for node_spec in site_spec['nodes']: test_node=TestNode (self,test_site,node_spec) - test_node.create_boot_cd(options.path) + test_node.prepare_area() + test_node.create_boot_cd() + test_node.configure_qemu() return True def do_check_intiscripts(self): @@ -562,7 +579,7 @@ class TestPlc: return True def stop_nodes (self, options): - self.kill_all_qemus() + self.kill_all_qemus(options) return True def check_tcp (self, options):