diff --git a/api/Dockerfile b/api/Dockerfile index b1b65c5..90513fa 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -2,7 +2,7 @@ # maybe use: cd .. FROM centos:7.6.1810 AS cmdb-api -LABEL description="Python3.7.5,cmdb" +LABEL description="Python2.7.5,cmdb" RUN mkdir -p /data/apps/cmdb /data/apps/cmdb/logs diff --git a/api/commands/click_cmdb.py b/api/commands/click_cmdb.py index 0c81675..3886d55 100644 --- a/api/commands/click_cmdb.py +++ b/api/commands/click_cmdb.py @@ -7,6 +7,7 @@ import click from flask.cli import with_appcontext import api.lib.cmdb.ci +from api.extensions import db from api.extensions import rd from api.models.cmdb import CI @@ -14,11 +15,17 @@ from api.models.cmdb import CI @click.command() @with_appcontext def init_cache(): + db.session.remove() + cis = CI.get_by(to_dict=False) for ci in cis: + + if list(filter(lambda x: x, rd.get([ci.id]))): + continue + m = api.lib.cmdb.ci.CIManager() ci_dict = m.get_ci_by_id_from_db(ci.id, need_children=False, use_master=False) - if rd.get([ci.id]): - return rd.delete(ci.id) rd.add({ci.id: json.dumps(ci_dict)}) + + db.session.remove() diff --git a/api/lib/cmdb/value.py b/api/lib/cmdb/value.py index a9eb4fe..75c1c5c 100644 --- a/api/lib/cmdb/value.py +++ b/api/lib/cmdb/value.py @@ -74,8 +74,6 @@ class AttributeValueManager(object): deserialize = type_map["deserialize"][value_type] try: v = deserialize(value) - if isinstance(v, markupsafe.Markup): - v = str(v) return v except ValueError: return abort(400, "attribute value <{0}> is invalid".format(value)) diff --git a/api/lib/http_cli.py b/api/lib/http_cli.py index 4d9e519..ba290dc 100644 --- a/api/lib/http_cli.py +++ b/api/lib/http_cli.py @@ -1,5 +1,6 @@ # -*- coding:utf-8 -*- +from __future__ import unicode_literals import hashlib @@ -11,7 +12,7 @@ from future.moves.urllib.parse import urlparse def build_api_key(path, params): - g.user is not None or abort(403, u"您得登陆才能进行该操作") + g.user is not None or abort(403, "您得登陆才能进行该操作") key = g.user.key secret = g.user.secret values = "".join([str(params[k]) for k in sorted(params.keys()) diff --git a/api/lib/perm/auth.py b/api/lib/perm/auth.py index d28d3fa..23fe01e 100644 --- a/api/lib/perm/auth.py +++ b/api/lib/perm/auth.py @@ -1,6 +1,8 @@ # -*- coding:utf-8 -*- +from __future__ import unicode_literals + from functools import wraps import jwt @@ -20,7 +22,7 @@ def _auth_with_key(): secret = request.values.get('_secret') path = request.path keys = sorted(request.values.keys()) - req_args = [request.values[k] for k in keys if str(k) not in ("_key", "_secret")] + req_args = [request.values[k] for k in keys if k not in ("_key", "_secret")] user, authenticated = User.query.authenticate_with_key(key, secret, req_args, path) if user and authenticated: login_user(user) diff --git a/api/lib/utils.py b/api/lib/utils.py index 7031f84..b350a7d 100644 --- a/api/lib/utils.py +++ b/api/lib/utils.py @@ -69,6 +69,6 @@ class RedisHandler(object): try: ret = self.r.hdel(self.prefix, key_id) if not ret: - current_app.logger.warn("[%d] is not in redis".format(key_id)) + current_app.logger.warn("[{0}] is not in redis".format(key_id)) except Exception as e: current_app.logger.error("delete redis key error, {0}".format(str(e))) diff --git a/ui/Dockerfile b/ui/Dockerfile index afc8dd0..5838e02 100644 --- a/ui/Dockerfile +++ b/ui/Dockerfile @@ -1,4 +1,4 @@ -FROM node:alpine as builder +FROM node:alpine AS builder LABEL description="cmdb-ui" @@ -9,7 +9,7 @@ WORKDIR /data/apps/cmdb-ui RUN sed -i "s#http://127.0.0.1:5000##g" .env && yarn install && yarn build -FROM nginx:alpine +FROM nginx:alpine AS cmdb-ui RUN mkdir /etc/nginx/html && rm -f /etc/nginx/conf.d/default.conf