def generated_request(appliance, infra_provider, provider_data, provisioning,
                      template_name, vm_name):
    """Creates a provision request, that is not automatically approved, and returns the search data.

    After finishing the test, request should be automatically deleted.

    Slightly modified code from :py:module:`cfme.tests.infrastructure.test_provisioning`
    """
    first_name = fauxfactory.gen_alphanumeric()
    last_name = fauxfactory.gen_alphanumeric()
    notes = fauxfactory.gen_alphanumeric()
    e_mail = "{}@{}.test".format(first_name, last_name)
    host, datastore = map(provisioning.get, ('host', 'datastore'))
    vm = Vm(name=vm_name, provider=infra_provider, template_name=template_name)
    navigate_to(vm, 'ProvisionVM')

    provisioning_data = {
        'email': e_mail,
        'first_name': first_name,
        'last_name': last_name,
        'notes': notes,
        'vm_name': vm_name,
        'host_name': {
            'name': [host]
        },
        'datastore_name': {
            'name': [datastore]
        },
        'num_vms': "10",  # so it won't get auto-approved
    }

    # Same thing, different names. :\
    if provider_data["type"] == 'rhevm':
        provisioning_data['provision_type'] = 'Native Clone'
    elif provider_data["type"] == 'virtualcenter':
        provisioning_data['provision_type'] = 'VMware'

    try:
        provisioning_data['vlan'] = provisioning['vlan']
    except KeyError:
        # provisioning['vlan'] is required for rhevm provisioning
        if provider_data["type"] == 'rhevm':
            raise pytest.fail(
                'rhevm requires a vlan value in provisioning info')

    fill(provisioning_form,
         provisioning_data,
         action=provisioning_form.submit_button)
    flash.assert_no_errors()
    request_cells = {
        "Description":
        "Provision from [{}] to [{}###]".format(template_name, vm_name),
    }
    yield request_cells

    browser().get(store.base_url)
    appliance.server.login_admin()

    requests.delete_request(request_cells)
    flash.assert_no_errors()
示例#2
0
def generated_request(provider, provider_data, provisioning, template_name, vm_name):
    """Creates a provision request, that is not automatically approved, and returns the search data.

    After finishing the test, request should be automatically deleted.

    Slightly modified code from :py:module:`cfme.tests.infrastructure.test_provisioning`
    """
    first_name = fauxfactory.gen_alphanumeric()
    last_name = fauxfactory.gen_alphanumeric()
    notes = fauxfactory.gen_alphanumeric()
    e_mail = "{}@{}.test".format(first_name, last_name)
    host, datastore = map(provisioning.get, ('host', 'datastore'))
    pytest.sel.force_navigate('infrastructure_provision_vms', context={
        'provider': provider,
        'template_name': template_name,
    })

    provisioning_data = {
        'email': e_mail,
        'first_name': first_name,
        'last_name': last_name,
        'notes': notes,
        'vm_name': vm_name,
        'host_name': {'name': [host]},
        'datastore_name': {'name': [datastore]},
        'num_vms': "10",    # so it won't get auto-approved
    }

    # Same thing, different names. :\
    if provider_data["type"] == 'rhevm':
        provisioning_data['provision_type'] = 'Native Clone'
    elif provider_data["type"] == 'virtualcenter':
        provisioning_data['provision_type'] = 'VMware'

    try:
        provisioning_data['vlan'] = provisioning['vlan']
    except KeyError:
        # provisioning['vlan'] is required for rhevm provisioning
        if provider_data["type"] == 'rhevm':
            raise pytest.fail('rhevm requires a vlan value in provisioning info')

    provisioning_form.fill(provisioning_data)
    pytest.sel.click(provisioning_form.submit_button)
    flash.assert_no_errors()
    request_cells = {
        "Description": "Provision from [{}] to [{}###]".format(template_name, vm_name),
    }
    yield request_cells

    browser().get(store.base_url)
    login_admin()

    requests.delete_request(request_cells)
    flash.assert_no_errors()
