cosmetic - more readable names for testlogs
[tests.git] / system / TestNode.py
index 2c94b78..5c2104e 100644 (file)
@@ -4,6 +4,7 @@ import xmlrpclib
 import utils
 from TestUser import TestUser
 from TestBox import TestBox
+from TestSsh import TestSsh
 
 class TestNode:
 
@@ -114,7 +115,8 @@ class TestNode:
         options = []
         if self.is_qemu():
             options=['serial']
-        encoded=self.test_plc.apiserver.GetBootMedium(self.test_plc.auth_root(), self.name(), 'node-iso', '', options)
+        encoded=self.test_plc.apiserver.GetBootMedium(self.test_plc.auth_root(), 
+                                                      self.name(), 'node-iso', '', options)
         if (encoded == ''):
             raise Exception, 'GetBootmedium failed'
 
@@ -126,12 +128,18 @@ class TestNode:
         else:
             file(filename,'w').write(base64.b64decode(encoded))
             return True
+
+    def reinstall_node (self):
+        self.test_plc.apiserver.UpdateNode(self.test_plc.auth_root(),
+                                           self.name(),{'boot_state':'rins'})
+        return True
     
     def configure_qemu(self):
         if not self.is_qemu():
             return
         mac=self.node_spec['network_fields']['mac']
         hostname=self.node_spec['node_fields']['hostname']
+        ip=self.node_spec['network_fields']['ip']
         auth=self.test_plc.auth_root()
         target_arch=self.test_plc.apiserver.GetPlcRelease(auth)['build']['target-arch']
         conf_filename="%s/qemu.conf"%(self.nodedir())
@@ -143,24 +151,31 @@ class TestNode:
         file.write('MACADDR=%s\n'%mac)
         file.write('NODE_ISO=%s.iso\n'%self.name())
         file.write('HOSTNAME=%s\n'%hostname)
+        file.write('IP=%s\n'%ip)
         file.write('TARGET_ARCH=%s\n'%target_arch)
         file.close()
+        return True
 
+    def export_qemu (self):
         # if relevant, push the qemu area onto the host box
         if self.test_box().is_local():
             return True
+        utils.header ("Cleaning any former sequel of %s on %s"%(self.name(),self.host_box()))
+        self.test_box().run_in_buildname("rm -rf %s"%self.nodedir())
         utils.header ("Transferring configuration files for node %s onto %s"%(self.name(),self.host_box()))
         return self.test_box().copy(self.nodedir(),recursive=True)==0
             
-    def start_node (self,options):
+    def start_node (self):
         model=self.node_spec['node_fields']['model']
         #starting the Qemu nodes before 
         if self.is_qemu():
-            self.start_qemu(options)
+            self.start_qemu()
         else:
             utils.header("TestNode.start_node : %s model %s taken as real node"%(self.name(),model))
+        return True
 
-    def start_qemu (self, options):
+    def start_qemu (self):
+        options = self.test_plc.options
         test_box = self.test_box()
         utils.header("Starting qemu node %s on %s"%(self.name(),test_box.hostname()))
 
@@ -170,7 +185,7 @@ class TestNode:
 
     def list_qemu (self):
         utils.header("Listing qemu for host %s on box %s"%(self.name(),self.test_box().hostname()))
-        command="qemu-%s/qemu-kill-node -l %s"%(self.name(),self.name())
+        command="%s/qemu-kill-node -l %s"%(self.nodedir(),self.name())
         self.test_box().run_in_buildname(command)
         return True
 
@@ -179,7 +194,7 @@ class TestNode:
         test_box = self.test_box()
         # kill the right processes 
         utils.header("Stopping qemu for host %s on box %s"%(self.name(),self.test_box().hostname()))
-        command="qemu-%s/qemu-kill-node %s"%(self.name(),self.name())
+        command="%s/qemu-kill-node %s"%(self.nodedir(),self.name())
         self.test_box().run_in_buildname(command)
         return True
 
@@ -187,5 +202,9 @@ class TestNode:
         if not self.is_qemu():
             return True
         remote_log="%s/qemu.log"%self.nodedir()
-        local_log="logs/%s-qemu.log"%self.name()
+        local_log="logs/node.qemu.%s.log"%self.name()
         self.test_box().test_ssh.fetch(remote_log,local_log)
+
+    def clear_known_hosts (self):
+        TestSsh(self.name()).clear_known_hosts()
+        return True