summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorLorin Hochstein <lorin@isi.edu>2011-06-24 01:01:30 -0400
committerLorin Hochstein <lorin@isi.edu>2011-06-24 01:01:30 -0400
commit4a0fcd6c1d5540c4bec29ef2585987300654c8b7 (patch)
tree39ca722f4fb149f016d9997b72f0d8fad3920f40 /nova
parent7a9dc4adc343aa9cf8c21cef741b3bfe409fc41e (diff)
All tests passing
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/contrib/flavorextraspecs.py15
-rw-r--r--nova/tests/api/openstack/test_flavors_extra_specs.py53
2 files changed, 30 insertions, 38 deletions
diff --git a/nova/api/openstack/contrib/flavorextraspecs.py b/nova/api/openstack/contrib/flavorextraspecs.py
index f2f740bff..ac67fbf43 100644
--- a/nova/api/openstack/contrib/flavorextraspecs.py
+++ b/nova/api/openstack/contrib/flavorextraspecs.py
@@ -43,7 +43,6 @@ 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)
@@ -97,7 +96,9 @@ class FlavorExtraSpecsController(object):
raise exc.HTTPBadRequest(explanation=error.message)
raise error
+
class Flavorextraspecs(extensions.ExtensionDescriptor):
+
def get_name(self):
return "FlavorExtraSpecs"
@@ -116,11 +117,11 @@ class Flavorextraspecs(extensions.ExtensionDescriptor):
def get_resources(self):
resources = []
- res = extensions.ResourceExtension('flavor_extra_specs/:(flavor_id)',
- FlavorExtraSpecsController(),
- member_actions={
- 'show' : 'flavor_extra_specs/:(flavor_id)/extra/:(id)' })
- resources.append(res)
- return resources
+ res = extensions.ResourceExtension(
+ 'flavor_extra_specs',
+ FlavorExtraSpecsController(),
+ parent=dict(member_name='flavor', collection_name='flavors'))
+ 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 caa07ee73..0fe7ec19f 100644
--- a/nova/tests/api/openstack/test_flavors_extra_specs.py
+++ b/nova/tests/api/openstack/test_flavors_extra_specs.py
@@ -31,6 +31,7 @@ import nova.wsgi
FLAGS = flags.FLAGS
+
def return_create_flavor_extra_specs(context, flavor_id, extra_specs):
return stub_flavor_extra_specs()
@@ -62,7 +63,6 @@ def stub_flavor_extra_specs():
class FlavorsExtraSpecsTest(unittest.TestCase):
-
def setUp(self):
super(FlavorsExtraSpecsTest, self).setUp()
@@ -84,7 +84,7 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
def test_index(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_get',
return_flavor_extra_specs)
- request = webob.Request.blank('/flavor_extra_specs/1')
+ request = webob.Request.blank('/flavors/1/flavor_extra_specs')
res = request.get_response(self.mware)
self.assertEqual(200, res.status_int)
res_dict = json.loads(res.body)
@@ -94,7 +94,7 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
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('/flavor_extra_specs/1')
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs')
res = req.get_response(self.mware)
res_dict = json.loads(res.body)
self.assertEqual(200, res.status_int)
@@ -104,9 +104,8 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
def test_show(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_get',
return_flavor_extra_specs)
- req = webob.Request.blank('/flavor_extra_specs/1/extra/key5')
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/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'])
@@ -115,57 +114,52 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
def test_show_spec_not_found(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/key6')
- req.environ['api.version'] = '1.1'
- res = req.get_response(fakes.wsgi_app())
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/key6')
+ res = req.get_response(self.mware)
res_dict = json.loads(res.body)
self.assertEqual(404, res.status_int)
def test_delete(self):
self.stubs.Set(nova.db.api, 'instance_type_extra_specs_delete',
delete_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/key5')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/key5')
req.method = 'DELETE'
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(200, res.status_int)
def test_create(self):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs')
req.method = 'POST'
- req.body = '{"extra": {"key1": "value1"}}'
+ req.body = '{"extra_specs": {"key1": "value1"}}'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ 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('value1', res_dict['extra']['key1'])
+ self.assertEqual('value1', res_dict['extra_specs']['key1'])
def test_create_empty_body(self):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs')
req.method = 'POST'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(400, res.status_int)
def test_update_item(self):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/key1')
req.method = 'PUT'
req.body = '{"key1": "value1"}'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(200, res.status_int)
self.assertEqual('application/json', res.headers['Content-Type'])
res_dict = json.loads(res.body)
@@ -175,33 +169,30 @@ class FlavorsExtraSpecsTest(unittest.TestCase):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/key1')
req.method = 'PUT'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(400, res.status_int)
def test_update_item_too_many_keys(self):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/key1')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/key1')
req.method = 'PUT'
req.body = '{"key1": "value1", "key2": "value2"}'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(400, res.status_int)
def test_update_item_body_uri_mismatch(self):
self.stubs.Set(nova.db.api,
'instance_type_extra_specs_update_or_create',
return_create_flavor_extra_specs)
- req = webob.Request.blank('/v1.1/flavors/1/extra/bad')
- req.environ['api.version'] = '1.1'
+ req = webob.Request.blank('/flavors/1/flavor_extra_specs/bad')
req.method = 'PUT'
req.body = '{"key1": "value1"}'
req.headers["content-type"] = "application/json"
- res = req.get_response(fakes.wsgi_app())
+ res = req.get_response(self.mware)
self.assertEqual(400, res.status_int)