Add retry logic when deleting logical port and logical switch
When deleting a logical port or logical switch, the backend may have transient inconsistency due to split internal update transactions. For now, adding the retry logical at the plugin side to solve this problem. Change-Id: I008d5759d490bbd364731f94b916c179af50491b
This commit is contained in:
parent
ccdce866c6
commit
28ac8ed890
@ -90,6 +90,8 @@ def create_logical_switch(display_name, transport_zone_id, tags,
|
||||
return client.create_resource(resource, body)
|
||||
|
||||
|
||||
@utils.retry_upon_exception_nsxv3(nsx_exc.StaleRevision,
|
||||
max_attempts=cfg.CONF.nsx_v3.retries)
|
||||
def delete_logical_switch(lswitch_id):
|
||||
resource = 'logical-switches/%s?detach=true&cascade=true' % lswitch_id
|
||||
client.delete_resource(resource)
|
||||
|
@ -261,6 +261,9 @@ class LogicalPort(AbstractRESTResource):
|
||||
attachment=attachment))
|
||||
return self._client.create(body=body)
|
||||
|
||||
@utils.retry_upon_exception_nsxv3(
|
||||
nsx_exc.StaleRevision,
|
||||
max_attempts=cfg.CONF.nsx_v3.retries)
|
||||
def delete(self, lport_id):
|
||||
return self._client.url_delete('%s?detach=true' % lport_id)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user