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))
Example #3
0
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)
Example #4
0
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))
Example #18
0
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]
Example #19
0
def server_group_servers(provider, server_group):
    return MiddlewareServer.servers_in_db(provider=provider, server_group=server_group)