Use monkey_patch for neutron API server.
Neutron API server was not using eventlet monkey patch thus eventlet threads couldn't be properly yielded. This patch set API neutron server like other monkey patched neutron services: neutron-server and neutron-rpc-server. NOTE: this change needs apache service restart. Apache mod_wsgi auto reload can lead to SSL RecursionError. Co-Authored-By: Szymon Wroblewski <szymon.wroblewski@ovhcloud.com> Closes-Bug: 1970216 Change-Id: Ib62c049cc521a548ab7e7e9584b19bdaa67b1c9d
This commit is contained in:
parent
720a1c3de9
commit
dcbc4beb9e
@ -11,6 +11,7 @@
|
||||
# under the License.
|
||||
|
||||
from neutron import server
|
||||
from neutron.server import api_eventlet
|
||||
from neutron.server import rpc_eventlet
|
||||
from neutron.server import wsgi_eventlet
|
||||
|
||||
@ -21,3 +22,7 @@ def main():
|
||||
|
||||
def main_rpc_eventlet():
|
||||
server.boot_server(rpc_eventlet.eventlet_rpc_server)
|
||||
|
||||
|
||||
def main_api_eventlet():
|
||||
return server.boot_server(api_eventlet.eventlet_api_server)
|
||||
|
@ -23,7 +23,6 @@ from oslo_config import cfg
|
||||
|
||||
from neutron._i18n import _
|
||||
from neutron.common import config
|
||||
from neutron.common import profiler
|
||||
|
||||
# NOTE(annp): These environment variables are required for deploying
|
||||
# neutron-api under mod_wsgi. Currently, these variables are set as DevStack's
|
||||
@ -65,14 +64,8 @@ def _init_configuration():
|
||||
def boot_server(server_func):
|
||||
_init_configuration()
|
||||
try:
|
||||
server_func()
|
||||
return server_func()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
except RuntimeError as e:
|
||||
sys.exit(_("ERROR: %s") % e)
|
||||
|
||||
|
||||
def get_application():
|
||||
_init_configuration()
|
||||
profiler.setup('neutron-server', cfg.CONF.host)
|
||||
return config.load_paste_app('neutron')
|
||||
|
25
neutron/server/api_eventlet.py
Normal file
25
neutron/server/api_eventlet.py
Normal file
@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) 2022, OVH SAS
|
||||
# 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.
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
from neutron.common import config
|
||||
from neutron.common import profiler
|
||||
|
||||
|
||||
def eventlet_api_server():
|
||||
profiler.setup('neutron-server', cfg.CONF.host)
|
||||
return config.load_paste_app('neutron')
|
Loading…
Reference in New Issue
Block a user