def push_corosync_conf( self, corosync_conf_facade, skip_offline_nodes=False ): corosync_conf_data = corosync_conf_facade.config.export() if self.is_corosync_conf_live: node_list = corosync_conf_facade.get_nodes() if corosync_conf_facade.need_stopped_cluster: check_corosync_offline_on_nodes( self.node_communicator(), self.report_processor, node_list, skip_offline_nodes ) distribute_corosync_conf( self.node_communicator(), self.report_processor, node_list, corosync_conf_data, skip_offline_nodes ) if is_service_running(self.cmd_runner(), "corosync"): reload_corosync_config(self.cmd_runner()) self.report_processor.process( reports.corosync_config_reloaded() ) if corosync_conf_facade.need_qdevice_reload: qdevice_reload_on_nodes( self.node_communicator(), self.report_processor, node_list, skip_offline_nodes ) else: self._corosync_conf_data = corosync_conf_data
def _push_corosync_conf_live( self, target_list, corosync_conf_data, need_stopped_cluster, need_qdevice_reload, skip_offline_nodes ): if need_stopped_cluster: com_cmd = CheckCorosyncOffline( self.report_processor, skip_offline_nodes ) com_cmd.set_targets(target_list) run_and_raise(self.get_node_communicator(), com_cmd) com_cmd = DistributeCorosyncConf( self.report_processor, corosync_conf_data, skip_offline_nodes ) com_cmd.set_targets(target_list) run_and_raise(self.get_node_communicator(), com_cmd) if is_service_running(self.cmd_runner(), "corosync"): reload_corosync_config(self.cmd_runner()) self.report_processor.process( reports.corosync_config_reloaded() ) if need_qdevice_reload: self.report_processor.process( reports.qdevice_client_reload_started() ) com_cmd = qdevice.Stop(self.report_processor, skip_offline_nodes) com_cmd.set_targets(target_list) run(self.get_node_communicator(), com_cmd) report_list = com_cmd.error_list com_cmd = qdevice.Start(self.report_processor, skip_offline_nodes) com_cmd.set_targets(target_list) run(self.get_node_communicator(), com_cmd) report_list += com_cmd.error_list if report_list: raise LibraryError()
def _process_response(self, response): report = response_to_report_item(response, severity=ReportItemSeverity.WARNING) node = response.request.target.label if report is not None: self.__has_failures = True self._report(report) return self._get_next_list() try: output = json.loads(response.data) if output["code"] == "reloaded": self.__was_successful = True self._report(reports.corosync_config_reloaded(node)) return if output["code"] == "not_running": self._report(reports.corosync_config_reload_not_possible(node)) else: self.__has_failures = True self._report( reports.corosync_config_reload_error( output["message"], node=node, severity=ReportItemSeverity.WARNING, )) except (ValueError, LookupError): self._report( reports.invalid_response_format( node, severity=ReportItemSeverity.WARNING, )) return self._get_next_list()
def _process_response(self, response): report = response_to_report_item( response, severity=ReportItemSeverity.WARNING ) node = response.request.target.label if report is not None: self.__has_failures = True self._report(report) return self._get_next_list() try: output = json.loads(response.data) if output["code"] == "reloaded": self.__was_successful = True self._report(reports.corosync_config_reloaded(node)) return [] if output["code"] == "not_running": self._report(reports.corosync_config_reload_not_possible(node)) else: self.__has_failures = True self._report(reports.corosync_config_reload_error( output["message"], node=node, severity=ReportItemSeverity.WARNING, )) except (ValueError, LookupError): self.__has_failures = True self._report(reports.invalid_response_format( node, severity=ReportItemSeverity.WARNING, )) return self._get_next_list()