13
13
# limitations under the License.
14
14
15
15
from .. import helpers
16
- from intel import proc , uninstall , third_party
16
+ from intel import custom_resource , proc , uninstall , third_party
17
17
from kubernetes .client .rest import ApiException as K8sApiException
18
18
import os
19
19
import pytest
@@ -62,7 +62,50 @@ def test_uninstall_remove_node_cmk_oir_failure(caplog):
62
62
assert caplog_tuple [- 1 ][2 ] == exp_log_err
63
63
64
64
65
- def test_remove_report_success (caplog ):
65
+ def test_remove_all_report_tpr_success (caplog ):
66
+ mock = MagicMock ()
67
+ mock .remove .return_value = 0
68
+
69
+ with patch ('kubernetes.config.load_incluster_config' ,
70
+ MagicMock (return_value = 0 )), \
71
+ patch ('kubernetes.client.ExtensionsV1beta1Api' ,
72
+ MagicMock (return_value = 0 )), \
73
+ patch ('intel.k8s.get_kubelet_version' ,
74
+ MagicMock (return_value = (1 , 6 ))), \
75
+ patch .object (third_party .ThirdPartyResourceType ,
76
+ 'create' ,
77
+ MagicMock (return_value = mock )):
78
+ uninstall .remove_all_report ()
79
+ caplog_tuple = caplog .record_tuples
80
+ assert caplog_tuple [- 1 ][2 ] == "\" Reconcilereport\" for node \" {}\" " \
81
+ "removed." .format (os .getenv ("NODE_NAME" ))
82
+ assert caplog_tuple [- 3 ][2 ] == "\" Nodereport\" for node \" {}\" " \
83
+ "removed." .format (os .getenv ("NODE_NAME" ))
84
+
85
+
86
+ def test_remove_all_report_crd_success (caplog ):
87
+ mock = MagicMock ()
88
+ mock .remove .return_value = 0
89
+
90
+ with patch ('kubernetes.config.load_incluster_config' ,
91
+ MagicMock (return_value = 0 )), \
92
+ patch ('kubernetes.client.ExtensionsV1beta1Api' ,
93
+ MagicMock (return_value = 0 )), \
94
+ patch ('intel.k8s.get_kubelet_version' ,
95
+ MagicMock (return_value = (1 , 7 ))), \
96
+ patch .object (custom_resource .CustomResourceDefinitionType ,
97
+ 'create' ,
98
+ MagicMock (return_value = mock )):
99
+ uninstall .remove_all_report ()
100
+ caplog_tuple = caplog .record_tuples
101
+ assert caplog_tuple [- 1 ][2 ] == "\" cmk-reconcilereport\" for node " \
102
+ "\" {}\" removed." \
103
+ .format (os .getenv ("NODE_NAME" ))
104
+ assert caplog_tuple [- 3 ][2 ] == "\" cmk-nodereport\" for node \" {}\" " \
105
+ "removed." .format (os .getenv ("NODE_NAME" ))
106
+
107
+
108
+ def test_remove_report_tpr_success (caplog ):
66
109
fake_tpr_report = MagicMock ()
67
110
fake_tpr_report .remove .return_value = 0
68
111
@@ -79,7 +122,7 @@ def test_remove_report_success(caplog):
79
122
80
123
81
124
# Remove success due to not existing report
82
- def test_remove_report_success2 (caplog ):
125
+ def test_remove_report_tpr_success2 (caplog ):
83
126
fake_http_resp = FakeHTTPResponse (500 , "{\" message\" :\" fake message\" }" ,
84
127
"{\" reason\" :\" NotFound\" }" )
85
128
fake_api_exception = K8sApiException (http_resp = fake_http_resp )
@@ -104,7 +147,7 @@ def test_remove_report_success2(caplog):
104
147
"removed." .format (os .getenv ("NODE_NAME" ))
105
148
106
149
107
- def test_remove_report_failure (caplog ):
150
+ def test_remove_report_tpr_failure (caplog ):
108
151
fake_http_resp = FakeHTTPResponse (500 , "{\" message\" :\" fake message\" }" ,
109
152
"{\" reason\" :\" WrongReason\" }" )
110
153
fake_api_exception = K8sApiException (http_resp = fake_http_resp )
@@ -127,6 +170,75 @@ def test_remove_report_failure(caplog):
127
170
assert caplog_tuple [- 1 ][2 ] == exp_log_err
128
171
129
172
173
+ def test_remove_report_crd_success (caplog ):
174
+ fake_crd_report = MagicMock ()
175
+ fake_crd_report .remove .return_value = 0
176
+
177
+ with patch ('kubernetes.config.load_incluster_config' ,
178
+ MagicMock (return_value = 0 )),\
179
+ patch ('kubernetes.client.ExtensionsV1beta1Api' ,
180
+ MagicMock (return_value = 0 )), \
181
+ patch .object (custom_resource .CustomResourceDefinitionType ,
182
+ 'create' ,
183
+ MagicMock (return_value = fake_crd_report )):
184
+ uninstall .remove_report_crd ("cmk-nodereport" , ["cmk-nr" ])
185
+ caplog_tuple = caplog .record_tuples
186
+ assert caplog_tuple [- 1 ][2 ] == "\" cmk-nodereport\" for node \" {}\" " \
187
+ "removed." .format (os .getenv ("NODE_NAME" ))
188
+
189
+
190
+ # Remove success due to not existing report
191
+ def test_remove_report_crd_success2 (caplog ):
192
+ fake_http_resp = FakeHTTPResponse (500 , "{\" message\" :\" fake message\" }" ,
193
+ "{\" reason\" :\" NotFound\" }" )
194
+ fake_api_exception = K8sApiException (http_resp = fake_http_resp )
195
+
196
+ fake_crd_report = MagicMock ()
197
+ fake_crd_report .remove .side_effect = fake_api_exception
198
+
199
+ with patch ('kubernetes.config.load_incluster_config' ,
200
+ MagicMock (return_value = 0 )),\
201
+ patch ('kubernetes.client.ExtensionsV1beta1Api' ,
202
+ MagicMock (return_value = 0 )), \
203
+ patch .object (custom_resource .CustomResourceDefinitionType ,
204
+ 'create' ,
205
+ MagicMock (return_value = fake_crd_report )):
206
+
207
+ uninstall .remove_report_crd ("cmk-nodereport" , ["cmk-nr" ])
208
+ caplog_tuple = caplog .record_tuples
209
+ assert \
210
+ caplog_tuple [- 2 ][2 ] == "\" cmk-nodereport\" for node \" {}\" does " \
211
+ "not exist." .format (os .getenv ("NODE_NAME" ))
212
+ assert \
213
+ caplog_tuple [- 1 ][2 ] == "\" cmk-nodereport\" for node \" {}\" " \
214
+ "removed." .format (os .getenv ("NODE_NAME" ))
215
+
216
+
217
+ def test_remove_report_crd_failure (caplog ):
218
+ fake_http_resp = FakeHTTPResponse (500 , "{\" message\" :\" fake message\" }" ,
219
+ "{\" reason\" :\" WrongReason\" }" )
220
+ fake_api_exception = K8sApiException (http_resp = fake_http_resp )
221
+
222
+ fake_crd_report = MagicMock ()
223
+ fake_crd_report .remove .side_effect = fake_api_exception
224
+
225
+ with patch ('kubernetes.config.load_incluster_config' ,
226
+ MagicMock (return_value = 0 )),\
227
+ patch ('kubernetes.client.ExtensionsV1beta1Api' ,
228
+ MagicMock (return_value = 0 )), \
229
+ patch .object (custom_resource .CustomResourceDefinitionType ,
230
+ 'create' ,
231
+ MagicMock (return_value = fake_crd_report )):
232
+ with pytest .raises (SystemExit ):
233
+ uninstall .remove_report_crd ("cmk-nodereport" , ["cmk-nr" ])
234
+ caplog_tuple = caplog .record_tuples
235
+ exp_err = "Aborting uninstall: " \
236
+ "Exception when removing custom resource definition " \
237
+ "\" cmk-nodereport\" "
238
+ exp_log_err = get_expected_log_error (exp_err , fake_http_resp )
239
+ assert caplog_tuple [- 1 ][2 ] == exp_log_err
240
+
241
+
130
242
def test_uninstall_remove_node_taint_failure1 (caplog ):
131
243
fake_http_resp = FakeHTTPResponse (500 , "fake reason" , "fake body" )
132
244
fake_api_exception = K8sApiException (http_resp = fake_http_resp )
0 commit comments