From e6d3c34f756dd04bc67dfea0c12b4f5657167194 Mon Sep 17 00:00:00 2001 From: lovvvve Date: Thu, 28 Jan 2021 16:27:56 +0800 Subject: [PATCH] Update ci.py feat(CiManager.add()): Check the attribute is in the ci_type attributes list --- cmdb-api/api/lib/cmdb/ci.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmdb-api/api/lib/cmdb/ci.py b/cmdb-api/api/lib/cmdb/ci.py index 88530d0..bfa0bf9 100644 --- a/cmdb-api/api/lib/cmdb/ci.py +++ b/cmdb-api/api/lib/cmdb/ci.py @@ -187,8 +187,12 @@ class CIManager(object): return abort(404, 'CI <{0}> does not exist'.format(unique_value)) ci = CI.create(type_id=ci_type.id) + ci_type_attrs_name = [attr["name"] for attr in CITypeAttributeManager().get_attributes_by_type_id(ci_type.id)] value_manager = AttributeValueManager() for p, v in ci_dict.items(): + if p not in ci_type_attrs_name: + current_app.logger.warning(f'ci_type: {ci_type_name} not has attribute {p}, please check!') + continue try: value_manager.create_or_update_attr_value(p, v, ci, _no_attribute_policy) except BadRequest as e: