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