Merge "Return 40x for flavor.create duplicate."

This commit is contained in:
Jenkins
2012-02-22 22:05:58 +00:00
committed by Gerrit Code Review
2 changed files with 33 additions and 3 deletions

View File

@@ -66,9 +66,12 @@ class FlavorManageController(wsgi.Controller):
swap = vals.get('swap')
rxtx_factor = vals.get('rxtx_factor')
flavor = instance_types.create(name, memory_mb, vcpus,
root_gb, ephemeral_gb, flavorid,
swap, rxtx_factor)
try:
flavor = instance_types.create(name, memory_mb, vcpus,
root_gb, ephemeral_gb, flavorid,
swap, rxtx_factor)
except exception.InstanceTypeExists as err:
raise webob.exc.HTTPConflict(explanation=str(err))
return self._view_builder.show(req, flavor)

View File

@@ -115,3 +115,30 @@ class FlavorManageTest(test.TestCase):
body = json.loads(res.body)
for key in expected["flavor"]:
self.assertEquals(body["flavor"][key], expected["flavor"][key])
def test_instance_type_exists_exception_returns_409(self):
expected = {
"flavor": {
"name": "test",
"ram": 512,
"vcpus": 2,
"disk": 1,
"OS-FLV-EXT-DATA:ephemeral": 1,
"id": 1235,
"swap": 512,
"rxtx_factor": 1,
}
}
def fake_create(name, memory_mb, vcpus, root_gb, ephemeral_gb,
flavorid, swap, rxtx_factor):
raise exception.InstanceTypeExists()
self.stubs.Set(instance_types, "create", fake_create)
url = '/v2/fake/flavors'
req = webob.Request.blank(url)
req.headers['Content-Type'] = 'application/json'
req.method = 'POST'
req.body = json.dumps(expected)
res = req.get_response(fakes.wsgi_app())
self.assertEqual(res.status_int, 409)