From 74421ab620f049b363a657c48f5039a0e2a6d04e Mon Sep 17 00:00:00 2001
From: Balazs Gibizer <balazs.gibizer@est.tech>
Date: Fri, 20 Nov 2020 16:17:59 +0100
Subject: [PATCH] Support sys.argv in wsgi app

At least uwsgi supports passing command line arguments to python wsgi
apps by specifying them as --pyargv for to uwsgi binary. Then the wsgi
app can access them normally via sys.argv.

This patch makes sure that nova-api and nova-metadata-api passes
sys.argv to oslo.config and therefore specifying config files for
these services now possible.

For example the following line in the systemclt service file makes sure
that the nova-api service reads both the nova.conf and the
nova-extra.conf

ExecStart = /usr/local/bin/uwsgi --procname-prefix nova-api \
  --ini /etc/nova/nova-api-uwsgi.ini \
  --pyargv "--config-file=/etc/nova/nova.conf
    --config-file=/etc/nova/nova-extra.conf"

Change-Id: If4783adda92da33d512d7c2834f0bb2e2a9b9654
Related-Bug: #1871482
---

diff --git a/nova/api/openstack/wsgi_app.py b/nova/api/openstack/wsgi_app.py
index 7366df4..fd807a8 100644
--- a/nova/api/openstack/wsgi_app.py
+++ b/nova/api/openstack/wsgi_app.py
@@ -12,6 +12,7 @@
 """WSGI application initialization for Nova APIs."""
 
 import os
+import sys
 
 from oslo_config import cfg
 from oslo_log import log as logging
@@ -76,7 +77,9 @@
 
 def init_application(name):
     conf_files = _get_config_files()
-    config.parse_args([], default_config_files=conf_files)
+    # NOTE(gibi): sys.argv is set by the wsgi runner e.g. uwsgi sets it based
+    # on the --pyargv parameter of the uwsgi binary
+    config.parse_args(sys.argv, default_config_files=conf_files)
 
     logging.setup(CONF, "nova")
 
diff --git a/nova/tests/unit/api/test_wsgi.py b/nova/tests/unit/api/test_wsgi.py
index ba101ce..ec66ef6 100644
--- a/nova/tests/unit/api/test_wsgi.py
+++ b/nova/tests/unit/api/test_wsgi.py
@@ -19,9 +19,13 @@
 Test WSGI basics and provide some helper functions for other WSGI tests.
 """
 
+import sys
+
+import mock
 import routes
 import webob
 
+from nova.api.openstack import wsgi_app
 from nova.api import wsgi
 from nova import test
 
@@ -49,3 +53,16 @@
         self.assertEqual(result.body, "Router result")
         result = webob.Request.blank('/bad').get_response(Router())
         self.assertNotEqual(result.body, "Router result")
+
+    @mock.patch('nova.api.openstack.wsgi_app._setup_service', new=mock.Mock())
+    @mock.patch('paste.deploy.loadapp', new=mock.Mock())
+    def test_init_application_passes_sys_argv_to_config(self):
+
+        sys.argv = mock.sentinel.argv
+
+        with mock.patch('nova.config.parse_args') as mock_parse_args:
+            wsgi_app.init_application('test-app')
+            mock_parse_args.assert_called_once_with(
+                mock.sentinel.argv,
+                default_config_files=[
+                    '/etc/nova/api-paste.ini', '/etc/nova/nova.conf'])
