From 3bd4752aeb947d60b86bc2478dd594dc5e202d4f Mon Sep 17 00:00:00 2001 From: dyh Date: Sun, 7 Feb 2021 11:24:46 +0800 Subject: [PATCH] Remove dependency on onaplogging in vnflcm Change-Id: I176533e844f58cb877111f3d90f1d8869f14ac11 Issue-ID: VFC-1809 Signed-off-by: dyh --- lcm/lcm/log.yml | 8 +--- lcm/lcm/middleware.py | 69 ---------------------------------- lcm/lcm/pub/utils/notificationsutil.py | 2 +- lcm/lcm/pub/utils/restcall.py | 2 +- lcm/lcm/settings.py | 13 +++++-- lcm/requirements.txt | 2 + 6 files changed, 14 insertions(+), 82 deletions(-) delete mode 100644 lcm/lcm/middleware.py diff --git a/lcm/lcm/log.yml b/lcm/lcm/log.yml index c4cc1e30..3c5d2aaa 100644 --- a/lcm/lcm/log.yml +++ b/lcm/lcm/log.yml @@ -26,7 +26,7 @@ handlers: "logging.handlers.RotatingFileHandler" filename: "/var/log/onap/vfc/gvnfm-vnflcm/runtime_lcm.log" formatter: - "mdcFormat" + "standard" maxBytes: 52428800 backupCount: 10 django_handler: @@ -42,9 +42,3 @@ formatters: standard: format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" - mdcFormat: - format: - "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" - mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" - datefmt: "%Y-%m-%d %H:%M:%S" - (): onaplogging.mdcformatter.MDCFormatter diff --git a/lcm/lcm/middleware.py b/lcm/lcm/middleware.py deleted file mode 100644 index 5866debc..00000000 --- a/lcm/lcm/middleware.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (c) 2017-2018 ZTE, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - -import uuid -from onaplogging.mdcContext import MDC - -from lcm.pub.config.config import FORWARDED_FOR_FIELDS, SERVICE_NAME - - -class LogContextMiddleware(object): - # the last IP behind multiple proxies, if no exist proxies - # get local host ip. - def __init__(self, get_response): - self.get_response = get_response - - def _getLastIp(self, request): - - ip = "" - try: - for field in FORWARDED_FOR_FIELDS: - if field in request.META: - if ',' in request.META[field]: - parts = request.META[field].split(',') - ip = parts[-1].strip().split(":")[0] - else: - ip = request.META[field].split(":")[0] - - if ip == "": - ip = request.META.get("HTTP_HOST").split(":")[0] - - except Exception: - pass - - return ip - - def process_request(self, request): - # Fetch TRANSACTIONID Id and pass to plugin server - ReqeustID = request.META.get("HTTP_X_ONAP-RequestID", None) - if ReqeustID is None: - ReqeustID = uuid.uuid3(uuid.NAMESPACE_URL, SERVICE_NAME) - request.META["HTTP_X_ONAP-RequestID"] = ReqeustID - MDC.put("requestID", ReqeustID) - # generate the unique id - InovocationID = uuid.uuid3(uuid.NAMESPACE_DNS, SERVICE_NAME) - MDC.put("invocationID", InovocationID) - MDC.put("serviceName", SERVICE_NAME) - # access ip - MDC.put("serviceIP", self._getLastIp(request)) - - return None - - def process_response(self, request, response): - MDC.clear() - return response - - def __call__(self, request): - self.process_request(request) - response = self.get_response(request) - self.process_response(request, response) - return response diff --git a/lcm/lcm/pub/utils/notificationsutil.py b/lcm/lcm/pub/utils/notificationsutil.py index 32667fa0..fcc7ef91 100644 --- a/lcm/lcm/pub/utils/notificationsutil.py +++ b/lcm/lcm/pub/utils/notificationsutil.py @@ -118,7 +118,7 @@ class NotificationsUtil(object): raise ex except urllib.error.URLError as err: ret = [2, str(err), resp_status, resp_Location] - except Exception as ex: + except Exception: logger.error(traceback.format_exc()) logger.error("[%s]ret=%s" % (callid, str(sys.exc_info()))) res_info = str(sys.exc_info()) diff --git a/lcm/lcm/pub/utils/restcall.py b/lcm/lcm/pub/utils/restcall.py index 8a9010c2..d1ebcc0c 100644 --- a/lcm/lcm/pub/utils/restcall.py +++ b/lcm/lcm/pub/utils/restcall.py @@ -65,7 +65,7 @@ def call_req(base_url, user, passwd, auth_type, resource, method, content='', ad raise ex except urllib.error.URLError as err: ret = [2, str(err), resp_status] - except Exception as ex: + except Exception: logger.error(traceback.format_exc()) logger.error("[%s]ret=%s" % (callid, str(sys.exc_info()))) res_info = str(sys.exc_info()) diff --git a/lcm/lcm/settings.py b/lcm/lcm/settings.py index a71a4cdd..b065464f 100644 --- a/lcm/lcm/settings.py +++ b/lcm/lcm/settings.py @@ -17,12 +17,11 @@ import sys import platform import lcm.pub.redisco +import yaml from lcm.pub.config.config import REDIS_HOST, REDIS_PORT, REDIS_PASSWD from lcm.pub.config.config import DB_NAME, DB_IP, DB_USER, DB_PASSWD, DB_PORT from logging import config -from onaplogging import monkey -monkey.patch_all() # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -70,7 +69,6 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'lcm.middleware.LogContextMiddleware' ] ROOT_URLCONF = 'lcm.urls' @@ -165,8 +163,15 @@ if platform.system() == 'Windows' or 'test' in sys.argv: } else: LOGGING_CONFIG = None + + log_path = '/var/log/onap/vfc/gvnfm-vnflcm' + if not os.path.exists(log_path): + os.makedirs(log_path) + LOGGING_FILE = os.path.join(BASE_DIR, 'lcm/log.yml') - config.yamlConfig(filepath=LOGGING_FILE, watchDog=True) + with open(file=LOGGING_FILE, mode='r', encoding="utf-8")as file: + logging_yaml = yaml.load(stream=file, Loader=yaml.FullLoader) + config.dictConfig(config=logging_yaml) if 'test' in sys.argv: diff --git a/lcm/requirements.txt b/lcm/requirements.txt index 7981a43e..83dde2e9 100644 --- a/lcm/requirements.txt +++ b/lcm/requirements.txt @@ -30,3 +30,5 @@ onappylog==1.0.9 # uwsgi for parallel processing uwsgi + +PyYAML==5.3.1 \ No newline at end of file -- 2.16.6