Update tests
[ganeti-github.git] / test / py / ganeti.hypervisor.hv_xen_unittest.py
index 3679de4..2584c0d 100755 (executable)
@@ -30,6 +30,7 @@ import os
 
 from ganeti import constants
 from ganeti import objects
+from ganeti import pathutils
 from ganeti import hypervisor
 from ganeti import utils
 from ganeti import errors
@@ -491,7 +492,6 @@ class _TestXenHypervisor(object):
       self.fail("Unhandled command: %s" % (cmd, ))
 
     return self._SuccessCommand(output, cmd)
-    #return self._FailingCommand(cmd)
 
   def _MakeInstance(self):
     # Copy default parameters
@@ -519,6 +519,7 @@ class _TestXenHypervisor(object):
 
   def testStartInstance(self):
     (inst, disks) = self._MakeInstance()
+    pathutils.LOG_XEN_DIR = self.tmpdir
 
     for failcreate in [False, True]:
       for paused in [False, True]:
@@ -537,11 +538,12 @@ class _TestXenHypervisor(object):
         if failcreate:
           self.assertRaises(errors.HypervisorError, hv.StartInstance,
                             inst, disks, paused)
+          # Check whether a stale config file is left behind
+          self.assertFalse(os.path.exists(cfgfile))
         else:
           hv.StartInstance(inst, disks, paused)
-
-        # Check if configuration was updated
-        lines = utils.ReadFile(cfgfile).splitlines()
+          # Check if configuration was updated
+          lines = utils.ReadFile(cfgfile).splitlines()
 
         if constants.HV_VNC_PASSWORD_FILE in inst.hvparams:
           self.assertTrue(("vncpasswd = '%s'" % self.vncpw) in lines)
@@ -550,10 +552,16 @@ class _TestXenHypervisor(object):
           self.assertTrue(("extra = '%s'" % extra) in lines)
 
   def _StopInstanceCommand(self, instance_name, force, fail, cmd):
-    if ((force and cmd[:2] == [self.CMD, "destroy"]) or
-        (not force and cmd[:2] == [self.CMD, "shutdown"])):
+    if (cmd == [self.CMD, "list"]):
+      output = "Name  ID  Mem  VCPUs  State  Time(s)\n" \
+        "Domain-0  0  1023  1  r-----  142691.0\n" \
+        "%s  417  128  1  r-----  3.2\n" % instance_name
+    elif cmd[:2] == [self.CMD, "destroy"]:
       self.assertEqual(cmd[2:], [instance_name])
       output = ""
+    elif not force and cmd[:3] == [self.CMD, "shutdown", "-w"]:
+      self.assertEqual(cmd[3:], [instance_name])
+      output = ""
     else:
       self.fail("Unhandled command: %s" % (cmd, ))
 
@@ -582,7 +590,8 @@ class _TestXenHypervisor(object):
           try:
             hv._StopInstance(name, force)
           except errors.HypervisorError, err:
-            self.assertTrue(str(err).startswith("Failed to stop instance"))
+            self.assertTrue(str(err).startswith("xm list failed"),
+                            msg=str(err))
           else:
             self.fail("Exception was not raised")
           self.assertEqual(utils.ReadFile(cfgfile), cfgdata,