Revision d2e4e099 test/py/ganeti.hypervisor.hv_xen_unittest.py
b/test/py/ganeti.hypervisor.hv_xen_unittest.py | ||
---|---|---|
37 | 37 |
from ganeti import errors |
38 | 38 |
from ganeti import compat |
39 | 39 |
|
40 |
from ganeti.hypervisor import hv_base |
|
40 | 41 |
from ganeti.hypervisor import hv_xen |
41 | 42 |
|
42 | 43 |
import testutils |
... | ... | |
137 | 138 |
self.assertEqual(result[0][3], 1) |
138 | 139 |
|
139 | 140 |
# State |
140 |
self.assertEqual(result[0][4], "r-----")
|
|
141 |
self.assertEqual(result[0][4], hv_base.HvInstanceState.RUNNING)
|
|
141 | 142 |
|
142 | 143 |
# Time |
143 | 144 |
self.assertAlmostEqual(result[0][5], 121152.6) |
... | ... | |
166 | 167 |
def testTimeout(self): |
167 | 168 |
fn = testutils.CallCounter(self._Fail) |
168 | 169 |
try: |
169 |
hv_xen._GetInstanceList(fn, False, _timeout=0.1) |
|
170 |
hv_xen._GetRunningInstanceList(fn, False, _timeout=0.1)
|
|
170 | 171 |
except errors.HypervisorError, err: |
171 | 172 |
self.assertTrue("timeout exceeded" in str(err)) |
172 | 173 |
else: |
... | ... | |
184 | 185 |
|
185 | 186 |
fn = testutils.CallCounter(compat.partial(self._Success, data)) |
186 | 187 |
|
187 |
result = hv_xen._GetInstanceList(fn, True, _timeout=0.1) |
|
188 |
result = hv_xen._GetRunningInstanceList(fn, True, _timeout=0.1)
|
|
188 | 189 |
|
189 | 190 |
self.assertEqual(len(result), 4) |
190 | 191 |
|
... | ... | |
379 | 380 |
|
380 | 381 |
def testNoHvparams(self): |
381 | 382 |
expected_xen_cmd = "xm" |
382 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK )
|
|
383 |
mock_run_cmd = mock.Mock(return_value=self.RESULT_OK)
|
|
383 | 384 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
384 | 385 |
_run_cmd_fn=mock_run_cmd) |
385 | 386 |
self.assertRaises(errors.HypervisorError, hv._GetInstanceList, True, None) |
... | ... | |
387 | 388 |
def testFromHvparams(self): |
388 | 389 |
expected_xen_cmd = "xl" |
389 | 390 |
hvparams = {constants.HV_XEN_CMD: constants.XEN_CMD_XL} |
390 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK )
|
|
391 |
mock_run_cmd = mock.Mock(return_value=self.RESULT_OK)
|
|
391 | 392 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
392 | 393 |
_run_cmd_fn=mock_run_cmd) |
393 | 394 |
hv._GetInstanceList(True, hvparams) |
... | ... | |
401 | 402 |
|
402 | 403 |
def testNoHvparams(self): |
403 | 404 |
expected_xen_cmd = "xm" |
404 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK )
|
|
405 |
mock_run_cmd = mock.Mock(return_value=self.RESULT_OK)
|
|
405 | 406 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
406 | 407 |
_run_cmd_fn=mock_run_cmd) |
407 | 408 |
self.assertRaises(errors.HypervisorError, hv.ListInstances) |
... | ... | |
409 | 410 |
def testHvparamsXl(self): |
410 | 411 |
expected_xen_cmd = "xl" |
411 | 412 |
hvparams = {constants.HV_XEN_CMD: constants.XEN_CMD_XL} |
412 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK )
|
|
413 |
mock_run_cmd = mock.Mock(return_value=self.RESULT_OK)
|
|
413 | 414 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
414 | 415 |
_run_cmd_fn=mock_run_cmd) |
415 | 416 |
hv.ListInstances(hvparams=hvparams) |
... | ... | |
446 | 447 |
def testCheckToolstackXlNotConfigured(self): |
447 | 448 |
RESULT_FAILED = utils.RunResult( |
448 | 449 |
1, None, "", |
449 |
"ERROR: A different toolstack (xm) have been selected!",
|
|
450 |
"ERROR: A different toolstack (xm) has been selected!",
|
|
450 | 451 |
"", None, None) |
451 | 452 |
mock_run_cmd = mock.Mock(return_value=RESULT_FAILED) |
452 | 453 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
... | ... | |
610 | 611 |
self.assertEqual(instid, 1) |
611 | 612 |
self.assertEqual(memory, 1024) |
612 | 613 |
self.assertEqual(vcpus, 1) |
613 |
self.assertEqual(state, "-b----")
|
|
614 |
self.assertEqual(state, hv_base.HvInstanceState.RUNNING)
|
|
614 | 615 |
self.assertAlmostEqual(runtime, 167643.2) |
615 | 616 |
|
616 | 617 |
def testGetInstanceInfoDom0(self): |
... | ... | |
625 | 626 |
self.assertEqual(instid, 0) |
626 | 627 |
self.assertEqual(memory, 1023) |
627 | 628 |
self.assertEqual(vcpus, 1) |
628 |
self.assertEqual(state, "r-----")
|
|
629 |
self.assertEqual(state, hv_base.HvInstanceState.RUNNING)
|
|
629 | 630 |
self.assertAlmostEqual(runtime, 154706.1) |
630 | 631 |
|
631 | 632 |
def testGetInstanceInfoUnknown(self): |
... | ... | |
738 | 739 |
self.assertTrue(("extra = '%s'" % extra) in lines) |
739 | 740 |
|
740 | 741 |
def _StopInstanceCommand(self, instance_name, force, fail, cmd): |
741 |
if ((force and cmd[:2] == [self.CMD, "destroy"]) or |
|
742 |
(not force and cmd[:2] == [self.CMD, "shutdown"])): |
|
742 |
if (cmd == [self.CMD, "list"]): |
|
743 |
output = "Name ID Mem VCPUs State Time(s)\n" \ |
|
744 |
"Domain-0 0 1023 1 r----- 142691.0\n" \ |
|
745 |
"%s 417 128 1 r----- 3.2\n" % instance_name |
|
746 |
elif cmd[:2] == [self.CMD, "destroy"]: |
|
743 | 747 |
self.assertEqual(cmd[2:], [instance_name]) |
744 | 748 |
output = "" |
749 |
elif not force and cmd[:3] == [self.CMD, "shutdown", "-w"]: |
|
750 |
self.assertEqual(cmd[3:], [instance_name]) |
|
751 |
output = "" |
|
745 | 752 |
else: |
746 | 753 |
self.fail("Unhandled command: %s" % (cmd, )) |
747 | 754 |
|
... | ... | |
770 | 777 |
try: |
771 | 778 |
hv._StopInstance(name, force, None) |
772 | 779 |
except errors.HypervisorError, err: |
773 |
self.assertTrue(str(err).startswith("Failed to stop instance")) |
|
780 |
self.assertTrue(str(err).startswith("listing instances failed"), |
|
781 |
msg=str(err)) |
|
774 | 782 |
else: |
775 | 783 |
self.fail("Exception was not raised") |
776 | 784 |
self.assertEqual(utils.ReadFile(cfgfile), cfgdata, |
Also available in: Unified diff