예제 #1
0
 def test_device_not_defined(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = True
     mock_sbd_config.return_value = outdent("""
         SBD_WATCHDOG=/dev/watchdog
         SBD_WATCHDOG_TIMEOUT=10
     """)
     self.assertEqual([], lib_sbd.get_local_sbd_device_list())
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     mock_sbd_config.assert_called_once_with()
예제 #2
0
파일: test_sbd.py 프로젝트: tomjelinek/pcs
 def test_device_not_defined(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = True
     mock_sbd_config.return_value = outdent("""
         SBD_WATCHDOG=/dev/watchdog
         SBD_WATCHDOG_TIMEOUT=10
     """)
     self.assertEqual([], lib_sbd.get_local_sbd_device_list())
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     mock_sbd_config.assert_called_once_with()
예제 #3
0
 def test_multiple_devices(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = True
     mock_sbd_config.return_value = outdent("""
         SBD_WATCHDOG=/dev/watchdog
         SBD_WATCHDOG_TIMEOUT=10
         SBD_DEVICE="/dev/vda;/dev/sda"
     """)
     self.assertEqual(["/dev/vda", "/dev/sda"],
                      lib_sbd.get_local_sbd_device_list())
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     mock_sbd_config.assert_called_once_with()
예제 #4
0
파일: test_sbd.py 프로젝트: tomjelinek/pcs
 def test_multiple_devices(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = True
     mock_sbd_config.return_value = outdent("""
         SBD_WATCHDOG=/dev/watchdog
         SBD_WATCHDOG_TIMEOUT=10
         SBD_DEVICE="/dev/vda;/dev/sda"
     """)
     self.assertEqual(
         ["/dev/vda", "/dev/sda"], lib_sbd.get_local_sbd_device_list()
     )
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     mock_sbd_config.assert_called_once_with()
예제 #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
예제 #7
0
 def test_config_does_not_exist(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = False
     self.assertEqual([], lib_sbd.get_local_sbd_device_list())
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     self.assertEqual(0, mock_sbd_config.call_count)
예제 #8
0
파일: test_sbd.py 프로젝트: tomjelinek/pcs
 def test_config_does_not_exist(self, mock_sbd_config, mock_config_exists):
     mock_config_exists.return_value = False
     self.assertEqual([], lib_sbd.get_local_sbd_device_list())
     mock_config_exists.assert_called_once_with(settings.sbd_config)
     self.assertEqual(0, mock_sbd_config.call_count)