Example #1
0
def test_scale_rs_wait(_replicas, _success):
    _name = 'test-rs'
    # Desired state:
    args = dict(name=_name, namespace='vms', replicas=5, wait=True)
    set_module_args(args)

    # Mock pre-change state:
    resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS)
    mymodule.KubeVirtVMIRS.find_supported_resource.return_value = openshiftdynamic.Resource(
        **resource_args)
    res_inst = openshiftdynamic.ResourceInstance(
        '', dict(kind=KIND, metadata={'name': _name}, spec={'replicas': 2}))
    openshiftdynamic.Resource.get.return_value = res_inst
    openshiftdynamic.Resource.search.return_value = [res_inst]

    # ~Final state, after patching the object (`replicas` match desired state)
    KubernetesRawModule.patch_resource.return_value = dict(
        kind=KIND, name=_name, metadata={'name': _name}, spec={'replicas':
                                                               5}), None

    # Final final state, as returned by resource.watch()
    final_obj = dict(metadata=dict(name=_name),
                     status=dict(readyReplicas=_replicas),
                     **resource_args)
    event = openshiftdynamic.ResourceInstance(None, final_obj)
    openshiftdynamic.Resource.watch.return_value = [dict(object=event)]

    # Run code:
    with pytest.raises(Exception) as result:
        mymodule.KubeVirtVMIRS().execute_module()

    # Verify result:
    assert result.value['success'] == _success
Example #2
0
def test_scale_rs_nowait(_replicas, _changed):
    _name = 'test-rs'
    # Desired state:
    args = dict(name=_name, namespace='vms', replicas=_replicas, wait=False)
    set_module_args(args)

    # Mock pre-change state:
    resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS)
    mymodule.KubeVirtVMIRS.find_supported_resource.return_value = openshiftdynamic.Resource(
        **resource_args)
    res_inst = openshiftdynamic.ResourceInstance(
        '', dict(kind=KIND, metadata={'name': _name}, spec={'replicas': 2}))
    openshiftdynamic.Resource.get.return_value = res_inst
    openshiftdynamic.Resource.search.return_value = [res_inst]

    # Final state, after patching the object
    KubernetesRawModule.patch_resource.return_value = dict(
        kind=KIND, metadata={'name': _name}, spec={'replicas':
                                                   _replicas}), None

    # Run code:
    with pytest.raises(AnsibleExitJson) as result:
        mymodule.KubeVirtVMIRS().execute_module()

    # Verify result:
    assert result.value['changed'] == _changed
Example #3
0
def test_vmpreset_is_absent():
    KIND = 'VirtulMachineInstancePreset'
    # Desired state:
    args = dict(state='absent', name='testvmipreset', namespace='vms')
    set_module_args(args)

    # State as "returned" by the "k8s cluster":
    resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS)
    KubeVirtRawModule.find_supported_resource.return_value = openshiftdynamic.Resource(
        **resource_args)
    openshiftdynamic.Resource.get.return_value = None  # Object doesn't exist in the cluster

    # Run code:
    with pytest.raises(AnsibleExitJson) as result:
        mymodule.KubeVirtVM().execute_module()

    # Verify result:
    assert not result.value['kubevirt_vm']
    assert result.value['method'] == 'delete'
Example #4
0
def test_create_vm_with_multus_nowait():
    # Desired state:
    args = dict(
        state='present',
        name='testvm',
        namespace='vms',
        interfaces=[
            {
                'bridge': {},
                'name': 'default',
                'network': {
                    'pod': {}
                }
            },
            {
                'bridge': {},
                'name': 'mynet',
                'network': {
                    'multus': {
                        'networkName': 'mynet'
                    }
                }
            },
        ],
        wait=False,
    )
    set_module_args(args)

    # State as "returned" by the "k8s cluster":
    resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS)
    KubeVirtRawModule.find_supported_resource.return_value = openshiftdynamic.Resource(
        **resource_args)
    openshiftdynamic.Resource.get.return_value = None  # Object doesn't exist in the cluster

    # Run code:
    with pytest.raises(AnsibleExitJson) as result:
        mymodule.KubeVirtVM().execute_module()

    # Verify result:
    assert result.value['changed']
    assert result.value['method'] == 'create'