<div dir="ltr">Expanding on my other email. We could alter the oslo.config constructor call to pass in file paths from environmental variables as well. Maybe that's the easiest path forward since it would just be a change from sys.argv to the env vars.<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 4, 2017 at 8:04 AM, Mohammed Naser <span dir="ltr"><<a href="mailto:mnaser@vexxhost.com" target="_blank">mnaser@vexxhost.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-2065677534406622006HOEnZb"><div class="m_-2065677534406622006h5">On Mon, Sep 4, 2017 at 10:40 AM, Mohammed Naser <<a href="mailto:mnaser@vexxhost.com" target="_blank">mnaser@vexxhost.com</a>> wrote:<br>
> On Mon, Sep 4, 2017 at 9:01 AM, Kevin Benton <kevin@benton.pub> wrote:<br>
>> Yes, unfortunately I didn't make it back to the patch in time to adjust<br>
>> devstack to dump all of the configuration into one file (instead of<br>
>> /etc/neutron/neutron.conf /etc/neutron/plugins/ml2.conf etc). I did test<br>
>> locally with my dev environment around the time that RPC server patch went<br>
>> in, but there may have been a regression since it went in since it's not<br>
>> tested as Matt pointed out.<br>
>><br>
><br>
> I've added Puppet into this because I think we would have to take a<br>
> decision regarding this.  The reason behind the fact that we've always<br>
> used the two configuration files is because distributions which ship<br>
> packages actually provide 2 configuration files.<br>
><br>
> We use a configuration resource called `neutron_plugin_ml2` which<br>
> configures things always in `/etc/neutron/plugins/ml2/ml2_<wbr>conf.ini`.<br>
><br>
> In the case of Ubuntu/Debian based systems, we update<br>
> `/etc/default/neutron-server` to point the plugin configuration to<br>
> `/etc/neutron/plugin.ini` and then we ensure that the file is a<br>
> symbolic link to `/etc/neutron/plugins/ml2/ml2_<wbr>conf.ini`.<br>
><br>
> Now, we have two options in my mind (and I am open for others):<br>
><br>
> 1) Configure plugins entirely inside `neutron.conf`<br>
> This option would solve our issue but introduce another one.  I<br>
> believe that the order in the start commands would mean that the later<br>
> configuration files (in this case, the plugin.ini) would have priority<br>
> over the `neutron.conf` causing an inconsistency, I don't think this<br>
> is possible.  However, we can work around this by ensuring that the<br>
> plugin.ini file is empty.  However, we will be introducing service<br>
> restarts for no reason with that change which can be very confusing<br>
> for the user as to why configuration is moving.<br>
><br>
> 2) Figure out a way to pass 'args' via WSGI?<br>
> I'm not sure if this is entirely possible at all.  But, could there be<br>
> a way that we can pass a list of configuration files in the mod_wsgi<br>
> configuration?  This would make it the most transparent fix without<br>
> having to adjust all of the configuration files and bend against the<br>
> set configuration paths of the distro.<br>
<br>
</div></div>I did a bit more research and unfortunately it looks like this option<br>
is not possible (at least with mod_wsgi):<br>
<br>
<a href="https://github.com/GrahamDumpleton/mod_wsgi/blob/master/src/server/wsgi_interp.c#L546-L561" rel="noreferrer" target="_blank">https://github.com/GrahamDumpl<wbr>eton/mod_wsgi/blob/master/src/<wbr>server/wsgi_interp.c#L546-L561</a><br>
<br>
mod_wsgi sets the content of sys.argv to ["mod_wsgi"] only.<br>
Environment variables are still a possibility.<br>
<div class="m_-2065677534406622006HOEnZb"><div class="m_-2065677534406622006h5"><br>
> I'd be more than happy to hear any other ideas regarding this<br>
> solution.  I would love to implement #2 if it is somehow possible<br>
> (environment variables, maybe?) but #1 would work but be very messy<br>
> for operators and users.<br>
><br>
>><br>
>> It appears that puppet is still spreading the config files for the server<br>
>> into multiple locations as well[1]. Does it inherit that logic from<br>
>> devstack? Because that will need to be changed to push all of the relevant<br>
>> server config into one conf.<br>
>><br>
>> 1.<br>
>> <a href="http://logs.openstack.org/82/500182/3/check/gate-puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial/791523c/logs/etc/neutron/plugins/" rel="noreferrer" target="_blank">http://logs.openstack.org/82/5<wbr>00182/3/check/gate-puppet-open<wbr>stack-integration-4-scenario00<wbr>4-tempest-ubuntu-xenial/<wbr>791523c/logs/etc/neutron/<wbr>plugins/</a><br>
>><br>
>> On Sun, Sep 3, 2017 at 12:03 PM, Mohammed Naser <<a href="mailto:mnaser@vexxhost.com" target="_blank">mnaser@vexxhost.com</a>> wrote:<br>
>>><br>
>>> On Sun, Sep 3, 2017 at 3:03 PM, Mohammed Naser <<a href="mailto:mnaser@vexxhost.com" target="_blank">mnaser@vexxhost.com</a>><br>
>>> wrote:<br>
>>> > On Sun, Sep 3, 2017 at 2:20 PM, Matthew Treinish <<a href="mailto:mtreinish@kortar.org" target="_blank">mtreinish@kortar.org</a>><br>
>>> > wrote:<br>
>>> >> On Sun, Sep 03, 2017 at 01:47:24PM -0400, Mohammed Naser wrote:<br>
>>> >>> Hi folks,<br>
>>> >>><br>
>>> >>> I've attempted to enable mod_wsgi support in our dev environment with<br>
>>> >>> Puppet however it results in a traceback.  I figured it was an<br>
>>> >>> environment thing so I looked into moving the Puppet CI to test using<br>
>>> >>> mod_wsgi and it resulted in the same error.<br>
>>> >>><br>
>>> >>><br>
>>> >>> <a href="http://logs.openstack.org/82/500182/3/check/gate-puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial/791523c/logs/apache/neutron_wsgi_error.txt.gz" rel="noreferrer" target="_blank">http://logs.openstack.org/82/5<wbr>00182/3/check/gate-puppet-open<wbr>stack-integration-4-scenario00<wbr>4-tempest-ubuntu-xenial/<wbr>791523c/logs/apache/neutron_<wbr>wsgi_error.txt.gz</a><br>
>>> >>><br>
>>> >>> Would anyone from the Neutron team be able to give input on this?<br>
>>> >>> We'd love to add gating for Neutron deployed by mod_wsgi which can<br>
>>> >>> help find similar issues.<br>
>>> >>><br>
>>> >><br>
>>> >> Neutron never got their wsgi support working in Devstack either. The<br>
>>> >> patch<br>
>>> >> adding that: <a href="https://review.openstack.org/#/c/439191/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/439191/</a> never passed the<br>
>>> >> gate and<br>
>>> >> seems to have lost the attention of the author. The wsgi support in<br>
>>> >> neutron<br>
>>> >> probably doesn't work yet, and is definitely untested. IIRC, the issue<br>
>>> >> they were<br>
>>> >> hitting was loading the config files. [1] I don't think I saw any<br>
>>> >> progress on it<br>
>>> >> after that though.<br>
>>> >><br>
>>> >> The TC goal doc [2] probably should say something about it never<br>
>>> >> landing and<br>
>>> >> missing pike.<br>
>>> >><br>
>>> ><br>
>>> > That would make sense.  The release notes also state that it does<br>
>>> > offer the ability to run inside mod_wsgi which can be misleading to<br>
>>> > deployers (that was the main reason I thought we can start testing<br>
>>> > using it):<br>
>>> ><br>
>>> Sigh, hit send too early.  Here is the link:<br>
>>><br>
>>><br>
>>> <a href="http://git.openstack.org/cgit/openstack/neutron/commit/?id=916bc96ee214078496b4b38e1c93f36f906ce840" rel="noreferrer" target="_blank">http://git.openstack.org/cgit/<wbr>openstack/neutron/commit/?id=9<wbr>16bc96ee214078496b4b38e1c93f36<wbr>f906ce840</a><br>
>>> ><br>
>>> >><br>
>>> >> -Matt Treinish<br>
>>> >><br>
>>> >><br>
>>> >> [1]<br>
>>> >> <a href="http://lists.openstack.org/pipermail/openstack-dev/2017-June/117830.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pip<wbr>ermail/openstack-dev/2017-June<wbr>/117830.html</a><br>
>>> >> [2]<br>
>>> >> <a href="https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html#neutron" rel="noreferrer" target="_blank">https://governance.openstack.o<wbr>rg/tc/goals/pike/deploy-api-in<wbr>-wsgi.html#neutron</a><br>
>>> >><br>
>>> >><br>
>>> >> ______________________________<wbr>______________________________<wbr>______________<br>
>>> >> OpenStack Development Mailing List (not for usage questions)<br>
>>> >> Unsubscribe:<br>
>>> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
>>> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
>>> >><br>
>>><br>
>>> ______________________________<wbr>______________________________<wbr>______________<br>
>>> OpenStack Development Mailing List (not for usage questions)<br>
>>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
>>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
>><br>
>><br>
>><br>
>> ______________________________<wbr>______________________________<wbr>______________<br>
>> OpenStack Development Mailing List (not for usage questions)<br>
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
>><br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</div></div></blockquote></div><br></div></div>