Пример #1
0
def assign_custom_compute_rate(obj_type, chargeback_rate, provider):
    """Assign custom Compute rate for Labeled Container Images
    Args:
        :py:type:`str` obj_type: Object being tested; only 'Project' and 'Image' are supported
        :py:class:`ComputeRate` chargeback_rate: The chargeback rate object
        :py:class:`ContainersProvider` provider: The containers provider
    """
    if obj_type == 'Image':
        compute_assign = assignments.ComputeAssign(
            assign_to="Labeled Container Images",
            docker_labels="architecture",
            selections={'x86_64': {
                'Rate': chargeback_rate.description
            }})
        logger.info('ASSIGNING COMPUTE RATE FOR LABELED CONTAINER IMAGES')
    elif obj_type == 'Project':
        compute_assign = assignments.ComputeAssign(
            assign_to="Selected Providers",
            selections={provider.name: {
                'Rate': chargeback_rate.description
            }})
        logger.info('ASSIGNING CUSTOM COMPUTE RATE FOR PROJECT CHARGEBACK')
    else:
        raise Exception("Unknown object type: {}".format(obj_type))

    compute_assign.assign()
    logger.info('Rate - {}: {}'.format(chargeback_rate.description,
                                       chargeback_rate.fields))

    return chargeback_rate
def test_assign_compute_cluster(appliance, virtualcenter_provider):
    """
    Polarion:
        assignee: tpapaioa
        casecomponent: CandU
        caseimportance: medium
        initialEstimate: 1/12h
    """
    view = navigate_to(appliance.server, 'Chargeback')

    cluster_name = "{}/{}".format(
        virtualcenter_provider.name,
        random.choice(virtualcenter_provider.data["clusters"]))

    cluster = cb.ComputeAssign(assign_to='Selected Cluster / Deployment Roles',
                               selections={cluster_name: {
                                   'Rate': 'Default'
                               }})
    cluster.assign()

    assign_view = view.browser.create_view(AssignmentsView)

    row = assign_view.selections.row(name=cluster_name)
    selected_option = row.rate.widget.selected_option
    assert selected_option == "Default", 'Selection does not match'
def test_assign_compute_taggedvm(appliance, virtualcenter_provider):
    view = navigate_to(appliance.server, 'Chargeback')

    tagged_vm = cb.ComputeAssign(assign_to="Tagged VMs and Instances",
                                 tag_category="Location",
                                 selections={'Chicago': {
                                     'Rate': 'Default'
                                 }})
    tagged_vm.assign()

    assign_view = view.browser.create_view(AssignmentsView)
    row = assign_view.selections.row(name='Chicago')
    selected_option = row.rate.widget.selected_option
    assert selected_option == "Default", 'Selection does not match'
def test_assign_compute_provider(appliance, virtualcenter_provider):
    view = navigate_to(appliance.server, 'Chargeback')

    compute_provider = cb.ComputeAssign(
        assign_to='Selected Providers',
        selections={virtualcenter_provider.name: {
            'Rate': 'Default'
        }})
    compute_provider.assign()

    assign_view = view.browser.create_view(AssignmentsView)
    row = assign_view.selections.row(name=virtualcenter_provider.name)
    selected_option = row.rate.widget.selected_option
    assert selected_option == "Default", 'Selection does not match'
def test_assign_compute_enterprise(appliance, virtualcenter_provider):
    view = navigate_to(appliance.server, 'Chargeback')

    enterprise = cb.ComputeAssign(
        assign_to="The Enterprise",
        selections={'Enterprise': {
            'Rate': 'Default'
        }})
    enterprise.assign()

    # Assert that the selection made is listed on the UI
    assign_view = view.browser.create_view(AssignmentsView)
    row = assign_view.selections.row(name='Enterprise')
    selected_option = row.rate.widget.selected_option
    assert selected_option == "Default", 'Selection does not match'
def test_assign_compute_taggedvm(appliance, virtualcenter_provider):
    """
    Polarion:
        assignee: tpapaioa
        casecomponent: CandU
        caseimportance: medium
        initialEstimate: 1/12h
    """
    view = navigate_to(appliance.server, 'Chargeback')

    tagged_vm = cb.ComputeAssign(assign_to="Tagged VMs and Instances",
                                 tag_category="Location",
                                 selections={'Chicago': {
                                     'Rate': 'Default'
                                 }})
    tagged_vm.assign()

    assign_view = view.browser.create_view(AssignmentsView)
    row = assign_view.selections.row(name='Chicago')
    selected_option = row.rate.widget.selected_option
    assert selected_option == "Default", 'Selection does not match'
Пример #7
0
def assign_compute_rate(obj_type, compute_rate, provider):
    assign_custom_compute_rate(obj_type, compute_rate, provider)
    yield compute_rate
    assignments.ComputeAssign(assign_to="<Nothing>").assign()