diff --git a/cmdb-api/api/app.py b/cmdb-api/api/app.py index e581f7b..356bb7c 100644 --- a/cmdb-api/api/app.py +++ b/cmdb-api/api/app.py @@ -6,13 +6,13 @@ import logging import os import sys from inspect import getmembers -from flask.json.provider import DefaultJSONProvider from logging.handlers import RotatingFileHandler from flask import Flask from flask import jsonify, make_response from flask.blueprints import Blueprint from flask.cli import click +from flask.json.provider import DefaultJSONProvider import api.views.entry from api.extensions import (bcrypt, cache, celery, cors, db, es, login_manager, migrate, rd) @@ -173,9 +173,8 @@ def register_commands(app): for root, _, files in os.walk(os.path.join(HERE, "commands")): for filename in files: if not filename.startswith("_") and filename.endswith("py"): - module_path = os.path.join(HERE, root[root.index("commands"):]) - if module_path not in sys.path: - sys.path.insert(1, module_path) + if root not in sys.path: + sys.path.insert(1, root) command = __import__(os.path.splitext(filename)[0]) func_list = [o[0] for o in getmembers(command) if isinstance(o[1], click.core.Command)] for func_name in func_list: diff --git a/cmdb-api/api/resource.py b/cmdb-api/api/resource.py index 43f4bd6..3fa57a7 100644 --- a/cmdb-api/api/resource.py +++ b/cmdb-api/api/resource.py @@ -34,9 +34,8 @@ def register_resources(resource_path, rest_api): for root, _, files in os.walk(os.path.join(resource_path)): for filename in files: if not filename.startswith("_") and filename.endswith("py"): - module_path = os.path.join(API_PACKAGE, root[root.index("views"):]) - if module_path not in sys.path: - sys.path.insert(1, module_path) + if root not in sys.path: + sys.path.insert(1, root) view = __import__(os.path.splitext(filename)[0]) resource_list = [o[0] for o in getmembers(view) if isclass(o[1]) and issubclass(o[1], Resource)] resource_list = [i for i in resource_list if i != "APIView"] diff --git a/cmdb-api/api/views/cmdb/ci.py b/cmdb-api/api/views/cmdb/ci.py index cb285b5..83d3809 100644 --- a/cmdb-api/api/views/cmdb/ci.py +++ b/cmdb-api/api/views/cmdb/ci.py @@ -106,6 +106,7 @@ class CIView(APIView): _is_admin=request.values.pop('__is_admin', False), **ci_dict) else: + request.values.pop('exist_policy', None) ci_id = manager.add(ci_type, exist_policy=ExistPolicy.REPLACE, _no_attribute_policy=_no_attribute_policy,