diff options
-rw-r--r-- | multivimbroker/docker/Dockerfile | 2 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/middleware.py | 64 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/pub/config/log.yml | 9 | ||||
-rw-r--r-- | multivimbroker/multivimbroker/settings.py | 57 | ||||
-rw-r--r-- | multivimbroker/requirements.txt | 3 |
5 files changed, 49 insertions, 86 deletions
diff --git a/multivimbroker/docker/Dockerfile b/multivimbroker/docker/Dockerfile index f12a875..5f74cf3 100644 --- a/multivimbroker/docker/Dockerfile +++ b/multivimbroker/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-alpine +FROM python:3.8-alpine ENV MSB_PROTO "http" ENV MSB_ADDR "127.0.0.1" diff --git a/multivimbroker/multivimbroker/middleware.py b/multivimbroker/multivimbroker/middleware.py deleted file mode 100644 index fd063c3..0000000 --- a/multivimbroker/multivimbroker/middleware.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (c) 2017-2018 VMware, 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 multivimbroker.pub.config.config import SERVICE_NAME -from multivimbroker.pub.config.config import FORWARDED_FOR_FIELDS - - -class LogContextMiddleware(object): - - # the last IP behind multiple proxies, if no exist proxies - # get local host ip. - 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_TRANSACTIONID", None) - if ReqeustID is None: - ReqeustID = str(uuid.uuid3(uuid.NAMESPACE_URL, SERVICE_NAME)) - request.META["HTTP_X_TRANSACTIONID"] = ReqeustID - MDC.put("requestID", ReqeustID) - # generate the unique id - InovocationID = str(uuid.uuid4()) - 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 diff --git a/multivimbroker/multivimbroker/pub/config/log.yml b/multivimbroker/multivimbroker/pub/config/log.yml index 09be40d..bdcf2ad 100644 --- a/multivimbroker/multivimbroker/pub/config/log.yml +++ b/multivimbroker/multivimbroker/pub/config/log.yml @@ -11,16 +11,9 @@ handlers: level: "DEBUG" class: "logging.handlers.RotatingFileHandler" filename: "/var/log/onap/multicloud/multivimbroker/multivimbroker.log" - formatter: "mdcFormat" + formatter: "standard" maxBytes: 52428800 backupCount: 10 formatters: standard: format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(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/multivimbroker/multivimbroker/settings.py b/multivimbroker/multivimbroker/settings.py index d5cd466..850694e 100644 --- a/multivimbroker/multivimbroker/settings.py +++ b/multivimbroker/multivimbroker/settings.py @@ -12,9 +12,9 @@ import os import sys -from logging import config -from onaplogging import monkey -monkey.patch_all() +import platform +import yaml +from logging import config as log_config # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -51,7 +51,6 @@ MIDDLEWARE_CLASSES = [ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'multivimbroker.middleware.LogContextMiddleware', ] ROOT_URLCONF = 'multivimbroker.urls' @@ -82,15 +81,51 @@ TIME_ZONE = 'UTC' STATIC_URL = '/static/' - -LOGGING_CONFIG = None -# yaml configuration of logging -LOGGING_FILE = os.path.join(BASE_DIR, 'multivimbroker/pub/config/log.yml') -config.yamlConfig(filepath=LOGGING_FILE, watchDog=True) - +if platform.system() == 'Windows' or 'test' in sys.argv: + LOGGING = { + 'version': 1, + 'disable_existing_loggers': True, + 'formatters': { + 'standard': { + 'format': '%(asctime)s:[%(name)s]:[%(filename)s]' + + '-[%(lineno)d] [%(levelname)s]:%(message)s', + }, + }, + 'filters': { + }, + 'handlers': { + 'file_handler': { + 'level': 'DEBUG', + 'class': 'logging.handlers.RotatingFileHandler', + 'filename': os.path.join(BASE_DIR, 'logs/test.log'), + 'formatter': 'standard', + 'maxBytes': 1024 * 1024 * 50, + 'backupCount': 5, + }, + }, + + 'loggers': { + 'common': { + 'handlers': ['file_handler'], + 'level': 'DEBUG', + 'propagate': False + }, + } + } +else: + log_path = "/var/log/onap/multicloud/multivimbroker" + if not os.path.exists(log_path): + os.makedirs(log_path) + + LOGGING_CONFIG = None + # yaml configuration of logging + LOGGING_FILE = os.path.join(BASE_DIR, 'multivimbroker/pub/config/log.yml') + with open(file=LOGGING_FILE, mode='r', encoding="utf-8")as file: + logging_yaml = yaml.load(stream=file, Loader=yaml.FullLoader) + log_config.dictConfig(config=logging_yaml) if 'test' in sys.argv: - from multivimbroker.pub.config import config + # from multivimbroker.pub.config import config REST_FRAMEWORK = {} import platform diff --git a/multivimbroker/requirements.txt b/multivimbroker/requirements.txt index f417847..e792b78 100644 --- a/multivimbroker/requirements.txt +++ b/multivimbroker/requirements.txt @@ -26,8 +26,7 @@ httplib2==0.13.0 # mock==2.0.0 # unittest_xml_reporting==1.12.0 -# for onap logging -onappylog>=1.0.9 +PyYAML==5.3.1 # for pecan framework # pecan>=1.2.1 |