summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-11-19 18:45:24 +0000
committerGerrit Code Review <review@openstack.org>2014-11-19 18:45:24 +0000
commit650da7229398184403e6ac07f3f9d009290a7a22 (patch)
tree3e91da726c3e4d7824ca29c6d7d0561b8afcc76e
parent6c476224f62770679f779dc6c13be3879b3a5ed8 (diff)
parentfe7c2331e3dd8fdd524b3f9bd896831824a50b1c (diff)
downloadneutron-650da7229398184403e6ac07f3f9d009290a7a22.tar.gz
Merge "Stop ignoring 400 errors returned by ODL" into stable/juno
-rw-r--r--neutron/plugins/ml2/drivers/mechanism_odl.py15
-rw-r--r--neutron/tests/unit/ml2/test_mechanism_odl.py47
2 files changed, 24 insertions, 38 deletions
diff --git a/neutron/plugins/ml2/drivers/mechanism_odl.py b/neutron/plugins/ml2/drivers/mechanism_odl.py
index 05ca33bb7f..e2fb229c6f 100644
--- a/neutron/plugins/ml2/drivers/mechanism_odl.py
+++ b/neutron/plugins/ml2/drivers/mechanism_odl.py
@@ -218,10 +218,7 @@ class OpenDaylightMechanismDriver(api.MechanismDriver):
ctx.reraise = False
key = collection_name[:-1] if len(to_be_synced) == 1 else (
collection_name)
-
- # 400 errors are returned if an object exists, which we ignore.
- self.sendjson('post', collection_name, {key: to_be_synced},
- [requests.codes.bad_request])
+ self.sendjson('post', collection_name, {key: to_be_synced})
@utils.synchronized('odl-sync-full')
def sync_full(self, context):
@@ -276,9 +273,7 @@ class OpenDaylightMechanismDriver(api.MechanismDriver):
attr_filter = self.update_object_map[object_type]
resource = context.current.copy()
attr_filter(resource, context)
- # 400 errors are returned if an object exists, which we ignore.
- self.sendjson(method, urlpath, {object_type[:-1]: resource},
- [requests.codes.bad_request])
+ self.sendjson(method, urlpath, {object_type[:-1]: resource})
except Exception:
with excutils.save_and_reraise_exception():
self.out_of_sync = True
@@ -291,7 +286,7 @@ class OpenDaylightMechanismDriver(api.MechanismDriver):
for sg in port['security_groups']]
port['security_groups'] = groups
- def sendjson(self, method, urlpath, obj, ignorecodes=[]):
+ def sendjson(self, method, urlpath, obj):
"""Send json to the OpenDaylight controller."""
headers = {'Content-Type': 'application/json'}
data = jsonutils.dumps(obj, indent=2) if obj else None
@@ -301,10 +296,6 @@ class OpenDaylightMechanismDriver(api.MechanismDriver):
r = requests.request(method, url=url,
headers=headers, data=data,
auth=self.auth, timeout=self.timeout)
-
- # ignorecodes contains a list of HTTP error codes to ignore.
- if r.status_code in ignorecodes:
- return
r.raise_for_status()
def bind_port(self, context):
diff --git a/neutron/tests/unit/ml2/test_mechanism_odl.py b/neutron/tests/unit/ml2/test_mechanism_odl.py
index 8d87eb5a61..5a93429f5a 100644
--- a/neutron/tests/unit/ml2/test_mechanism_odl.py
+++ b/neutron/tests/unit/ml2/test_mechanism_odl.py
@@ -286,18 +286,17 @@ class OpenDaylightMechanismDriverTestCase(base.BaseTestCase):
'delete', **kwargs)
def test_create_network_postcommit(self):
- for status_code in (requests.codes.created,
- requests.codes.bad_request):
- self._test_create_resource_postcommit('network', status_code)
- self._test_create_resource_postcommit(
- 'network', requests.codes.unauthorized,
- requests.exceptions.HTTPError)
+ self._test_create_resource_postcommit('network',
+ requests.codes.created)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.unauthorized):
+ self._test_create_resource_postcommit(
+ 'network', status_code, requests.exceptions.HTTPError)
def test_create_subnet_postcommit(self):
- for status_code in (requests.codes.created,
- requests.codes.bad_request):
- self._test_create_resource_postcommit('subnet', status_code)
- for status_code in (requests.codes.unauthorized,
+ self._test_create_resource_postcommit('subnet', requests.codes.created)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.unauthorized,
requests.codes.forbidden,
requests.codes.not_found,
requests.codes.conflict,
@@ -306,10 +305,9 @@ class OpenDaylightMechanismDriverTestCase(base.BaseTestCase):
'subnet', status_code, requests.exceptions.HTTPError)
def test_create_port_postcommit(self):
- for status_code in (requests.codes.created,
- requests.codes.bad_request):
- self._test_create_resource_postcommit('port', status_code)
- for status_code in (requests.codes.unauthorized,
+ self._test_create_resource_postcommit('port', requests.codes.created)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.unauthorized,
requests.codes.forbidden,
requests.codes.not_found,
requests.codes.conflict,
@@ -319,19 +317,17 @@ class OpenDaylightMechanismDriverTestCase(base.BaseTestCase):
'port', status_code, requests.exceptions.HTTPError)
def test_update_network_postcommit(self):
- for status_code in (requests.codes.ok,
- requests.codes.bad_request):
- self._test_update_resource_postcommit('network', status_code)
- for status_code in (requests.codes.forbidden,
+ self._test_update_resource_postcommit('network', requests.codes.ok)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.forbidden,
requests.codes.not_found):
self._test_update_resource_postcommit(
'network', status_code, requests.exceptions.HTTPError)
def test_update_subnet_postcommit(self):
- for status_code in (requests.codes.ok,
- requests.codes.bad_request):
- self._test_update_resource_postcommit('subnet', status_code)
- for status_code in (requests.codes.unauthorized,
+ self._test_update_resource_postcommit('subnet', requests.codes.ok)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.unauthorized,
requests.codes.forbidden,
requests.codes.not_found,
requests.codes.not_implemented):
@@ -339,10 +335,9 @@ class OpenDaylightMechanismDriverTestCase(base.BaseTestCase):
'subnet', status_code, requests.exceptions.HTTPError)
def test_update_port_postcommit(self):
- for status_code in (requests.codes.ok,
- requests.codes.bad_request):
- self._test_update_resource_postcommit('port', status_code)
- for status_code in (requests.codes.unauthorized,
+ self._test_update_resource_postcommit('port', requests.codes.ok)
+ for status_code in (requests.codes.bad_request,
+ requests.codes.unauthorized,
requests.codes.forbidden,
requests.codes.not_found,
requests.codes.conflict,