Example #1
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if not self.db_id or refresh:
         tmp_dmn = self.domain(method='db')
         self.db_id = tmp_dmn.db_id
     if refresh:
         tb.refresh()
Example #2
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if not self.db_id or refresh:
         tmp_ser = self.server(method='db')
         self.db_id = tmp_ser.db_id
     if refresh:
         tb.refresh()
Example #3
0
 def resetter(self):
     tb.refresh()
     tb.select('List View')
     # Ensure no rows are checked
     if paginator.page_controls_exist():
         sel.check(paginator.check_all())
         sel.uncheck(paginator.check_all())
Example #4
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if not self.db_id or refresh:
         tmp_dep = self.deployment(method='db')
         self.db_id = tmp_dep.db_id
     if refresh:
         tb.refresh()
Example #5
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if not self.db_id or refresh:
         tmp_dsource = self.datasource(method='db')
         self.db_id = tmp_dsource.db_id
     if refresh:
         tb.refresh()
Example #6
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if not self.db_id or refresh:
         tmp_msg = self.messaging(method='db')
         self.db_id = tmp_msg.db_id
     if refresh:
         tb.refresh()
Example #7
0
 def load_details(self, refresh=False):
     if not self._on_detail_page():
         logger.debug("load_details: not on details already, navigating")
         sel.force_navigate('infrastructure_datastore', context=self._get_context())
     else:
         logger.debug("load_details: already on details, refreshing")
         if refresh:
             tb.refresh()
Example #8
0
 def load_details(self, refresh=False):
     """To be compatible with the Taggable and PolicyProfileAssignable mixins."""
     if not self._on_detail_page():
         logger.debug("load_details: not on details already, navigating")
         sel.force_navigate('{}_{}'.format(self.page_name, self.detail_page_suffix),
             context={'provider': self})
     else:
         logger.debug("load_details: already on details, refreshing")
         if refresh:
             tb.refresh()
Example #9
0
    def load_details(self, refresh=False):
        """Navigates to an VM's details page.

        Args:
            refresh: Refreshes the VM page if already there

        Raises:
            VmOrInstanceNotFound:
                When unable to find the VM passed
        """
        navigate_to(self, 'Details', use_resetter=False)
        if refresh:
            toolbar.refresh()
Example #10
0
    def _load_details(self, refresh=False, is_vm=True):
        """Navigates to a VM's details page.

        Args:
            refresh: Refreshes the vm page if already there

        Raises:
            VmNotFound:
                When unable to find the VM passed
        """
        if not self.on_details(is_vm=is_vm):
            logger.debug("load_vm_details: not on details already")
            sel.click(self._find_quadicon(is_vm=is_vm))
        else:
            if refresh:
                toolbar.refresh()
Example #11
0
    def load_details(self, refresh=False):
        """Navigates to an VM's details page.

        Args:
            refresh: Refreshes the VM page if already there

        Raises:
            VmOrInstanceNotFound:
                When unable to find the VM passed
        """
        if not self.on_details():
            logger.debug("load_details: not on details already")
            sel.click(self.find_quadicon())
        else:
            if refresh:
                toolbar.refresh()
Example #12
0
    def queue_canned_report(cls, path):
        """Queue report from selection of pre-prepared reports.

        Args:
            *path: Path in tree after All Reports
        Returns: Value of Run At in the table so the run can be then checked.
        """
        cls.path = path
        navigate_to(cls, "Info")
        toolbar.select("Queue")
        flash.assert_no_errors()
        tabstrip.select_tab("Saved Reports")
        queued_at = sel.text(list(records_table.rows())[0].queued_at)

        def _get_state():
            navigate_to(cls, 'Saved')
            row = records_table.find_row("queued_at", queued_at)
            status = sel.text(row.status).strip().lower()
            assert status != "error", sel.text(row)
            return status == version.pick({"5.6": "finished",
                                           "5.7": "complete"})

        wait_for(
            _get_state,
            delay=3,
            message="wait for report generation finished",
            fail_func=toolbar.refresh()
        )
        return sel.text(list(records_table.rows())[0].run_at).encode("utf-8")
Example #13
0
    def load_details(self, refresh=False, from_any_provider=False):
        """Navigates to an VM's details page.

        Args:
            refresh: Refreshes the VM page if already there
            from_any_provider: Archived/Orphaned VMs need this

        Raises:
            VmOrInstanceNotFound:
                When unable to find the VM passed
        """
        if from_any_provider:
            navigate_to(self, 'AnyProviderDetails', use_resetter=False)
        else:
            navigate_to(self, 'Details', use_resetter=False)
        if refresh:
            toolbar.refresh()
            self.browser.plugin.ensure_page_safe()
Example #14
0
    def load_details(self, refresh=False):
        """Navigates to an VM's details page.

        Args:
            refresh: Refreshes the VM page if already there

        Raises:
            VmOrInstanceNotFound:
                When unable to find the VM passed
        """
        navigate_to(self, 'Details')
        sel.click(self.find_quadicon())
        if refresh:
            # bz1389299 for 5.7, should be fixed in 5.7.1 - dajo
            reload_bug = BZ(1329299)
            if reload_bug.bugzilla.get_bug(1329299).is_opened:
                sel.click(self.find_quadicon())
            else:
                toolbar.refresh()
