summaryrefslogtreecommitdiff
path: root/nova/api/__init__.py
diff options
context:
space:
mode:
authorMichael Gundlach <michael.gundlach@rackspace.com>2010-09-15 17:17:20 -0400
committerMichael Gundlach <michael.gundlach@rackspace.com>2010-09-15 17:17:20 -0400
commit7437df558f3277e21a4c34a5b517a1cae5dd5a74 (patch)
tree2258116e2d885188cd3bbc16bdcc66fe0605334e /nova/api/__init__.py
parent433d83a7e487b41ba4caa7aa5addfc7365975f0b (diff)
downloadnova-7437df558f3277e21a4c34a5b517a1cae5dd5a74.tar.gz
Support querying version list
Diffstat (limited to 'nova/api/__init__.py')
-rw-r--r--nova/api/__init__.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/nova/api/__init__.py b/nova/api/__init__.py
index b9b9e3988f..9f116dadad 100644
--- a/nova/api/__init__.py
+++ b/nova/api/__init__.py
@@ -21,6 +21,7 @@ Root WSGI middleware for all API controllers.
"""
import routes
+import webob.dec
from nova import wsgi
from nova.api import ec2
@@ -32,6 +33,18 @@ class API(wsgi.Router):
def __init__(self):
mapper = routes.Mapper()
+ mapper.connect("/", controller=self.versions)
mapper.connect("/v1.0/{path_info:.*}", controller=rackspace.API())
mapper.connect("/ec2/{path_info:.*}", controller=ec2.API())
super(API, self).__init__(mapper)
+
+ @webob.dec.wsgify
+ def versions(self, req):
+ """Respond to a request for all OpenStack API versions."""
+ response = {
+ "versions": [
+ dict(status="CURRENT", id="v1.0")]}
+ metadata = {
+ "application/xml": {
+ "attributes": dict(version=["status", "id"])}}
+ return wsgi.Serializer(req.environ, metadata).to_content_type(response)