Revision 75bf3149 test/py/ganeti.hypervisor.hv_xen_unittest.py
b/test/py/ganeti.hypervisor.hv_xen_unittest.py | ||
---|---|---|
412 | 412 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_LIST]) |
413 | 413 |
|
414 | 414 |
|
415 |
class TestXenHypervisorCheckToolstack(unittest.TestCase): |
|
416 |
|
|
417 |
def setUp(self): |
|
418 |
self.tmpdir = tempfile.mkdtemp() |
|
419 |
self.cfg_name = "xen_config" |
|
420 |
self.cfg_path = utils.PathJoin(self.tmpdir, self.cfg_name) |
|
421 |
self.hv = hv_xen.XenHypervisor() |
|
422 |
|
|
423 |
def tearDown(self): |
|
424 |
shutil.rmtree(self.tmpdir) |
|
425 |
|
|
426 |
def testBinaryNotFound(self): |
|
427 |
RESULT_FAILED = utils.RunResult(1, None, "", "", "", None, None) |
|
428 |
mock_run_cmd = mock.Mock(return_value=RESULT_FAILED) |
|
429 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
430 |
_run_cmd_fn=mock_run_cmd) |
|
431 |
result = hv._CheckToolstackBinary("xl") |
|
432 |
self.assertFalse(result) |
|
433 |
|
|
434 |
def testCheckToolstackXlConfigured(self): |
|
435 |
RESULT_OK = utils.RunResult(0, None, "", "", "", None, None) |
|
436 |
mock_run_cmd = mock.Mock(return_value=RESULT_OK) |
|
437 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
438 |
_run_cmd_fn=mock_run_cmd) |
|
439 |
result = hv._CheckToolstackXlConfigured() |
|
440 |
self.assertTrue(result) |
|
441 |
|
|
442 |
def testCheckToolstackXlNotConfigured(self): |
|
443 |
RESULT_FAILED = utils.RunResult( |
|
444 |
1, None, "", |
|
445 |
"ERROR: A different toolstack (xm) have been selected!", |
|
446 |
"", None, None) |
|
447 |
mock_run_cmd = mock.Mock(return_value=RESULT_FAILED) |
|
448 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
449 |
_run_cmd_fn=mock_run_cmd) |
|
450 |
result = hv._CheckToolstackXlConfigured() |
|
451 |
self.assertFalse(result) |
|
452 |
|
|
453 |
def testCheckToolstackXlFails(self): |
|
454 |
RESULT_FAILED = utils.RunResult( |
|
455 |
1, None, "", |
|
456 |
"ERROR: The pink bunny hid the binary.", |
|
457 |
"", None, None) |
|
458 |
mock_run_cmd = mock.Mock(return_value=RESULT_FAILED) |
|
459 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
460 |
_run_cmd_fn=mock_run_cmd) |
|
461 |
self.assertRaises(errors.HypervisorError, hv._CheckToolstackXlConfigured) |
|
462 |
|
|
463 |
|
|
415 | 464 |
class TestXenHypervisorWriteConfigFile(unittest.TestCase): |
416 | 465 |
def setUp(self): |
417 | 466 |
self.tmpdir = tempfile.mkdtemp() |
... | ... | |
436 | 485 |
self.fail("Exception was not raised") |
437 | 486 |
|
438 | 487 |
|
488 |
class TestXenHypervisorVerify(unittest.TestCase): |
|
489 |
|
|
490 |
def setUp(self): |
|
491 |
output = testutils.ReadTestData("xen-xm-info-4.0.1.txt") |
|
492 |
self._result_ok = utils.RunResult(0, None, output, "", "", None, None) |
|
493 |
|
|
494 |
def testVerify(self): |
|
495 |
hvparams = {constants.HV_XEN_CMD : constants.XEN_CMD_XL} |
|
496 |
mock_run_cmd = mock.Mock(return_value=self._result_ok) |
|
497 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
498 |
_run_cmd_fn=mock_run_cmd) |
|
499 |
hv._CheckToolstack = mock.Mock(return_value=True) |
|
500 |
result = hv.Verify(hvparams) |
|
501 |
self.assertTrue(result is None) |
|
502 |
|
|
503 |
def testVerifyToolstackNotOk(self): |
|
504 |
hvparams = {constants.HV_XEN_CMD : constants.XEN_CMD_XL} |
|
505 |
mock_run_cmd = mock.Mock(return_value=self._result_ok) |
|
506 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
507 |
_run_cmd_fn=mock_run_cmd) |
|
508 |
hv._CheckToolstack = mock.Mock() |
|
509 |
hv._CheckToolstack.side_effect = errors.HypervisorError("foo") |
|
510 |
result = hv.Verify(hvparams) |
|
511 |
self.assertTrue(result is not None) |
|
512 |
|
|
513 |
def testVerifyFailing(self): |
|
514 |
result_failed = utils.RunResult(1, None, "", "", "", None, None) |
|
515 |
mock_run_cmd = mock.Mock(return_value=result_failed) |
|
516 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
517 |
_run_cmd_fn=mock_run_cmd) |
|
518 |
hv._CheckToolstack = mock.Mock(return_value=True) |
|
519 |
result = hv.Verify() |
|
520 |
self.assertTrue(result is not None) |
|
521 |
|
|
522 |
|
|
439 | 523 |
class _TestXenHypervisor(object): |
440 | 524 |
TARGET = NotImplemented |
441 | 525 |
CMD = NotImplemented |
... | ... | |
565 | 649 |
"testinstance.example.com", |
566 | 650 |
]) |
567 | 651 |
|
568 |
def testVerify(self): |
|
569 |
output = testutils.ReadTestData("xen-xm-info-4.0.1.txt") |
|
570 |
hv = self._GetHv(run_cmd=compat.partial(self._SuccessCommand, |
|
571 |
output)) |
|
572 |
self.assertTrue(hv.Verify() is None) |
|
573 |
|
|
574 |
def testVerifyFailing(self): |
|
575 |
hv = self._GetHv(run_cmd=self._FailingCommand) |
|
576 |
self.assertTrue("failed:" in hv.Verify()) |
|
577 |
|
|
578 | 652 |
def _StartInstanceCommand(self, inst, paused, failcreate, cmd): |
579 | 653 |
if cmd == [self.CMD, "info"]: |
580 | 654 |
output = testutils.ReadTestData("xen-xm-info-4.0.1.txt") |
Also available in: Unified diff