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_failure = True self._report(report) return self._get_next_list() if response.data.strip() == "Cannot initialize CMAP service": # corosync is not running on the node, this is OK return self._get_next_list() try: quorum_status = corosync_live.QuorumStatus.from_string( response.data ) if not quorum_status.is_quorate: return self._get_next_list() self._quorum_status = quorum_status except corosync_live.QuorumStatusParsingException as e: self._has_failure = True self._report( reports.corosync_quorum_get_status_error( e.reason, node=node, severity=ReportItemSeverity.WARNING, ) ) return self._get_next_list() return []
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_failure = True self._report(report) return self._get_next_list() if response.data.strip() == "Cannot initialize CMAP service": # corosync is not running on the node, this is OK return self._get_next_list() try: quorum_status = corosync_live.QuorumStatus.from_string( response.data) if not quorum_status.is_quorate: return self._get_next_list() self._quorum_status = quorum_status except corosync_live.QuorumStatusParsingException as e: self._has_failure = True self._report( reports.corosync_quorum_get_status_error( e.reason, node=node, severity=ReportItemSeverity.WARNING, )) return self._get_next_list()
def status_text(lib_env): """ Get quorum runtime status in plain text """ try: return corosync_live.get_quorum_status_text(lib_env.cmd_runner()) except corosync_live.QuorumStatusReadException as e: raise LibraryError(reports.corosync_quorum_get_status_error(e.reason))
def status_text(lib_env): """ Get quorum runtime status in plain text """ try: return corosync_live.get_quorum_status_text(lib_env.cmd_runner()) except corosync_live.QuorumStatusReadException as e: raise LibraryError(reports.corosync_quorum_get_status_error(e.reason))
def get_quorum_status_text(runner): """ Get runtime quorum status from the local node """ stdout, stderr, retval = runner.run([os.path.join(settings.corosync_binaries, "corosync-quorumtool"), "-p"]) # retval is 0 on success if node is not in partition with quorum # retval is 1 on error OR on success if node has quorum if retval not in [0, 1] or stderr.strip(): raise LibraryError(reports.corosync_quorum_get_status_error(stderr)) return stdout
def get_quorum_status_text(runner): """ Get runtime quorum status from the local node """ stdout, stderr, retval = runner.run([ os.path.join(settings.corosync_binaries, "corosync-quorumtool"), "-p" ]) # retval is 0 on success if node is not in partition with quorum # retval is 1 on error OR on success if node has quorum if retval not in [0, 1] or stderr.strip(): raise LibraryError(reports.corosync_quorum_get_status_error(stderr)) return stdout
def get_status_text(runner, verbose=False): """ Get quorum device client runtime status in plain text bool verbose get more detailed output """ cmd = [os.path.join(settings.corosync_binaries, "corosync-qdevice-tool"), "-s"] if verbose: cmd.append("-v") stdout, stderr, retval = runner.run(cmd) if retval != 0: raise LibraryError(reports.corosync_quorum_get_status_error(join_multilines([stderr, stdout]))) return stdout
def get_status_text(runner, verbose=False): """ Get quorum device client runtime status in plain text bool verbose get more detailed output """ cmd = [ os.path.join(settings.corosync_binaries, "corosync-qdevice-tool"), "-s" ] if verbose: cmd.append("-v") stdout, stderr, retval = runner.run(cmd) if retval != 0: raise LibraryError( reports.corosync_quorum_get_status_error( join_multilines([stderr, stdout]))) return stdout