def test_host_security(provider, soft_assert): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) soft_assert( int(host.get_detail("Security", "Users")) > 0, 'Nodes number of Users is 0') soft_assert( int(host.get_detail("Security", "Groups")) > 0, 'Nodes number of Groups is 0')
def test_list_vms_infra_node(provider, soft_assert): navigate_to(provider.infra_provider, 'ProviderNodes') # Match hypervisors by IP with count of running VMs hvisors = {hv.host_ip: hv.running_vms for hv in provider.mgmt.api.hypervisors.list()} # Skip non-compute nodes quads = [q.name for q in Quadicon.all() if 'Compute' in q.name] for quad in quads: host = Host(quad, provider=provider.infra_provider) host_ip = host.get_detail('Properties', 'IP Address') vms = int(host.get_detail('Relationships', 'VMs')) soft_assert(vms == hvisors[host_ip], 'Number of instances on UI does not match with real value')
def test_host_security(provider, soft_assert): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) soft_assert( int(host.get_detail("Security", "Users")) > 0, 'Nodes number of Users is 0') soft_assert( int(host.get_detail("Security", "Groups")) > 0, 'Nodes number of Groups is 0')
def test_host_role_association(provider, soft_assert): navigate_to(provider, 'ProviderNodes') names = [q.name for q in list(Quadicon.all())] for node in names: host = Host(node, provider=provider) host.run_smartstate_analysis() wait_for(is_host_analysis_finished, [host.name], delay=15, timeout="10m", fail_func=toolbar.refresh) navigate_to(host, 'Details') role_name = summary_title().split()[1].translate(None, '()') role_name = 'Compute' if role_name == 'NovaCompute' else role_name try: role_assoc = host.get_detail('Relationships', 'Deployment Role') except NoSuchElementException: role_assoc = host.get_detail('Relationships', 'Cluster / Deployment Role') soft_assert(role_name in role_assoc, 'Deployment roles misconfigured')
def test_host_cpu_resources(provider, soft_assert): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) soft_assert(get_integer_value(host.get_detail("Properties", "Number of CPUs")) > 0, "Aggregate Node CPU resources is 0") soft_assert(get_integer_value( host.get_detail("Properties", "Number of CPU Cores")) > 0, "Aggregate node CPUs is 0") soft_assert(get_integer_value( host.get_detail("Properties", "CPU Cores Per Socket")) > 0, "Aggregate Node CPU Cores is 0")
def test_host_devices(provider): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) assert int(host.get_detail("Properties", "Devices")) > 0
def test_host_hostname(provider, soft_assert): provider.summary.relationships.nodes.click() my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) result = host.get_detail("Properties", "Hostname") soft_assert(result, "Missing hostname in: " + str(result))
def test_host_devices(provider): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) assert int(host.get_detail("Properties", "Devices")) > 0
def test_host_memory(provider): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) result = int(host.get_detail("Properties", "Memory").split()[0]) assert result > 0
def test_host_hostname(provider, soft_assert): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) result = host.get_detail("Properties", "Hostname") soft_assert(result, "Missing hostname in: " + str(result))
def test_host_security(provider, soft_assert): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) host.run_smartstate_analysis() wait_for(lambda: is_host_analysis_finished(host.name), delay=15, timeout="10m", fail_func=lambda: toolbar.select('Reload')) soft_assert( int(host.get_detail("Security", "Users")) > 0, 'Nodes number of Users is 0') soft_assert( int(host.get_detail("Security", "Groups")) > 0, 'Nodes number of Groups is 0')
def test_list_vms_infra_node(provider, soft_assert): navigate_to(provider.infra_provider, 'ProviderNodes') # Match hypervisors by IP with count of running VMs hvisors = { hv.host_ip: hv.running_vms for hv in provider.mgmt.api.hypervisors.list() } # Skip non-compute nodes quads = [q.name for q in Quadicon.all() if 'Compute' in q.name] for quad in quads: host = Host(quad, provider=provider.infra_provider) host_ip = host.get_detail('Properties', 'IP Address') vms = int(host.get_detail('Relationships', 'VMs')) soft_assert( vms == hvisors[host_ip], 'Number of instances on UI does not match with real value')
def test_host_memory(provider): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) result = int(host.get_detail("Properties", "Memory").split()[0]) assert result > 0
def test_host_auth(provider, soft_assert): navigate_to(provider, 'ProviderNodes') quads = list(Quadicon.all()) for quad in quads: host = Host(name=quad.name, provider=provider) navigate_to(host, 'Details') auth_status = host.get_detail('Authentication Status', 'SSH Key Pair Credentials') soft_assert(auth_status == 'Valid', 'Incorrect SSH authentication status {}'.format(auth_status))
def test_smbios_data(provider): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) result = get_integer_value(host.get_detail("Properties", "Memory")) assert result > 0
def test_host_smbios_data(provider, soft_assert): """Checks that Manufacturer/Model values are shown for each infra node""" navigate_to(provider, 'ProviderNodes') names = [q.name for q in list(Quadicon.all())] for node in names: host = Host(node, provider=provider) navigate_to(host, 'Details') res = host.get_detail('Properties', 'Manufacturer / Model') soft_assert(res, 'Manufacturer / Model value are empty') soft_assert(res != 'N/A')
def test_host_zones_assigned(provider): view = navigate_to(provider, 'ProviderNodes') entity_names = [ en for en in view.entities.all_entity_names if 'Compute' in en ] assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) result = host.get_detail('Relationships', 'Availability Zone') assert result, "Availability zone doesn't specified"
def test_host_cpu_resources(provider, soft_assert): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) host.run_smartstate_analysis() wait_for(lambda: is_host_analysis_finished(host.name), delay=15, timeout="10m", fail_func=lambda: toolbar.select('Reload')) soft_assert(get_integer_value(host.get_detail("Properties", "Number of CPUs")) > 0, "Aggregate Node CPU resources is 0") soft_assert(get_integer_value( host.get_detail("Properties", "Number of CPU Cores")) > 0, "Aggregate node CPUs is 0") soft_assert(get_integer_value( host.get_detail("Properties", "CPU Cores Per Socket")) > 0, "Aggregate Node CPU Cores is 0")
def test_host_zones_assigned(provider): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 my_quads = filter(lambda q: True if 'Compute' in q.name else False, my_quads) for quad in my_quads: host = Host(name=quad.name, provider=provider) result = host.get_detail('Relationships', 'Availability Zone') assert result, "Availability zone doesn't specified"
def test_host_hostname(provider): provider.summary.relationship.nodes.click() my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) host.run_smartstate_analysis() wait_for(lambda: is_host_analysis_finished(host.name), delay=15, timeout="10m", fail_func=lambda: toolbar.select('Reload')) result = host.get_detail("Properties", "Hostname") assert result != ''
def test_host_smbios_data(provider, soft_assert): """Checks that Manufacturer/Model values are shown for each infra node""" view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(entity_name, provider=provider) navigate_to(host, 'Details') res = host.get_detail('Properties', 'Manufacturer / Model') soft_assert(res, 'Manufacturer / Model value are empty') soft_assert(res != 'N/A')
def test_host_cpu_resources(provider, soft_assert): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) fields = ['Number of CPUs', 'Number of CPU Cores', 'CPU Cores Per Socket'] for field in fields: value = int(host.get_detail("Properties", field)) soft_assert(value > 0, "Aggregate Node {} is 0".format(field))
def test_host_auth(provider, soft_assert): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) navigate_to(host, 'Details') auth_status = host.get_detail('Authentication Status', 'SSH Key Pair Credentials') soft_assert( auth_status == 'Valid', 'Incorrect SSH authentication status {}'.format(auth_status))
def test_host_cpu_resources(provider, soft_assert): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) fields = [ 'Number of CPUs', 'Number of CPU Cores', 'CPU Cores Per Socket' ] for field in fields: value = int(host.get_detail("Properties", field)) soft_assert(value > 0, "Aggregate Node {} is 0".format(field))
def test_smbios_data(provider): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name) host.run_smartstate_analysis() wait_for(lambda: is_host_analysis_finished(host.name), delay=15, timeout="10m", fail_func=lambda: toolbar.select('Reload')) result = get_integer_value(host.get_detail("Properties", "Memory")) assert result > 0
def test_list_vms_infra_node(provider, soft_assert): if getattr(provider, 'infra_provider', None): pytest.skip("Provider {prov} doesn't have infra provider set".format( prov=provider.name)) view = navigate_to(provider.infra_provider, 'ProviderNodes') # Match hypervisors by IP with count of running VMs hvisors = { hv.host_ip: hv.running_vms for hv in provider.mgmt.api.hypervisors.list() } # Skip non-compute nodes host_names = [e for e in view.entities.all_entity_names if 'Compute' in e] for host_name in host_names: host = Host(host_name, provider=provider.infra_provider) host_ip = host.get_detail('Properties', 'IP Address') vms = int(host.get_detail('Relationships', 'VMs')) soft_assert( vms == hvisors[host_ip], 'Number of instances on UI does not match with real value')
def test_host_configuration(provider, soft_assert): navigate_to(provider, 'Details') sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: host = Host(name=quad.name, provider=provider) host.run_smartstate_analysis() wait_for(is_host_analysis_finished, [host.name], delay=15, timeout="10m", fail_func=toolbar.refresh) fields = ['Packages', 'Services', 'Files'] for field in fields: value = int(host.get_detail("Configuration", field)) soft_assert(value > 0, 'Nodes number of {} is 0'.format(field))
def test_host_assigned_zones(provider): provider.load_details() sel.click(InfoBlock.element("Relationships", "Nodes")) my_quads = list(Quadicon.all()) assert len(my_quads) > 0 for quad in my_quads: if quad.name != NODE_TYPE: break host = Host(name=quad.name) host.run_smartstate_analysis() wait_for(lambda: is_host_analysis_finished(host.name), delay=15, timeout="10m", fail_func=lambda: toolbar.select('Reload')) result = host.get_detail('Relationships', 'Availability Zone') assert result == 'nova'
def test_host_configuration(provider, soft_assert): view = navigate_to(provider, 'ProviderNodes') entity_names = view.entities.all_entity_names assert len(entity_names) > 0 for entity_name in entity_names: host = Host(name=entity_name, provider=provider) host.run_smartstate_analysis() wait_for(is_host_analysis_finished, [host.name], delay=15, timeout="10m", fail_func=toolbar.refresh) fields = ['Packages', 'Services', 'Files'] for field in fields: value = int(host.get_detail("Configuration", field)) soft_assert(value > 0, 'Nodes number of {} is 0'.format(field))