Added a description directory.
[tests.git] / system / TestPlc.py
index 8345b32..6c2195b 100644 (file)
@@ -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):