diff options
| author | Giampaolo Lauria <lauria@us.ibm.com> | 2013-02-07 21:11:50 -0500 |
|---|---|---|
| committer | Giampaolo Lauria <lauria@us.ibm.com> | 2013-02-07 21:14:37 -0500 |
| commit | 6fb6ac6bdf75e505cc0f3d65621ecae1937702b2 (patch) | |
| tree | de0f3826b50ed1e2e72c8756b17e4c0b2f05b3c0 | |
| parent | 64106c282f961d65ca469524016635c96596b77f (diff) | |
| download | nova-6fb6ac6bdf75e505cc0f3d65621ecae1937702b2.tar.gz nova-6fb6ac6bdf75e505cc0f3d65621ecae1937702b2.tar.xz nova-6fb6ac6bdf75e505cc0f3d65621ecae1937702b2.zip | |
Fixed FlavorAccess serializer
Fixed flavor_access template
Renamed remaining serializers
Fixed serializer tests
Fixes bug 1115880
Change-Id: I28913f1466ff6d1f7933c292ba617be2899c09a7
| -rw-r--r-- | nova/api/openstack/compute/contrib/flavor_access.py | 16 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_flavor_access.py | 30 |
2 files changed, 14 insertions, 32 deletions
diff --git a/nova/api/openstack/compute/contrib/flavor_access.py b/nova/api/openstack/compute/contrib/flavor_access.py index 1c5006576..744fea13b 100644 --- a/nova/api/openstack/compute/contrib/flavor_access.py +++ b/nova/api/openstack/compute/contrib/flavor_access.py @@ -39,7 +39,7 @@ def make_flavor_access(elem): elem.set('tenant_id') -class FlavorextradatumTemplate(xmlutil.TemplateBuilder): +class FlavorTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.TemplateElement('flavor', selector='flavor') make_flavor(root) @@ -48,7 +48,7 @@ class FlavorextradatumTemplate(xmlutil.TemplateBuilder): return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace}) -class FlavorextradataTemplate(xmlutil.TemplateBuilder): +class FlavorsTemplate(xmlutil.TemplateBuilder): def construct(self): root = xmlutil.TemplateElement('flavors') elem = xmlutil.SubTemplateElement(root, 'flavor', selector='flavors') @@ -60,11 +60,7 @@ class FlavorextradataTemplate(xmlutil.TemplateBuilder): class FlavorAccessTemplate(xmlutil.TemplateBuilder): def construct(self): - def wrapped(obj, do_raise=False): - # wrap bare list in dict - return dict(flavor_access=obj) - - root = xmlutil.TemplateElement('flavor_access', selector=wrapped) + root = xmlutil.TemplateElement('flavor_access') elem = xmlutil.SubTemplateElement(root, 'access', selector='flavor_access') make_flavor_access(elem) @@ -138,7 +134,7 @@ class FlavorActionController(wsgi.Controller): context = req.environ['nova.context'] if authorize(context): # Attach our slave template to the response object - resp_obj.attach(xml=FlavorextradatumTemplate()) + resp_obj.attach(xml=FlavorTemplate()) db_flavor = req.get_db_flavor(id) self._extend_flavor(resp_obj.obj['flavor'], db_flavor) @@ -148,7 +144,7 @@ class FlavorActionController(wsgi.Controller): context = req.environ['nova.context'] if authorize(context): # Attach our slave template to the response object - resp_obj.attach(xml=FlavorextradataTemplate()) + resp_obj.attach(xml=FlavorsTemplate()) flavors = list(resp_obj.obj['flavors']) for flavor_rval in flavors: @@ -160,7 +156,7 @@ class FlavorActionController(wsgi.Controller): context = req.environ['nova.context'] if authorize(context): # Attach our slave template to the response object - resp_obj.attach(xml=FlavorextradatumTemplate()) + resp_obj.attach(xml=FlavorTemplate()) db_flavor = req.get_db_flavor(resp_obj.obj['flavor']['id']) diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_access.py b/nova/tests/api/openstack/compute/contrib/test_flavor_access.py index 0818dfdd3..1475edc0a 100644 --- a/nova/tests/api/openstack/compute/contrib/test_flavor_access.py +++ b/nova/tests/api/openstack/compute/contrib/test_flavor_access.py @@ -252,35 +252,21 @@ class FlavorAccessTest(test.TestCase): class FlavorAccessSerializerTest(test.TestCase): - def test_xml_declaration(self): - access_list = [{'flavor_id': '2', 'tenant_id': 'proj2'}] - serializer = flavor_access.FlavorAccessTemplate() - output = serializer.serialize(access_list) - has_dec = output.startswith("<?xml version='1.0' encoding='UTF-8'?>") - self.assertTrue(has_dec) - def test_serializer_empty(self): - access_list = [] - serializer = flavor_access.FlavorAccessTemplate() - text = serializer.serialize(access_list) + text = serializer.serialize(dict(flavor_access=[])) tree = etree.fromstring(text) self.assertEqual(len(tree), 0) def test_serializer(self): + expected = ("<?xml version='1.0' encoding='UTF-8'?>\n" + '<flavor_access>' + '<access tenant_id="proj2" flavor_id="2"/>' + '<access tenant_id="proj3" flavor_id="2"/>' + '</flavor_access>') access_list = [{'flavor_id': '2', 'tenant_id': 'proj2'}, {'flavor_id': '2', 'tenant_id': 'proj3'}] serializer = flavor_access.FlavorAccessTemplate() - text = serializer.serialize(access_list) - tree = etree.fromstring(text) - - self.assertEqual('flavor_access', tree.tag) - self.assertEqual(len(access_list), len(tree)) - - for i in range(len(access_list)): - self.assertEqual('access', tree[i].tag) - self.assertEqual(access_list[i]['flavor_id'], - tree[i].get('flavor_id')) - self.assertEqual(access_list[i]['tenant_id'], - tree[i].get('tenant_id')) + text = serializer.serialize(dict(flavor_access=access_list)) + self.assertEqual(text, expected) |
