diff --git a/neutron/cmd/eventlet/server/__init__.py b/neutron/cmd/eventlet/server/__init__.py index 32425fa6c85..8508249af56 100644 --- a/neutron/cmd/eventlet/server/__init__.py +++ b/neutron/cmd/eventlet/server/__init__.py @@ -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) diff --git a/neutron/server/__init__.py b/neutron/server/__init__.py index db729626ec1..ed46b8f675d 100644 --- a/neutron/server/__init__.py +++ b/neutron/server/__init__.py @@ -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') diff --git a/neutron/server/api_eventlet.py b/neutron/server/api_eventlet.py new file mode 100644 index 00000000000..624c16747e3 --- /dev/null +++ b/neutron/server/api_eventlet.py @@ -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') diff --git a/setup.cfg b/setup.cfg index 71326dc305f..8036d34e614 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,7 +34,7 @@ scripts = [entry_points] wsgi_scripts = - neutron-api = neutron.server:get_application + neutron-api = neutron.cmd.eventlet.server:main_api_eventlet console_scripts = neutron-db-manage = neutron.db.migration.cli:main neutron-debug = neutron.debug.shell:main