コード例 #1
0
    def create(self):
        view = navigate_to(self, 'Add')
        # Need to provide the (optional) provider name to the form, not the object
        provider_formvalue = None
        if self.item_type == 'Orchestration':
            provider_formvalue = self.provider.name
        elif self.item_type == 'AnsibleTower':
            provider_formvalue = self.provider
        # For tests where orchestration template is None
        view.before_filling()
        view.fill({
            'name':
            self.name,
            'description':
            self.description,
            'display':
            self.display_in,
            'select_catalog':
            self.catalog.name,
            'select_dialog':
            self.dialog,
            'select_orch_template':
            self.orch_template.template_name if self.orch_template else None,
            'select_provider':
            provider_formvalue,
            'select_config_template':
            self.config_template
        })

        if view.field_entry_point.value == "":
            view.fill({'field_entry_point': 'a'})
            view.tree.click_path("Datastore", self.domain, "Service",
                                 "Provisioning", "StateMachines",
                                 "ServiceProvision_Template",
                                 "CatalogItemInitialization")
            view.apply_button.click()
        if self.appliance.version >= "5.7" and self.item_type == "AnsibleTower":
            view.fill({'retirement_entry_point': 'b'})
            view.tree.click_path("Datastore", self.domain, "Service",
                                 "Retirement", "StateMachines",
                                 "ServiceRetirement", "Generic")
            view.apply_button.click()

        if self.catalog_name is not None \
                and self.provisioning_data is not None \
                and not isinstance(self.provider, NoneType):
            tabstrip.select_tab("Request Info")
            tabstrip.select_tab("Catalog")
            row = view.template_table.row(name=self.catalog_name,
                                          provider=self.provider.name)
            row.click()
            request_form.fill(self.provisioning_data)
        view.add_button.click()
        view.flash.assert_success_message(
            'Service Catalog Item "{}" was added'.format(self.name))
        view = self.create_view(AllCatalogItemView)
        assert view.is_displayed
コード例 #2
0
ファイル: catalog_item.py プロジェクト: rananda/cfme_tests
    def create(self):
        # Create has sequential forms, the first is only the provider type
        navigate_to(self, 'Add')
        # For element not found exception (To be removed)
        sel.sleep(5)
        sel.select("//select[@id='st_prov_type']",
                   self.provider_type or self.item_type or 'Generic')

        sel.wait_for_element(basic_info_form.name_text)
        catalog = fakeobject_or_object(self.catalog, "name", "Unassigned")
        dialog = fakeobject_or_object(self.dialog, "name", "No Dialog")

        # Need to provide the (optional) provider name to the form, not the object
        provider_name = None
        provider_required_types = ['AnsibleTower', 'Orchestration']
        if self.item_type in provider_required_types \
                or self.provider_type in provider_required_types:
            provider_name = self.provider.name
        # For tests where orchestration template is None
        orch_template = None
        if self.orch_template:
            orch_template = self.orch_template.template_name

        fill(basic_info_form, {'name_text': self.name,
                               'description_text': self.description,
                               'display_checkbox': self.display_in,
                               'select_catalog': catalog.name,
                               'select_dialog': dialog.name,
                               'select_orch_template': orch_template,
                               'select_provider': provider_name,
                               'select_config_template': self.config_template})
        if not (self.item_type in provider_required_types):
            sel.click(basic_info_form.field_entry_point)
            if version.current_version() < "5.7":
                dynamic_tree.click_path("Datastore", self.domain, "Service", "Provisioning",
                                     "StateMachines", "ServiceProvision_Template", "default")
            else:
                entry_tree.click_path("Datastore", self.domain, "Service", "Provisioning",
                    "StateMachines", "ServiceProvision_Template", "default")
            sel.click(basic_info_form.apply_btn)
        if version.current_version() >= "5.7" and self.item_type == "AnsibleTower":
            sel.click(basic_info_form.retirement_entry_point)
            entry_tree.click_path("Datastore", self.domain, "Service", "Retirement",
                    "StateMachines", "ServiceRetirement", "Generic")
            sel.click(basic_info_form.apply_btn)
        if self.catalog_name is not None \
                and self.provisioning_data is not None \
                and not isinstance(self.provider, NoneType):
            tabstrip.select_tab("Request Info")
            tabstrip.select_tab("Catalog")
            template = template_select_form.template_table.find_row_by_cells({
                'Name': self.catalog_name,
                'Provider': self.provider.name
            })
            sel.click(template)
            request_form.fill(self.provisioning_data)
        sel.click(template_select_form.add_button)
