Merge "Fix HTTP response code for network APIs and improve error message"
This commit is contained in:
commit
16beb012ec
|
@ -835,11 +835,11 @@ class ServersController(wsgi.Controller):
|
||||||
exception.InvalidMetadata,
|
exception.InvalidMetadata,
|
||||||
exception.InvalidRequest,
|
exception.InvalidRequest,
|
||||||
exception.MultiplePortsNotApplicable,
|
exception.MultiplePortsNotApplicable,
|
||||||
|
exception.InstanceUserDataMalformed,
|
||||||
|
exception.PortNotFound,
|
||||||
exception.SecurityGroupNotFound,
|
exception.SecurityGroupNotFound,
|
||||||
exception.InstanceUserDataMalformed) as error:
|
exception.NetworkNotFound) as error:
|
||||||
raise exc.HTTPBadRequest(explanation=error.format_message())
|
raise exc.HTTPBadRequest(explanation=error.format_message())
|
||||||
except exception.PortNotFound as error:
|
|
||||||
raise exc.HTTPNotFound(explanation=error.format_message())
|
|
||||||
except exception.PortInUse as error:
|
except exception.PortInUse as error:
|
||||||
raise exc.HTTPConflict(explanation=error.format_message())
|
raise exc.HTTPConflict(explanation=error.format_message())
|
||||||
|
|
||||||
|
|
|
@ -970,6 +970,7 @@ class Controller(wsgi.Controller):
|
||||||
exception.InvalidMetadata,
|
exception.InvalidMetadata,
|
||||||
exception.InvalidRequest,
|
exception.InvalidRequest,
|
||||||
exception.MultiplePortsNotApplicable,
|
exception.MultiplePortsNotApplicable,
|
||||||
|
exception.NetworkNotFound,
|
||||||
exception.PortNotFound,
|
exception.PortNotFound,
|
||||||
exception.SecurityGroupNotFound,
|
exception.SecurityGroupNotFound,
|
||||||
exception.InvalidBDM) as error:
|
exception.InvalidBDM) as error:
|
||||||
|
|
|
@ -2327,6 +2327,18 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
self._test_create_extra, params)
|
self._test_create_extra, params)
|
||||||
|
|
||||||
|
def test_create_instance_with_neturonv2_not_found_network(self):
|
||||||
|
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
||||||
|
requested_networks = [{'uuid': network}]
|
||||||
|
params = {'networks': requested_networks}
|
||||||
|
|
||||||
|
def fake_create(*args, **kwargs):
|
||||||
|
raise exception.NetworkNotFound(network_id=network)
|
||||||
|
|
||||||
|
self.stubs.Set(compute_api.API, 'create', fake_create)
|
||||||
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
self._test_create_extra, params)
|
||||||
|
|
||||||
def test_create_instance_with_neutronv2_port_not_found(self):
|
def test_create_instance_with_neutronv2_port_not_found(self):
|
||||||
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
||||||
port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
|
port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
|
||||||
|
@ -2337,7 +2349,7 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
raise exception.PortNotFound(port_id=port)
|
raise exception.PortNotFound(port_id=port)
|
||||||
|
|
||||||
self.stubs.Set(compute_api.API, 'create', fake_create)
|
self.stubs.Set(compute_api.API, 'create', fake_create)
|
||||||
self.assertRaises(webob.exc.HTTPNotFound,
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
self._test_create_extra, params)
|
self._test_create_extra, params)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2949,6 +2949,19 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self._test_create_extra, params)
|
self._test_create_extra, params)
|
||||||
|
|
||||||
|
def test_create_instance_with_neturonv2_not_found_network(self):
|
||||||
|
self.flags(network_api_class='nova.network.neutronv2.api.API')
|
||||||
|
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
||||||
|
requested_networks = [{'uuid': network}]
|
||||||
|
params = {'networks': requested_networks}
|
||||||
|
|
||||||
|
def fake_create(*args, **kwargs):
|
||||||
|
raise exception.NetworkNotFound(network_id=network)
|
||||||
|
|
||||||
|
self.stubs.Set(compute_api.API, 'create', fake_create)
|
||||||
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
self._test_create_extra, params)
|
||||||
|
|
||||||
def test_create_instance_with_neutronv2_port_not_found(self):
|
def test_create_instance_with_neutronv2_port_not_found(self):
|
||||||
self.flags(network_api_class='nova.network.neutronv2.api.API')
|
self.flags(network_api_class='nova.network.neutronv2.api.API')
|
||||||
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
|
||||||
|
|
Loading…
Reference in New Issue