Merge "Stop ignoring 400 errors returned by ODL"

This commit is contained in:
Jenkins 2014-11-02 11:15:55 +00:00 committed by Gerrit Code Review
commit 7ff98a9eef
2 changed files with 24 additions and 38 deletions

View File

@ -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):

View File

@ -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,