Skip to content

Commit fe7e58a

Browse files
committed
simplify check_default_storageclass
Signed-off-by: Matthias Büchse <[email protected]>
1 parent 20ffdab commit fe7e58a

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

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

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -53,33 +53,23 @@
5353

5454
def check_default_storageclass(k8s_client_storage):
5555
api_response = k8s_client_storage.list_storage_class(_preload_content=False)
56-
storageclasses = api_response.read().decode("utf-8")
57-
storageclasses_dict = json.loads(storageclasses)
58-
59-
ndefault_class = 0
60-
for item in storageclasses_dict["items"]:
61-
storage_class_name = item["metadata"]["name"]
62-
annotations = item["metadata"]["annotations"]
63-
if annotations.get("storageclass.kubernetes.io/is-default-class") == "true":
64-
ndefault_class += 1
65-
default_storage_class = storage_class_name
66-
provisioner = item["provisioner"]
67-
56+
storageclasses = json.loads(api_response.read().decode("utf-8"))
57+
# pick out name and provisioner for each default storage class
58+
defaults = [
59+
(item["metadata"]["name"], item["provisioner"])
60+
for item in storageclasses['items']
61+
if item["metadata"]["annotations"].get("storageclass.kubernetes.io/is-default-class") == "true"
62+
]
63+
if len(defaults) != 1:
64+
names = ', '.join(item[0] for item in defaults)
65+
logger.error(f"Precisely one default storage class required, found {names or 'none'}")
66+
raise SCSTestException('...', return_code=32)
67+
name, provisioner = defaults[0]
68+
logger.info(f"Default storage class and provisioner: {name}, {provisioner}")
6869
if provisioner == "kubernetes.io/no-provisioner":
69-
raise SCSTestException(
70-
f"Provisioner is set to: {provisioner}.",
71-
"This means the default storage class has no provisioner.",
72-
return_code=31,
73-
)
74-
if ndefault_class != 1:
75-
raise SCSTestException(
76-
"More then one or none default StorageClass is defined! ",
77-
f"Number of defined default StorageClasses = {ndefault_class} ",
78-
return_code=32,
79-
)
80-
81-
logger.info(f"One default Storage Class found:'{default_storage_class}'")
82-
return default_storage_class
70+
logger.error("Default storage class missing provisioner")
71+
raise SCSTestException('...', return_code=31)
72+
return name
8373

8474

8575
def create_pvc_pod(

0 commit comments

Comments
 (0)