@@ -90,7 +90,7 @@ def test_sbd_configure_completer_success(self, mock_ServiceManager, mock_is_usin
90
90
mock_ServiceManager .return_value .service_is_active .side_effect = [True , True ]
91
91
mock_is_using_disk_based_sbd .return_value = False
92
92
mock_is_using_diskless_sbd .return_value = True
93
- self .assertEqual (ui_sbd .sbd_configure_completer (["configure" , "" ]), ["show" , "watchdog-timeout=" , "watchdog-device=" ])
93
+ self .assertEqual (ui_sbd .sbd_configure_completer (["configure" , "" ]), ["show" , "watchdog-timeout=" , "crashdump-watchdog-timeout=" , " watchdog-device=" ])
94
94
mock_ServiceManager .return_value .service_is_active .assert_has_calls ([
95
95
mock .call (constants .PCMK_SERVICE ),
96
96
mock .call (constants .SBD_SERVICE )
@@ -115,7 +115,7 @@ def setUp(self, mock_get_sbd_device_from_config, mock_get_sbd_device_metadata, m
115
115
mock_get_sbd_device_from_config .return_value = ["/dev/sda1" ]
116
116
mock_get_watchdog_device_from_sbd_config .return_value = "/dev/watchdog0"
117
117
mock_get_sbd_watchdog_timeout .return_value = 10
118
- mock_get_sbd_device_metadata .return_value = {"watchdog" : 10 , "msgwait" : 20 }
118
+ mock_get_sbd_device_metadata .return_value = {"watchdog" : 10 , "allocate" : 5 , "loop" : 5 , " msgwait" : 20 }
119
119
self .sbd_instance_diskbased = ui_sbd .SBD ()
120
120
self .sbd_instance_diskbased ._load_attributes ()
121
121
@@ -273,32 +273,13 @@ def test_parse_args_invalid_timeout_value(self):
273
273
self .sbd_instance_diskbased ._parse_args (["watchdog-timeout=xxx" ])
274
274
self .assertEqual (str (e .exception ), "Invalid timeout value: xxx" )
275
275
276
- def test_parse_args_unknown_arg (self ):
277
- with self .assertRaises (ui_sbd .SBD .SyntaxError ) as e :
278
- self .sbd_instance_diskbased ._parse_args (["name=xin" ])
279
- self .assertEqual (str (e .exception ), "Unknown argument: name=xin" )
280
-
281
276
@mock .patch ('logging.Logger.debug' )
282
277
@mock .patch ('crmsh.watchdog.Watchdog.get_watchdog_device' )
283
278
def test_parse_args (self , mock_get_watchdog_device , mock_logger_debug ):
284
279
mock_get_watchdog_device .return_value = "/dev/watchdog0"
285
280
args = self .sbd_instance_diskbased ._parse_args (["watchdog-timeout=10" , "watchdog-device=/dev/watchdog0" ])
286
281
self .assertEqual (args , {"watchdog" : 10 , "watchdog-device" : "/dev/watchdog0" })
287
282
288
- @mock .patch ('logging.Logger.warning' )
289
- @mock .patch ('logging.Logger.info' )
290
- def test_adjust_timeout_dict (self , mock_logger_info , mock_logger_warning ):
291
- timeout_dict = {"watchdog" : 10 , "msgwait" : 10 }
292
- res = ui_sbd .SBD ._adjust_timeout_dict (timeout_dict )
293
- self .assertEqual (res , timeout_dict )
294
- mock_logger_warning .assert_called_once_with ("It's recommended to set msgwait timeout >= 2*watchdog timeout" )
295
- timeout_dict = {"watchdog" : 10 }
296
- res = ui_sbd .SBD ._adjust_timeout_dict (timeout_dict )
297
- self .assertEqual (res , {"watchdog" : 10 , "msgwait" : 20 })
298
- timeout_dict = {"msgwait" : 10 }
299
- res = ui_sbd .SBD ._adjust_timeout_dict (timeout_dict )
300
- self .assertEqual (res , {"watchdog" : 5 , "msgwait" : 10 })
301
-
302
283
@mock .patch ("crmsh.ui_sbd.SBD.configure_usage" , new_callable = mock .PropertyMock )
303
284
@mock .patch ('builtins.print' )
304
285
@mock .patch ('logging.Logger.error' )
@@ -310,41 +291,38 @@ def test_do_configure_no_args(self, mock_logger_error, mock_print, mock_configur
310
291
mock_logger_error .assert_called_once_with ('%s' , "No argument" )
311
292
mock_print .assert_called_once_with ("usage data" )
312
293
294
+ @mock .patch ('logging.Logger.info' )
313
295
@mock .patch ('crmsh.sbd.SBDManager' )
314
- def test_configure_diskbase (self , mock_SBDManager ):
315
- parameter_dict = {"watchdog" : 12 , "watchdog-device" : "/dev/watchdog100" }
316
- self .sbd_instance_diskbased ._adjust_timeout_dict = mock .Mock (return_value = parameter_dict )
296
+ def test_configure_diskbase (self , mock_SBDManager , mock_logger_info ):
297
+ parameter_dict = {"watchdog" : 12 , "watchdog-device" : "/dev/watchdog100" , "crashdump-watchdog" : 12 }
298
+ self .sbd_instance_diskbased .is_kdump_service_active = mock .Mock (return_value = True )
299
+ self .sbd_instance_diskbased .set_crashdump_option = mock .Mock ()
317
300
mock_SBDManager .return_value .init_and_deploy_sbd = mock .Mock ()
318
301
self .sbd_instance_diskbased ._configure_diskbase (parameter_dict )
319
302
mock_SBDManager .assert_called_once_with (
320
303
device_list_to_init = self .sbd_instance_diskbased .device_list_from_config ,
321
- timeout_dict = {"watchdog" : 12 , "msgwait" : 20 , "watchdog-device" : "/dev/watchdog100" },
322
- update_dict = {
323
- "SBD_WATCHDOG_DEV" : "/dev/watchdog100"
324
- }
304
+ timeout_dict = {'watchdog' : 12 , 'allocate' : 5 , 'loop' : 5 , 'msgwait' : 36 },
305
+ update_dict = {'SBD_TIMEOUT_ACTION' : 'flush,crashdump' , 'SBD_OPTS' : '-C 12' , 'SBD_WATCHDOG_DEV' : '/dev/watchdog100' }
325
306
)
326
307
mock_SBDManager .return_value .init_and_deploy_sbd .assert_called_once ()
327
308
328
309
@mock .patch ('logging.Logger.info' )
329
- @mock .patch ('crmsh.utils.is_subdict' )
330
310
@mock .patch ('crmsh.sbd.SBDManager' )
331
- def test_configure_diskbase_no_change (self , mock_SBDManager , mock_is_subdict , mock_logger_info ):
311
+ def test_configure_diskbase_no_change (self , mock_SBDManager , mock_logger_info ):
332
312
parameter_dict = {"watchdog" : 10 , "watchdog-device" : "/dev/watchdog0" }
333
- mock_is_subdict .return_value = True
334
313
self .sbd_instance_diskbased ._configure_diskbase (parameter_dict )
335
314
mock_logger_info .assert_called_once_with ("No change in SBD configuration" )
336
315
316
+ @mock .patch ('logging.Logger.info' )
337
317
@mock .patch ('crmsh.sbd.SBDManager' )
338
- def test_configure_diskless (self , mock_SBDManager ):
339
- parameter_dict = {"watchdog" : 12 , "watchdog-device" : "/dev/watchdog100" }
340
- self .sbd_instance_diskless ._adjust_timeout_dict = mock .Mock (return_value = parameter_dict )
318
+ def test_configure_diskless (self , mock_SBDManager , mock_logger_info ):
319
+ parameter_dict = {"watchdog" : 12 , "watchdog-device" : "/dev/watchdog100" , "crashdump-watchdog" : 12 }
320
+ self .sbd_instance_diskless .is_kdump_service_active = mock .Mock (return_value = True )
341
321
mock_SBDManager .return_value .init_and_deploy_sbd = mock .Mock ()
342
322
self .sbd_instance_diskless ._configure_diskless (parameter_dict )
343
323
mock_SBDManager .assert_called_once_with (
344
- update_dict = {
345
- "SBD_WATCHDOG_DEV" : "/dev/watchdog100" ,
346
- "SBD_WATCHDOG_TIMEOUT" : "12"
347
- },
324
+ timeout_dict = {'stonith-watchdog' : 24 },
325
+ update_dict = {'SBD_WATCHDOG_TIMEOUT' : '12' , 'SBD_WATCHDOG_DEV' : '/dev/watchdog100' , 'SBD_TIMEOUT_ACTION' : 'flush,crashdump' , 'SBD_OPTS' : '-C 12 -Z' },
348
326
diskless_sbd = True
349
327
)
350
328
mock_SBDManager .return_value .init_and_deploy_sbd .assert_called_once ()
0 commit comments