コード例 #3
0
ファイル: test_operations.py プロジェクト: FilipB/cfme_tests
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()
コード例 #4
0
ファイル: catalog_item.py プロジェクト: dajohnso/cfme_tests
    def create(self):
        view = navigate_to(self, 'Add')
        # Need to provide the (optional) provider name to the form, not the object
        provider_formvalue = None
        if self.item_type == 'Orchestration':
            provider_formvalue = self.provider.name
        elif self.item_type == 'AnsibleTower':
            provider_formvalue = self.provider
        # For tests where orchestration template is None
        view.before_filling()
        view.fill({'name': self.name,
                   'description': self.description,
                   'display': self.display_in,
                   'select_catalog': self.catalog.name,
                   'select_dialog': self.dialog,
                   'select_orch_template': self.orch_template.template_name
                   if self.orch_template else None,
                   'select_provider': provider_formvalue,
                   'select_config_template': self.config_template})

        if view.field_entry_point.value == "":
            view.fill({'field_entry_point': 'a'})
            view.tree.click_path(
                "Datastore", self.domain, "Service", "Provisioning",
                "StateMachines", "ServiceProvision_Template", "CatalogItemInitialization")
            view.apply_button.click()
        if self.appliance.version >= "5.7" and self.item_type == "AnsibleTower":
            view.fill({'retirement_entry_point': 'b'})
            view.tree.click_path(
                "Datastore", self.domain, "Service", "Retirement",
                "StateMachines", "ServiceRetirement", "Generic")
            view.apply_button.click()

        if self.catalog_name is not None \
                and self.provisioning_data is not None \
                and not isinstance(self.provider, NoneType):
            tabstrip.select_tab("Request Info")
            tabstrip.select_tab("Catalog")
            row = view.template_table.row(name=self.catalog_name, provider=self.provider.name)
            row.click()
            request_form.fill(self.provisioning_data)
        view.add_button.click()
        view.flash.assert_success_message('Service Catalog Item "{}" was added'.format(self.name))
        view = self.create_view(AllCatalogItemView)
        assert view.is_displayed
コード例 #5
0
    def create(self):
        # Create has sequential forms, the first is only the provider type
        navigate_to(self, 'Add')
        sel.select("//select[@id='st_prov_type']",
                   self.provider_type or self.item_type or 'Generic')
        sel.wait_for_element(basic_info_form.name_text)
        catalog = fakeobject_or_object(self.catalog, "name", "Unassigned")
        dialog = fakeobject_or_object(self.dialog, "name", "No Dialog")

        fill(basic_info_form, {'name_text': self.name,
                               'description_text': self.description,
                               'display_checkbox': self.display_in,
                               'select_catalog': catalog.name,
                               'select_dialog': dialog.name,
                               'select_orch_template': self.orch_template,
                               'select_provider': self.provider_type,
                               'select_config_template': self.config_template})
        if sel.text(basic_info_form.field_entry_point) == "":
            sel.click(basic_info_form.field_entry_point)
            if version.current_version() < "5.7":
                dynamic_tree.click_path("Datastore", self.domain, "Service", "Provisioning",
                                     "StateMachines", "ServiceProvision_Template", "default")
            else:
                entry_tree.click_path("Datastore", self.domain, "Service", "Provisioning",
                                     "StateMachines", "ServiceProvision_Template", "default")
            sel.click(basic_info_form.apply_btn)
        if self.catalog_name is not None and self.provisioning_data is not None:
            tabstrip.select_tab("Request Info")
            # Address BZ1321631
            tabstrip.select_tab("Environment")
            tabstrip.select_tab("Catalog")
            template = template_select_form.template_table.find_row_by_cells({
                'Name': self.catalog_name,
                # HACK to workaround BZ1390209
                # revert back to Provider once it's fixed
                'Deprecated' if BZ(1390209, forced_streams=["5.7", "upstream"]).blocks else
                'Provider': self.provider
            })
            sel.click(template)
            request_form.fill(self.provisioning_data)
        sel.click(template_select_form.add_button)
コード例 #6
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()