def parse_pvc(pvc): """ pvc: client.V1PersistentVolumeClaim Process the PVC and format it as the UI expects it. """ try: capacity = pvc.status.capacity["storage"] except Exception: capacity = pvc.spec.resources.requests["storage"] parsed_pvc = { "name": pvc.metadata.name, "namespace": pvc.metadata.namespace, "status": status.pvc_status(pvc), "age": { "uptime": helpers.get_uptime(pvc.metadata.creation_timestamp), "timestamp": pvc.metadata.creation_timestamp.strftime("%d/%m/%Y, %H:%M:%S"), }, "capacity": capacity, "modes": pvc.spec.access_modes, "class": pvc.spec.storage_class_name, } return parsed_pvc
def notebook_dict_from_k8s_obj(notebook): cntr = notebook["spec"]["template"]["spec"]["containers"][0] return { "name": notebook["metadata"]["name"], "namespace": notebook["metadata"]["namespace"], "age": helpers.get_uptime(notebook["metadata"]["creationTimestamp"]), "image": cntr["image"], "shortImage": cntr["image"].split("/")[-1], "cpu": cntr["resources"]["requests"]["cpu"], "gpus": process_gpus(cntr), "memory": cntr["resources"]["requests"]["memory"], "volumes": [v["name"] for v in cntr["volumeMounts"]], "status": status.process_status(notebook), }
def notebook_dict_from_k8s_obj(notebook): cntr = notebook["spec"]["template"]["spec"]["containers"][0] server_type = None if notebook["metadata"].get("annotations"): annotations = notebook["metadata"]["annotations"] server_type = annotations.get("notebooks.kubeflow.org/server-type") return { "name": notebook["metadata"]["name"], "namespace": notebook["metadata"]["namespace"], "serverType": server_type, "age": helpers.get_uptime(notebook["metadata"]["creationTimestamp"]), "image": cntr["image"], "shortImage": cntr["image"].split("/")[-1], "cpu": cntr["resources"]["requests"]["cpu"], "gpus": process_gpus(cntr), "memory": cntr["resources"]["requests"]["memory"], "volumes": [v["name"] for v in cntr["volumeMounts"]], "status": status.process_status(notebook), }