Merge "Retry on segment deletion if VMs not deleted yet"
This commit is contained in:
commit
756df8f3cf
@ -39,7 +39,8 @@ def http_error_to_exception(status_code, error_code):
|
|||||||
'60514': exceptions.NsxSearchTimeout,
|
'60514': exceptions.NsxSearchTimeout,
|
||||||
'500045': exceptions.NsxPendingDelete,
|
'500045': exceptions.NsxPendingDelete,
|
||||||
'500030': exceptions.ResourceInUse,
|
'500030': exceptions.ResourceInUse,
|
||||||
'500105': exceptions.NsxOverlapAddresses},
|
'500105': exceptions.NsxOverlapAddresses,
|
||||||
|
'503040': exceptions.NsxSegemntWithVM},
|
||||||
requests.codes.CONFLICT: exceptions.StaleRevision,
|
requests.codes.CONFLICT: exceptions.StaleRevision,
|
||||||
requests.codes.PRECONDITION_FAILED: exceptions.StaleRevision,
|
requests.codes.PRECONDITION_FAILED: exceptions.StaleRevision,
|
||||||
requests.codes.INTERNAL_SERVER_ERROR:
|
requests.codes.INTERNAL_SERVER_ERROR:
|
||||||
|
@ -199,6 +199,10 @@ class NsxPendingDelete(NsxLibException):
|
|||||||
"remove the deleted object")
|
"remove the deleted object")
|
||||||
|
|
||||||
|
|
||||||
|
class NsxSegemntWithVM(ManagerError):
|
||||||
|
message = _("Cannot delete segment as it still has VMs or VIFs attached")
|
||||||
|
|
||||||
|
|
||||||
class NsxOverlapAddresses(NsxLibInvalidInput):
|
class NsxOverlapAddresses(NsxLibInvalidInput):
|
||||||
message = _("Overlapping addresses found: %(details)s")
|
message = _("Overlapping addresses found: %(details)s")
|
||||||
|
|
||||||
|
@ -1774,7 +1774,14 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
|||||||
def delete(self, segment_id,
|
def delete(self, segment_id,
|
||||||
tenant=constants.POLICY_INFRA_TENANT):
|
tenant=constants.POLICY_INFRA_TENANT):
|
||||||
segment_def = self.entry_def(segment_id=segment_id, tenant=tenant)
|
segment_def = self.entry_def(segment_id=segment_id, tenant=tenant)
|
||||||
self.policy_api.delete(segment_def)
|
|
||||||
|
@utils.retry_upon_exception(
|
||||||
|
exceptions.NsxSegemntWithVM,
|
||||||
|
max_attempts=self.policy_api.client.max_attempts)
|
||||||
|
def do_delete():
|
||||||
|
self.policy_api.delete(segment_def)
|
||||||
|
|
||||||
|
do_delete()
|
||||||
|
|
||||||
def get(self, segment_id,
|
def get(self, segment_id,
|
||||||
tenant=constants.POLICY_INFRA_TENANT, silent=False):
|
tenant=constants.POLICY_INFRA_TENANT, silent=False):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user