[Openstack] Quantum and HTTPD

Adam Young ayoung at redhat.com
Thu Apr 12 15:26:05 UTC 2012


Over the past day or so, I've made an effort  to get Quantum running in 
HTTPD.

My rationale has been to provide:

1. Native SSL support
2. IPv6
3. Certificate based Authentication

My goal has been to do this all on Essex without changing the projects' 
python code base. I'm attempting to do this for all of the Openstack 
components,  and since Quantum has no dependencies,  it seemed a good 
next step after Keystone.


The obvious way to set it up should be to use a wsgi file with just


from paste.deploy.loadwsgi  import loadapp
application = loadapp('config:/etc/quantum/quantum.conf', 'quantum')

But it fails due to issues finding the plugins (error log at the end of 
the message). It deploys cleanly once I made the following changes to 
quantum.

--- a/quantum/extensions/extensions.py
+++ b/quantum/extensions/extensions.py
@@ -538,8 +538,9 @@ class ResourceExtension(object):
  # Returns the extention paths from a config entry and the __path__
  # of quantum.extensions
  def get_extensions_path(config=None):
-    paths = ':'.join(quantum.extensions.__path__)
-    if config:
-        paths = ':'.join([config.get('api_extensions_path', ''), paths])
+#    paths = ':'.join(quantum.extensions.__path__)
+    paths = "/etc/quantum/plugins/"
+#    if config:
+#        paths = ':'.join([config.get('api_extensions_path', ''), paths])

      return paths

Without this, there is a spurious error message due to the leading ':'  
which puts a blank first element to the path.  It also fails to find the 
extensions path regardless of values put into config files etc.  It is 
this last issue which leads me to highly suggest we push Quantum to get 
on the openstack-common bandwagon,  as its Config file processing is 
confusing and,  I think, broken for the general case.


The other issue which leads me to suspect this approach won't work is 
the fact that the quantum command line client accepts a hostname and a 
port,  but not an URL.  So,  while we could deploy quantum behind HTTPD 
and port 443,  it would basically be the root of the HTTP directory,  
and we wouldn't be able to share the HTTPD instance.  We couldn't do

https://hostname/quantum

and put it next to

https://hostname/keystone


Again, not without a code change.

Finally,  there seems to be some support for SSL in Quantum.  I note 
that the quantum client has   the option

-s, --ssl             use ssl

which leads me to believe that it has been at least attempted.  It may 
be that the quantum server would not be severely impacted by the 
overhead of SSL in Python.



Here's the HTTP error log if I don't make the above change:


[Thu Apr 12 11:21:13 2012] [info] Initial (No.1) HTTPS request received 
for chil
d 7 (server ayoungstack.bos.redhat.com:443)
[Thu Apr 12 11:21:13 2012] [info] [client 10.16.187.36] mod_wsgi 
(pid=8747, proc
ess='', application='ayoungstack.bos.redhat.com|/quantum/api'): Loading 
WSGI scr
ipt '/var/www/cgi-bin/quantum/api'.
[Thu Apr 12 11:21:13 2012] [error] 
ERROR:quantum.extensions.extensions:Extension
  path "/etc/quantum/extension" doesn't exist!
[Thu Apr 12 11:21:13 2012] [error] 
WARNING:quantum.extensions.extensions:extensi
on file portstats.py wasnt loaded due to cannot import name extensions
[Thu Apr 12 11:21:13 2012] [error] 
WARNING:quantum.extensions.extensions:extensi
on Cisco Nova Tenant not supported by plugin 
<quantum.plugins.openvswitch.ovs_qu
antum_plugin.OVSQuantumPlugin object at 0x7f1fae80e450>
[Thu Apr 12 11:21:13 2012] [error] 
WARNING:quantum.extensions.extensions:extensi
on Cisco Port Profile not supported by plugin 
<quantum.plugins.openvswitch.ovs_q
uantum_plugin.OVSQuantumPlugin object at 0x7f1fae80e450>
[Thu Apr 12 11:21:13 2012] [error] 
WARNING:quantum.extensions.extensions:extensi
on Cisco Multiport not supported by plugin 
<quantum.plugins.openvswitch.ovs_quan
tum_plugin.OVSQuantumPlugin object at 0x7f1fae80e450>
[Thu Apr 12 11:21:13 2012] [error] 
WARNING:quantum.extensions.extensions:Did not
  find expected name "Extensions" in 
/opt/stack/quantum/quantum/extensions/extens
ions.py

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120412/ea749e77/attachment.html>


More information about the Openstack mailing list