def generated_request(provider, provider_data, provisioning, template_name, vm_name):
    """Creates a provision request, that is not automatically approved, and returns the search data.

    After finishing the test, request should be automatically deleted.

    Slightly modified code from :py:module:`cfme.tests.infrastructure.test_provisioning`
    """
    first_name = fauxfactory.gen_alphanumeric()
    last_name = fauxfactory.gen_alphanumeric()
    notes = fauxfactory.gen_alphanumeric()
    e_mail = "{}@{}.test".format(first_name, last_name)
    host, datastore = map(provisioning.get, ("host", "datastore"))
    vm = Vm(name=vm_name, provider=provider, template_name=template_name)
    navigate_to(vm, "ProvisionVM")

    provisioning_data = {
        "email": e_mail,
        "first_name": first_name,
        "last_name": last_name,
        "notes": notes,
        "vm_name": vm_name,
        "host_name": {"name": [host]},
        "datastore_name": {"name": [datastore]},
        "num_vms": "10",  # so it won't get auto-approved
    }

    # Same thing, different names. :\
    if provider_data["type"] == "rhevm":
        provisioning_data["provision_type"] = "Native Clone"
    elif provider_data["type"] == "virtualcenter":
        provisioning_data["provision_type"] = "VMware"

    try:
        provisioning_data["vlan"] = provisioning["vlan"]
    except KeyError:
        # provisioning['vlan'] is required for rhevm provisioning
        if provider_data["type"] == "rhevm":
            raise pytest.fail("rhevm requires a vlan value in provisioning info")

    fill(provisioning_form, provisioning_data, action=provisioning_form.submit_button)
    flash.assert_no_errors()
    request_cells = {"Description": "Provision from [{}] to [{}###]".format(template_name, vm_name)}
    yield request_cells

    browser().get(store.base_url)
    login_admin()

    requests.delete_request(request_cells)
    flash.assert_no_errors()
示例#4
0
def test_copy_request(request, generated_request, vm_name, template_name):
    """Check if request gets properly copied."""
    new_vm_name = fauxfactory.gen_alphanumeric(length=16)
    cfme.provisioning.copy_request_by_vm_and_template_name(
        vm_name, template_name, {"vm_name": new_vm_name}, multi=True)
    request.addfinalizer(lambda: requests.delete_request({
        "Description": "Provision from [{}] to [{}###]".format(template_name, new_vm_name),
    }))
    assert cfme.provisioning.go_to_request_by_vm_and_template_name(
        new_vm_name, template_name, multi=True)
def test_copy_request(request, generated_request, vm_name, template_name):
    """Check if request gets properly copied."""
    new_vm_name = fauxfactory.gen_alphanumeric(length=16)
    cfme.provisioning.copy_request_by_vm_and_template_name(
        vm_name, template_name, {"vm_name": new_vm_name}, multi=True)
    request.addfinalizer(lambda: requests.delete_request({
        "Description": "Provision from [{}] to [{}###]".format(template_name, new_vm_name),
    }))
    assert cfme.provisioning.go_to_request_by_vm_and_template_name(
        new_vm_name, template_name, multi=True)
示例#6
0
def generated_request(provider, provider_data, provider_id):
    """Creates a provision request, that is not automatically approved, and returns the search data.

    After finishing the test, request should be automatically deleted.

    Slightly modified code from :py:module:`cfme.tests.infrastructure.test_provisioning`
    """
    vm_name = generate_random_string()
    first_name = generate_random_string()
    last_name = generate_random_string()
    notes = generate_random_string()
    e_mail = "{}@{}.test".format(first_name, last_name)
    provisioning = provider_data.get("provisioning", {})
    template, host, datastore = map(provisioning.get,
                                    ('template', 'host', 'datastore'))
    pytest.sel.force_navigate('infrastructure_provision_vms',
                              context={
                                  'provider': provider,
                                  'template_name': template,
                              })

    provisioning_data = {
        'email': e_mail,
        'first_name': first_name,
        'last_name': last_name,
        'notes': notes,
        'vm_name': vm_name,
        'host_name': {
            'name': [host]
        },
        'datastore_name': {
            'name': [datastore]
        },
        'num_vms': "10",  # so it won't get auto-approved
    }

    # Same thing, different names. :\
    if provider_data["type"] == 'rhevm':
        provisioning_data['provision_type'] = 'Native Clone'
    elif provider_data["type"] == 'virtualcenter':
        provisioning_data['provision_type'] = 'VMware'

    try:
        provisioning_data['vlan'] = provisioning['vlan']
    except KeyError:
        # provisioning['vlan'] is required for rhevm provisioning
        if provider_data["type"] == 'rhevm':
            raise pytest.fail(
                'rhevm requires a vlan value in provisioning info')

    provisioning_form.fill(provisioning_data)
    pytest.sel.click(provisioning_form.submit_button)
    flash.assert_no_errors()
    request_cells = {
        "Description":
        "Provision from [{}] to [{}###]".format(template, vm_name),
    }
    yield request_cells
    browser().get(env["base_url"])
    requests.delete_request(request_cells)
    flash.assert_no_errors()