コード例 #1
0
def test_tenant_quota_enforce_via_service_cloud(request, appliance, provider, setup_provider,
                                                context, set_roottenant_quota, set_default,
                                                custom_prov_data, extra_msg, template_name,
                                                catalog_item):
    """Test Tenant Quota in UI and SSUI

    Polarion:
        assignee: ghubale
        casecomponent: Cloud
        initialEstimate: 1/10h
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    assert provision_request.row.reason.text == "Quota Exceeded"

    @request.addfinalizer
    def delete():
        provision_request.remove_request()
        catalog_item.delete()
コード例 #2
0
def test_quota_tagging_infra_via_services(request, appliance, admin_email,
                                          context, set_entity_quota_tag,
                                          custom_prov_data, prov_data,
                                          catalog_item):
    """This test case verifies the quota tagging is working correctly for the infra providers.

    Polarion:
        assignee: ghubale
        casecomponent: Quota
        caseimportance: medium
        initialEstimate: 1/6h
        tags: quota
    """

    prov_data.update(custom_prov_data)
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #3
0
def test_quota_tagging_cloud_via_services(appliance, request, context,
                                          admin_email, set_entity_quota_tag,
                                          catalog_item):
    """Test Group and User Quota in UI and SSUI using tagging

    Polarion:
        assignee: ghubale
        casecomponent: Cloud
        initialEstimate: 1/6h
        tags: quota
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #4
0
def test_tenant_quota_enforce_via_service_infra(request, appliance, provider,
                                                setup_provider, context,
                                                set_roottenant_quota,
                                                extra_msg, custom_prov_data,
                                                catalog_item):
    """Tests quota enforcement via service infra

    Metadata:
        test_flag: quota
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    assert provision_request.row.reason.text == "Quota Exceeded"

    @request.addfinalizer
    def delete():
        provision_request.remove_request()
        catalog_item.delete()
コード例 #5
0
def test_quota_catalog_bundle_infra(request, appliance, admin_email, entities, custom_prov_data,
                                    prov_data, catalog_bundle, context, vm_name, template_name):
    """This test case verifies the quota assigned by automation method for user and group
       is working correctly for the infra providers by ordering catalog bundle.

    Polarion:
        assignee: ghubale
        initialEstimate: 1/4h
        casecomponent: Quota
        caseimportance: high
        tags: quota
        testSteps:
            1. Navigate to Automation > Automate > Explorer
            2. Add quota automation methods to domain
            3. Change 'quota_source_type' to 'user' or 'group'
            4. Create one or more catalogs to test quota by provisioning VMs over quota limit via UI
               or SSUI for user and group
            5. Add more than one catalog to catalog bundle and order catalog bundle
            6. Check whether quota is exceeded or not
    """
    prov_data.update(custom_prov_data)
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_bundle.catalog, catalog_bundle.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_bundle.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #6
0
def test_quota_tagging_infra_via_services(request, appliance, admin_email, context,
                                          set_entity_quota_tag, custom_prov_data, prov_data,
                                          catalog_item):
    """This test case verifies the quota tagging is working correctly for the infra providers.

    Polarion:
        assignee: ghubale
        casecomponent: Quota
        caseimportance: medium
        initialEstimate: 1/6h
        tags: quota
    """

    prov_data.update(custom_prov_data)
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #7
0
def test_quota_infra(request, appliance, admin_email, entities,
                     custom_prov_data, prov_data, catalog_item, context,
                     vm_name, template_name):
    """This test case verifies the quota assigned by automation method for user and group
       is working correctly for the infra providers.

    Polarion:
        assignee: ghubale
        initialEstimate: 1/4h
        casecomponent: Quota
        caseimportance: medium
        tags: quota
        testSteps:
            1. Navigate to Automation > Automate > Explorer
            2. Add quota automation methods to domain
            3. Change 'quota_source_type' to 'user' or 'group'
            4. Test quota by provisioning VMs over quota limit via UI or SSUI for user and group
            5. Check whether quota is exceeded or not
    """
    prov_data.update(custom_prov_data)
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #8
0
def test_quota_cloud_via_services(appliance, request, setup_provider,
                                  admin_email, entities, prov_data,
                                  catalog_item, context):
    """This test case verifies the quota assigned by automation method for user and group
       is working correctly for the cloud providers.

       Steps:
           1. Navigate to Automation > Automate > Explorer
           2. Add quota automation methods to domain
           3. Change 'quota_source_type' to 'user' or 'group'
           4. Test quota by provisioning instances over quota limit via UI or
              SSUI for user and group
           5. Check whether quota is exceeded or not

    Polarion:
        assignee: None
        initialEstimate: None
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = (
        "Provisioning Service [{catalog_item_name}] from [{catalog_item_name}]"
        .format(catalog_item_name=catalog_item.name))
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #9
0
def test_tenant_quota_enforce_via_service_infra(request, appliance, context,
                                                set_roottenant_quota,
                                                extra_msg, set_default,
                                                custom_prov_data,
                                                catalog_item):
    """Tests quota enforcement via service infra

    Polarion:
        assignee: ghubale
        casecomponent: Infra
        caseimportance: high
        initialEstimate: 1/8h
        tags: quota
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #10
0
def test_tenant_quota_enforce_via_service_cloud(request, appliance, provider,
                                                setup_provider, context,
                                                set_roottenant_quota,
                                                custom_prov_data, extra_msg,
                                                template_name, catalog_item):
    """Test Tenant Quota in UI and SSUI

    Polarion:
        assignee: ghubale
        casecomponent: cloud
        initialEstimate: 1/10h
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(
        catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    assert provision_request.row.reason.text == "Quota Exceeded"

    @request.addfinalizer
    def delete():
        provision_request.remove_request()
        catalog_item.delete()
コード例 #11
0
def test_quota_cloud_via_services(appliance, request, admin_email, entities, prov_data,
                                  catalog_item, context):
    """This test case verifies the quota assigned by automation method for user and group
       is working correctly for the cloud providers.

    Polarion:
        assignee: ghubale
        initialEstimate: 1/4h
        casecomponent: Cloud
        tags: quota
        testSteps:
           1. Navigate to Automation > Automate > Explorer
           2. Add quota automation methods to domain
           3. Change 'quota_source_type' to 'user' or 'group'
           4. Test quota by provisioning instances over quota limit via UI or
              SSUI for user and group
           5. Check whether quota is exceeded or not
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = ("Provisioning Service [{catalog_item_name}] from [{catalog_item_name}]"
                           .format(catalog_item_name=catalog_item.name))
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #12
0
def test_service_catalog_crud_ssui(appliance, setup_provider, context,
                                   order_service):
    """Tests Service Catalog in SSUI.

    Metadata:
        test_flag: ssui

    Polarion:
        assignee: sshveta
        initialEstimate: None
    """

    catalog_item = order_service
    with appliance.context.use(context):
        if appliance.version >= '5.9':
            dialog_values = {
                'service_name':
                "ssui_{}".format(fauxfactory.gen_alphanumeric())
            }
            service = ServiceCatalogs(appliance,
                                      name=catalog_item.name,
                                      dialog_values=dialog_values)
        else:
            service = ServiceCatalogs(appliance, name=catalog_item.name)
        service.add_to_shopping_cart()
        service.order()
コード例 #13
0
def test_service_catalog_crud(appliance, setup_provider, context, order_catalog_item_in_ops_ui):
    """Tests Service Catalog in SSUI."""

    service_name = order_catalog_item_in_ops_ui.name
    with appliance.context.use(context):
        appliance.server.login()
        service = ServiceCatalogs(appliance, name=service_name)
        service.add_to_shopping_cart()
        service.order()
コード例 #14
0
def test_service_catalog_crud(appliance, setup_provider, context,
                              order_catalog_item_in_ops_ui):
    """Tests Service Catalog in SSUI."""

    service_name = order_catalog_item_in_ops_ui
    with appliance.context.use(context):
        appliance.server.login()
        service = ServiceCatalogs(appliance, name=service_name)
        service.add_to_shopping_cart()
コード例 #15
0
def test_service_catalog_crud_ui(appliance, context, order_ansible_service_in_ops_ui, request):
    """Tests Ansible Service Catalog in SSUI."""

    service_name = order_ansible_service_in_ops_ui
    with appliance.context.use(context):
        service = ServiceCatalogs(appliance, name=service_name)
        service.add_to_shopping_cart()
        service.order()

        @request.addfinalizer
        def _finalize():
            _service = MyService(appliance, service_name)
            _service.delete()
コード例 #16
0
def test_quota_tagging_cloud_via_services(appliance, request, provider, setup_provider, context,
                                          admin_email, set_entity_quota_tag, catalog_item):
    """Test Group and User Quota in UI and SSUI using tagging"""
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #17
0
def test_service_catalog_crud_ssui(appliance, setup_provider,
                                   context, order_service):
    """Tests Service Catalog in SSUI."""

    catalog_item = order_service
    with appliance.context.use(context):
        if appliance.version >= '5.9':
            dialog_values = {'service_name': "ssui_{}".format(fauxfactory.gen_alphanumeric())}
            service = ServiceCatalogs(appliance, name=catalog_item.name,
                                      dialog_values=dialog_values)
        else:
            service = ServiceCatalogs(appliance, name=catalog_item.name)
        service.add_to_shopping_cart()
        service.order()
コード例 #18
0
def test_tenant_quota_enforce_via_service_infra(request, appliance, provider, setup_provider,
                                                context, set_roottenant_quota, extra_msg,
                                                custom_prov_data, catalog_item):
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    assert provision_request.row.reason.text == "Quota Exceeded"

    @request.addfinalizer
    def delete():
        provision_request.remove_request()
        catalog_item.delete()
コード例 #19
0
def test_service_catalog_crud(appliance, setup_provider, context,
                              provision_request):
    """Tests Service Catalog in SSUI."""

    catalog_item, provision_request = provision_request
    with appliance.context.use(context):
        if appliance.version >= '5.9':
            dialog_values = {
                'service_name':
                "ssui_{}".format(fauxfactory.gen_alphanumeric())
            }
            service = ServiceCatalogs(appliance,
                                      name=catalog_item.name,
                                      dialog_values=dialog_values)
        else:
            service = ServiceCatalogs(appliance, name=catalog_item.name)
        service.add_to_shopping_cart()
        service.order()
コード例 #20
0
def test_service_infra_tenant_quota_with_default_entry_point(
        request, appliance, context, set_roottenant_quota, extra_msg,
        set_default, custom_prov_data, catalog_item):
    """Test Tenant Quota in UI and SSUI by selecting field entry points.
       Quota has to be checked if it is working with field entry points also.

    Polarion:
        assignee: ghubale
        casecomponent: Infra
        caseimportance: medium
        initialEstimate: 1/12h
        tags: quota
        setup:
            1. Add infrastructure provider
            2. Set quota for root tenant - 'My Company'
            3. Navigate to services > catalogs
            4. Create catalog item with selecting following field entry points:
                a.provisioning_entry_point = /ManageIQ (Locked)/Infrastructure/VM/Provisioning
                /StateMachines/ProvisionRequestApproval/Default
                b.retirement_entry_point = /Service/Retirement/StateMachines/ServiceRetirement
                /Default
            5. Add other information required in catalog for provisioning VM
        testSteps:
            1. Order the catalog item via UI and SSUI individually
        expectedResults:
            1. Request of vm provisioning via service catalog should be denied with reason:
               "Quota Exceeded"
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                           catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{name}] from [{name}]'.format(
        name=catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #21
