def _nav_to_snapshot_mgmt(self):
     locator = ("//div[@class='dhtmlxInfoBarLabel' and contains(. , " +
                "'\"Snapshots\" for Virtual Machine \"{}\"') ]".format(
                    self.name))
     if not sel.is_displayed(locator):
         self.vm.load_details()
         sel.click(InfoBlock.element("Properties", "Snapshots"))
Exemple #2
0
 def step(self):
     try:
         sel.click(
             InfoBlock.element('Relationships', 'Middleware Server Group'))
     except NoSuchElementException:
         raise MiddlewareServerGroupNotFound(
             'Server does not belong to Server Group')
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
 def get_clusters(self):
     """returns the list of clusters belonging to the provider"""
     web_clusters = []
     sel.force_navigate('infrastructure_provider', context={'provider': self})
     sel.click(InfoBlock.element('Relationships', 'Clusters'))
     icons = Quadicon.all(qtype='cluster')
     for icon in icons:
         web_clusters.append(Cluster(icon.name, self))
     return web_clusters
Exemple #7
0
def test_host_role_type(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:
        role_name = str(quad.name)
        role_name = re.search(r'\((\w+)\)', role_name).group(1)
        assert role_name in ROLES
Exemple #8
0
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 get_clusters(self):
     """returns the list of clusters belonging to the provider"""
     web_clusters = []
     navigate_to(self, "Details")
     sel.click(InfoBlock.element("Relationships", "Clusters"))
     icons = Quadicon.all(qtype="cluster")
     for icon in icons:
         web_clusters.append(Cluster(icon.name, self))
     return web_clusters
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_templates(provider, soft_assert):
    navigate_to(provider, 'Details')
    images = [i.name for i in provider.mgmt.images]

    assert int(provider.get_detail('Relationships', 'Templates')) == len(images)
    sel.click(InfoBlock.element('Relationships', 'Templates'))
    table = Table("//table[contains(@class, 'table')]")

    for image in images:
        cell = table.find_cell('Name', image)
        soft_assert(cell, 'Missing template: {}'.format(image))
def test_templates(provider, soft_assert):
    navigate_to(provider, 'Details')
    images = [i.name for i in provider.mgmt.images]

    assert int(provider.get_detail('Relationships', 'Templates')) == len(images)
    sel.click(InfoBlock.element('Relationships', 'Templates'))
    table = Table("//table[contains(@class, 'table')]")

    for image in images:
        cell = table.find_cell('Name', image)
        soft_assert(cell, 'Missing template: {}'.format(image))
Exemple #13
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"
Exemple #14
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"
Exemple #15
0
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))
Exemple #16
0
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_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_host_role_type(provider):
    provider.load_details()
    sel.click(InfoBlock.element("Relationships", "Nodes"))
    my_quads = list(Quadicon.all())
    assert len(my_quads) > 0
    result = True
    while result:
        for quad in my_quads:
            role_name = str(quad.name)
            role_name = re.search(r'\((\w+)\)', role_name).group(1)
            if role_name not in ROLES:
                result = False
    assert result
Exemple #19
0
 def register(self, file_path):
     """Register new nodes (Openstack)
     Fill a form for new host with json file format
     This function is valid only for RHOS10 and above
     Args:
         file_path - file path of json file with new node details, navigation
          MUST be from a specific self
     """
     navigate_to(self, 'Details')
     sel.click(InfoBlock.element("Relationships", "Nodes"))
     tb.select('Configuration', 'Register Nodes')
     my_form = {'file': file_path}
     fill(register_nodes_form, my_form, action=register_nodes_form.register)
