diff --git a/doc/source/admin/config-wsgi.rst b/doc/source/admin/config-wsgi.rst index 8e0dcac75b9..2423b8db84f 100644 --- a/doc/source/admin/config-wsgi.rst +++ b/doc/source/admin/config-wsgi.rst @@ -21,7 +21,7 @@ WSGI Application ---------------- The function ``neutron.server.get_application`` will setup a WSGI application -to run behind uwsgi and mod_wsgi. +to run behind a WSGI server like uwsgi or mod_wsgi. Neutron API behind uwsgi ------------------------ @@ -33,20 +33,20 @@ Create a ``/etc/neutron/neutron-api-uwsgi.ini`` file with the content below: [uwsgi] chmod-socket = 666 socket = /var/run/uwsgi/neutron-api.socket + start-time = %t lazy-apps = true add-header = Connection: close buffer-size = 65535 hook-master-start = unix_signal:15 gracefully_kill_them_all thunder-lock = true - plugins = python + plugins = http,python3 enable-threads = true - worker-reload-mercy = 90 + worker-reload-mercy = 80 exit-on-reload = false die-on-term = true master = true processes = 2 - wsgi-file = /neutron-api - start-time = %t + module = neutron.wsgi.api:application .. end @@ -58,63 +58,6 @@ Start neutron-api: .. end -Neutron API behind mod_wsgi ---------------------------- - -Create ``/etc/apache2/neutron.conf`` with content below: - -.. code-block:: ini - - Listen 9696 - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %D(us)" neutron_combined - - - Require all granted - - - - WSGIDaemonProcess neutron-server processes=1 threads=1 user=stack display-name=%{GROUP} - WSGIProcessGroup neutron-server - WSGIScriptAlias / /neutron-api - WSGIApplicationGroup %{GLOBAL} - WSGIPassAuthorization On - ErrorLogFormat "%M" - ErrorLog /var/log/neutron/neutron.log - CustomLog /var/log/neutron/neutron_access.log neutron_combined - - - Alias /networking /neutron-api - - SetHandler wsgi-script - Options +ExecCGI - WSGIProcessGroup neutron-server - WSGIApplicationGroup %{GLOBAL} - WSGIPassAuthorization On - - - WSGISocketPrefix /var/run/apache2 - -.. end - -For deb-based systems copy or symlink the file to -``/etc/apache2/sites-available``. Then enable the neutron site: - -.. code-block:: console - - # a2ensite neutron - # systemctl reload apache2.service - -.. end - -For rpm-based systems copy the file to ``/etc/httpd/conf.d``. Then enable the -neutron site: - -.. code-block:: console - - # systemctl reload httpd.service - -.. end - Start Neutron RPC server ------------------------ diff --git a/doc/source/contributor/testing/neutron_wsgi_api_server.rst b/doc/source/contributor/testing/neutron_wsgi_api_server.rst index fc5fb85126c..8b2503d9b12 100644 --- a/doc/source/contributor/testing/neutron_wsgi_api_server.rst +++ b/doc/source/contributor/testing/neutron_wsgi_api_server.rst @@ -65,52 +65,3 @@ command: .. code:: bash $ telnet localhost 12345 - - - -Executing the generated Neutron API script ------------------------------------------- - -The ``oslo-config-generator`` script can generate the script located in -``[entry_points]wsgi_scripts``, called ``neutron-api``; this script will -receive the same name. This script can be executed locally and will spawn -a single process Neutron API server, running one single WSGI thread, regardless -of the Neutron ``[DEFAULT]api_workers`` parameter. - -It is not possible to pass any configuration file to this executable but the -Neutron API will use the default ones ``/etc/neutron/neutron.conf`` and -``/etc/neutron/plugins/ml2/ml2_conf.ini``. Any parameter needed by the Neutron -API must be defined in these two files. - -Because this script will run as a Python process, it is possible to attach a -debugger or add a break point using ``pdb``. It is also possible to create a -PyCharm "configuration" (using its own term) to execute the Neutron API using -the PyCharm builtin debugger. - -In order to run the Neutron API using this script, it is only needed to provide -the listening port: - -.. code:: bash - - $ neutron-api --port 8000 - - -Once running, it is needed to change the OpenStack endpoint for the networking -service: - -.. code:: bash - - $ openstack endpoint list - +----------------------------------+-----------+--------------+----------------+---------+-----------+-------------------------------------------------+ - | ID | Region | Service Name | Service Type | Enabled | Interface | URL | - +----------------------------------+-----------+--------------+----------------+---------+-----------+-------------------------------------------------+ - | 3959198c9b3f457cbb03cf49cd278415 | RegionOne | neutron | network | True | public | http://192.168.10.100/networking | - | 5807512a0c344144a1bd4f3bda4d3316 | RegionOne | glance | image | True | public | http://192.168.10.100/image | - | 6954de6553c84cb19d2f3441411ca897 | RegionOne | nova_legacy | compute_legacy | True | public | http://192.168.10.100/compute/v2/$(project_id)s | - | 71fe40ea4e6e431cb800143b4349928c | RegionOne | keystone | identity | True | public | http://192.168.10.100/identity | - | 73b86abeaca14e7ba18a53b8357dddee | RegionOne | nova | compute | True | public | http://192.168.10.100/compute/v2.1 | - | 76f5c962173b419b994d86877070673e | RegionOne | placement | placement | True | public | http://192.168.10.100/placement | - | 841199dad0b54acbb1c781e0b881cbf3 | RegionOne | designate | dns | True | public | http://192.168.10.100/dns | - | f4b219c2287448e3add582204db7ac69 | RegionOne | cinder | block-storage | True | public | http://192.168.10.100/volume/v3 | - +----------------------------------+-----------+--------------+----------------+---------+-----------+-------------------------------------------------+ - $ openstack endpoint set --url http://192.168.10.100:8000 3959198c9b3f457cbb03cf49cd278415 diff --git a/releasenotes/notes/remove-wsgi-script-dfebb60c4a16ef74.yaml b/releasenotes/notes/remove-wsgi-script-dfebb60c4a16ef74.yaml new file mode 100644 index 00000000000..12ebbf3a544 --- /dev/null +++ b/releasenotes/notes/remove-wsgi-script-dfebb60c4a16ef74.yaml @@ -0,0 +1,7 @@ +--- +upgrade: + - | + The WSGI script ``neutron-api`` has been removed. Deployment tooling + should instead reference the Python module path for this service, + ``neutron.wsgi.api``, if their chosen WSGI server supports this (gunicorn, + uWSGI) or implement a ``.wsgi`` script themselves if not (mod_wsgi). diff --git a/setup.cfg b/setup.cfg index 3f9f52ee3fe..16b4e0ddf61 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,8 +29,6 @@ data_files = etc/neutron/rootwrap.d = etc/neutron/rootwrap.d/* [entry_points] -wsgi_scripts = - neutron-api = neutron.cmd.server:main_api_uwsgi console_scripts = neutron-db-manage = neutron.db.migration.cli:main neutron-dhcp-agent = neutron.cmd.agents.dhcp:main