0
def test_simultaneous_tenant_quota(request, appliance, context, new_project,
                                   new_user_project, set_project_quota,
                                   custom_prov_data, catalog_item,
                                   set_default):
    """
    Bugzilla:
        1456819
        1401251

    Polarion:
        assignee: tpapaioa
        initialEstimate: 1/6h
        caseimportance: medium
        caseposneg: positive
        testtype: functional
        startsin: 5.8
        casecomponent: Provisioning
        tags: quota
        setup:
            1. Create tenant1 and tenant2.
            2. Create a project under tenant1 or tenant2
            3. Enable quota for cpu, memory or storage etc
            4. Create a group and add role super_administrator
            5. Create a user and add it to the group
        testSteps:
            1. Login with the newly created user in the service portal. Take multiple items which go
               over the allocated quota
        expectedResults:
            1. CFME should deny request with quota exceeded reason
    """
    with new_user_project:
        with appliance.context.use(context):
            appliance.server.login(new_user_project)
            service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                               catalog_item.name)
            if context is ViaSSUI:
                service_catalogs.add_to_shopping_cart()
            provision_request = service_catalogs.order()

    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #22
0
def test_service_catalog_crud_ui(appliance, context, order_ansible_service_in_ops_ui, request):
    """Tests Ansible Service Catalog in SSUI.

    Polarion:
        assignee: nansari
        initialEstimate: 1/4h
        casecomponent: Services
        tags: service
    """

    service_name = order_ansible_service_in_ops_ui
    with appliance.context.use(context):
        service = ServiceCatalogs(appliance, name=service_name)
        service.add_to_shopping_cart()
        service.order()

        @request.addfinalizer
        def _finalize():
            _service = MyService(appliance, service_name)
            _service.delete()
