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 kubernetes
|
||||
|
@ -647,14 +648,10 @@ class ServiceInstance(ServalaModelMixin, models.Model):
|
|||
if self.is_deleted:
|
||||
return
|
||||
|
||||
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()
|
||||
if self.spec.get("parameters", {}).get("security", {}).get("deletionProtection"):
|
||||
spec = copy.copy(self.spec)
|
||||
spec["parameters"]["security"]["deletionProtection"] = False
|
||||
self.update_spec(spec, user)
|
||||
|
||||
try:
|
||||
api_instance = self.context.control_plane.custom_objects_api
|
||||
|
@ -670,6 +667,13 @@ class ServiceInstance(ServalaModelMixin, models.Model):
|
|||
if e.status != 404:
|
||||
# 404 is fine, the object was deleted already.
|
||||
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
|
||||
def kubernetes_object(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue