Exemple #1
0
 def test_success_verbose(self):
     self.mock_runner.run.return_value = ("status info", "", 0)
     self.assertEqual(
         "status info",
         lib.qdevice_status_cluster_text(self.mock_runner, verbose=True)
     )
     self.mock_runner.run.assert_called_once_with([_qnetd_tool, "-l", "-v"])
Exemple #2
0
 def test_error(self):
     self.mock_runner.run.return_value = ("some info", "status error", 1)
     assert_raise_library_error(
         lambda: lib.qdevice_status_cluster_text(self.mock_runner),
         (
             severity.ERROR,
             report_codes.QDEVICE_GET_STATUS_ERROR,
             {
                 "model": "net",
                 "reason": "status error\nsome info",
             }
         )
     )
     self.mock_runner.run.assert_called_once_with([_qnetd_tool, "-l"])
Exemple #3
0
def _check_qdevice_not_used(reporter, runner, model, force=False):
    _check_model(model)
    connected_clusters = []
    if model == "net":
        try:
            status = qdevice_net.qdevice_status_cluster_text(runner)
            connected_clusters = qdevice_net.qdevice_connected_clusters(status)
        except qdevice_net.QnetdNotRunningException:
            pass
    if connected_clusters:
        reporter.process(reports.qdevice_used_by_clusters(
            connected_clusters,
            ReportItemSeverity.WARNING if force else ReportItemSeverity.ERROR,
            None if force else report_codes.FORCE_QDEVICE_USED
        ))
Exemple #4
0
def qdevice_status_text(lib_env, model, verbose=False, cluster=None):
    """
    Get runtime status of a quorum device in plain text
    string model qdevice model to query
    bool verbose get more detailed output
    string cluster show information only about specified cluster
    """
    _ensure_not_cman(lib_env)
    _check_model(model)
    runner = lib_env.cmd_runner()
    return (
        qdevice_net.qdevice_status_generic_text(runner, verbose)
        +
        qdevice_net.qdevice_status_cluster_text(runner, cluster, verbose)
    )
Exemple #5
0
def qdevice_status_text(lib_env, model, verbose=False, cluster=None):
    """
    Get runtime status of a quorum device in plain text
    string model qdevice model to query
    bool verbose get more detailed output
    string cluster show information only about specified cluster
    """
    _check_model(model)
    runner = lib_env.cmd_runner()
    try:
        return (
            qdevice_net.qdevice_status_generic_text(runner, verbose)
            +
            qdevice_net.qdevice_status_cluster_text(runner, cluster, verbose)
        )
    except qdevice_net.QnetdNotRunningException:
        raise LibraryError(
            reports.qdevice_not_running(model)
        )
Exemple #6
0
def _check_qdevice_not_used(
    reporter: ReportProcessor, runner, model, force=False
):
    _check_model(model)
    connected_clusters: List[str] = []
    if model == "net":
        try:
            status = qdevice_net.qdevice_status_cluster_text(runner)
            connected_clusters = qdevice_net.qdevice_connected_clusters(status)
        except qdevice_net.QnetdNotRunningException:
            pass
    if connected_clusters:
        reporter.report(
            ReportItem(
                severity=get_severity(report_codes.FORCE, force),
                message=reports.messages.QdeviceUsedByClusters(
                    connected_clusters,
                ),
            )
        )
        if reporter.has_errors:
            raise LibraryError()
Exemple #7
0
 def test_success_verbose(self):
     self.mock_runner.run.return_value = ("status info", "", 0)
     self.assertEqual(
         "status info",
         lib.qdevice_status_cluster_text(self.mock_runner, verbose=True))
     self.mock_runner.run.assert_called_once_with([_qnetd_tool, "-l", "-v"])