@@ -1804,7 +1804,7 @@ def test_bootstrap_remove_self(self, mock_context, mock_init, mock_active,
1804
1804
mock_check_all_nodes .assert_called_once_with ("removing a node from the cluster" )
1805
1805
1806
1806
@mock .patch ('crmsh.utils.check_all_nodes_reachable' )
1807
- @mock .patch ('crmsh.utils.list_cluster_nodes ' )
1807
+ @mock .patch ('crmsh.xmlutil.CrmMonXmlParser ' )
1808
1808
@mock .patch ('crmsh.utils.this_node' )
1809
1809
@mock .patch ('crmsh.bootstrap.confirm' )
1810
1810
@mock .patch ('crmsh.bootstrap.get_node_canonical_hostname' )
@@ -1814,13 +1814,15 @@ def test_bootstrap_remove_self(self, mock_context, mock_init, mock_active,
1814
1814
@mock .patch ('crmsh.bootstrap.init' )
1815
1815
@mock .patch ('crmsh.bootstrap.Context' )
1816
1816
def test_bootstrap_remove_not_in_cluster (self , mock_context , mock_init , mock_active ,
1817
- mock_error , mock_qdevice , mock_hostname , mock_confirm , mock_this_node , mock_list , mock_check_all_nodes ):
1817
+ mock_error , mock_qdevice , mock_hostname , mock_confirm , mock_this_node , mock_crm_mon_parser , mock_check_all_nodes ):
1818
1818
mock_context_inst = mock .Mock (cluster_node = "node2" , force = True , qdevice_rm_flag = None )
1819
1819
mock_context .return_value = mock_context_inst
1820
1820
mock_active .return_value = [True , True ]
1821
1821
mock_hostname .return_value = "node2"
1822
1822
mock_this_node .return_value = "node1"
1823
- mock_list .return_value = ["node1" , "node3" ]
1823
+ mock_crm_mon_parser_inst = mock .Mock ()
1824
+ mock_crm_mon_parser .return_value = mock_crm_mon_parser_inst
1825
+ mock_crm_mon_parser_inst .get_node_list .return_value = ["node1" , "node3" ]
1824
1826
mock_error .side_effect = SystemExit
1825
1827
1826
1828
with self .assertRaises (SystemExit ):
@@ -1835,13 +1837,13 @@ def test_bootstrap_remove_not_in_cluster(self, mock_context, mock_init, mock_act
1835
1837
mock_hostname .assert_called_once_with ('node2' )
1836
1838
mock_confirm .assert_not_called ()
1837
1839
mock_this_node .assert_called_once_with ()
1838
- mock_error .assert_called_once_with ("Specified node node2 is not configured in cluster! Unable to remove. " )
1840
+ mock_error .assert_called_once_with ("Node node2 is not configured in cluster! (valid nodes: node1, node3) " )
1839
1841
mock_check_all_nodes .assert_called_once_with ("removing a node from the cluster" )
1840
1842
1841
1843
@mock .patch ('crmsh.utils.check_all_nodes_reachable' )
1842
1844
@mock .patch ('crmsh.utils.fetch_cluster_node_list_from_node' )
1843
1845
@mock .patch ('crmsh.bootstrap.remove_node_from_cluster' )
1844
- @mock .patch ('crmsh.utils.list_cluster_nodes ' )
1846
+ @mock .patch ('crmsh.xmlutil.CrmMonXmlParser ' )
1845
1847
@mock .patch ('crmsh.utils.this_node' )
1846
1848
@mock .patch ('crmsh.bootstrap.confirm' )
1847
1849
@mock .patch ('crmsh.bootstrap.get_node_canonical_hostname' )
@@ -1852,13 +1854,15 @@ def test_bootstrap_remove_not_in_cluster(self, mock_context, mock_init, mock_act
1852
1854
@mock .patch ('crmsh.bootstrap.Context' )
1853
1855
def test_bootstrap_remove (self , mock_context , mock_init , mock_active ,
1854
1856
mock_error , mock_qdevice , mock_hostname , mock_confirm , mock_this_node ,
1855
- mock_list , mock_remove , mock_fetch , mock_check_all_nodes ):
1857
+ mock_crm_mon_parser , mock_remove , mock_fetch , mock_check_all_nodes ):
1856
1858
mock_context_inst = mock .Mock (cluster_node = "node2" , qdevice_rm_flag = None , force = True )
1857
1859
mock_context .return_value = mock_context_inst
1858
1860
mock_active .side_effect = [True , False , True ]
1859
1861
mock_hostname .return_value = "node2"
1860
1862
mock_this_node .return_value = "node1"
1861
- mock_list .return_value = ["node1" , "node2" ]
1863
+ mock_crm_mon_parser_inst = mock .Mock ()
1864
+ mock_crm_mon_parser .return_value = mock_crm_mon_parser_inst
1865
+ mock_crm_mon_parser_inst .get_node_list .return_value = ["node1" , "node2" ]
1862
1866
mock_fetch .return_value = ["node1" , "node2" ]
1863
1867
1864
1868
bootstrap .bootstrap_remove (mock_context_inst )
@@ -1956,7 +1960,11 @@ def test_stop_services(self, mock_active, mock_status, mock_stop, mock_this_node
1956
1960
@mock .patch ('logging.Logger.info' )
1957
1961
@mock .patch ('crmsh.bootstrap.stop_services' )
1958
1962
@mock .patch ('crmsh.bootstrap.get_cluster_node_ip' )
1959
- def test_remove_node_from_cluster_rm_node_failed (self , mock_get_ip , mock_stop , mock_status , mock_invoke , mock_error , mock_rm_conf_files , mock_call_delnode ):
1963
+ @mock .patch ('crmsh.xmlutil.CrmMonXmlParser' )
1964
+ def test_remove_node_from_cluster_rm_node_failed (self , mock_crm_mon_parser , mock_get_ip , mock_stop , mock_status , mock_invoke , mock_error , mock_rm_conf_files , mock_call_delnode ):
1965
+ mock_crm_mon_parser_inst = mock .Mock ()
1966
+ mock_crm_mon_parser .return_value = mock_crm_mon_parser_inst
1967
+ mock_crm_mon_parser_inst .is_node_remote .return_value = False
1960
1968
mock_get_ip .return_value = '192.0.2.100'
1961
1969
mock_call_delnode .return_value = False
1962
1970
mock_error .side_effect = SystemExit
@@ -1980,7 +1988,11 @@ def test_remove_node_from_cluster_rm_node_failed(self, mock_get_ip, mock_stop, m
1980
1988
@mock .patch ('logging.Logger.info' )
1981
1989
@mock .patch ('crmsh.bootstrap.stop_services' )
1982
1990
@mock .patch ('crmsh.bootstrap.get_cluster_node_ip' )
1983
- def test_remove_node_from_cluster_rm_csync_failed (self , mock_get_ip , mock_stop , mock_status , mock_invoke , mock_invokerc , mock_error , mock_rm_conf_files , mock_call_delnode ):
1991
+ @mock .patch ('crmsh.xmlutil.CrmMonXmlParser' )
1992
+ def test_remove_node_from_cluster_rm_csync_failed (self , mock_crm_mon_parser , mock_get_ip , mock_stop , mock_status , mock_invoke , mock_invokerc , mock_error , mock_rm_conf_files , mock_call_delnode ):
1993
+ mock_crm_mon_parser_inst = mock .Mock ()
1994
+ mock_crm_mon_parser .return_value = mock_crm_mon_parser_inst
1995
+ mock_crm_mon_parser_inst .is_node_remote .return_value = False
1984
1996
mock_get_ip .return_value = '192.0.2.100'
1985
1997
mock_call_delnode .return_value = True
1986
1998
mock_invokerc .return_value = False
@@ -2017,9 +2029,13 @@ def test_remove_node_from_cluster_rm_csync_failed(self, mock_get_ip, mock_stop,
2017
2029
@mock .patch ('logging.Logger.info' )
2018
2030
@mock .patch ('crmsh.bootstrap.stop_services' )
2019
2031
@mock .patch ('crmsh.bootstrap.get_cluster_node_ip' )
2020
- def test_remove_node_from_cluster_hostname (self , mock_get_ip , mock_stop , mock_status ,
2032
+ @mock .patch ('crmsh.xmlutil.CrmMonXmlParser' )
2033
+ def test_remove_node_from_cluster_hostname (self , mock_crm_mon_parser , mock_get_ip , mock_stop , mock_status ,
2021
2034
mock_invoke , mock_invokerc , mock_error , mock_get_values , mock_del , mock_csync2 ,
2022
2035
mock_adjust_priority , mock_adjust_fence_delay , mock_rm_conf_files , mock_is_active , mock_cal_delnode , mock_firewall , mock_cluster_shell , mock_host_user_config ):
2036
+ mock_crm_mon_parser_inst = mock .Mock ()
2037
+ mock_crm_mon_parser .return_value = mock_crm_mon_parser_inst
2038
+ mock_crm_mon_parser_inst .is_node_remote .return_value = False
2023
2039
mock_get_ip .return_value = "10.10.10.1"
2024
2040
mock_cal_delnode .return_value = True
2025
2041
mock_invoke .side_effect = [(True , None , None )]
0 commit comments