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_server_suspend_resume(provider):
    """Tests server suspend/resume operation on UI

    Steps:
        * Get servers list from UI
        * Chooses Wildfly server from list
        * Invokes Suspend Server' toolbar operation
        * Checks that server status is not running in UI, in DB and in MGMT.
        * Invokes 'Resume Server' toolbar operation
        * Waits for some time
        * Checks that server status is running in UI, in DB and in MGMT.
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for _server in server_list:
        if _server.product != 'Hawkular':
            server = _server
            break
    assert server, 'Wildfly server was not found in servers list'
    _check_server_running(server)
    server.suspend_server()
    flash.assert_success_message('Suspend initiated for selected server(s)')
    # enable when HWKINVENT-185 is fixed
    # _check_server_stopped(server)
    server.resume_server()
    flash.assert_success_message('Resume initiated for selected server(s)')
    _check_server_running(server)
def test_hawkular_reload(provider):
    """Tests Hawkular server itself reload operation message on UI

    Steps:
        * Get servers list from UI
        * Chooses Hawkular server from list
        * Invokes 'Reload Server' toolbar operation
        * Checks that notification message is shown
        * Checks that server status is running in UI, in DB and in MGMT.
        * Invokes 'Stop Server' toolbar operation
        * Checks that notification message is shown
        * Checks that server status is running in UI, in DB and in MGMT.
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for _server in server_list:
        if _server.product == 'Hawkular':
            server = _server
            break
    assert server, 'Hawkular server was not found in servers list'
    server.reload_server()
    flash.assert_success_message('Not reloading Hawkular server')
    _check_server_running(server)
    server.stop_server()
    flash.assert_success_message('Not stopping Hawkular server')
    _check_server_running(server)
Example #7
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 #8
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_server_suspend_resume(provider):
    """Tests server suspend/resume operation on UI

    Steps:
        * Get servers list from UI
        * Chooses Wildfly server from list
        * Invokes Suspend Server' toolbar operation
        * Checks that server status is not running in UI, in DB and in MGMT.
        * Invokes 'Resume Server' toolbar operation
        * Waits for some time
        * Checks that server status is running in UI, in DB and in MGMT.
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for _server in server_list:
        if _server.product != 'Hawkular':
            server = _server
            break
    assert server, 'Wildfly server was not found in servers list'
    _check_server_running(server)
    server.suspend_server()
    flash.assert_success_message('Suspend initiated for selected server(s)')
    # enable when HWKINVENT-185 is fixed
    # _check_server_stopped(server)
    server.resume_server()
    flash.assert_success_message('Resume initiated for selected server(s)')
    _check_server_running(server)
Example #10
0
 def messaging(self):
     self.load_details(refresh=True)
     self.id = self.get_detail("Properties", "Nativeid")
     self.server = MiddlewareServer(
         provider=self.provider,
         name=self.get_detail("Relationships", "Middleware Server"))
     return self
Example #11
0
 def datasource(self):
     self.summary.reload()
     self.id = self.summary.properties.nativeid.text_value
     self.server = MiddlewareServer(
         provider=self.provider,
         name=self.summary.relationships.middleware_server.text_value)
     return self
Example #12
0
 def datasource(self):
     self.load_details(refresh=False)
     self.id = self.get_detail("Properties", "Nativeid")
     self.server = MiddlewareServer(
         provider=self.provider,
         name=self.get_detail("Relationships", "Middleware Server"))
     return self
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_hawkular_fail(provider):
    """Tests Hawkular server itself reload operation message on UI

    Steps:
        * Get servers list from UI
        * Chooses Hawkular server from list
        * Invokes all 'Power' toolbar operation
        * Checks that notification message is shown
        * Checks that server status is running in UI, in DB and in MGMT.
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for _server in server_list:
        if _server.product == 'Hawkular':
            server = _server
            break
    assert server, 'Hawkular server was not found in servers list'
    server.reload_server()
    flash.assert_success_message('Not reloading the provider')
    _check_server_running(server)
    server.stop_server()
    flash.assert_success_message('Not stopping the provider')
    _check_server_running(server)
    server.shutdown_server()
    flash.assert_success_message('Not shutting down the provider')
    _check_server_running(server)
    server.restart_server()
    flash.assert_success_message('Not restarting the provider')
    _check_server_running(server)
    server.suspend_server()
    flash.assert_success_message('Not suspending the provider')
    _check_server_running(server)
    server.resume_server()
    flash.assert_success_message('Not resuming the provider')
    _check_server_running(server)
