summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiampaolo Lauria <lauria@us.ibm.com>2013-02-07 21:11:50 -0500
committerGiampaolo Lauria <lauria@us.ibm.com>2013-02-07 21:14:37 -0500
commit6fb6ac6bdf75e505cc0f3d65621ecae1937702b2 (patch)
treede0f3826b50ed1e2e72c8756b17e4c0b2f05b3c0
parent64106c282f961d65ca469524016635c96596b77f (diff)
downloadnova-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.py16
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_access.py30
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)