def _get_server_by_name(provider, product=None, name=None, container=False): """ Return server by given provider, product and server name. Args: provider: provider object product: name of product name: name of server, used as regex, optional Usage: _get_server_by_name(provider, EAP_PRODUCT_NAME, 'EAP7|Local') _get_server_by_name(provider, HAWKULAR_PRODUCT_NAME) _get_server_by_name(provider, EAP_PRODUCT_NAME, 'server-one') """ servers = MiddlewareServer.servers_in_db(provider=provider, product=product, strict=False) if len(servers) > 0: if name: for server in servers: if (re.match("^({})$".format(name), server.name) and _is_hostname_expected_container(server.hostname, container)): return server else: return servers[0] raise ValueError('{} server was not found in servers list'.format(product))
def _get_server_by_name(provider, product=None, name=None, container=False): """ Return server by given provider, product and server name. Args: provider: provider object product: name of product name: name of server, used as regex, optional Usage: _get_server_by_name(provider, EAP_PRODUCT_NAME, 'EAP7|Local') _get_server_by_name(provider, HAWKULAR_PRODUCT_NAME) _get_server_by_name(provider, EAP_PRODUCT_NAME, 'server-one') """ servers = MiddlewareServer.servers_in_db(provider=provider, product=product, strict=False) if len(servers) > 0: if name: for server in servers: if (re.match("^({})$".format(name), server.name) and _is_hostname_expected_container( server.hostname, container)): return server else: return servers[0] raise ValueError('{} server was not found in servers list'.format(product))
def test_topology_server_hierarchy(provider): """Tests all server's hierarchical content in topology Steps: * Read Servers in topology. * For each server read elements in topology. * Compare elements from topology with server's elements from DB. """ # reload topology page to make sure all elements are loaded provider.topology.reload() provider.topology.refresh() for ui_server in provider.topology.elements( element_type='MiddlewareServer'): elements = [] server = MiddlewareServer.servers_in_db(name=ui_server.name)[0] elements.extend( MiddlewareDeployment.deployments_in_db(server, provider, strict=False)) elements.extend( MiddlewareDatasource.datasources_in_db(server, provider, strict=False)) elements.extend( MiddlewareMessaging.messagings_in_db(server, provider, strict=False)) verify_elements_included(elements, ui_server.children)
def test_topology_details(provider): """Tests items details in topology page from provider page Steps: * Get topology elements detail * Check details of `Servers`, `Domains`, `Messagings`, * `Datasources`, `Server Groups`, `Deployments` on topology page """ # reload topology page to make sure all elements are loaded provider.topology.reload() provider.topology.refresh() verify_elements_match(MiddlewareServer.servers_in_db(), provider.topology.elements(element_type='MiddlewareServer')) verify_elements_match(MiddlewareMessaging.messagings_in_db(), provider.topology.elements(element_type='MiddlewareMessaging')) verify_elements_match(MiddlewareDatasource.datasources_in_db(), provider.topology.elements(element_type='MiddlewareDatasource')) verify_elements_match(MiddlewareDomain.domains_in_db(), provider.topology.elements(element_type='MiddlewareDomain')) server_groups = [] for domain in MiddlewareDomain.domains_in_db(): server_groups.extend(MiddlewareServerGroup.server_groups_in_db(domain)) verify_elements_match(server_groups, provider.topology.elements(element_type='MiddlewareServerGroup')) deployments = provider.topology.elements(element_type='MiddlewareDeployment') deployments.extend(provider.topology.elements(element_type='MiddlewareDeploymentWar')) deployments.extend(provider.topology.elements(element_type='MiddlewareDeploymentEar')) verify_elements_match(MiddlewareDeployment.deployments_in_db(), deployments)
def test_topology_details(provider): """Tests items details in topology page from provider page Steps: * Get topology elements detail * Check details of `Servers`, `Domains`, `Messagings`, * `Datasources`, `Server Groups`, `Deployments` on topology page """ # reload topology page to make sure all elements are loaded provider.topology.reload() provider.topology.refresh() verify_elements_match(MiddlewareServer.servers_in_db(), provider.topology.elements(element_type='MiddlewareServer')) verify_elements_match(MiddlewareMessaging.messagings_in_db(), provider.topology.elements(element_type='MiddlewareMessaging')) verify_elements_match(MiddlewareDatasource.datasources_in_db(), provider.topology.elements(element_type='MiddlewareDatasource')) verify_elements_match(MiddlewareDomain.domains_in_db(), provider.topology.elements(element_type='MiddlewareDomain')) server_groups = [] for domain in MiddlewareDomain.domains_in_db(): server_groups.extend(MiddlewareServerGroup.server_groups_in_db(domain)) verify_elements_match(server_groups, provider.topology.elements(element_type='MiddlewareServerGroup')) deployments = provider.topology.elements(element_type='MiddlewareDeployment') deployments.extend(provider.topology.elements(element_type='MiddlewareDeploymentWar')) deployments.extend(provider.topology.elements(element_type='MiddlewareDeploymentEar')) verify_elements_match(MiddlewareDeployment.deployments_in_db(), deployments)
def test_server_tags(provider): """Tests tags in server page Steps: * Select a server randomly from database * Run `_validate_tags` with `tags` input """ servers_db = MiddlewareServer.servers_in_db(provider=provider) assert len(servers_db) > 0, "There is no server(s) available in DB" server = get_random_list(servers_db, 1)[0] validate_tags(taggable=server, tags=tags)
def get_random_server(provider, load_from="db"): load_from = load_from.lower() if load_from == "ui": servers = MiddlewareServer.servers(provider=provider) elif load_from == "db": servers = MiddlewareServer.servers_in_db(provider=provider) elif load_from == "mgmt": servers = MiddlewareServer.servers_in_mgmt(provider=provider) assert len(servers) > 0, "There is no server(s) available in {}".format(load_from) else: raise RuntimeError("Not supported option: '{}'".format(load_from)) return get_random_list(servers, 1)[0]
def get_random_server(provider, load_from="db"): load_from = load_from.lower() if load_from == "ui": servers = MiddlewareServer.servers(provider=provider) elif load_from == "db": servers = MiddlewareServer.servers_in_db(provider=provider) elif load_from == "mgmt": servers = MiddlewareServer.servers_in_mgmt(provider=provider) assert len(servers) > 0, "There is no server(s) available in {}".format(load_from) else: raise RuntimeError("Not supported option: '{}'".format(load_from)) return get_random_list(servers, 1)[0]
def test_list_provider_servers(provider): """Tests servers lists from current Provider between UI, DB and Management system Steps: * Get servers list from UI of provider * Get servers list from Database of provider * Get servers list from Management system(Hawkular) * Compare content of all the list [UI, Database, Management system] """ ui_servers = _get_servers_set(MiddlewareServer.servers(provider=provider)) db_servers = _get_servers_set(MiddlewareServer.servers_in_db(provider=provider)) mgmt_servers = _get_servers_set(MiddlewareServer.servers_in_mgmt(provider=provider)) assert ui_servers == db_servers == mgmt_servers, \ ("Lists of servers mismatch! UI:{}, DB:{}, MGMT:{}" .format(ui_servers, db_servers, mgmt_servers))
def test_list_provider_servers(provider): """Tests servers lists from current Provider between UI, DB and Management system Steps: * Get servers list from UI of provider * Get servers list from Database of provider * Get servers list from Management system(Hawkular) * Compare content of all the list [UI, Database, Management system] """ ui_servers = _get_servers_set(MiddlewareServer.servers(provider=provider)) db_servers = _get_servers_set(MiddlewareServer.servers_in_db(provider=provider)) mgmt_servers = _get_servers_set(MiddlewareServer.servers_in_mgmt(provider=provider)) assert ui_servers == db_servers == mgmt_servers, \ ("Lists of servers mismatch! UI:{}, DB:{}, MGMT:{}" .format(ui_servers, db_servers, mgmt_servers))
def test_tags(provider): """Tests tags in server page Steps: * Select a server randomly from database * Run `validate_tags` with `tags` input """ tags = [ Tag(category=Category(display_name='Environment', single_value=True), display_name='Test'), Tag(category=Category(display_name='Location', single_value=True), display_name='New York'), Tag(category=Category(display_name='Workload', single_value=False), display_name='Application Servers'), ] servers_db = MiddlewareServer.servers_in_db(provider=provider) assert len(servers_db) > 0, "There is no server(s) available in DB" server = get_random_list(servers_db, 1)[0] server.validate_tags(tags=tags)
def test_tags(provider): """Tests tags in server page Steps: * Select a server randomly from database * Run `validate_tags` with `tags` input """ tags = [ Tag(category=Category(display_name='Environment', single_value=True), display_name='Test'), Tag(category=Category(display_name='Location', single_value=True), display_name='New York'), Tag(category=Category(display_name='Workload', single_value=False), display_name='Application Servers'), ] servers_db = MiddlewareServer.servers_in_db(provider=provider) assert len(servers_db) > 0, "There is no server(s) available in DB" server = get_random_list(servers_db, 1)[0] server.validate_tags(tags=tags)
def test_list_servers(): """Tests servers lists between UI, DB and Management system. Steps: * Get servers list from UI * Get servers list from Database * Get headers from UI * Compare headers from UI with expected headers list * Compare content of all the list [UI, Database, Management system] """ ui_servers = _get_servers_set(MiddlewareServer.servers()) db_servers = _get_servers_set(MiddlewareServer.servers_in_db()) mgmt_servers = _get_servers_set(MiddlewareServer.servers_in_mgmt()) headers = MiddlewareServer.headers() headers_expected = ['Server Name', 'Product', 'Host Name', 'Feed', 'Provider'] assert headers == headers_expected assert ui_servers == db_servers == mgmt_servers, \ ("Lists of servers mismatch! UI:{}, DB:{}, MGMT:{}" .format(ui_servers, db_servers, mgmt_servers))
def test_list_servers(): """Tests servers lists between UI, DB and Management system. Steps: * Get servers list from UI * Get servers list from Database * Get headers from UI * Compare headers from UI with expected headers list * Compare content of all the list [UI, Database, Management system] """ ui_servers = _get_servers_set(MiddlewareServer.servers()) db_servers = _get_servers_set(MiddlewareServer.servers_in_db()) mgmt_servers = _get_servers_set(MiddlewareServer.servers_in_mgmt()) headers = MiddlewareServer.headers() headers_expected = ['Server Name', 'Product', 'Host Name', 'Feed', 'Provider'] assert headers == headers_expected assert ui_servers == db_servers == mgmt_servers, \ ("Lists of servers mismatch! UI:{}, DB:{}, MGMT:{}" .format(ui_servers, db_servers, mgmt_servers))
def test_list_server_group_servers(provider): """Tests servers lists from server groups of domain and checks values between UI, DB and Management system Steps: * Get domains list from UI of provider * Chooses one of domains * Get server groups list from UI of domain * Get servers list from UI of each server group * Get servers list from Database of each server group * @TODO add support of checking in MGMT * Compare content of all the list [UI, Database] """ domain_list = MiddlewareDomain.domains(provider=provider) for domain in get_random_list(domain_list, 1): server_groups = MiddlewareServerGroup.server_groups(domain=domain) for server_group in server_groups: ui_servers = get_servers_set(MiddlewareServer.servers(server_group=server_group)) db_servers = get_servers_set(MiddlewareServer.servers_in_db(server_group=server_group)) assert ui_servers == db_servers, "Lists of servers mismatch! UI:{}, DB:{}".format(ui_servers, db_servers)
def test_topology_server_hierarchy(provider): """Tests all server's hierarchical content in topology Steps: * Read Servers in topology. * For each server read elements in topology. * Compare elements from topology with server's elements from DB. """ # reload topology page to make sure all elements are loaded provider.topology.reload() provider.topology.refresh() for ui_server in provider.topology.elements(element_type='MiddlewareServer'): elements = [] server = MiddlewareServer.servers_in_db(name=ui_server.name)[0] elements.extend(MiddlewareDeployment.deployments_in_db(server, provider, strict=False)) elements.extend(MiddlewareDatasource.datasources_in_db(server, provider, strict=False)) elements.extend(MiddlewareMessaging.messagings_in_db(server, provider, strict=False)) verify_elements_included(elements, ui_server.children)
def test_list_server_group_servers(provider): """Tests servers lists from server groups of domain and checks values between UI, DB and Management system Steps: * Get domains list from UI of provider * Chooses one of domains * Get server groups list from UI of domain * Get servers list from UI of each server group * Get servers list from Database of each server group * @TODO add support of checking in MGMT * Compare content of all the list [UI, Database] """ domain_list = MiddlewareDomain.domains(provider=provider) for domain in get_random_list(domain_list, 1): server_groups = MiddlewareServerGroup.server_groups(domain=domain) for server_group in server_groups: ui_servers = get_servers_set(MiddlewareServer.servers(server_group=server_group)) db_servers = get_servers_set(MiddlewareServer.servers_in_db(server_group=server_group)) assert ui_servers == db_servers, \ ("Lists of servers mismatch! UI:{}, DB:{}" .format(ui_servers, db_servers))
def get_random_server(provider): servers = MiddlewareServer.servers_in_db(provider=provider, strict=False) assert len(servers) > 0, "There is no server(s) available in DB" return get_random_list(servers, 1)[0]
def server_group_servers(provider, server_group): return MiddlewareServer.servers_in_db(provider=provider, server_group=server_group)