From 2a98c00d97b700137b3061339e5c485100540f8e Mon Sep 17 00:00:00 2001 From: pycook Date: Fri, 25 Aug 2023 10:59:38 +0800 Subject: [PATCH] update ad_ci when deleting ci --- cmdb-api/api/lib/cmdb/ci.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cmdb-api/api/lib/cmdb/ci.py b/cmdb-api/api/lib/cmdb/ci.py index b70f4d2..4443f19 100644 --- a/cmdb-api/api/lib/cmdb/ci.py +++ b/cmdb-api/api/lib/cmdb/ci.py @@ -40,6 +40,7 @@ from api.lib.perm.acl.acl import is_app_admin from api.lib.perm.acl.acl import validate_permission from api.lib.utils import Lock from api.lib.utils import handle_arg_list +from api.models.cmdb import AutoDiscoveryCI from api.models.cmdb import CI from api.models.cmdb import CIRelation from api.models.cmdb import CITypeAttribute @@ -455,17 +456,22 @@ class CIManager(object): for attr_name in attr_names: value_table = TableMap(attr_name=attr_name).table for item in value_table.get_by(ci_id=ci_id, to_dict=False): - item.delete() + item.delete(commit=False) for item in CIRelation.get_by(first_ci_id=ci_id, to_dict=False): ci_relation_delete.apply_async(args=(item.first_ci_id, item.second_ci_id), queue=CMDB_QUEUE) - item.delete() + item.delete(commit=False) for item in CIRelation.get_by(second_ci_id=ci_id, to_dict=False): ci_relation_delete.apply_async(args=(item.first_ci_id, item.second_ci_id), queue=CMDB_QUEUE) - item.delete() + item.delete(commit=False) - ci.delete() # TODO: soft delete + ad_ci = AutoDiscoveryCI.get_by(ci_id=ci_id, to_dict=False, first=True) + ad_ci and ad_ci.update(is_accept=False, accept_by=None, accept_time=None, filter_none=False, commit=False) + + ci.delete(commit=False) # TODO: soft delete + + db.session.commit() AttributeHistoryManger.add(None, ci_id, [(None, OperateType.DELETE, ci_dict, None)], ci.type_id)