Revision 58e356a9 test/py/ganeti.hypervisor.hv_xen_unittest.py
b/test/py/ganeti.hypervisor.hv_xen_unittest.py | ||
---|---|---|
27 | 27 |
import shutil |
28 | 28 |
import random |
29 | 29 |
import os |
30 |
import mock |
|
30 | 31 |
|
31 | 32 |
from ganeti import constants |
32 | 33 |
from ganeti import objects |
... | ... | |
335 | 336 |
self.assertRaises(KeyError, hv_xen._GetConfigFileDiskData, disks, "sd") |
336 | 337 |
|
337 | 338 |
|
338 |
class TestXenHypervisorUnknownCommand(unittest.TestCase): |
|
339 |
def test(self): |
|
339 |
class TestXenHypervisorRunXen(unittest.TestCase): |
|
340 |
|
|
341 |
XEN_SUB_CMD = "help" |
|
342 |
|
|
343 |
def testCommandUnknown(self): |
|
340 | 344 |
cmd = "#unknown command#" |
341 | 345 |
self.assertFalse(cmd in constants.KNOWN_XEN_COMMANDS) |
342 | 346 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
... | ... | |
344 | 348 |
_cmd=cmd) |
345 | 349 |
self.assertRaises(errors.ProgrammerError, hv._RunXen, []) |
346 | 350 |
|
351 |
def testCommandValid(self): |
|
352 |
xen_cmd = "xm" |
|
353 |
mock_run_cmd = mock.Mock() |
|
354 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
355 |
_run_cmd_fn=mock_run_cmd) |
|
356 |
hv._RunXen([self.XEN_SUB_CMD]) |
|
357 |
mock_run_cmd.assert_called_with([xen_cmd, self.XEN_SUB_CMD]) |
|
358 |
|
|
359 |
def testCommandFromHvparams(self): |
|
360 |
expected_xen_cmd = "xl" |
|
361 |
hvparams = {constants.HV_XEN_CMD: constants.XEN_CMD_XL} |
|
362 |
mock_run_cmd = mock.Mock() |
|
363 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
364 |
_run_cmd_fn=mock_run_cmd) |
|
365 |
hv._RunXen([self.XEN_SUB_CMD], hvparams=hvparams) |
|
366 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_SUB_CMD]) |
|
367 |
|
|
368 |
|
|
369 |
class TestXenHypervisorGetInstanceList(unittest.TestCase): |
|
370 |
|
|
371 |
RESULT_OK = utils.RunResult(0, None, "", "", "", None, None) |
|
372 |
XEN_LIST = "list" |
|
373 |
|
|
374 |
def testOk(self): |
|
375 |
expected_xen_cmd = "xm" |
|
376 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK ) |
|
377 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
378 |
_run_cmd_fn=mock_run_cmd) |
|
379 |
hv._GetInstanceList(True) |
|
380 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_LIST]) |
|
381 |
|
|
382 |
def testFromHvparams(self): |
|
383 |
expected_xen_cmd = "xl" |
|
384 |
hvparams = {constants.HV_XEN_CMD: constants.XEN_CMD_XL} |
|
385 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK ) |
|
386 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
387 |
_run_cmd_fn=mock_run_cmd) |
|
388 |
hv._GetInstanceList(True, hvparams=hvparams) |
|
389 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_LIST]) |
|
390 |
|
|
391 |
|
|
392 |
class TestXenHypervisorListInstances(unittest.TestCase): |
|
393 |
|
|
394 |
RESULT_OK = utils.RunResult(0, None, "", "", "", None, None) |
|
395 |
XEN_LIST = "list" |
|
396 |
|
|
397 |
def testDefaultXm(self): |
|
398 |
expected_xen_cmd = "xm" |
|
399 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK ) |
|
400 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
401 |
_run_cmd_fn=mock_run_cmd) |
|
402 |
hv.ListInstances() |
|
403 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_LIST]) |
|
404 |
|
|
405 |
def testHvparamsXl(self): |
|
406 |
expected_xen_cmd = "xl" |
|
407 |
hvparams = {constants.HV_XEN_CMD: constants.XEN_CMD_XL} |
|
408 |
mock_run_cmd = mock.Mock( return_value=self.RESULT_OK ) |
|
409 |
hv = hv_xen.XenHypervisor(_cfgdir=NotImplemented, |
|
410 |
_run_cmd_fn=mock_run_cmd) |
|
411 |
hv.ListInstances(hvparams=hvparams) |
|
412 |
mock_run_cmd.assert_called_with([expected_xen_cmd, self.XEN_LIST]) |
|
413 |
|
|
347 | 414 |
|
348 | 415 |
class TestXenHypervisorWriteConfigFile(unittest.TestCase): |
349 | 416 |
def setUp(self): |
... | ... | |
620 | 687 |
|
621 | 688 |
if fail: |
622 | 689 |
try: |
623 |
hv._StopInstance(name, force) |
|
690 |
hv._StopInstance(name, force, None)
|
|
624 | 691 |
except errors.HypervisorError, err: |
625 | 692 |
self.assertTrue(str(err).startswith("Failed to stop instance")) |
626 | 693 |
else: |
... | ... | |
629 | 696 |
msg=("Configuration was removed when stopping" |
630 | 697 |
" instance failed")) |
631 | 698 |
else: |
632 |
hv._StopInstance(name, force) |
|
699 |
hv._StopInstance(name, force, None)
|
|
633 | 700 |
self.assertFalse(os.path.exists(cfgfile)) |
634 | 701 |
|
635 | 702 |
def _MigrateNonRunningInstCmd(self, cmd): |
Also available in: Unified diff