def test_list_provider_server_deployments(provider):
    """Tests deployments list from current Provider for each server
    between UI, DB and Management system

    Steps:
        * Get servers list from UI of provider
        * Get deployments list for the server
        * Get deployments list from UI of provider, server
        * Get deployments list from Database of provider, server
        * Get deployments list from Database of provider, server
        * Get deployments list from Management system(Hawkular) of server
        * Compare size of all the list [UI, Database, Management system]
    """
    servers = MiddlewareServer.servers(provider=provider)
    assert len(servers) > 0, "There is no server(s) available in UI"
    for server in get_random_list(servers, ITEMS_LIMIT):
        ui_deps = _get_deployments_set(
            MiddlewareDeployment.deployments(provider=provider, server=server))
        db_deps = _get_deployments_set(
            MiddlewareDeployment.deployments_in_db(provider=provider, server=server))
        mgmt_deps = _get_deployments_set(
            MiddlewareDeployment.deployments_in_mgmt(provider=provider, server=server))
        assert ui_deps == db_deps == mgmt_deps, \
            ("Lists of deployments mismatch! UI:{}, DB:{}, MGMT:{}"
             .format(ui_deps, db_deps, mgmt_deps))
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_list_provider_server_deployments(provider):
    """Tests deployments list from current Provider for each server
    between UI, DB and Management system

    Steps:
        * Get servers list from UI of provider
        * Get deployments list for the server
        * Get deployments list from UI of provider, server
        * Get deployments list from Database of provider, server
        * Get deployments list from Database of provider, server
        * Get deployments list from Management system(Hawkular) of server
        * Compare size of all the list [UI, Database, Management system]
    """
    servers = MiddlewareServer.servers(provider=provider)
    assert len(servers) > 0, "There is no server(s) available in UI"
    for server in get_random_list(servers, ITEMS_LIMIT):
        ui_deps = _get_deployments_set(
            MiddlewareDeployment.deployments(provider=provider, server=server))
        db_deps = _get_deployments_set(
            MiddlewareDeployment.deployments_in_db(provider=provider,
                                                   server=server))
        mgmt_deps = _get_deployments_set(
            MiddlewareDeployment.deployments_in_mgmt(provider=provider,
                                                     server=server))
        assert ui_deps == db_deps == mgmt_deps, \
            ("Lists of deployments mismatch! UI:{}, DB:{}, MGMT:{}"
             .format(ui_deps, db_deps, mgmt_deps))
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)
Example #19
0
 def datasource_in_db(self):
     datasource = _db_select_query(name=self.name, server=self.server,
                                   nativeid=self.nativeid).first()
     if datasource:
         _server = MiddlewareServer(name=datasource.server_name, provider=self.provider)
         return MiddlewareDatasource(provider=self.provider, server=_server,
                                 nativeid=datasource.nativeid, name=datasource.name,
                                 properties=parse_properties(datasource.properties))
     return None
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))
Example #21
0
 def datasources(cls, provider=None, server=None):
     datasources = []
     _get_datasources_page(provider=provider, server=server)
     if sel.is_displayed(list_tbl):
         for _ in paginator.pages():
             for row in list_tbl.rows():
                 _server = MiddlewareServer(provider=provider, name=row.server.text)
                 datasources.append(MiddlewareDatasource(provider=provider, server=_server,
                                                         name=row.datasource_name.text))
     return datasources
Example #22
0
 def deployment_in_db(self):
     deployment = _db_select_query(name=self.name, server=self.server,
                                   provider=self.provider).first()
     if deployment:
         _provider = get_crud(get_provider_key(deployment.provider_name))
         _server = MiddlewareServer(name=deployment.server_name, feed=deployment.feed,
                                    provider=_provider)
         return MiddlewareDeployment(nativeid=deployment.nativeid, name=deployment.name,
                                     server=_server, provider=_provider, db_id=deployment.id)
     return None
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))
Example #24
0
 def deployments(cls, provider=None, server=None):
     deployments = []
     _get_deployments_page(provider=provider, server=server)
     if sel.is_displayed(list_tbl):
         _provider = provider  # In deployment UI, we cannot get provider name on list all page
         for _ in paginator.pages():
             for row in list_tbl.rows():
                 _server = MiddlewareServer(provider=provider, name=row.server.text)
                 deployments.append(MiddlewareDeployment(provider=_provider, server=_server,
                                                         name=row.deployment_name.text))
     return deployments
Example #25
0
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 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_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 #28
0
 def deployments_in_db(cls, server=None, provider=None, strict=True):
     deployments = []
     rows = _db_select_query(server=server, provider=provider).all()
     _provider = provider
     for deployment in rows:
         if strict:
             _provider = get_crud(get_provider_key(deployment.provider_name))
         _server = MiddlewareServer(name=deployment.server_name, feed=deployment.feed,
                                    provider=provider)
         deployments.append(MiddlewareDeployment(nativeid=deployment.nativeid,
                                                 name=deployment.name, db_id=deployment.id,
                                                 server=_server, provider=_provider))
     return deployments
