From 56821b6aea6be073352094ee32ae22fae5d6de01 Mon Sep 17 00:00:00 2001 From: Arnaud Morin Date: Tue, 30 May 2023 16:54:28 +0200 Subject: [PATCH] Register GMR with config As an operator, we want to set oslo_reports/file_event_handler because when running behind a wsgi server, GMR cannot register the Signal to be trigger. The parameter file_event_handler has been designed for this specific use case but it was not used correctly by neutron. Closes-Bug: #2021814 Change-Id: Id13de1a3f9ea2eaaa7521eedf905aa0dd993ff89 Signed-off-by: Arnaud Morin --- neutron/cmd/__init__.py | 28 ---------------------------- neutron/server/__init__.py | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/neutron/cmd/__init__.py b/neutron/cmd/__init__.py index 5d72f05bcf2..e69de29bb2d 100644 --- a/neutron/cmd/__init__.py +++ b/neutron/cmd/__init__.py @@ -1,28 +0,0 @@ -# All Rights Reserved. -# -# 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. See the -# License for the specific language governing permissions and limitations -# under the License. - -import logging as sys_logging - -from oslo_reports import guru_meditation_report as gmr - -from neutron import version - -# During the call to gmr.TextGuruMeditation.setup_autorun(), Guru Meditation -# Report tries to start logging. Set a handler here to accommodate this. -logger = sys_logging.getLogger(None) -if not logger.handlers: - logger.addHandler(sys_logging.StreamHandler()) - -_version_string = version.version_info.release_string() -gmr.TextGuruMeditation.setup_autorun(version=_version_string) diff --git a/neutron/server/__init__.py b/neutron/server/__init__.py index ed46b8f675d..2d1387618dc 100644 --- a/neutron/server/__init__.py +++ b/neutron/server/__init__.py @@ -16,13 +16,17 @@ # If ../neutron/__init__.py exists, add ../ to Python search path, so that # it will override what happens to be installed in /usr/(local/)lib/python... +import logging as sys_logging import os import sys from oslo_config import cfg +from oslo_reports import guru_meditation_report as gmr +from oslo_reports import opts as gmr_opts from neutron._i18n import _ from neutron.common import config +from neutron import version # NOTE(annp): These environment variables are required for deploying # neutron-api under mod_wsgi. Currently, these variables are set as DevStack's @@ -62,7 +66,22 @@ def _init_configuration(): def boot_server(server_func): + # During the call to gmr.TextGuruMeditation.setup_autorun(), Guru + # Meditation Report tries to start logging. + # Set a handler here to accommodate this. + # NOTE(amorin) This was introduced to mitigate bug #1532053 which seems + # not triggered anymore. + # But, while fixing bug #2021814 we decided to be conservative and keep + # this to avoid any further side effect. + logger = sys_logging.getLogger(None) + if not logger.handlers: + logger.addHandler(sys_logging.StreamHandler()) + + _version_string = version.version_info.release_string() _init_configuration() + gmr_opts.set_defaults(cfg.CONF) + gmr.TextGuruMeditation.setup_autorun(version=_version_string, + conf=cfg.CONF) try: return server_func() except KeyboardInterrupt: