39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from kubernetes import client
|
|
|
|
|
|
def handle_storage_class(vol):
|
|
"""
|
|
vol: dict (send from the frontend)
|
|
|
|
If the fronend sent the special values `{none}` or `{empty}` then the
|
|
backend will need to set the corresponding storage_class value that the
|
|
python client expects.
|
|
"""
|
|
if "class" not in vol:
|
|
return None
|
|
if vol["class"] == "{none}":
|
|
return ""
|
|
if vol["class"] == "{empty}":
|
|
return None
|
|
else:
|
|
return vol["class"]
|
|
|
|
|
|
def pvc_from_dict(body, namespace):
|
|
"""
|
|
body: json object (frontend json data)
|
|
|
|
Convert the PVC json object that is sent from the backend to a python
|
|
client PVC instance.
|
|
"""
|
|
return client.V1PersistentVolumeClaim(
|
|
metadata=client.V1ObjectMeta(name=body["name"], namespace=namespace),
|
|
spec=client.V1PersistentVolumeClaimSpec(
|
|
access_modes=[body["mode"]],
|
|
storage_class_name=handle_storage_class(body),
|
|
resources=client.V1ResourceRequirements(
|
|
requests={"storage": body["size"]}
|
|
),
|
|
),
|
|
)
|