Example #15
0
    def wait_candu_data_available(self, timeout=600):
        """Waits until C&U data are available for this VM/Instance

        Args:
            timeout: Timeout passed to :py:func:`utils.wait.wait_for`
        """
        self.load_details(refresh=True)
        wait_for(
            lambda: not toolbar.is_greyed('Monitoring', 'Utilization'),
            delay=10, handle_exception=True, num_sec=timeout,
            fail_func=lambda: toolbar.refresh())
Example #16
0
    def queue(self, wait_for_finish=False):
        navigate_to(self, 'Details')
        toolbar.select("Queue")
        flash.assert_no_errors()
        if wait_for_finish:
            # Get the queued_at value to always target the correct row
            queued_at = sel.text(list(records_table.rows())[0].queued_at)

            def _get_state():
                row = records_table.find_row("queued_at", queued_at)
                status = sel.text(row.status).strip().lower()
                assert status != "error", sel.text(row)
                return status == version.pick({"5.6": "finished",
                                               "5.7": "complete"})

            wait_for(
                _get_state,
                delay=1,
                message="wait for report generation finished",
                fail_func=toolbar.refresh(),
                num_sec=300,
            )
Example #17
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if refresh:
         tb.refresh()
Example #18
0
 def order(self):
     navigate_to(self, 'Order')
     if self.stack_data:
         stack_form.fill(self.stack_data)
     sel.click(form_buttons.submit)
     wait_for(flash.get_messages, num_sec=10, delay=2, fail_condition=[], fail_func=tb.refresh())
     flash.assert_success_message("Order Request was Submitted")
Example #19
0
def test_action_initiate_smartstate_analysis(request,
                                             assign_policy_for_testing, vm,
                                             vm_off, vm_crud_refresh):
    """ This test tests actions 'Initiate SmartState Analysis for VM'.

    This test sets the policy that it analyses VM after it's powered on. Then it checks whether
    that really happened.

    Metadata:
        test_flag: actions, provision
    """
    # Set host credentials for VMWare
    if isinstance(vm.provider, VMwareProvider.mgmt_class):
        set_host_credentials(request, vm.provider, vm)

    # Set up the policy and prepare finalizer
    assign_policy_for_testing.assign_actions_to_event(
        "VM Power On", ["Initiate SmartState Analysis for VM"])
    request.addfinalizer(lambda: assign_policy_for_testing.assign_events())
    switched_on = datetime.utcnow()
    # Start the VM
    vm.crud.power_control_from_cfme(option=vm.crud.POWER_ON,
                                    cancel=False,
                                    from_details=True)

    # Wait for VM being tried analysed by CFME
    def wait_analysis_tried():
        if current_version() > "5.5":
            vm.api.reload()
        try:
            return vm.api.last_scan_attempt_on.replace(
                tzinfo=None) >= switched_on
        except AttributeError:
            return False

    try:
        wait_for(wait_analysis_tried,
                 num_sec=360,
                 message="wait for analysis attempt",
                 delay=5)
    except TimedOutError:
        pytest.fail("CFME did not even try analysing the VM {}".format(
            vm.name))

    # Check that analyse job has appeared in the list
    # Wait for the task to finish
    @wait_for_decorator(delay=15, timeout="8m", fail_func=lambda: tb.refresh())
    def is_vm_analysis_finished():
        """ Check if analysis is finished - if not, reload page
        """
        view = navigate_to(Tasks, 'AllTasks')
        vm_analysis_row = view.tabs.alltasks.table.row(
            task_name="Scan from Vm {}".format(vm.name))
        return vm_analysis_row.state.text == 'Finished'

    # Wait for VM analysis to finish
    def wait_analysis_finished():
        if current_version() > "5.5":
            vm.api.reload()
        try:
            return vm.api.last_scan_on.replace(tzinfo=None) >= switched_on
        except AttributeError:
            return False

    try:
        wait_for(wait_analysis_finished,
                 num_sec=15 * 60,
                 message="wait for analysis finished",
                 delay=60)
    except TimedOutError:
        pytest.fail("CFME did not finish analysing the VM {}".format(vm.name))
Example #20
0
 def _looking_for_state_change():
     tb.refresh()
     return 'currentstate-' + desired_state in find_quadicon(
         self.name, do_not_navigate=False).state
