コード例 #1
0
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)
            ]
コード例 #2
0
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)
            ]
コード例 #3
0
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)
            ]
コード例 #4
0
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,
            )
コード例 #5
0
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()