Skip to content

Commit ba4b056

Browse files
committed
refracturing Exception chain
Signed-off-by: Katharina Trentau <[email protected]>
1 parent a8ac47c commit ba4b056

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

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

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
31: Default storage class has no provisioner
1212
32: None or more then one default Storage Class is defined
1313
33: CSI provider does not belong to the recommended providers
14-
(34: No CSI provider found)
1514
1615
41: Not able to bind PersitantVolume to PersitantVolumeClaim
1716
42: ReadWriteOnce is not a supported access mode
@@ -58,7 +57,6 @@ def check_default_storageclass(k8s_client_storage):
5857
storageclasses_dict = json.loads(storageclasses)
5958

6059
ndefault_class = 0
61-
6260
for item in storageclasses_dict["items"]:
6361
storage_class_name = item["metadata"]["name"]
6462
annotations = item["metadata"]["annotations"]
@@ -74,7 +72,6 @@ def check_default_storageclass(k8s_client_storage):
7472
"This means the default storage class has no provisioner.",
7573
return_code=31,
7674
)
77-
7875
if ndefault_class != 1:
7976
raise SCSTestException(
8077
"More then one or none default StorageClass is defined! ",
@@ -86,7 +83,15 @@ def check_default_storageclass(k8s_client_storage):
8683
return default_storage_class
8784

8885

89-
def create_pvc_pod(k8s_api_instance, storage_class, pvc_name = PVC_NAME, pod_name = POD_NAME, pv_name = PV_NAME, namespace = NAMESPACE, num_retries = NUM_RETRIES):
86+
def create_pvc_pod(
87+
k8s_api_instance,
88+
storage_class,
89+
pvc_name=PVC_NAME,
90+
pod_name=POD_NAME,
91+
pv_name=PV_NAME,
92+
namespace=NAMESPACE,
93+
num_retries=NUM_RETRIES,
94+
):
9095
"""
9196
1. Create PersistantVolumeClaim
9297
2. Create pod which uses the PersitantVolumeClaim
@@ -108,22 +113,22 @@ def create_pvc_pod(k8s_api_instance, storage_class, pvc_name = PVC_NAME, pod_nam
108113
)
109114

110115
api_response = k8s_api_instance.create_namespaced_persistent_volume_claim(
111-
NAMESPACE, body_pvc
116+
namespace, body_pvc
112117
)
113118

114119
# 2. Create a pod which makes use of the PersitantVolumeClaim
115120
logger.debug(f"create pod: {pod_name}")
116121

117122
pod_vol = client.V1Volume(
118-
name=PV_NAME,
123+
name=pv_name,
119124
persistent_volume_claim=client.V1PersistentVolumeClaimVolumeSource(pvc_name),
120125
)
121126
pod_con = client.V1Container(
122127
name="nginx",
123128
image="nginx",
124129
ports=[client.V1ContainerPort(container_port=80)],
125130
volume_mounts=[
126-
client.V1VolumeMount(name=PV_NAME, mount_path="/usr/share/nginx/html")
131+
client.V1VolumeMount(name=pv_name, mount_path="/usr/share/nginx/html")
127132
],
128133
)
129134
pod_spec = client.V1PodSpec(volumes=[pod_vol], containers=[pod_con])
@@ -143,7 +148,7 @@ def create_pvc_pod(k8s_api_instance, storage_class, pvc_name = PVC_NAME, pod_nam
143148
retries = 0
144149
while pod_status != "Running" and retries <= num_retries:
145150
api_response = k8s_api_instance.read_namespaced_pod(
146-
POD_NAME, NAMESPACE, _preload_content=False
151+
pod_name, namespace, _preload_content=False
147152
)
148153
pod_info = json.loads(api_response.read().decode("utf-8"))
149154
pod_status = pod_info["status"]["phase"]
@@ -159,7 +164,9 @@ def create_pvc_pod(k8s_api_instance, storage_class, pvc_name = PVC_NAME, pod_nam
159164
return 0
160165

161166

162-
def check_default_persistentvolumeclaim_readwriteonce(k8s_api_instance):
167+
def check_default_persistentvolumeclaim_readwriteonce(
168+
k8s_api_instance, pvc_name=PVC_NAME
169+
):
163170
"""
164171
3. Check if PV got succesfully created using ReadWriteOnce
165172
"""
@@ -174,8 +181,8 @@ def check_default_persistentvolumeclaim_readwriteonce(k8s_api_instance):
174181
logger.debug("searching for corresponding pv")
175182
for pv in pv_list:
176183
logger.debug(f"parsing pv: {pv['metadata']['name']}")
177-
if pv["spec"]["claimRef"]["name"] == PVC_NAME:
178-
logger.debug(f"found pv to pvc: {PVC_NAME}")
184+
if pv["spec"]["claimRef"]["name"] == pvc_name:
185+
logger.debug(f"found pv to pvc: {pvc_name}")
179186

180187
if pv["status"]["phase"] != "Bound":
181188
raise SCSTestException(
@@ -191,12 +198,12 @@ def check_default_persistentvolumeclaim_readwriteonce(k8s_api_instance):
191198
return 0
192199

193200

194-
def check_csi_provider(k8s_core_api):
201+
def check_csi_provider(k8s_core_api, allowed_csi_prov=ALLOWED_CSI_PROV):
195202
pods = k8s_core_api.list_namespaced_pod(namespace="kube-system")
196203
csi_list = []
197204
for pod in pods.items:
198205
if "csi" in pod.metadata.name:
199-
if pod.metadata.name in ALLOWED_CSI_PROV:
206+
if pod.metadata.name in allowed_csi_prov:
200207
csi_list.append(pod.metadata.name)
201208
logger.info(f"CSI-Provider: {pod.metadata.name}")
202209
else:
@@ -206,10 +213,6 @@ def check_csi_provider(k8s_core_api):
206213
)
207214
else:
208215
logger.info("CSI-Provider: No CSI Provider found.")
209-
# raise SCSTestException(
210-
# "CSI-Provider: No CSI Provider found.",
211-
# return_code=34,
212-
# )
213216
return 0
214217

215218

@@ -344,18 +347,15 @@ def main(argv):
344347
with TestEnvironment(kubeconfig) as env:
345348
# Check if default storage class is defined (MANDATORY)
346349
k8s_core_api = env.k8s_core_api
347-
350+
logger.debug("check_default_storageclass()")
348351
try:
349-
logger.debug("check_default_storageclass()")
350352
default_class_name = check_default_storageclass(env.k8s_storage_api)
351-
except SCSTestException as test_exception: # delete
352-
logger.error(f"L{inspect.currentframe().f_lineno} {test_exception}")
353-
env.return_message = f"{test_exception}"
354-
env.return_code = test_exception.return_code
355-
except Exception as exception_message: # nochmal prüfen ob SCSTest spezifischer
356-
logger.error(f"L{inspect.currentframe().f_lineno} {exception_message}")
357-
env.return_message = f"{exception_message}"
353+
except SCSTestException:
354+
raise
355+
except Exception:
358356
env.return_code = 1
357+
logger.debug("check_default_storageclass() failed")
358+
return env.return_code
359359

360360
try:
361361
env.return_code = create_pvc_pod(k8s_core_api, default_class_name)

0 commit comments

Comments
 (0)