コード例 #1
0
 def test_success(self):
     output = "out"
     device = "device"
     self.mock_runner.run.return_value = output, "", 0
     self.assertEqual(
         output, lib_sbd.get_device_messages_info(self.mock_runner, device))
     self.mock_runner.run.assert_called_once_with(
         [settings.sbd_binary, "-d", device, "list"])
コード例 #2
0
ファイル: test_sbd.py プロジェクト: tomjelinek/pcs
 def test_success(self):
     output = "out"
     device = "device"
     self.mock_runner.run.return_value = output, "", 0
     self.assertEqual(
         output, lib_sbd.get_device_messages_info(self.mock_runner, device)
     )
     self.mock_runner.run.assert_called_once_with(
         [settings.sbd_binary, "-d", device, "list"]
     )
コード例 #3
0
 def test_failed(self):
     output = "out"
     device = "device"
     self.mock_runner.run.return_value = output, "", 1
     assert_raise_library_error(
         lambda: lib_sbd.get_device_messages_info(self.mock_runner, device),
         (Severities.ERROR, report_codes.SBD_DEVICE_LIST_ERROR, {
             "device": device,
             "reason": output,
         }))
     self.mock_runner.run.assert_called_once_with(
         [settings.sbd_binary, "-d", device, "list"])
コード例 #4
0
ファイル: test_sbd.py プロジェクト: tomjelinek/pcs
 def test_failed(self):
     output = "out"
     device = "device"
     self.mock_runner.run.return_value = output, "", 1
     assert_raise_library_error(
         lambda: lib_sbd.get_device_messages_info(self.mock_runner, device),
         (
             Severities.ERROR,
             report_codes.SBD_DEVICE_LIST_ERROR,
             {
                 "device": device,
                 "reason": output,
             }
         )
     )
     self.mock_runner.run.assert_called_once_with(
         [settings.sbd_binary, "-d", device, "list"]
     )
コード例 #5
0
def get_local_devices_info(lib_env, dump=False):
    """
    Returns list of local devices info in format:
    {
        "device": <device_path>,
        "list": <output of 'sbd list' command>,
        "dump": <output of 'sbd dump' command> if dump is True, None otherwise
    }
    If sbd is not enabled, empty list will be returned.

    lib_env -- LibraryEnvironment
    dump -- if True returns also output of command 'sbd dump'
    """
    if not sbd.is_sbd_enabled(lib_env.service_manager):
        return []
    device_list = sbd.get_local_sbd_device_list()
    report_item_list = []
    output = []
    for device in device_list:
        obj = {
            "device": device,
            "list": None,
            "dump": None,
        }
        try:
            obj["list"] = sbd.get_device_messages_info(
                lib_env.cmd_runner(), device
            )
            if dump:
                obj["dump"] = sbd.get_device_sbd_header_dump(
                    lib_env.cmd_runner(), device
                )
        except LibraryError as e:
            report_item_list += e.args

        output.append(obj)

    for report_item in report_item_list:
        report_item.severity = reports.item.ReportItemSeverity.warning()
    if lib_env.report_processor.report_list(report_item_list).has_errors:
        raise LibraryError()
    return output
コード例 #6
0
ファイル: sbd.py プロジェクト: tomjelinek/pcs
def get_local_devices_info(lib_env, dump=False):
    """
    Returns list of local devices info in format:
    {
        "device": <device_path>,
        "list": <output of 'sbd list' command>,
        "dump": <output of 'sbd dump' command> if dump is True, None otherwise
    }
    If sbd is not enabled, empty list will be returned.

    lib_env -- LibraryEnvironment
    dump -- if True returns also output of command 'sbd dump'
    """
    if not sbd.is_sbd_enabled(lib_env.cmd_runner()):
        return []
    device_list = sbd.get_local_sbd_device_list()
    report_item_list = []
    output = []
    for device in device_list:
        obj = {
            "device": device,
            "list": None,
            "dump": None,
        }
        try:
            obj["list"] = sbd.get_device_messages_info(
                lib_env.cmd_runner(), device
            )
            if dump:
                obj["dump"] = sbd.get_device_sbd_header_dump(
                    lib_env.cmd_runner(), device
                )
        except LibraryError as e:
            report_item_list += e.args

        output.append(obj)

    for report_item in report_item_list:
        report_item.severity = Severities.WARNING
    lib_env.report_processor.process_list(report_item_list)
    return output