AmmarFahmy
adding all files
105b369
from phi.base import PhiBase
from phi.k8s.resource.base import K8sResource, K8sObject
from phi.utils.log import logger
class CreateK8sObject(PhiBase):
def _create(self) -> K8sObject:
raise NotImplementedError
def create(self) -> K8sObject:
_resource = self._create()
if _resource is None:
raise ValueError(f"Failed to create resource: {self.__class__.__name__}")
resource_fields = _resource.model_dump(exclude_defaults=True)
base_fields = self.model_dump(exclude_defaults=True)
# Get fields that are set for the base class but not the resource class
diff_fields = {k: v for k, v in base_fields.items() if k not in resource_fields}
updated_resource = _resource.model_copy(update=diff_fields)
# logger.debug(f"Created resource: {updated_resource.__class__.__name__}: {updated_resource.model_dump()}")
return updated_resource
class CreateK8sResource(PhiBase):
def _create(self) -> K8sResource:
raise NotImplementedError
def create(self) -> K8sResource:
_resource = self._create()
# logger.debug(f"Created resource: {self.__class__.__name__}")
if _resource is None:
raise ValueError(f"Failed to create resource: {self.__class__.__name__}")
resource_fields = _resource.model_dump(exclude_defaults=True)
base_fields = self.model_dump(exclude_defaults=True)
# Get fields that are set for the base class but not the resource class
diff_fields = {k: v for k, v in base_fields.items() if k not in resource_fields}
updated_resource = _resource.model_copy(update=diff_fields)
# logger.debug(f"Created resource: {updated_resource.__class__.__name__}: {updated_resource.model_dump()}")
logger.debug(f"Created: {updated_resource.__class__.__name__} | {updated_resource.get_resource_name()}")
return updated_resource