def test_action_initiate_smartstate_analysis(
        request, assign_policy_for_testing, vm, vm_off, vm_crud_refresh):
    """ This test tests actions 'Initiate SmartState Analysis for VM'.

    This test sets the policy that it analyses VM after it's powered on. Then it checks whether
    that really happened.

    Metadata:
        test_flag: actions, provision
    """
    # Set host credentials for VMWare
    if isinstance(vm.provider, mgmtsystem.virtualcenter.VMWareSystem):
        set_host_credentials(request, vm.provider, vm)

    # Set up the policy and prepare finalizer
    assign_policy_for_testing.assign_actions_to_event("VM Power On",
                                                      ["Initiate SmartState Analysis for VM"])
    request.addfinalizer(lambda: assign_policy_for_testing.assign_events())
    switched_on = datetime.utcnow()
    # Start the VM
    vm.crud.power_control_from_cfme(option=vm.crud.POWER_ON, cancel=False, from_details=True)

    # Wait for VM being tried analysed by CFME
    def wait_analysis_tried():
        if current_version() > "5.5":
            vm.api.reload()
        try:
            return vm.api.last_scan_attempt_on.replace(tzinfo=None) >= switched_on
        except AttributeError:
            return False
    try:
        wait_for(wait_analysis_tried, num_sec=360, message="wait for analysis attempt", delay=5)
    except TimedOutError:
        pytest.fail("CFME did not even try analysing the VM {}".format(vm.name))

    # Check that analyse job has appeared in the list
    # Wait for the task to finish
    @pytest.wait_for(delay=15, timeout="8m", fail_func=lambda: tb.refresh())
    def is_vm_analysis_finished():
        """ Check if analysis is finished - if not, reload page
        """
        navigate_to(Tasks, 'AllVMContainerAnalysis')
        vm_analysis_finished = tasks.tasks_table.find_row_by_cells({
            'task_name': "Scan from Vm {}".format(vm.name),
            'state': 'finished'
        })
        return vm_analysis_finished is not None

    # Wait for VM analysis to finish
    def wait_analysis_finished():
        if current_version() > "5.5":
            vm.api.reload()
        try:
            return vm.api.last_scan_on.replace(tzinfo=None) >= switched_on
        except AttributeError:
            return False
    try:
        wait_for(wait_analysis_finished, num_sec=15 * 60,
                 message="wait for analysis finished", delay=60)
    except TimedOutError:
        pytest.fail("CFME did not finish analysing the VM {}".format(vm.name))
Example #22
0
 def resetter(self, *args, **kwargs):
     my_service_tree().click_path('All Services')
     tb.refresh()
 def _looking_for_state_change():
     toolbar.refresh()
     return 'currentstate-' + desired_state in find_quadicon(
         vm_name, do_not_navigate=False).state
Example #24
0
 def load_details(self, refresh=False):
     if not self._on_detail_page():
         self.navigate(detail=True)
     elif refresh:
         tb.refresh()
Example #25
0
 def _looking_for_state_change():
     toolbar.refresh()
     find_quadicon(
         vm_name,
         do_not_navigate=False).state == 'currentstate-' + desired_state
Example #26
0
 def load_details(self, refresh=False):
     """To be compatible with the Taggable and PolicyProfileAssignable mixins."""
     navigate_to(self, 'Details')
     if refresh:
         tb.refresh()
Example #27
0
def reload():
    toolbar.refresh()
Example #28
0
 def load_details(self, refresh=False):
     navigate_to(self, 'Details')
     if refresh:
         tb.refresh()
Example #29
0
 def update(self, updates):
     navigate_to(self, 'Edit')
     updated_name = updates.get('service_name', self.service_name + '_edited')
     updated_description = updates.get('description', 'Updated description')
     fill(edit_service_form, {'name': updated_name,
                              'description': updated_description},
          action=form_buttons.angular_save)
     wait_for(flash.get_messages, timeout=10, delay=2, fail_condition=[], fail_func=tb.refresh())
     if flash.assert_success_message('Service "{}" was saved'.format(updated_name)):
         setattr(self, 'service_name', updated_name)
Example #30
0
 def load_details(self, refresh=False):
     """To be compatible with the Taggable and PolicyProfileAssignable mixins."""
     navigate_to(self, 'Details')
     if refresh:
         tb.refresh()
Example #31
0
 def load_details(self, refresh=False):
     if not self._on_detail_page():
         self.navigate(detail=True)
     elif refresh:
         tb.refresh()
Example #32
0
 def resetter(self):
     tb.refresh()
Example #33
0
 def update(self, updates):
     navigate_to(self, "Edit")
     updated_name = updates.get("service_name", self.service_name + "_edited")
     updated_description = updates.get("description", "Updated description")
     fill(
         edit_service_form,
         {"name": updated_name, "description": updated_description},
         action=form_buttons.angular_save,
     )
     wait_for(flash.get_messages, timeout=10, delay=2, fail_condition=[], fail_func=tb.refresh())
     if flash.assert_success_message('Service "{}" was saved'.format(updated_name)):
         setattr(self, "service_name", updated_name)
Example #34
0
 def resetter(self, *args, **kwargs):
     if version.current_version() < '5.7':
         my_service_tree().click_path('All Services')
     tb.refresh()
Example #35
0
 def resetter(self, *args, **kwargs):
     if version.current_version() < "5.7":
         my_service_tree().click_path("All Services")
     tb.refresh()
Example #36
0
 def resetter(self, *args, **kwargs):
     tb.refresh()
Example #37
0
 def refresh_view_and_provider(self):
     self.provider.refresh_provider_relationships()
     tb.refresh()