summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNirmal Ranganathan <nirmal.ranganathan@rackspace.com>2011-05-16 20:39:18 +0000
committerTarmac <>2011-05-16 20:39:18 +0000
commit8d5d0cfeadb42dec55bd94664a28ddd63b7d51d6 (patch)
treeb192bfac8d963af2d856d63d7b0cd83eb331d8c9
parent799f09b01eca9f668b4c139e2a3fa419ed00c142 (diff)
parentd031368b9bba8c9fca066bc6bbce511581806fa5 (diff)
Added missing flavorRef and imageRef checks in the os api xml deserialization code along with tests
-rw-r--r--nova/api/openstack/servers.py5
-rw-r--r--nova/tests/api/openstack/test_servers.py13
2 files changed, 16 insertions, 2 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index fd15c8f0f..8f2de2afe 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -758,8 +758,9 @@ class ServerCreateRequestXMLDeserializer(object):
"""Marshal the server attribute of a parsed request"""
server = {}
server_node = self._find_first_child_named(node, 'server')
- for attr in ["name", "imageId", "flavorId"]:
- server[attr] = server_node.getAttribute(attr)
+ for attr in ["name", "imageId", "flavorId", "imageRef", "flavorRef"]:
+ if server_node.getAttribute(attr):
+ server[attr] = server_node.getAttribute(attr)
metadata = self._extract_metadata(server_node)
if metadata is not None:
server["metadata"] = metadata
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index eebc7f754..e8182b6a9 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -1654,6 +1654,19 @@ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==""",
request = self.deserializer.deserialize(serial_request)
self.assertEqual(request, expected)
+ def test_request_xmlser_with_flavor_image_ref(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v1.1"
+ name="new-server-test"
+ imageRef="http://localhost:8774/v1.1/images/1"
+ flavorRef="http://localhost:8774/v1.1/flavors/1">
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ self.assertEquals(request["server"]["flavorRef"],
+ "http://localhost:8774/v1.1/flavors/1")
+ self.assertEquals(request["server"]["imageRef"],
+ "http://localhost:8774/v1.1/images/1")
+
class TestServerInstanceCreation(test.TestCase):