summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorin Hochstein <lorin@isi.edu>2011-06-24 00:45:53 -0400
committerLorin Hochstein <lorin@isi.edu>2011-06-24 00:45:53 -0400
commit7a9dc4adc343aa9cf8c21cef741b3bfe409fc41e (patch)
treea715f255f4867888ed96e2d3f90359045e88d012
parent188dd9117318cc4f5ebe0be9d19b9737a43ce68b (diff)
downloadnova-7a9dc4adc343aa9cf8c21cef741b3bfe409fc41e.tar.gz
nova-7a9dc4adc343aa9cf8c21cef741b3bfe409fc41e.tar.xz
nova-7a9dc4adc343aa9cf8c21cef741b3bfe409fc41e.zip
Committing some broken code in advance of trying a different strategy for specifying args to extensions.ResoruceExtensions, using parent
-rw-r--r--nova/api/openstack/contrib/flavorextraspecs.py21
-rw-r--r--nova/tests/api/openstack/test_flavors_extra_specs.py33
2 files changed, 27 insertions, 27 deletions
diff --git a/nova/api/openstack/contrib/flavorextraspecs.py b/nova/api/openstack/contrib/flavorextraspecs.py
index 24c5da7b2..f2f740bff 100644
--- a/nova/api/openstack/contrib/flavorextraspecs.py
+++ b/nova/api/openstack/contrib/flavorextraspecs.py
@@ -34,7 +34,7 @@ class FlavorExtraSpecsController(object):
specs_dict = {}
for key, value in extra_specs.iteritems():
specs_dict[key] = value
- return dict(extra=specs_dict)
+ return dict(extra_specs=specs_dict)
def _check_body(self, body):
if body == None or body == "":
@@ -43,13 +43,14 @@ class FlavorExtraSpecsController(object):
def index(self, req, flavor_id):
""" Returns the list of extra specs for a givenflavor """
+ print req.environ
context = req.environ['nova.context']
return self._get_extra_specs(context, flavor_id)
def create(self, req, flavor_id, body):
self._check_body(body)
context = req.environ['nova.context']
- specs = body.get('extra')
+ specs = body.get('extra_specs')
try:
db.api.instance_type_extra_specs_update_or_create(context,
flavor_id,
@@ -80,8 +81,8 @@ class FlavorExtraSpecsController(object):
""" Return a single extra spec item """
context = req.environ['nova.context']
specs = self._get_extra_specs(context, flavor_id)
- if id in specs['extra']:
- return {id: specs['extra'][id]}
+ if id in specs['extra_specs']:
+ return {id: specs['extra_specs'][id]}
else:
return faults.Fault(exc.HTTPNotFound())
@@ -108,16 +109,18 @@ class Flavorextraspecs(extensions.ExtensionDescriptor):
def get_namespace(self):
return \
- "http://docs.openstack.org/ext/flavor-extra-specs/api/v1.1"
+ "http://docs.openstack.org/ext/flavor_extra_specs/api/v1.1"
def get_updated(self):
return "2011-06-23T00:00:00+00:00"
def get_resources(self):
resources = []
-
- res = extensions.ResourceExtension('flavor-extra-specs',
- FlavorExtraSpecsController())
+ res = extensions.ResourceExtension('flavor_extra_specs/:(flavor_id)',
+ FlavorExtraSpecsController(),
+ member_actions={
+ 'show' : 'flavor_extra_specs/:(flavor_id)/extra/:(id)' })
resources.append(res)
-
return resources
+
+
diff --git a/nova/tests/api/openstack/test_flavors_extra_specs.py b/nova/tests/api/openstack/test_flavors_extra_specs.py
index 1fe0884b6..caa07ee73 100644
--- a/nova/tests/api/openstack/test_flavors_extra_specs.py
+++ b/nova/tests/api/openstack/test_flavors_extra_specs.py
@@ -24,6 +24,7 @@ import os.path
from nova import flags
from nova.api import openstack
+from nova.api.openstack import auth
from nova.api.openstack import extensions
from nova.tests.api.openstack import fakes
import nova.wsgi
@@ -61,6 +62,7 @@ def stub_flavor_extra_specs():
class FlavorsExtraSpecsTest(unittest.TestCase):
+
def setUp(self):
super(FlavorsExtraSpecsTest, self).setUp()
@@ -71,6 +73,9 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
fakes.FakeAuthDatabase.data = {}
fakes.stub_out_auth(self.stubs)
fakes.stub_out_key_pair_funcs(self.stubs)
+ self.mware = auth.AuthMiddleware(
+ extensions.ExtensionMiddleware(
+ openstack.APIRouterV11()))
def tearDown(self):
self.stubs.UnsetAll()
@@ -79,39 +84,31 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
def test_index(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_get',
return_flavor_extra_specs)
- app = openstack.APIRouterV11()
- ext_midware = extensions.ExtensionMiddleware(app)
- #request = webob.Request.blank('/flavors-extra-specs/1')
- request = webob.Request.blank('/flavors-extra-specs')
- res = request.get_response(ext_midware)
- print res
- #req.environ['api.version'] = '1.1'
- #res = req.get_response(fakes.wsgi_app())
+ request = webob.Request.blank('/flavor_extra_specs/1')
+ res = request.get_response(self.mware)
self.assertEqual(200, res.status_int)
res_dict = json.loads(res.body)
self.assertEqual('application/json', res.headers['Content-Type'])
- print res_dict
- self.assertEqual('value1', res_dict['1']['key1'])
+ self.assertEqual('value1', res_dict['extra_specs']['key1'])
def test_index_no_data(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_get',
return_empty_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra')
- req.environ['api.version'] = '1.1'
- res = req.get_response(fakes.wsgi_app())
+ req = webob.Request.blank('/flavor_extra_specs/1')
+ res = req.get_response(self.mware)
res_dict = json.loads(res.body)
self.assertEqual(200, res.status_int)
self.assertEqual('application/json', res.headers['Content-Type'])
- self.assertEqual(0, len(res_dict['extra']))
+ self.assertEqual(0, len(res_dict['extra_specs']))
def test_show(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_get',
return_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/key5')
- req.environ['api.version'] = '1.1'
- res = req.get_response(fakes.wsgi_app())
- res_dict = json.loads(res.body)
+ req = webob.Request.blank('/flavor_extra_specs/1/extra/key5')
+ res = req.get_response(self.mware)
+ print res
self.assertEqual(200, res.status_int)
+ res_dict = json.loads(res.body)
self.assertEqual('application/json', res.headers['Content-Type'])
self.assertEqual('value5', res_dict['key5'])