def test_positive_proxy_option(self, form_data, virtwho_config): """Verify http_proxy option by hammer virt-who-config update" :id: 409d108e-e814-482b-93ed-09db89d21dda :expectedresults: http_proxy and no_proxy option can be updated. :CaseLevel: Integration :CaseImportance: Medium :BZ: 1902199 """ # Check the https proxy option, update it via http proxy name https_proxy_url, https_proxy_name, https_proxy_id = create_http_proxy() no_proxy = 'test.satellite.com' VirtWhoConfig.update({ 'id': virtwho_config['id'], 'http-proxy': https_proxy_name, 'no-proxy': no_proxy }) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['http-proxy']['http-proxy-name'] == https_proxy_name assert result['connection']['ignore-proxy'] == no_proxy command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('https_proxy', VIRTWHO_SYSCONFIG) == https_proxy_url assert get_configure_option('NO_PROXY', VIRTWHO_SYSCONFIG) == no_proxy # Check the http proxy option, update it via http proxy id http_proxy_url, http_proxy_name, http_proxy_id = create_http_proxy( type='http') VirtWhoConfig.update({ 'id': virtwho_config['id'], 'http-proxy-id': http_proxy_id }) deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('http_proxy', VIRTWHO_SYSCONFIG) == http_proxy_url VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_deploy_configure_by_id(self, form_data, virtwho_config): """Verify " hammer virt-who-config deploy" :id: d0b109f5-2699-43e4-a6cd-d682204d97a7 :expectedresults: Config can be created and deployed :CaseLevel: Integration :CaseImportance: High """ assert virtwho_config['status'] == 'No Report Yet' command = get_configure_command(virtwho_config['id']) hypervisor_name, guest_name = deploy_configure_by_command( command, form_data['hypervisor-type'], 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={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: 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, 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 ) virt_who_instance = VirtWhoConfig.info({'id': virtwho_config['id']})[ 'general-information' ]['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: 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_filter_option(self, form_data, virtwho_config): """ Verify filter option by hammer virt-who-config update" :id: f46e4aa8-c325-4281-8744-f85e819e68c1 :expectedresults: filter and filter_hosts can be updated. :CaseLevel: Integration :CaseImportance: Medium """ regex = '.*redhat.com' whitelist = {'id': virtwho_config['id'], 'filtering-mode': 'whitelist', 'whitelist': regex} blacklist = {'id': virtwho_config['id'], 'filtering-mode': 'blacklist', 'blacklist': regex} if settings.virtwho.hypervisor_type == 'esx': whitelist['filter-host-parents'] = regex blacklist['exclude-host-parents'] = regex config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) # Update Whitelist and check the result VirtWhoConfig.update(whitelist) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['filtering'] == 'Whitelist' assert result['connection']['filtered-hosts'] == regex if settings.virtwho.hypervisor_type == 'esx': assert result['connection']['filter-host-parents'] == regex deploy_configure_by_command(command) assert get_configure_option('filter_hosts', config_file) == regex if settings.virtwho.hypervisor_type == 'esx': assert get_configure_option('filter_host_parents', config_file) == regex # Update Blacklist and check the result VirtWhoConfig.update(blacklist) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['filtering'] == 'Blacklist' assert result['connection']['excluded-hosts'] == regex if settings.virtwho.hypervisor_type == 'esx': assert result['connection']['exclude-host-parents'] == regex deploy_configure_by_command(command) assert get_configure_option('exclude_hosts', config_file) == regex if settings.virtwho.hypervisor_type == 'esx': assert get_configure_option('exclude_host_parents', config_file) == regex VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_hypervisor_id_option(self, form_data, virtwho_config): """Verify hypervisor_id option by hammer virt-who-config update" :id: 57b89c7e-538e-4ab8-98b5-af4b9f587792 :expectedresults: hypervisor_id option can be updated. :CaseLevel: Integration :CaseImportance: Medium """ values = ['uuid', 'hostname'] for value in values: VirtWhoConfig.update({'id': virtwho_config['id'], 'hypervisor-id': value}) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['hypervisor-id'] == value config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('hypervisor_id', config_file) == value VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_rhsm_option(self, form_data, virtwho_config): """ Verify rhsm options in the configure file" :id: 5155d145-0a8d-4443-81d3-6fb7cef0533b :expectedresults: rhsm_hostname, rhsm_prefix are ecpected rhsm_username is not a login account :CaseLevel: Integration :CaseImportance: Medium """ config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command) rhsm_username = get_configure_option('rhsm_username', config_file) assert not User.exists(search=('login', rhsm_username)) assert get_configure_option('rhsm_hostname', config_file) == settings.server.hostname assert get_configure_option('rhsm_prefix', config_file) == '/rhsm' VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_rhsm_option(self, form_data, virtwho_config): """Verify rhsm options in the configure file" :id: b5b93d4d-e780-41c0-9eaa-2407cc1dcc9b :expectedresults: rhsm_hostname, rhsm_prefix are ecpected rhsm_username is not a login account :CaseLevel: Integration :CaseImportance: Medium """ config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command, form_data['hypervisor-type']) rhsm_username = get_configure_option('rhsm_username', config_file) assert not User.exists(search=('login', rhsm_username)) assert get_configure_option('rhsm_hostname', config_file) == settings.server.hostname assert get_configure_option('rhsm_prefix', config_file) == '/rhsm' VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_filter_option(self, form_data, virtwho_config): """Verify filter option by hammer virt-who-config update" :id: aaf45c5e-9504-47ce-8f25-b8073c2de036 :expectedresults: filter and filter_hosts can be updated. :CaseLevel: Integration :CaseImportance: Medium """ regex = '.*redhat.com' whitelist = {'id': virtwho_config['id'], 'filtering-mode': 'whitelist', 'whitelist': regex} blacklist = {'id': virtwho_config['id'], 'filtering-mode': 'blacklist', 'blacklist': regex} # esx support filter-host-parents and exclude-host-parents options whitelist['filter-host-parents'] = regex blacklist['exclude-host-parents'] = regex config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) # Update Whitelist and check the result VirtWhoConfig.update(whitelist) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['filtering'] == 'Whitelist' assert result['connection']['filtered-hosts'] == regex assert result['connection']['filter-host-parents'] == regex deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('filter_hosts', config_file) == regex assert get_configure_option('filter_host_parents', config_file) == regex # Update Blacklist and check the result VirtWhoConfig.update(blacklist) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['filtering'] == 'Blacklist' assert result['connection']['excluded-hosts'] == regex assert result['connection']['exclude-host-parents'] == regex deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('exclude_hosts', config_file) == regex assert get_configure_option('exclude_host_parents', config_file) == regex VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_hypervisor_id_option(self, form_data, virtwho_config): """ Verify hypervisor_id option by hammer virt-who-config update" :id: d8428508-3149-4558-8173-4386db5e3760 :expectedresults: hypervisor_id option can be updated. :CaseLevel: Integration :CaseImportance: Medium """ # esx and rhevm support hwuuid option values = ['uuid', 'hostname', 'hwuuid'] for value in values: VirtWhoConfig.update({'id': virtwho_config['id'], 'hypervisor-id': value}) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['hypervisor-id'] == value config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command, form_data['hypervisor-type']) assert get_configure_option('hypervisor_id', config_file) == value 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 " hammer virt-who-config fetch" :id: 22dc8068-c843-4ca0-acbe-0b2aef8ece31 :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']))
def test_positive_foreman_packages_protection(self, form_data, virtwho_config): """foreman-protector should allow virt-who to be installed :id: 635ef99b-c5a3-4ac4-a0f1-09f7036d116e :expectedresults: virt-who packages can be installed the virt-who plugin can be deployed successfully :CaseLevel: Integration :CaseImportance: Medium :BZ: 1783987 """ virtwho_package_locked() command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command, form_data['hypervisor-type']) virt_who_instance = VirtWhoConfig.info( {'id': virtwho_config['id']})['general-information']['status'] assert virt_who_instance == 'OK' VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_hypervisor_id_option(self, form_data, virtwho_config): """ Verify hypervisor_id option by hammer virt-who-config update" :id: eae7e767-8a71-424c-87da-475c91ac2ea1 :expectedresults: hypervisor_id option can be updated. :CaseLevel: Integration :CaseImportance: Medium """ values = ['uuid', 'hostname'] if settings.virtwho.hypervisor_type in ('esx', 'rhevm'): values.append('hwuuid') for value in values: VirtWhoConfig.update({'id': virtwho_config['id'], 'hypervisor-id': value}) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['hypervisor-id'] == value config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command) assert get_configure_option('hypervisor_id', config_file) == value VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_foreman_packages_protection(self, form_data, virtwho_config): """foreman-protector should allow virt-who to be installed :id: 73dc895f-50b8-4de5-91de-ea55da935fe5 :expectedresults: virt-who packages can be installed the virt-who plugin can be deployed successfully :CaseLevel: Integration :CaseImportance: Medium :BZ: 1783987 """ virtwho_package_locked() command = get_configure_command(virtwho_config['id']) deploy_configure_by_command(command) virt_who_instance = VirtWhoConfig.info({'id': virtwho_config['id']})[ 'general-information' ]['status'] assert virt_who_instance == 'OK' VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_hypervisor_id_option(self, default_org, form_data, virtwho_config): """Verify hypervisor_id option by hammer virt-who-config update" :id: 8e234492-33cb-4523-abb3-582626ad704c :expectedresults: hypervisor_id option can be updated. :CaseLevel: Integration :CaseImportance: Medium """ values = ['uuid', 'hostname'] for value in values: VirtWhoConfig.update({'id': virtwho_config['id'], 'hypervisor-id': value}) result = VirtWhoConfig.info({'id': virtwho_config['id']}) assert result['connection']['hypervisor-id'] == value config_file = get_configure_file(virtwho_config['id']) command = get_configure_command(virtwho_config['id'], default_org.name) deploy_configure_by_command( command, form_data['hypervisor-type'], org=default_org.label ) assert get_configure_option('hypervisor_id', config_file) == value VirtWhoConfig.delete({'name': virtwho_config['name']}) assert not VirtWhoConfig.exists(search=('name', form_data['name']))
def test_positive_filter_option(self): """ Verify filter option by hammer virt-who-config update" :id: f46e4aa8-c325-4281-8744-f85e819e68c1 :expectedresults: filter and filter_hosts can be updated. :CaseLevel: Integration :CaseImportance: Medium """ name = gen_string('alpha') args = self._make_virtwho_configure() args.update({'name': name}) vhd = VirtWhoConfig.create(args)['general-information'] regex = '.*redhat.com' whitelist = { 'id': vhd['id'], 'filtering-mode': 'whitelist', 'whitelist': regex, } blacklist = { 'id': vhd['id'], 'filtering-mode': 'blacklist', 'blacklist': regex, } if self.hypervisor_type == 'esx': whitelist['filter-host-parents'] = regex blacklist['exclude-host-parents'] = regex config_file = get_configure_file(vhd['id']) command = get_configure_command(vhd['id']) # Update Whitelist and check the result VirtWhoConfig.update(whitelist) result = VirtWhoConfig.info({'id': vhd['id']}) self.assertEqual(result['connection']['filtering'], 'Whitelist') self.assertEqual(result['connection']['filtered-hosts'], regex) if self.hypervisor_type == 'esx': self.assertEqual(result['connection']['filter-host-parents'], regex) deploy_configure_by_command(command) self.assertEqual(get_configure_option('filter_hosts', config_file), regex) if self.hypervisor_type == 'esx': self.assertEqual( get_configure_option('filter_host_parents', config_file), regex) # Update Blacklist and check the result VirtWhoConfig.update(blacklist) result = VirtWhoConfig.info({'id': vhd['id']}) self.assertEqual(result['connection']['filtering'], 'Blacklist') self.assertEqual(result['connection']['excluded-hosts'], regex) if self.hypervisor_type == 'esx': self.assertEqual(result['connection']['exclude-host-parents'], regex) deploy_configure_by_command(command) self.assertEqual(get_configure_option('exclude_hosts', config_file), regex) if self.hypervisor_type == 'esx': self.assertEqual( get_configure_option('exclude_host_parents', config_file), regex) VirtWhoConfig.delete({'name': name}) self.assertFalse(VirtWhoConfig.exists(search=('name', name)))