Skip to content

Commit 024f015

Browse files
committed
context manager workin except for SCSTestExceptions
Signed-off-by: Katharina Trentau <[email protected]>
1 parent 25f2f4f commit 024f015

File tree

1 file changed

+39
-27
lines changed

1 file changed

+39
-27
lines changed

Tests/kaas/k8s-default-storage-class/k8s-default-storage-class-check.py

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -183,26 +183,36 @@ def check_default_persistentvolumeclaim_readwriteonce(k8s_api_instance):
183183
)
184184
return 0
185185

186-
186+
#with TestEnvironment(k8s_core_api, return_code, return_message) as env:
187187
class TestEnvironment:
188-
def __init__(self, k8s_api_instance):
188+
def __init__(self, kubeconfig):
189189
self.namespace = NAMESPACE
190190
self.pod_name = POD_NAME
191191
self.pvc_name = PVC_NAME
192-
self.k8s_api_instance = k8s_api_instance
193-
self.return_code = None
192+
self.k8s_core_api = None
193+
self.return_code = 0
194194
self.return_message = "return_message: FAILED"
195+
self.kubeconfig= kubeconfig
196+
197+
198+
def prepare(self):
199+
try:
200+
logger.debug("setup_k8s_client(kubeconfig)")
201+
self.k8s_core_api, self.k8s_storage_api = setup_k8s_client(self.kubeconfig)
202+
except Exception as exception_message:
203+
logger.info(f"L{inspect.currentframe().f_lineno} {exception_message}")
204+
self.return_message = f"{exception_message}"
205+
self.return_code = 1
195206

196207

197-
def prepare(self, k8s_api_instance):
198208
logger.debug("Checking Environment for Leftovers")
199209
try:
200-
pod_list = k8s_api_instance.list_namespaced_pod(namespace=self.namespace)
210+
pod_list = self.k8s_core_api.list_namespaced_pod(namespace=self.namespace)
201211
for pod in pod_list.items:
202212
if pod.metadata.name == self.pod_name:
203213
logger.debug(f"POD '{self.pod_name}' exists in namespace '{self.namespace}'")
204214
return True
205-
pvc_list = k8s_api_instance.list_namespaced_persistent_volume_claim(namespace=self.namespace)
215+
pvc_list = self.k8s_core_api.list_namespaced_persistent_volume_claim(namespace=self.namespace)
206216
for pvc in pvc_list.items:
207217
if pvc.metadata.name == self.pvc_name:
208218
logger.debug(f"PVC '{self.pvc_name}' exists in namespace '{self.namespace}'")
@@ -217,15 +227,15 @@ def clean(self):
217227
api_response = None
218228
try:
219229
logger.debug(f"delete pod:{self.pod_name}")
220-
api_response = self.k8s_api_instance.delete_namespaced_pod(
230+
api_response = self.k8s_core_api.delete_namespaced_pod(
221231
self.pod_name, self.namespace
222232
)
223233
except:
224234
logger.debug(f"The pod {self.pod_name} couldn't be deleted.", exc_info=True)
225235
try:
226236
logger.debug(f"delete pvc:{self.pvc_name}")
227237
api_response = (
228-
self.k8s_api_instance.delete_namespaced_persistent_volume_claim(
238+
self.k8s_core_api.delete_namespaced_persistent_volume_claim(
229239
self.pvc_name, self.namespace
230240
)
231241
)
@@ -236,26 +246,26 @@ def clean(self):
236246
def __enter__(self):
237247
retries = 0
238248
while retries <= 2:
239-
if self.prepare(self.k8s_api_instance):
249+
if self.prepare():
240250
self.clean()
241251
logger.debug(f"Deleting Leftovers in namespace {self.namespace} from previous test runs")
242252
time.sleep(2)
243253
else:
244-
logger.debug(f"Entering the context {self.k8s_api_instance}")
254+
logger.debug(f"Entering the context {self.k8s_core_api}")
245255
return self
246256
retries += 1
247257
return self
248258

249259

250260
def __exit__(self, exc_type, exc_value, traceback):
251-
#self.clean()
261+
self.clean()
252262
if self.return_code == 0:
253263
self.return_message = "all tests passed"
254264

255265
logger.debug(f"return_code:{self.return_code} {self.return_message}")
256266

257267
gen_sonobuoy_result_file(self.return_code, self.return_message, os.path.basename(__file__))
258-
print(f"Exiting the context {self.k8s_api_instance}")
268+
print(f"Exiting the context {self.k8s_core_api}")
259269
if exc_type:
260270
logger.debug(f"An exception occurred: {exc_value}")
261271
# Return True if the exception should be suppressed, otherwise False
@@ -264,9 +274,6 @@ def __exit__(self, exc_type, exc_value, traceback):
264274

265275
def main(argv):
266276
initialize_logging()
267-
return_code = 0
268-
return_message = "return_message: FAILED"
269-
270277
try:
271278
opts, args = getopt.gnu_getopt(argv, "k:hd:", ["kubeconfig=", "help", "debug"])
272279
except getopt.GetoptError as exc:
@@ -289,19 +296,24 @@ def main(argv):
289296
return 2
290297

291298
# Setup kubernetes client
292-
try:
293-
logger.debug("setup_k8s_client(kubeconfig)")
294-
k8s_core_api, k8s_storage_api = setup_k8s_client(kubeconfig)
295-
except Exception as exception_message:
296-
logger.info(f"L{inspect.currentframe().f_lineno} {exception_message}")
297-
return_message = f"{exception_message}"
298-
return_code = 1
299-
300-
with TestEnvironment(k8s_core_api) as env:
299+
# return_code = 0
300+
# return_message = "return_message: FAILED"
301+
# try:
302+
# logger.debug("setup_k8s_client(kubeconfig)")
303+
# k8s_core_api, k8s_storage_api = setup_k8s_client(kubeconfig)
304+
# except Exception as exception_message:
305+
# logger.info(f"L{inspect.currentframe().f_lineno} {exception_message}")
306+
# return_message = f"{exception_message}"
307+
# return_code = 1
308+
309+
# with TestEnvironment(k8s_core_api, return_code, return_message) as env:
310+
with TestEnvironment(kubeconfig) as env:
301311
# Check if default storage class is defined (MANDATORY)
312+
k8s_core_api = env.k8s_core_api
313+
302314
try:
303315
logger.info("check_default_storageclass()")
304-
default_class_name = check_default_storageclass(k8s_storage_api)
316+
default_class_name = check_default_storageclass(env.k8s_storage_api)
305317
except SCSTestException as test_exception:
306318
logger.info(f"L{inspect.currentframe().f_lineno} {test_exception}")
307319
env.return_message = f"{test_exception}"
@@ -339,7 +351,7 @@ def main(argv):
339351
logger.info(f"{exception_message}")
340352
env.return_message = f"{exception_message}"
341353
env.return_code = 1
342-
return return_code
354+
return env.return_code
343355

344356

345357
if __name__ == "__main__":

0 commit comments

Comments
 (0)