cmdb.sql update

This commit is contained in:
pycook 2019-11-29 22:21:41 +08:00
parent 92c163971c
commit d492e7188c
2 changed files with 20 additions and 1 deletions

View File

@ -10,6 +10,7 @@ from api.lib.cmdb.cache import AttributeCache
from api.lib.cmdb.cache import CITypeAttributeCache from api.lib.cmdb.cache import CITypeAttributeCache
from api.lib.cmdb.cache import CITypeCache from api.lib.cmdb.cache import CITypeCache
from api.lib.decorator import kwargs_required from api.lib.decorator import kwargs_required
from api.models.cmdb import CI
from api.models.cmdb import CIType from api.models.cmdb import CIType
from api.models.cmdb import CITypeAttribute from api.models.cmdb import CITypeAttribute
from api.models.cmdb import CITypeAttributeGroup from api.models.cmdb import CITypeAttributeGroup
@ -17,6 +18,8 @@ from api.models.cmdb import CITypeAttributeGroupItem
from api.models.cmdb import CITypeGroup from api.models.cmdb import CITypeGroup
from api.models.cmdb import CITypeGroupItem from api.models.cmdb import CITypeGroupItem
from api.models.cmdb import CITypeRelation from api.models.cmdb import CITypeRelation
from api.models.cmdb import PreferenceTreeView
from api.models.cmdb import PreferenceShowAttributes
class CITypeManager(object): class CITypeManager(object):
@ -99,6 +102,22 @@ class CITypeManager(object):
@classmethod @classmethod
def delete(cls, type_id): def delete(cls, type_id):
ci_type = cls.check_is_existed(type_id) ci_type = cls.check_is_existed(type_id)
if CI.get_by(type_id=type_id, first=True, to_dict=False) is not False:
return abort(400, "cannot delete, because CI instance exists")
for item in CITypeRelation.get_by(parent_id=type_id, to_dict=False):
item.soft_delete()
for item in CITypeRelation.get_by(child_id=type_id, to_dict=False):
item.soft_delete()
for item in PreferenceTreeView.get_by(type_id=type_id, to_dict=False):
item.soft_delete()
for item in PreferenceShowAttributes.get_by(type_id=type_id, to_dict=False):
item.soft_delete()
ci_type.soft_delete() ci_type.soft_delete()
CITypeCache.clean(type_id) CITypeCache.clean(type_id)

View File

@ -137,7 +137,7 @@ class PreferenceManager(object):
def create_or_update_relation_view(cls, name, cr_ids): def create_or_update_relation_view(cls, name, cr_ids):
existed = PreferenceRelationView.get_by(name=name, to_dict=False, first=True) existed = PreferenceRelationView.get_by(name=name, to_dict=False, first=True)
if existed is None: if existed is None:
return PreferenceRelationView.create(name=name, cr_ids=json.dumps(cr_ids)) PreferenceRelationView.create(name=name, cr_ids=json.dumps(cr_ids))
return cls.get_relation_view() return cls.get_relation_view()