summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-06-13 09:39:58 -0700
committerSandy Walsh <sandy.walsh@rackspace.com>2011-06-13 09:39:58 -0700
commitdb3280e5177df92484bf0a52b5f6ed89dfea63dd (patch)
tree3fdba1a1c8fcb93001a2ef27511edca4c8514a14 /nova/api
parent1261d1340631206c8d47c6373ebd783e75f389ac (diff)
downloadnova-db3280e5177df92484bf0a52b5f6ed89dfea63dd.tar.gz
nova-db3280e5177df92484bf0a52b5f6ed89dfea63dd.tar.xz
nova-db3280e5177df92484bf0a52b5f6ed89dfea63dd.zip
zones image_id/image_href support for 1.0/1.1
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/__init__.py8
-rw-r--r--nova/api/openstack/create_instance_controller.py2
-rw-r--r--nova/api/openstack/servers.py2
-rw-r--r--nova/api/openstack/zones.py19
4 files changed, 15 insertions, 16 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index 4650445d7..e0ae55105 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -81,7 +81,7 @@ class APIRouter(base_wsgi.Router):
self._setup_routes(mapper)
super(APIRouter, self).__init__(mapper)
- def _setup_routes(self, mapper):
+ def _setup_routes(self, mapper, version='1.0'):
server_members = self.server_members
server_members['action'] = 'POST'
if FLAGS.allow_admin_api:
@@ -99,7 +99,7 @@ class APIRouter(base_wsgi.Router):
server_members['inject_network_info'] = 'POST'
mapper.resource("zone", "zones",
- controller=zones.create_resource(),
+ controller=zones.create_resource(version),
collection={'detail': 'GET',
'info': 'GET',
'select': 'POST',
@@ -126,7 +126,7 @@ class APIRouterV10(APIRouter):
"""Define routes specific to OpenStack API V1.0."""
def _setup_routes(self, mapper):
- super(APIRouterV10, self)._setup_routes(mapper)
+ super(APIRouterV10, self)._setup_routes(mapper, version='1.0')
mapper.resource("server", "servers",
controller=servers.create_resource('1.0'),
collection={'detail': 'GET'},
@@ -162,7 +162,7 @@ class APIRouterV11(APIRouter):
"""Define routes specific to OpenStack API V1.1."""
def _setup_routes(self, mapper):
- super(APIRouterV11, self)._setup_routes(mapper)
+ super(APIRouterV11, self)._setup_routes(mapper, version='1.1')
mapper.resource("server", "servers",
controller=servers.create_resource('1.1'),
collection={'detail': 'GET'},
diff --git a/nova/api/openstack/create_instance_controller.py b/nova/api/openstack/create_instance_controller.py
index cffd944f7..2d807470a 100644
--- a/nova/api/openstack/create_instance_controller.py
+++ b/nova/api/openstack/create_instance_controller.py
@@ -19,7 +19,6 @@ import base64
import re
import webob
-from urlparse import urlparse
from webob import exc
from xml.dom import minidom
@@ -31,7 +30,6 @@ from nova import quota
from nova import utils
from nova.compute import instance_types
-from nova.api.openstack import common
from nova.api.openstack import faults
from nova.api.openstack import wsgi
from nova.auth import manager as auth_manager
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 387b0343a..9799c3dea 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -17,7 +17,6 @@ import base64
import traceback
from webob import exc
-from xml.dom import minidom
from nova import compute
from nova import exception
@@ -32,7 +31,6 @@ import nova.api.openstack.views.flavors
import nova.api.openstack.views.images
import nova.api.openstack.views.servers
from nova.api.openstack import wsgi
-from nova.auth import manager as auth_manager
import nova.api.openstack
from nova.scheduler import api as scheduler_api
diff --git a/nova/api/openstack/zones.py b/nova/api/openstack/zones.py
index 250848165..91b063cad 100644
--- a/nova/api/openstack/zones.py
+++ b/nova/api/openstack/zones.py
@@ -69,8 +69,9 @@ class Controller(controller.OpenstackCreateInstanceController):
doing that (shared with Servers).
"""
- def __init__(self):
+ def __init__(self, version):
self.compute_api = compute.API()
+ self.version = version
super(Controller, self).__init__()
def index(self, req):
@@ -160,16 +161,18 @@ class Controller(controller.OpenstackCreateInstanceController):
blob=cipher_text))
return cooked
- # Assume OS 1.0 functionality for these overrides.
-
- def _image_id_from_req_data(self, data):
- return data['server']['imageId']
+ def _image_ref_from_req_data(self, data):
+ if self.version == '1.0':
+ return data['server']['imageId']
+ return data['server']['imageRef']
def _flavor_id_from_req_data(self, data):
- return data['server']['flavorId']
+ if self.version == '1.0':
+ return data['server']['flavorId']
+ return data['server']['flavorRef']
-def create_resource():
+def create_resource(version):
metadata = {
"attributes": {
"zone": ["id", "api_url", "name", "capabilities"],
@@ -185,5 +188,5 @@ def create_resource():
'application/xml': controller.ServerXMLDeserializer(),
}
- return wsgi.Resource(Controller(), serializers=serializers,
+ return wsgi.Resource(Controller(version), serializers=serializers,
deserializers=deserializers)