)
return content_copy
+ def delete_ksu_dependency(self, _id, data):
+ used_oka = []
+ existing_oka = []
+
+ for oka_data in data["oka"]:
+ if oka_data.get("_id"):
+ used_oka.append(oka_data["_id"])
+
+ all_ksu_data = self.db.get_list("ksus", {})
+ for ksu_data in all_ksu_data:
+ if ksu_data["_id"] != _id:
+ for oka_data in ksu_data["oka"]:
+ if oka_data.get("_id"):
+ if oka_data["_id"] not in existing_oka:
+ existing_oka.append(oka_data["_id"])
+
+ self.logger.info(f"Used OKA: {used_oka}")
+ self.logger.info(f"Existing OKA: {existing_oka}")
+
+ for oka_id in used_oka:
+ if oka_id not in existing_oka:
+ self.db.set_one(
+ "okas", {"_id": oka_id}, {"_admin.usageState": "NOT_IN_USE"}
+ )
+
+ return
+
def delete_profile_ksu(self, _id, profile_type):
filter_q = {"profile": {"_id": _id, "profile_type": profile_type}}
ksu_list = self.db.get_list("ksus", filter_q)
+ for ksu_data in ksu_list:
+ self.delete_ksu_dependency(ksu_data["_id"], ksu_data)
+
if ksu_list:
self.db.del_list("ksus", filter_q)
return
if resource_status:
db_ksu["state"] == "DELETED"
+ self.delete_ksu_dependency(db_ksu["_id"], db_ksu)
self.db.set_one(self.db_collection, {"_id": db_ksu["_id"]}, db_ksu)
self.db.del_one(self.db_collection, {"_id": db_ksu["_id"]})