Return error HTTP code for incorrect neutron conf
Recently, we used to return error message for incorrect neutron config without error HTTP status code. In other words, the "202 Accepted" was always returned regardless it was successful or not. Since now, tbe "400 Bad Request" will be returned in case of error and "200 OK" in case of success (there's no reason to return "202 Accepted" for synchronous task). Change-Id: I9ad16fceb930332b427773dec32bd84d30fb1fd3 Closes-Bug: #1404821
This commit is contained in:
parent
59cded22af
commit
b73cde1c05
|
@ -158,7 +158,6 @@ class NeutronNetworkConfigurationHandler(ProviderHandler):
|
|||
task = task_manager.execute(data)
|
||||
|
||||
if task.status != consts.TASK_STATUSES.error:
|
||||
|
||||
try:
|
||||
if 'networks' in data:
|
||||
self.validator.validate_networks_update(
|
||||
|
@ -180,10 +179,12 @@ class NeutronNetworkConfigurationHandler(ProviderHandler):
|
|||
'progress': 100,
|
||||
'message': six.text_type(exc)}
|
||||
objects.Task.update(task, data)
|
||||
|
||||
logger.error(traceback.format_exc())
|
||||
|
||||
raise self.http(202, objects.Task.to_json(task))
|
||||
if task.status == consts.TASK_STATUSES.error:
|
||||
raise self.http(400, objects.Task.to_json(task))
|
||||
|
||||
raise self.http(200, objects.Task.to_json(task))
|
||||
|
||||
|
||||
class NetworkConfigurationVerifyHandler(ProviderHandler):
|
||||
|
|
|
@ -1370,7 +1370,7 @@ class TestHandlers(BaseIntegrationTest):
|
|||
['172.16.0.20', '172.16.0.22']]})
|
||||
|
||||
resp = self.env.neutron_networks_put(self.env.clusters[0].id, net_data)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertEqual(resp.json_body['status'], 'ready')
|
||||
|
||||
self.env.launch_deployment()
|
||||
|
@ -1413,7 +1413,7 @@ class TestHandlers(BaseIntegrationTest):
|
|||
['172.16.0.20', '172.16.0.22']]})
|
||||
|
||||
resp = self.env.neutron_networks_put(self.env.clusters[0].id, net_data)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertEqual(resp.json_body['status'], 'ready')
|
||||
|
||||
self.env.launch_deployment()
|
||||
|
@ -1456,7 +1456,7 @@ class TestHandlers(BaseIntegrationTest):
|
|||
[['172.16.10.130', '172.16.10.254']]
|
||||
|
||||
resp = self.env.neutron_networks_put(self.env.clusters[0].id, net_data)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertEqual(resp.json_body['status'], 'ready')
|
||||
|
||||
self.env.launch_deployment()
|
||||
|
@ -1491,7 +1491,7 @@ class TestHandlers(BaseIntegrationTest):
|
|||
pub.update({'ip_ranges': [['172.16.0.10', '172.16.0.11']]})
|
||||
|
||||
resp = self.env.neutron_networks_put(self.env.clusters[0].id, net_data)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertEqual(resp.json_body['status'], 'ready')
|
||||
|
||||
task = self.env.launch_deployment()
|
||||
|
|
|
@ -298,7 +298,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
mgmt['cidr'] = cidr
|
||||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, data)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'ready')
|
||||
|
||||
|
@ -314,7 +314,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, data,
|
||||
expect_errors=True)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
self.assertEqual(400, resp.status_code)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'error')
|
||||
self.assertEqual(
|
||||
|
@ -331,7 +331,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
data['networks'][0]['vlan_start'] = 500 # non-used vlan id
|
||||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, data)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
self.db.refresh(network)
|
||||
self.assertEqual(network.vlan_start, 500)
|
||||
|
@ -347,7 +347,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, data,
|
||||
expect_errors=True)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
self.assertEqual(400, resp.status_code)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'error')
|
||||
self.assertEqual(
|
||||
|
@ -362,7 +362,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, new_nets,
|
||||
expect_errors=True)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
self.assertEqual(400, resp.status_code)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'error')
|
||||
self.assertEqual(
|
||||
|
@ -383,7 +383,7 @@ class TestNeutronNetworkConfigurationHandlerMultinode(BaseIntegrationTest):
|
|||
[['199.61.0.111', '199.61.0.122']]
|
||||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, data)
|
||||
self.assertEqual(202, resp.status_code)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'ready')
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ class TestNetworkChecking(BaseIntegrationTest):
|
|||
def update_neutron_networks_w_error(self, cluster_id, nets):
|
||||
resp = self.env.neutron_networks_put(cluster_id, nets,
|
||||
expect_errors=True)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 400)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'error')
|
||||
self.assertEqual(task['progress'], 100)
|
||||
|
@ -93,7 +93,7 @@ class TestNetworkChecking(BaseIntegrationTest):
|
|||
|
||||
def update_neutron_networks_success(self, cluster_id, nets):
|
||||
resp = self.env.neutron_networks_put(cluster_id, nets)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'ready')
|
||||
self.assertEqual(task['progress'], 100)
|
||||
|
|
|
@ -235,7 +235,7 @@ class TestNodeHandlers(BaseIntegrationTest):
|
|||
if net['name'] == 'management':
|
||||
net['vlan_start'] = None
|
||||
resp = self.env.neutron_networks_put(cluster['id'], nets)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'ready')
|
||||
|
||||
|
@ -272,7 +272,7 @@ class TestNodeHandlers(BaseIntegrationTest):
|
|||
if net['name'] == 'management':
|
||||
net['vlan_start'] = 112
|
||||
resp = self.env.neutron_networks_put(cluster['id'], nets)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
task = resp.json_body
|
||||
self.assertEqual(task['status'], 'ready')
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ class TestPutSameJson(base.BaseIntegrationTest):
|
|||
]
|
||||
)
|
||||
|
||||
nova_config = self.http_get(
|
||||
neutron_config = self.http_get(
|
||||
'NeutronNetworkConfigurationHandler', {
|
||||
'cluster_id': self.cluster['id']
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ class TestPutSameJson(base.BaseIntegrationTest):
|
|||
'NeutronNetworkConfigurationHandler', {
|
||||
'cluster_id': self.cluster['id']
|
||||
},
|
||||
nova_config, 202
|
||||
neutron_config, 200
|
||||
)
|
||||
|
||||
def test_deployment_info(self):
|
||||
|
|
|
@ -322,7 +322,7 @@ class TestCheckBeforeDeploymentTask(BaseTestCase):
|
|||
self.find_net_by_name(nets, 'public')['ip_ranges'] = \
|
||||
[["172.16.0.2", "172.16.0.4"]]
|
||||
resp = self.env.neutron_networks_put(cluster.id, nets)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
self.assertRaises(
|
||||
errors.NetworkCheckError,
|
||||
|
@ -333,7 +333,7 @@ class TestCheckBeforeDeploymentTask(BaseTestCase):
|
|||
self.find_net_by_name(nets, 'public')['ip_ranges'] = \
|
||||
[["172.16.0.2", "172.16.0.5"]]
|
||||
resp = self.env.neutron_networks_put(cluster.id, nets)
|
||||
self.assertEqual(resp.status_code, 202)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
self.assertNotRaises(
|
||||
errors.NetworkCheckError,
|
||||
|
|
Loading…
Reference in New Issue