def test_positive_deploy_configure_by_script(self, form_data, virtwho_config): """ Verify "GET /foreman_virt_who_configure/api/ v2/configs/:id/deploy_script" :id: 166ec4f8-e3fa-4555-9acb-1a5d693a42bb :expectedresults: Config can be created and deployed :CaseLevel: Integration :CaseImportance: High """ assert virtwho_config.status == 'unknown' script = virtwho_config.deploy_script() hypervisor_name, guest_name = deploy_configure_by_script( script['virt_who_config_script'], form_data['hypervisor_type'], debug=True) virt_who_instance = (entities.VirtWhoConfig().search( query={'search': f'name={virtwho_config.name}'})[0].status) assert virt_who_instance == 'ok' hosts = [ ( hypervisor_name, f'product_id={virtwho.sku.vdc_physical} and type=NORMAL', ), ( guest_name, f'product_id={virtwho.sku.vdc_physical} and type=STACK_DERIVED', ), ] for hostname, sku in hosts: if 'type=NORMAL' in sku: subscriptions = entities.Subscription().search( query={'search': sku}) vdc_id = subscriptions[0].id if 'type=STACK_DERIVED' in sku: vdc_id = self._get_guest_bonus(hypervisor_name, sku) host, time = wait_for( entities.Host().search, func_args=(None, { 'search': hostname }), fail_condition=[], timeout=5, delay=1, ) entities.HostSubscription(host=host[0].id).add_subscriptions( data={'subscriptions': [{ 'id': vdc_id, 'quantity': 1 }]}) result = entities.Host().search( query={'search': hostname})[0].read_json() assert result['subscription_status_label'] == 'Fully entitled' virtwho_config.delete() assert not entities.VirtWhoConfig().search( query={'search': f"name={form_data['name']}"})
def test_positive_deploy_configure_by_script(self, default_org, session, form_data): """Verify configure created and deployed with script. :id: b3903ccb-04cc-4867-b7ed-d5053d2bfe03 :expectedresults: 1. Config can be created and deployed by script 2. No error msg in /var/log/rhsm/rhsm.log 3. Report is sent to satellite 4. Virtual sku can be generated and attached 5. Config can be deleted :CaseLevel: Integration :CaseImportance: High """ name = gen_string('alpha') form_data['name'] = name with session: session.virtwho_configure.create(form_data) values = session.virtwho_configure.read(name) script = values['deploy']['script'] hypervisor_name, guest_name = deploy_configure_by_script( script, form_data['hypervisor_type'], debug=True, org=default_org.label ) assert session.virtwho_configure.search(name)[0]['Status'] == 'ok' hypervisor_display_name = session.contenthost.search(hypervisor_name)[0]['Name'] vdc_physical = f'product_id = {settings.virtwho.sku.vdc_physical} and type=NORMAL' vdc_virtual = f'product_id = {settings.virtwho.sku.vdc_physical} and type=STACK_DERIVED' session.contenthost.add_subscription(hypervisor_display_name, vdc_physical) assert session.contenthost.search(hypervisor_name)[0]['Subscription Status'] == 'green' session.contenthost.add_subscription(guest_name, vdc_virtual) assert session.contenthost.search(guest_name)[0]['Subscription Status'] == 'green' session.virtwho_configure.delete(name) assert not session.virtwho_configure.search(name)
def test_positive_deploy_configure_by_script(self, form_data, virtwho_config): """ Verify " hammer virt-who-config fetch" :id: ef0f1e33-7084-4d0e-95f1-d3080dfbb4cc :expectedresults: Config can be created, fetch and deploy :CaseLevel: Integration :CaseImportance: High """ assert virtwho_config['status'] == 'No Report Yet' script = VirtWhoConfig.fetch({'id': virtwho_config['id']}, output_format='base') hypervisor_name, guest_name = deploy_configure_by_script(script, debug=True) virt_who_instance = VirtWhoConfig.info({'id': virtwho_config['id']})[ 'general-information' ]['status'] assert virt_who_instance == 'OK' hosts = [ (hypervisor_name, f'product_id={settings.virtwho.sku_vdc_physical} and type=NORMAL'), (guest_name, f'product_id={settings.virtwho.sku_vdc_physical} and type=STACK_DERIVED'), ] for hostname, sku in hosts: host = Host.list({'search': hostname})[0] subscriptions = Subscription.list({'organization': DEFAULT_ORG, 'search': sku}) vdc_id = subscriptions[0]['id'] if 'type=STACK_DERIVED' in sku: for item in subscriptions: if hypervisor_name.lower() in item['type']: vdc_id = item['id'] break result = Host.subscription_attach({'host-id': host['id'], 'subscription-id': vdc_id}) assert 'attached to the host successfully' in '\n'.join(result) VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_deploy_configure_by_script(self, default_org, form_data, virtwho_config): """Verify "GET /foreman_virt_who_configure/api/ v2/configs/:id/deploy_script" :id: 9668b900-0d2f-42ae-b2f8-523ca292b2bd :expectedresults: Config can be created and deployed :CaseLevel: Integration :CaseImportance: High """ assert virtwho_config.status == 'unknown' script = virtwho_config.deploy_script() hypervisor_name, guest_name = deploy_configure_by_script( script['virt_who_config_script'], form_data['hypervisor_type'], debug=True, org=default_org.label, ) virt_who_instance = (entities.VirtWhoConfig().search( query={'search': f'name={virtwho_config.name}'})[0].status) assert virt_who_instance == 'ok' hosts = [ ( hypervisor_name, f'product_id={settings.virtwho.sku.vdc_physical} and type=NORMAL', ), ( guest_name, f'product_id={settings.virtwho.sku.vdc_physical} and type=STACK_DERIVED', ), ] for hostname, sku in hosts: host = Host.list({'search': hostname})[0] subscriptions = Subscription.list({ 'organization': default_org.name, 'search': sku }) vdc_id = subscriptions[0]['id'] if 'type=STACK_DERIVED' in sku: for item in subscriptions: if hypervisor_name.lower() in item['type']: vdc_id = item['id'] break entities.HostSubscription(host=host['id']).add_subscriptions( data={'subscriptions': [{ 'id': vdc_id, 'quantity': 1 }]}) result = entities.Host().search( query={'search': hostname})[0].read_json() assert result['subscription_status_label'] == 'Fully entitled' virtwho_config.delete() assert not entities.VirtWhoConfig().search( query={'search': f"name={form_data['name']}"})
def test_positive_deploy_configure_by_script(self, default_org, form_data, virtwho_config): """Verify " hammer virt-who-config fetch" :id: 6aaffaeb-aaf2-42cf-b0dc-ca41a53d42a6 :expectedresults: Config can be created, fetch and deploy :CaseLevel: Integration :CaseImportance: High """ assert virtwho_config['status'] == 'No Report Yet' script = VirtWhoConfig.fetch({'id': virtwho_config['id']}, output_format='base') hypervisor_name, guest_name = deploy_configure_by_script( script, form_data['hypervisor-type'], debug=True, org=default_org.label) virt_who_instance = VirtWhoConfig.info( {'id': virtwho_config['id']})['general-information']['status'] assert virt_who_instance == 'OK' hosts = [ ( hypervisor_name, f'product_id={settings.virtwho.sku.vdc_physical} and type=NORMAL', ), ( guest_name, f'product_id={settings.virtwho.sku.vdc_physical} and type=STACK_DERIVED', ), ] for hostname, sku in hosts: host = Host.list({'search': hostname})[0] subscriptions = Subscription.list({ 'organization': default_org.name, 'search': sku }) vdc_id = subscriptions[0]['id'] if 'type=STACK_DERIVED' in sku: for item in subscriptions: if hypervisor_name.lower() in item['type']: vdc_id = item['id'] break result = Host.subscription_attach({ 'host-id': host['id'], 'subscription-id': vdc_id }) assert result.strip( ) == 'Subscription attached to the host successfully.' VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))