notebooks/components/crud-web-apps/volumes/backend/apps/common/form.py

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"]}
),
),
)