コード例 #23
0
def test_service_infra_tenant_quota_with_default_entry_point(request, appliance, context,
                                                             set_roottenant_quota, extra_msg,
                                                             set_default, custom_prov_data,
                                                             catalog_item):
    """Test Tenant Quota in UI and SSUI by selecting field entry points.
       Quota has to be checked if it is working with field entry points also.

    Polarion:
        assignee: ghubale
        casecomponent: Infra
        caseimportance: medium
        initialEstimate: 1/12h
        tags: quota
        setup:
            1. Add infrastructure provider
            2. Set quota for root tenant - 'My Company'
            3. Navigate to services > catalogs
            4. Create catalog item with selecting following field entry points:
                a.provisioning_entry_point = /ManageIQ (Locked)/Infrastructure/VM/Provisioning
                /StateMachines/ProvisionRequestApproval/Default
                b.retirement_entry_point = /Service/Retirement/StateMachines/ServiceRetirement
                /Default
            5. Add other information required in catalog for provisioning VM
        testSteps:
            1. Order the catalog item via UI and SSUI individually
        expectedResults:
            1. Request of vm provisioning via service catalog should be denied with reason:
               "Quota Exceeded"
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{name}] from [{name}]'.format(
        name=catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #24
0
def test_service_catalog_crud_ssui(appliance, setup_provider,
                                   context, order_service):
    """Tests Service Catalog in SSUI.

    Metadata:
        test_flag: ssui

    Polarion:
        assignee: nansari
        casecomponent: SelfServiceUI
        initialEstimate: 1/4h
        tags: ssui
    """

    catalog_item = order_service
    with appliance.context.use(context):
        dialog_values = {'service_name': "ssui_{}".format(fauxfactory.gen_alphanumeric())}
        service = ServiceCatalogs(appliance, name=catalog_item.name,
                                  dialog_values=dialog_values)
        service.add_to_shopping_cart()
        service.order()
コード例 #25
0
def test_service_catalog_crud_ssui(appliance, setup_provider,
                                   context, order_service):
    """Tests Service Catalog in SSUI.

    Metadata:
        test_flag: ssui

    Polarion:
        assignee: nansari
        casecomponent: SelfServiceUI
        initialEstimate: 1/4h
        tags: ssui
    """

    catalog_item = order_service
    with appliance.context.use(context):
        dialog_values = {'service_name': fauxfactory.gen_alphanumeric(start="ssui_")}
        service = ServiceCatalogs(appliance, name=catalog_item.name,
                                  dialog_values=dialog_values)
        service.add_to_shopping_cart()
        service.order()
コード例 #26
0
def test_tenant_quota_enforce_via_service_infra(request, appliance, context, set_roottenant_quota,
                                                extra_msg, set_default, custom_prov_data,
                                                catalog_item):
    """Tests quota enforcement via service infra

    Polarion:
        assignee: ghubale
        casecomponent: Infra
        caseimportance: high
        initialEstimate: 1/8h
        tags: quota
    """
    with appliance.context.use(context):
        service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog, catalog_item.name)
        if context is ViaSSUI:
            service_catalogs.add_to_shopping_cart()
        service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = 'Provisioning Service [{0}] from [{0}]'.format(catalog_item.name)
    provision_request = appliance.collections.requests.instantiate(request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #27
0
def test_quota_calculation_using_service_dialog_overrides(
        request, appliance, setup_provider, provider, domain_setup,
        set_child_tenant_quota, context, custom_prov_data, import_dialog,
        file_name, catalog, new_child_tenant_user):
    """
    This test case is to check Quota calculation using service dialog overrides.
    Bugzilla:
        1492158

    Polarion:
        assignee: ghubale
        initialEstimate: 1/6h
        caseimportance: medium
        caseposneg: positive
        testtype: functional
        startsin: 5.8
        casecomponent: Infra
        tags: quota
        testSteps:
            1. create a new domain quota_test
            2. Using the Automate Explorer, copy the
               ManageIQ/System/CommonMethods/QuotaMethods/requested method
               to the quota_test domain.
            3. Import the attached dialog. create catalog and catalog
               item using this dialog
            4. create a child tenant and set quota. create new group and
               user for this tenant.
            5. login with this user and provision by overriding values
            6. Also test the same for user and group quota source type
        expectedResults:
            1.
            2.
            3.
            4.
            5. Quota should be denied with reason for quota exceeded message
            6. Quota should be denied with reason for quota exceeded message
    """
    sd, ele_label = import_dialog
    prov_data = custom_prov_data
    catalog_item = appliance.collections.catalog_items.create(
        provider.catalog_item_type,
        name=fauxfactory.gen_alphanumeric(start="test_"),
        description=fauxfactory.gen_alphanumeric(start="desc_"),
        display_in=True,
        catalog=catalog,
        dialog=sd,
        prov_data=prov_data)
    request.addfinalizer(catalog_item.delete_if_exists)
    with new_child_tenant_user:
        with appliance.context.use(context):
            appliance.server.login(new_child_tenant_user)
            service_catalogs = ServiceCatalogs(appliance, catalog_item.catalog,
                                               catalog_item.name)
            if context is ViaSSUI:
                service_catalogs.add_to_shopping_cart()
            service_catalogs.order()
    # nav to requests page to check quota validation
    request_description = f'Provisioning Service [{catalog_item.name}] from [{catalog_item.name}]'
    provision_request = appliance.collections.requests.instantiate(
        request_description)
    provision_request.wait_for_request(method='ui')
    request.addfinalizer(provision_request.remove_request)
    assert provision_request.row.reason.text == "Quota Exceeded"
コード例 #28
0
def test_retire_owned_service(request, appliance, context,
                              user_self_service_role, generic_catalog_item):
    """

    Bugzilla:
        1628520

    Polarion:
        assignee: nansari
        startsin: 5.11
        casecomponent: SelfServiceUI
        initialEstimate: 1/6h
        testSteps:
            1. Create a catalog item as User
            2. Provision service in regular UI with user
            3. Login to Service UI as User
            4. Try to retire the service
        expectedResults:
            1.
            2.
            3.
            4. Service should retire
    """
    user, _ = user_self_service_role

    # login with user having self service role
    with user:
        with appliance.context.use(context):
            appliance.server.login(user)

            # order service from catalog item
            serv_cat = ServiceCatalogs(
                appliance,
                catalog=generic_catalog_item.catalog,
                name=generic_catalog_item.name,
            )

            if context == ViaSSUI:
                serv_cat.add_to_shopping_cart()

            provision_request = serv_cat.order()
            provision_request.wait_for_request()
            service = MyService(appliance, generic_catalog_item.dialog.label)

            @request.addfinalizer
            def _clear_request_service():
                if provision_request.exists():
                    provision_request.remove_request(method="rest")
                if service.exists:
                    service.delete()

            assert service.exists

            # Retire service
            retire_request = service.retire()
            assert retire_request.exists()

            @request.addfinalizer
            def _clear_retire_request():
                if retire_request.exists():
                    retire_request.remove_request()

            wait_for(lambda: service.is_retired,
                     delay=5,
                     num_sec=120,
                     fail_func=service.browser.refresh,
                     message="waiting for service retire")