Example #29
0
 def messagings(cls, provider=None, server=None):
     messagings = []
     _get_messagings_page(provider=provider, server=server)
     if sel.is_displayed(list_tbl):
         for _ in paginator.pages():
             for row in list_tbl.rows():
                 _server = MiddlewareServer(provider=provider, name=row.server.text)
                 messagings.append(MiddlewareMessaging(
                     provider=provider,
                     server=_server,
                     name=row.messaging_name.text,
                     messaging_type=row.messaging_type.text))
     return messagings
Example #30
0
 def datasources(cls, provider=None, server=None):
     datasources = []
     view = _get_datasources_page(provider=provider, server=server)
     for _ in view.entities.paginator.pages():
         for row in view.entities.elements:
             _server = MiddlewareServer(provider=provider,
                                        name=row.server.text)
             datasources.append(
                 MiddlewareDatasource(provider=provider,
                                      server=_server,
                                      name=row.datasource_name.text,
                                      hostname=row.host_name.text))
     return datasources
Example #31
0
 def datasources_in_db(cls, server=None, provider=None, strict=True):
     datasources = []
     rows = _db_select_query(server=server, provider=provider).all()
     _provider = provider
     for datasource in rows:
         if strict:
             _provider = get_crud(get_provider_key(datasource.provider_name))
         _server = MiddlewareServer(name=datasource.server_name, feed=datasource.feed,
                                    provider=provider)
         datasources.append(MiddlewareDatasource(nativeid=datasource.nativeid,
                                         name=datasource.name,
                                         server=_server, provider=_provider,
                                         properties=parse_properties(datasource.properties)))
     return datasources
Example #32
0
 def messagings(cls, provider=None, server=None):
     messagings = []
     view = _get_messagings_page(provider=provider, server=server)
     for _ in view.entities.paginator.pages():
         for row in view.entities.elements:
             _server = MiddlewareServer(provider=provider,
                                        name=row.server.text)
             messagings.append(
                 MiddlewareMessaging(
                     provider=provider,
                     server=_server,
                     name=row.messaging_name.text,
                     messaging_type=row.messaging_type.text))
     return messagings
Example #33
0
 def messaging_in_db(self):
     messaging = _db_select_query(name=self.name, server=self.server,
         nativeid=self.nativeid).first()
     if messaging:
         _server = MiddlewareServer(name=messaging.server_name, provider=self.provider)
         return MiddlewareMessaging(
             provider=self.provider,
             server=_server,
             db_id=messaging.id,
             nativeid=messaging.nativeid,
             name=messaging.name,
             messaging_type=messaging.messaging_type,
             properties=parse_properties(messaging.properties))
     return None
def test_list_server_datasources():
    """Gets servers list and tests datasources list for each server
    Steps:
        * Get servers list from UI
        * Get datasources list from UI of server
        * Get datasources list from Database of server
        * Compare size of all the list [UI, Database]
    """
    servers = MiddlewareServer.servers()
    assert len(servers) > 0, "There is no server(s) available in UI"
    for server in get_random_list(servers, ITEMS_LIMIT):
        ui_dses = _get_datasources_set(MiddlewareDatasource.datasources(server=server))
        db_dses = _get_datasources_set(MiddlewareDatasource.datasources_in_db(server=server))
        assert ui_dses == db_dses, \
            ("Lists of datasources mismatch! UI:{}, DB:{}".format(ui_dses, db_dses))
Example #35
0
 def deployments(cls, provider=None, server=None):
     deployments = []
     view = _get_deployments_page(provider=provider, server=server)
     _provider = provider  # In deployment UI, we cannot get provider name on list all page
     for _ in view.entities.paginator.pages():
         for row in view.entities.elements:
             _server = MiddlewareServer(provider=provider,
                                        name=row.server.text,
                                        hostname=row.host_name.text)
             deployments.append(
                 MiddlewareDeployment(provider=_provider,
                                      server=_server,
                                      name=row.deployment_name.text,
                                      hostname=row.host_name.text,
                                      status=row.status.text))
     return deployments
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)
Example #38
0
def test_list_server_datasources():
    """Gets servers list and tests datasources list for each server
    Steps:
        * Get servers list from UI
        * Get datasources list from UI of server
        * Get datasources list from Database of server
        * Compare size of all the list [UI, Database]
    """
    servers = MiddlewareServer.servers()
    assert len(servers) > 0, "There is no server(s) available in UI"
    for server in get_random_list(servers, ITEMS_LIMIT):
        ui_dses = _get_datasources_set(
            MiddlewareDatasource.datasources(server=server))
        db_dses = _get_datasources_set(
            MiddlewareDatasource.datasources_in_db(server=server))
        assert ui_dses == db_dses, \
            ("Lists of datasources mismatch! UI:{}, DB:{}".format(ui_dses, db_dses))
