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: