diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index 917b707..ca70e03 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -324,6 +324,8 @@ class ServiceOfferingControlPlane(models.Model): @cached_property def resource_schema(self): for version in self.resource_definition.spec.versions: + if self.service_definition.api_definition["version"] != version.name: + continue if version.schema and version.schema.open_apiv3_schema: schema_dict = kubernetes.client.ApiClient().sanitize_for_serialization( version.schema.open_apiv3_schema diff --git a/src/servala/frontend/views/service.py b/src/servala/frontend/views/service.py index faead0f..427f6be 100644 --- a/src/servala/frontend/views/service.py +++ b/src/servala/frontend/views/service.py @@ -75,11 +75,14 @@ class ServiceOfferingDetailView(OrganizationViewMixin, HtmxViewMixin, DetailView context["select_form"] = self.select_form if "control_plane" in self.request.GET: if self.select_form.is_valid(): - so_cp = ServiceOfferingControlPlane.objects.filter( - control_plane=self.select_form.cleaned_data["control_plane"], - service_offering=self.object, - ).first() - if not so_cp: + try: + so_cp = ServiceOfferingControlPlane.objects.filter( + control_plane=self.select_form.cleaned_data["control_plane"], + service_offering=self.object, + ).first() + if not so_cp: + context["form_error"] = True + except Exception: context["form_error"] = True else: context["service_form"] = so_cp.model_form_class()