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()
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()
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())
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()
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()
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()
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()
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()
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()
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()
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()
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")
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()
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()
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())
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, )
def load_details(self, refresh=False): navigate_to(self, 'Details') if refresh: tb.refresh()
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")
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))
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))
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
def load_details(self, refresh=False): if not self._on_detail_page(): self.navigate(detail=True) elif refresh: tb.refresh()
def _looking_for_state_change(): toolbar.refresh() find_quadicon( vm_name, do_not_navigate=False).state == 'currentstate-' + desired_state
def load_details(self, refresh=False): """To be compatible with the Taggable and PolicyProfileAssignable mixins.""" navigate_to(self, 'Details') if refresh: tb.refresh()
def reload(): toolbar.refresh()
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)
def resetter(self): tb.refresh()
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)
def resetter(self, *args, **kwargs): if version.current_version() < '5.7': my_service_tree().click_path('All Services') tb.refresh()
def resetter(self, *args, **kwargs): if version.current_version() < "5.7": my_service_tree().click_path("All Services") tb.refresh()
def resetter(self, *args, **kwargs): tb.refresh()
def refresh_view_and_provider(self): self.provider.refresh_provider_relationships() tb.refresh()