Dynamic service ordering forms #27

Merged
rixx merged 14 commits from 14-dynamic-service-ordering-forms into main 2025-03-26 14:43:16 +00:00
Showing only changes of commit 83533129bd - Show all commits

View file

@ -1,4 +1,5 @@
import kubernetes
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.functional import cached_property
@ -334,10 +335,17 @@ class ServiceOfferingControlPlane(models.Model):
@cached_property
def resource_schema(self):
cache_key = f"servala:crd:schema:{self.pk}"
if result := cache.get(cache_key):
return result
version = self.service_definition.api_definition["version"]
for v in self.resource_definition.spec.versions:
if v.name == version:
return v.schema.open_apiv3_schema.to_dict()
result = v.schema.open_apiv3_schema.to_dict()
timeout_seconds = 60 * 60 * 24
cache.set(cache_key, result, timeout=timeout_seconds)
return result
@cached_property
def django_model(self):