def initialize_block_devices(lib_env, device_list, option_dict): """ Initialize SBD devices in device_list with options_dict. lib_env -- LibraryEnvironment device_list -- list of strings option_dict -- dictionary """ report_item_list = [] if not device_list: report_item_list.append( reports.required_options_are_missing(["device"])) supported_options = sbd.DEVICE_INITIALIZATION_OPTIONS_MAPPING.keys() report_item_list += ( validate.NamesIn(supported_options).validate(option_dict)) report_item_list += validate.ValidatorAll([ validate.ValueNonnegativeInteger(key) for key in supported_options ]).validate(option_dict) if lib_env.report_processor.report_list(report_item_list).has_errors: raise LibraryError() sbd.initialize_block_devices(lib_env.report_processor, lib_env.cmd_runner(), device_list, option_dict)
def initialize_block_devices(lib_env, device_list, option_dict): """ Initialize SBD devices in device_list with options_dict. lib_env -- LibraryEnvironment device_list -- list of strings option_dict -- dictionary """ report_item_list = [] if not device_list: report_item_list.append(reports.required_option_is_missing(["device"])) supported_options = sbd.DEVICE_INITIALIZATION_OPTIONS_MAPPING.keys() report_item_list += names_in(supported_options, option_dict.keys()) validator_list = [ value_nonnegative_integer(key) for key in supported_options ] report_item_list += run_collection_of_option_validators( option_dict, validator_list ) lib_env.report_processor.process_list(report_item_list) sbd.initialize_block_devices( lib_env.report_processor, lib_env.cmd_runner(), device_list, option_dict )
def test_success(self): device_list = ["/dev/sdb", "/dev/vda"] option_dict = { "watchdog-timeout": "10", # -1 "loop-timeout": "1", # -3 } self.mock_runner.run.return_value = "", "", 0 lib_sbd.initialize_block_devices( self.mock_rep, self.mock_runner, device_list, option_dict ) cmd = [ settings.sbd_binary, "-d", "/dev/sdb", "-d", "/dev/vda", "-3", "1", "-1", "10", "create" ] self.mock_runner.run.assert_called_once_with(cmd) assert_report_item_list_equal( self.mock_rep.report_item_list, [ ( Severities.INFO, report_codes.SBD_DEVICE_INITIALIZATION_STARTED, {"device_list": device_list} ), ( Severities.INFO, report_codes.SBD_DEVICE_INITIALIZATION_SUCCESS, {"device_list": device_list} ), ] )
def test_failed(self): device_list = ["/dev/sdb", "/dev/vda"] option_dict = { "watchdog-timeout": "10", # -1 "loop-timeout": "1", # -3 } error_msg = "error" self.mock_runner.run.return_value = "", error_msg, 1 assert_raise_library_error( lambda: lib_sbd.initialize_block_devices( self.mock_rep, self.mock_runner, device_list, option_dict), (Severities.ERROR, report_codes.SBD_DEVICE_INITIALIZATION_ERROR, { "device_list": device_list, "reason": error_msg, })) cmd = [ settings.sbd_binary, "-d", "/dev/sdb", "-d", "/dev/vda", "-3", "1", "-1", "10", "create" ] self.mock_runner.run.assert_called_once_with(cmd) assert_report_item_list_equal(self.mock_rep.report_item_list, [ (Severities.INFO, report_codes.SBD_DEVICE_INITIALIZATION_STARTED, { "device_list": device_list }) ])
def test_failed(self): device_list = ["/dev/sdb", "/dev/vda"] option_dict = { "watchdog-timeout": "10", # -1 "loop-timeout": "1", # -3 } error_msg = "error" self.mock_runner.run.return_value = "", error_msg, 1 assert_raise_library_error( lambda: lib_sbd.initialize_block_devices( self.mock_rep, self.mock_runner, device_list, option_dict ), ( Severities.ERROR, report_codes.SBD_DEVICE_INITIALIZATION_ERROR, { "device_list": device_list, "reason": error_msg, } ) ) cmd = [ settings.sbd_binary, "-d", "/dev/sdb", "-d", "/dev/vda", "-3", "1", "-1", "10", "create" ] self.mock_runner.run.assert_called_once_with(cmd) assert_report_item_list_equal( self.mock_rep.report_item_list, [( Severities.INFO, report_codes.SBD_DEVICE_INITIALIZATION_STARTED, {"device_list": device_list} )] )