def test_defined_no_change(test): """ defined state test, no change required case. """ with patch.dict(virt.__opts__, {"test": test}): init_mock = MagicMock(return_value=True) update_mock = MagicMock(return_value={"definition": False}) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm"]), "virt.update": update_mock, "virt.init": init_mock, }, ): assert virt.defined("myvm") == { "name": "myvm", "changes": {}, "result": True, "comment": "Domain myvm unchanged", } init_mock.assert_not_called() assert update_mock.call_args_list == [ domain_update_call("myvm", test=test) ]
def test_defined_update_definition_error(test): """ defined state test, with definition update failure """ with patch.dict(virt.__opts__, {"test": test}): init_mock = MagicMock(return_value=True) update_mock = MagicMock( side_effect=[virt.libvirt.libvirtError("error message")]) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm"]), "virt.update": update_mock, "virt.init": init_mock, }, ): assert virt.defined("myvm", cpu=2) == { "name": "myvm", "changes": {}, "result": False, "comment": "error message", } init_mock.assert_not_called() assert update_mock.call_args_list == [ domain_update_call("myvm", cpu=2, test=test) ]
def test_defined_update(test): """ defined state test, with change required case. """ with patch.dict(virt.__opts__, {"test": test}): init_mock = MagicMock(return_value=True) update_mock = MagicMock(return_value={"definition": True, "cpu": True}) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm"]), "virt.update": update_mock, "virt.init": init_mock, }, ): boot = { "kernel": "/root/f8-i386-vmlinuz", "initrd": "/root/f8-i386-initrd", "cmdline": "console=ttyS0 ks=http://example.com/f8-i386/os/", } assert virt.defined("myvm", cpu=2, boot=boot,) == { "name": "myvm", "changes": {"myvm": {"definition": True, "cpu": True}}, "result": True if not test else None, "comment": "Domain myvm updated", } init_mock.assert_not_called() assert update_mock.call_args_list == [ domain_update_call("myvm", cpu=2, test=test, boot=boot) ]
def test_defined_update_error(test): """ defined state test, with error during the update. """ with patch.dict(virt.__opts__, {"test": test}): init_mock = MagicMock(return_value=True) update_mock = MagicMock(return_value={ "definition": True, "cpu": False, "errors": ["some error"] }) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=["myvm"]), "virt.update": update_mock, "virt.init": init_mock, }, ): assert virt.defined("myvm", cpu=2, boot_dev="cdrom hd") == { "name": "myvm", "changes": { "myvm": { "definition": True, "cpu": False, "errors": ["some error"], } }, "result": True if not test else None, "comment": "Domain myvm updated with live update(s) failures", } init_mock.assert_not_called() update_mock.assert_called_with( "myvm", cpu=2, boot_dev="cdrom hd", mem=None, disk_profile=None, disks=None, nic_profile=None, interfaces=None, graphics=None, live=True, connection=None, username=None, password=None, boot=None, numatune=None, test=test, hypervisor_features=None, clock=None, serials=None, consoles=None, stop_on_reboot=False, host_devices=None, )
def test_defined_new_with_connection(test): """ defined state test, new guest with connection details passed case. """ with patch.dict(virt.__opts__, {"test": test}): init_mock = MagicMock(return_value=True) update_mock = MagicMock(side_effect=CommandExecutionError("not found")) with patch.dict( virt.__salt__, { "virt.list_domains": MagicMock(return_value=[]), "virt.init": init_mock, "virt.update": update_mock, }, ): disks = [ { "name": "system", "size": 8192, "overlay_image": True, "pool": "default", "image": "/path/to/image.qcow2", }, { "name": "data", "size": 16834 }, ] ifaces = [ { "name": "eth0", "mac": "01:23:45:67:89:AB" }, { "name": "eth1", "type": "network", "source": "admin" }, ] graphics = { "type": "spice", "listen": { "type": "address", "address": "192.168.0.1" }, } serials = [ { "type": "tcp", "port": 22223, "protocol": "telnet" }, { "type": "pty" }, ] consoles = [ { "type": "tcp", "port": 22223, "protocol": "telnet" }, { "type": "pty" }, ] assert virt.defined( "myvm", cpu=2, mem=2048, boot_dev="cdrom hd", os_type="linux", arch="i686", vm_type="qemu", disk_profile="prod", disks=disks, nic_profile="prod", interfaces=ifaces, graphics=graphics, seed=False, install=False, pub_key="/path/to/key.pub", priv_key="/path/to/key", hypervisor_features={"kvm-hint-dedicated": True}, clock={"utc": True}, stop_on_reboot=True, connection="someconnection", username="******", password="******", serials=serials, consoles=consoles, host_devices=["pci_0000_00_17_0"], ) == { "name": "myvm", "result": True if not test else None, "changes": { "myvm": { "definition": True } }, "comment": "Domain myvm defined", } if not test: init_mock.assert_called_with( "myvm", cpu=2, mem=2048, boot_dev="cdrom hd", os_type="linux", arch="i686", disk="prod", disks=disks, nic="prod", interfaces=ifaces, graphics=graphics, hypervisor="qemu", seed=False, boot=None, numatune=None, install=False, start=False, pub_key="/path/to/key.pub", priv_key="/path/to/key", hypervisor_features={"kvm-hint-dedicated": True}, clock={"utc": True}, stop_on_reboot=True, connection="someconnection", username="******", password="******", serials=serials, consoles=consoles, host_devices=["pci_0000_00_17_0"], ) else: init_mock.assert_not_called() update_mock.assert_not_called()