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()
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()
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 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()