From 56baa2bedcc0d7712f76e884abc92532fd5a69b6 Mon Sep 17 00:00:00 2001 From: pycook <pycook@pycookdeMacBook-Pro.local> Date: Thu, 10 Oct 2019 21:23:11 +0800 Subject: [PATCH] ci search return unique key --- api/lib/cmdb/ci.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/api/lib/cmdb/ci.py b/api/lib/cmdb/ci.py index e7f90c5..74c5619 100644 --- a/api/lib/cmdb/ci.py +++ b/api/lib/cmdb/ci.py @@ -34,6 +34,8 @@ from api.models.cmdb import CITypeAttribute from api.tasks.cmdb import ci_cache from api.tasks.cmdb import ci_delete +__author__ = 'pycook' + class CIManager(object): """ manage CI interface @@ -104,8 +106,12 @@ class CIManager(object): res["ci_type"] = ci_type.name fields = CITypeAttributeManager.get_attr_names_by_type_id(ci.type_id) if not fields else fields - - _res = AttributeValueManager().get_attr_values(fields, ci_id, ret_key=ret_key, use_master=use_master) + unique_key = AttributeCache.get(ci_type.unique_id) + _res = AttributeValueManager().get_attr_values(fields, + ci_id, + ret_key=ret_key, + unique_key=unique_key, + use_master=use_master) res.update(_res) res['_type'] = ci_type.id @@ -164,9 +170,9 @@ class CIManager(object): unique_key = AttributeCache.get(ci_type.unique_id) or abort(400, 'illegality unique attribute') unique_value = ci_dict.get(unique_key.name) or \ - ci_dict.get(unique_key.alias) or \ - ci_dict.get(unique_key.id) or \ - abort(400, '{0} missing'.format(unique_key.name)) + ci_dict.get(unique_key.alias) or \ + ci_dict.get(unique_key.id) or \ + abort(400, '{0} missing'.format(unique_key.name)) existed = cls.ci_is_exist(unique_key, unique_value) if existed is not None: