Service Instances: List and detail view #39

Merged
rixx merged 8 commits from 28-service-instance-listing into main 2025-04-07 17:19:22 +00:00
Showing only changes of commit 7da4b77267 - Show all commits

View file

@ -1,6 +1,7 @@
import json import json
import kubernetes import kubernetes
import rules
import urlman import urlman
from django.conf import settings from django.conf import settings
from django.core.cache import cache from django.core.cache import cache
@ -12,6 +13,7 @@ from encrypted_fields.fields import EncryptedJSONField
from kubernetes import client, config from kubernetes import client, config
from kubernetes.client.rest import ApiException from kubernetes.client.rest import ApiException
from servala.core import rules as perms
from servala.core.models.mixins import ServalaModelMixin from servala.core.models.mixins import ServalaModelMixin
from servala.core.validators import kubernetes_name_validator from servala.core.validators import kubernetes_name_validator
@ -486,6 +488,12 @@ class ServiceInstance(ServalaModelMixin, models.Model):
# Names are unique per de-facto namespace, which is defined by the # Names are unique per de-facto namespace, which is defined by the
# Organization + ServiceDefinition (group, version) + the ControlPlane. # Organization + ServiceDefinition (group, version) + the ControlPlane.
unique_together = [("name", "organization", "context")] unique_together = [("name", "organization", "context")]
rules_permissions = {
"view": rules.is_staff | perms.is_organization_member,
"change": rules.is_staff | perms.is_organization_member,
"delete": rules.is_staff | perms.is_organization_admin,
"add": rules.is_authenticated,
}
class urls(urlman.Urls): class urls(urlman.Urls):
base = "{self.organization.urls.instances}{self.name}/" base = "{self.organization.urls.instances}{self.name}/"