@@ -494,3 +494,48 @@ def test_copy_nrpe_checks_nrpe_files_dir(self):
494
494
self .patched ['copy2' ].assert_called_once_with (
495
495
'filea' ,
496
496
'/usr/local/lib/nagios/plugins/filea' )
497
+
498
+ def test_enable_sudo_for_openvswitch_checks (self ):
499
+ error_msg = 'test failure'
500
+ nrpe .enable_sudo_for_openvswitch_checks ()
501
+
502
+ self .patched ['open' ].side_effect = IOError (error_msg )
503
+ nrpe .enable_sudo_for_openvswitch_checks ()
504
+ self .patched ['open' ].side_effect = None
505
+
506
+ self .patched ['chmod' ].side_effect = OSError (error_msg )
507
+ nrpe .enable_sudo_for_openvswitch_checks ()
508
+ self .patched ['chmod' ].side_effect = None
509
+
510
+ self .patched ['chown' ].side_effect = OSError (error_msg )
511
+ nrpe .enable_sudo_for_openvswitch_checks ()
512
+ self .patched ['chown' ].side_effect = None
513
+
514
+ expected_path = '/etc/sudoers.d/99-check_openvswitch'
515
+ expected_success_log = ("Sudoers file for check_openvswitch "
516
+ "installed: {}" .format (expected_path ))
517
+ expected_failure_log = ("Failed to setup sudoers file for "
518
+ "check_openvswitch: {}" .format (error_msg ))
519
+ self .patched ['open' ].assert_has_calls (
520
+ [call (expected_path , 'w' )], any_order = True )
521
+ self .patched ['chmod' ].assert_has_calls (
522
+ [call (expected_path , 0o100440 )], any_order = True )
523
+ self .patched ['chown' ].assert_has_calls (
524
+ [call (expected_path , uid = 0 , gid = 0 )], any_order = True )
525
+ self .patched ['log' ].assert_has_calls (
526
+ [call (expected_success_log , nrpe .DEBUG ),
527
+ call (expected_failure_log ),
528
+ call (expected_failure_log ),
529
+ call (expected_failure_log )])
530
+ self .check_call_counts (log = 4 , open = 4 , chmod = 3 , chown = 2 )
531
+
532
+ @patch .object (nrpe , 'enable_sudo_for_openvswitch_checks' )
533
+ @patch .object (nrpe .NRPE , 'add_check' )
534
+ def test_add_openvswitch_checks (self , mock_nrpe_add_check , mock_enable_sudo ):
535
+ foo = nrpe .NRPE ()
536
+ nrpe .add_openvswitch_checks (foo , 'testunit' )
537
+ mock_enable_sudo .assert_called_once ()
538
+ mock_nrpe_add_check .assert_called_once_with (
539
+ shortname = 'openvswitch' ,
540
+ description = 'Check Open vSwitch {testunit}' ,
541
+ check_cmd = 'check_openvswitch.py' )
0 commit comments