def test_images_rel(provider, rel, detailfield):
    """ https://bugzilla.redhat.com/show_bug.cgi?id=1365878
    """
    # Nav to provider first
    navigate_to(provider, 'Details')

    # Then to container images for that provider
    # Locate Relationships table in provider details
    images_key = ({
        version.LOWEST: 'Images',
        '5.7': 'Container Images'
    })
    sel.click(InfoBlock.element('Relationships', version.pick(images_key)))

    # Get the names of all the container images from the table
    list_tbl_image = CheckboxTable(
        table_locator="//div[@id='list_grid']//table")
    ui_images = [r.name.text for r in list_tbl_image.rows()]

    for name in ui_images:
        img = Image(name, provider)
        navigate_to(img, 'Details')

        val = img.get_detail('Relationships', rel)
        assert val != 'Unknown image source'

        sel.click(InfoBlock.element('Relationships', rel))

        # Containers Provider and Image Registry are string values
        # Other rows in the table show the number of the given items
        if rel in ['Containers Provider', 'Image Registry']:
            assert val == InfoBlock.text('Properties', detailfield)
        else:
            val = int(val)
            # There might be more than 1 page of items
            if paginator.page_controls_exist():
                paginator.results_per_page(1000)
            assert len([r for r in list_tbl_image.rows()]) == val
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'
Exemple #22
0
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))
Exemple #23
0
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')
Exemple #24
0
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')
Exemple #25
0
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_nodes_rel(provider, rel):
    navigate_to(provider, 'Details')

    sel.click(InfoBlock.element('Relationships', 'Nodes'))

    list_tbl_node = CheckboxTable(
        table_locator="//div[@id='list_grid']//table")
    ui_nodes = [r.name.text for r in list_tbl_node.rows()]
    mgmt_objs = provider.mgmt.list_node()

    assert set(ui_nodes).issubset(
        [obj.name for obj in mgmt_objs]), 'Missing objects'

    for name in ui_nodes:
        node = Node(name, provider)

        val = node.get_detail('Relationships', rel)
        if val == '0':
            # the row can't be clicked when there are no items, and has class 'no-hover'
            logger.info('No items for node relationship: {}'.format(rel))
            continue
        # Should already be here, but just in case
        navigate_to(node, 'Details')
        sel.click(InfoBlock.element('Relationships', rel))

        try:
            val = int(val)
            # best effort to include all items from rel in one page
            if paginator.page_controls_exist():
                logger.info('Setting results per page to 1000 for {}'.format(rel))
                paginator.results_per_page(1000)
            else:
                logger.warning('Unable to increase results per page, '
                               'assertion against number of rows may fail.')
            assert len([r for r in list_tbl_node.rows()]) == val
        except ValueError:  # if the conversion to integer failed, its a non-scalar relationship
            assert val == InfoBlock.text('Properties', 'Name')
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_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_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 step(self, *args, **kwargs):
     sel.click(InfoBlock.element('Relationships', 'Images'))
Exemple #31
0
 def step(self, *args, **kwargs):
     sel.click(InfoBlock.element('Relationships', 'Images'))
Exemple #32
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Deployments'))
 def navigate(self):
     self.o.load_details()
     sel.click(InfoBlock.element("Relationships", "Genealogy"))
 def _nav_to_snapshot_mgmt(self):
     snapshot_title = '"Snapshots" for Virtual Machine "{}"'.format(
         self.vm.name)
     if summary_title() != snapshot_title:
         self.vm.load_details()
         sel.click(InfoBlock.element("Properties", "Snapshots"))
Exemple #35
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Datasources'))
 def navigate(self):
     self.o.load_details()
     sel.click(InfoBlock.element("Relationships", "Genealogy"))
Exemple #37
0
 def step(self):
     sel.click(
         InfoBlock.element('Relationships', 'Middleware Server Groups'))
Exemple #38
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Server Groups'))
 def nav_step():
     test_vm.load_details()
     pytest.sel.click(InfoBlock.element('Relationships', 'Host'))
     toolbar.select('Monitoring', 'Timelines')
Exemple #40
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Messagings'))
Exemple #41
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Deployments'))
Exemple #42
0
 def nav_step():
     test_vm.load_details()
     pytest.sel.click(InfoBlock.element('Relationships', 'Cluster'))
     toolbar.select('Monitoring', 'Timelines')
 def _nav_to_snapshot_mgmt(self):
     locator = ("//div[@class='dhtmlxInfoBarLabel' and contains(. , " +
                "'\"Snapshots\" for Virtual Machine \"{}\"') ]".format(self.name))
     if not sel.is_displayed(locator):
         self.vm.load_details()
         sel.click(InfoBlock.element("Properties", "Snapshots"))
Exemple #44
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Datasources'))
 def _nav_to_snapshot_mgmt(self):
     snapshot_title = '"Snapshots" for Virtual Machine "{}"'.format(self.vm.name)
     if summary_title() != snapshot_title:
         self.vm.load_details()
         sel.click(InfoBlock.element("Properties", "Snapshots"))
Exemple #46
0
 def step(self):
     sel.click(InfoBlock.element('Relationships', 'Middleware Messagings'))
Exemple #47
0
 def nav_step():
     test_instance.load_details()
     pytest.sel.click(InfoBlock.element('Relationships', 'Availability Zone'))
     toolbar.select('Monitoring', 'Timelines')