Add uWSGI support
This patch implements uWSGI support for ironic API service. ironic/api/app.wsgi is deprecated in favor of pbr generated ironic-api-wsgi Co-Authored-By: anascko <ovoshchana@mirantis.com> Change-Id: Ieb68c1042e31b77f9a549fd90afe31a65008deca Closes-Bug: #1719260 Closes-Bug: #1668966
This commit is contained in:
parent
bf8cb05aa4
commit
61b81d0c73
@ -43,8 +43,9 @@ Bare Metal service comes with an example file for configuring the
|
||||
``APACHE_RUN_GROUP`` directives to set the user and group values to
|
||||
an appropriate user on your server.
|
||||
|
||||
#. Modify the ``WSGIScriptAlias`` directive to point to the
|
||||
``ironic/api/app.wsgi`` script.
|
||||
#. Modify the ``WSGIScriptAlias`` directive to point to the automatically
|
||||
generated ``ironic-api-wsgi`` script that is located in `IRONIC_BIN`
|
||||
directory.
|
||||
|
||||
#. Modify the ``Directory`` directive to set the path to the Ironic API code.
|
||||
|
||||
@ -68,5 +69,5 @@ Bare Metal service comes with an example file for configuring the
|
||||
sudo systemctl reload apache2
|
||||
|
||||
.. note::
|
||||
The file ``ironic/api/app.wsgi`` is installed with the rest of the Bare Metal
|
||||
service application code, and should not need to be modified.
|
||||
The file ``ironic-api-wsgi`` is automatically generated by pbr and is
|
||||
available in `IRONIC_BIN` directory. It should not be modified.
|
||||
|
@ -12,13 +12,14 @@
|
||||
|
||||
# This is an example Apache2 configuration file for using the
|
||||
# Ironic API through mod_wsgi. This version assumes you are
|
||||
# running devstack to configure the software.
|
||||
# running devstack to configure the software, and PBR has generated
|
||||
# and installed the ironic-api-wsgi script while installing ironic.
|
||||
|
||||
Listen 6385
|
||||
|
||||
<VirtualHost *:6385>
|
||||
WSGIDaemonProcess ironic user=stack group=stack threads=10 display-name=%{GROUP}
|
||||
WSGIScriptAlias / /opt/stack/ironic/ironic/api/app.wsgi
|
||||
WSGIScriptAlias / /usr/local/bin/ironic-api-wsgi
|
||||
|
||||
SetEnv APACHE_RUN_USER stack
|
||||
SetEnv APACHE_RUN_GROUP stack
|
||||
|
@ -16,24 +16,6 @@
|
||||
Use this file for deploying the API service under Apache2 mod_wsgi.
|
||||
"""
|
||||
|
||||
import sys
|
||||
from ironic.api import wsgi
|
||||
|
||||
from oslo_config import cfg
|
||||
import oslo_i18n as i18n
|
||||
from oslo_log import log
|
||||
|
||||
from ironic.api import app
|
||||
from ironic.common import service
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
||||
i18n.install('ironic')
|
||||
|
||||
service.prepare_service(sys.argv)
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
LOG.debug("Configuration:")
|
||||
CONF.log_opt_values(LOG, log.DEBUG)
|
||||
|
||||
application = app.VersionSelectorApplication()
|
||||
application = wsgi.initialize_wsgi_app(show_deprecated=True)
|
||||
|
41
ironic/api/wsgi.py
Normal file
41
ironic/api/wsgi.py
Normal file
@ -0,0 +1,41 @@
|
||||
# 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.
|
||||
"""WSGI script for Ironic API, installed by pbr."""
|
||||
|
||||
import sys
|
||||
|
||||
from oslo_config import cfg
|
||||
import oslo_i18n as i18n
|
||||
from oslo_log import log
|
||||
|
||||
from ironic.api import app
|
||||
from ironic.common import service
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
def initialize_wsgi_app(show_deprecated=False):
|
||||
i18n.install('ironic')
|
||||
|
||||
service.prepare_service(sys.argv)
|
||||
|
||||
LOG.debug("Configuration:")
|
||||
CONF.log_opt_values(LOG, log.DEBUG)
|
||||
|
||||
if show_deprecated:
|
||||
LOG.warning("Using ironic/api/app.wsgi is deprecated and it will "
|
||||
"be removed in Rocky release. Please use automatically "
|
||||
"generated ironic-api-wsgi instead.")
|
||||
|
||||
return app.VersionSelectorApplication()
|
10
releasenotes/notes/wsgi-applications-5d36cf2a8885a56d.yaml
Normal file
10
releasenotes/notes/wsgi-applications-5d36cf2a8885a56d.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
upgrade:
|
||||
- An Ironic API WSGI application script ``ironic-api-wsgi`` is now available.
|
||||
It is auto-generated by ``pbr`` and allows to run the API service
|
||||
using WSGI server (for example Nginx and uWSGI or Apache with mod_wsgi).
|
||||
deprecations:
|
||||
- Using ``ironic/api/app.wsgi`` script is deprecated and it will be removed
|
||||
in Rocky release.
|
||||
Please switch to automatically generated ``ironic-api-wsgi`` script
|
||||
instead.
|
@ -44,6 +44,9 @@ console_scripts =
|
||||
ironic-conductor = ironic.cmd.conductor:main
|
||||
ironic-rootwrap = oslo_rootwrap.cmd:main
|
||||
|
||||
wsgi_scripts =
|
||||
ironic-api-wsgi = ironic.api.wsgi:initialize_wsgi_app
|
||||
|
||||
ironic.dhcp =
|
||||
neutron = ironic.dhcp.neutron:NeutronDHCPApi
|
||||
none = ironic.dhcp.none:NoneDHCPApi
|
||||
|
Loading…
Reference in New Issue
Block a user