Handle deletion protection
This commit is contained in:
parent
3e466fb011
commit
d1d1352cf4
1 changed files with 12 additions and 8 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
import copy
|
||||||
import json
|
import json
|
||||||
|
|
||||||
import kubernetes
|
import kubernetes
|
||||||
|
@ -647,14 +648,10 @@ class ServiceInstance(ServalaModelMixin, models.Model):
|
||||||
if self.is_deleted:
|
if self.is_deleted:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.is_deleted = True
|
if self.spec.get("parameters", {}).get("security", {}).get("deletionProtection"):
|
||||||
self.deleted_at = timezone.now()
|
spec = copy.copy(self.spec)
|
||||||
self.deleted_by = user
|
spec["parameters"]["security"]["deletionProtection"] = False
|
||||||
self.save(
|
self.update_spec(spec, user)
|
||||||
update_fields=["is_deleted", "deleted_at", "deleted_by", "updated_at"]
|
|
||||||
)
|
|
||||||
|
|
||||||
self._clear_kubernetes_caches()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
api_instance = self.context.control_plane.custom_objects_api
|
api_instance = self.context.control_plane.custom_objects_api
|
||||||
|
@ -670,6 +667,13 @@ class ServiceInstance(ServalaModelMixin, models.Model):
|
||||||
if e.status != 404:
|
if e.status != 404:
|
||||||
# 404 is fine, the object was deleted already.
|
# 404 is fine, the object was deleted already.
|
||||||
raise
|
raise
|
||||||
|
self.is_deleted = True
|
||||||
|
self.deleted_at = timezone.now()
|
||||||
|
self.deleted_by = user
|
||||||
|
self.save(
|
||||||
|
update_fields=["is_deleted", "deleted_at", "deleted_by", "updated_at"]
|
||||||
|
)
|
||||||
|
self._clear_kubernetes_caches()
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def kubernetes_object(self):
|
def kubernetes_object(self):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue