From e3746dd7b4951f7d603da924b2c4134fec4cc204 Mon Sep 17 00:00:00 2001 From: Yumeng Bao Date: Thu, 18 Oct 2018 20:44:01 -0700 Subject: [PATCH] Add WSGI support script for cyborg API Control Plane API endpoints deployment via WSGI [1] was a community goal in Pike release. This method provides a series of advantages over that of running api via a Python command that runs a web server. This patch add scripts for running API services via WSGI. The follow-up patch will add the devstack install support. [1]https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html Change-Id: Ifb0ae2fa2143236fb9b38d230f2604e4e560e66e --- cyborg/api/wsgi_app.py | 43 ++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 2 ++ 2 files changed, 45 insertions(+) create mode 100644 cyborg/api/wsgi_app.py diff --git a/cyborg/api/wsgi_app.py b/cyborg/api/wsgi_app.py new file mode 100644 index 00000000..131aec44 --- /dev/null +++ b/cyborg/api/wsgi_app.py @@ -0,0 +1,43 @@ +# -*- mode: python -*- +# -*- encoding: utf-8 -*- +# +# 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 cyborg-api. + +Script for running cyborg-api under Apache2. +""" + +import sys + +from oslo_config import cfg +import oslo_i18n as i18n +from oslo_log import log + +from cyborg.api import app +from cyborg.common import service + + +def init_application(): + CONF = cfg.CONF + + i18n.install('cyborg') + + service.prepare_service(sys.argv) + + LOG = log.getLogger(__name__) + LOG.debug("Configuration:") + CONF.log_opt_values(LOG, log.DEBUG) + + return app.app_factory(CONF) diff --git a/setup.cfg b/setup.cfg index 6e77c848..942b907a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,6 +38,8 @@ console_scripts = cyborg-conductor = cyborg.cmd.conductor:main cyborg-dbsync = cyborg.cmd.dbsync:main cyborg-agent = cyborg.cmd.agent:main +wsgi_scripts = + cyborg-wsgi-api = cyborg.api.wsgi_app:init_application cyborg.database.migration_backend = sqlalchemy = cyborg.db.sqlalchemy.migration