Example #39
0
 def _datasources_in_mgmt(cls, provider, server=None):
     datasources = []
     rows = provider.mgmt.inventory.list_server_datasource()
     for datasource in rows:
         _server = MiddlewareServer(name=get_server_name(datasource.path),
                                    feed=datasource.path.feed_id,
                                    provider=provider)
         _include = False
         if server:
             if server.name == _server.name:
                 _include = True if not server.feed else server.feed == _server.feed
         else:
             _include = True
         if _include:
             datasources.append(MiddlewareDatasource(nativeid=datasource.id,
                                                     name=datasource.name,
                                                     server=_server,
                                                     provider=provider))
     return datasources
Example #40
0
 def _datasources_in_mgmt(cls, provider, server=None):
     datasources = []
     rows = provider.mgmt.list_server_datasource()
     for datasource in rows:
         _server = MiddlewareServer(name=re.sub(r'~~$', '', datasource.path.resource[0]),
                                    feed=datasource.path.feed,
                                    provider=provider)
         _include = False
         if server:
             if server.name == _server.name:
                 _include = True if not server.feed else server.feed == _server.feed
         else:
             _include = True
         if _include:
             datasources.append(MiddlewareDatasource(nativeid=datasource.id,
                                                     name=datasource.name,
                                                     server=_server,
                                                     provider=provider))
     return datasources
Example #41
0
    def _deployments_in_mgmt(cls, provider, server=None):
        deployments = []
        rows = provider.mgmt.list_server_deployment()
        for deployment in rows:
            _server = MiddlewareServer(name=re.sub(r'~~$', '', deployment.path.resource_id[0]),
                                       feed=deployment.path.feed_id,
                                       provider=provider)
            _include = False
            if server:
                if server.name == _server.name:
                    _include = True if not server.feed else server.feed == _server.feed
            else:
                _include = True
            if _include:
                deployments.append(MiddlewareDeployment(provider=provider, server=_server,
                                                        nativeid=deployment.id,
                                                        name=deployment.name))

        return deployments
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 #43
0
 def messagings_in_db(cls, server=None, provider=None, strict=True):
     messagings = []
     rows = _db_select_query(server=server, provider=provider).all()
     _provider = provider
     for messaging in rows:
         if strict:
             _provider = get_crud_by_name(messaging.provider_name)
         _server = MiddlewareServer(name=messaging.server_name,
                                    feed=messaging.feed,
                                    provider=provider)
         messagings.append(
             MiddlewareMessaging(nativeid=messaging.nativeid,
                                 name=messaging.name,
                                 db_id=messaging.id,
                                 server=_server,
                                 provider=_provider,
                                 messaging_type=messaging.messaging_type,
                                 properties=parse_properties(
                                     messaging.properties)))
     return messagings
def test_server_details(provider):
    """Tests server details on UI

    Steps:
        * Get servers list from UI
        * Select each server details in UI
        * Compare selected server UI details with CFME database and MGMT system
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for server in get_random_list(server_list, 1):
        srv_ui = server.server(method='ui')
        srv_db = server.server(method='db')
        srv_mgmt = srv_ui.server(method='mgmt')
        assert srv_ui, "Server was not found in UI"
        assert srv_db, "Server was not found in DB"
        assert srv_mgmt, "Server was not found in MGMT system"
        assert srv_ui.name == srv_db.name == srv_mgmt.name, \
            ("server name does not match between UI:{}, DB:{}, MGMT:{}"
             .format(srv_ui.name, srv_db.name, srv_mgmt.name))
        srv_db.validate_properties()
        srv_mgmt.validate_properties()
def test_server_stop(provider):
    """Tests server reload operation on UI

    Steps:
        * Get servers list from UI
        * Chooses Wildfly server from list
        * Invokes 'Stop Server' toolbar operation
        * Checks that server status is not running in UI, in DB and in MGMT.
        * Invokes 'Start Server' toolbar operation
        * Waits for some time
        * Checks that server status is running in UI, in DB and in MGMT.
    """
    server_list = MiddlewareServer.servers(provider=provider)
    for _server in server_list:
        if _server.product != 'Hawkular':
            server = _server
            break
    assert server, 'Wildfly server was not found in servers list'
    _check_server_running(server)
    server.stop_server()
    flash.assert_success_message('Stop initiated for selected server(s)')
    _check_server_stopped(server)
    server.start_server()
    _check_server_running(server)
Example #46
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]
def get_server(provider, product):
    for server in MiddlewareServer.servers(provider=provider):
        if server.product == product:
            return server
    else:
        raise ValueError('{} server was not found in servers list'.format(provider))
def server_group_servers(provider, server_group):
    return MiddlewareServer.servers_in_db(provider=provider, server_group=server_group)
def get_random_server(provider):
    servers = MiddlewareServer.servers(provider=provider)
    assert len(servers) > 0, "There is no server(s) available in UI"
    return get_random_list(servers, 1)[0]