def delete_object(self, name, namespace):
self.logger.debug('Starting delete object {0} {1} {2}'.format(self.kind, name, namespace))
delete_method = self.lookup_method('delete', namespace)
if not namespace:
try:
if 'body' in inspect.getargspec(delete_method).args:
status_obj = delete_method(name, body=V1DeleteOptions(propagation_policy='Foreground'))
else:
status_obj = delete_method(name)
except ApiException as exc:
msg = json.loads(exc.body).get('message', exc.reason)
raise self.get_exception_class()(msg, status=exc.status)
except MaxRetryError as ex:
raise self.get_exception_class()(str(ex.reason))
else:
try:
if 'body' in inspect.getargspec(delete_method).args:
status_obj = delete_method(name, namespace, body=V1DeleteOptions(propagation_policy='Foreground'))
else:
status_obj = delete_method(name, namespace)
except ApiException as exc:
msg = json.loads(exc.body).get('message', exc.reason) if exc.body.startswith('{') else exc.body
raise self.get_exception_class()(msg, status=exc.status)
except MaxRetryError as ex:
raise self.get_exception_class()(str(ex.reason))
if status_obj is None or status_obj.status == 'Failure':
msg = 'Failed to delete {}'.format(name)
if namespace is not None:
msg += ' in namespace {}'.format(namespace)
msg += ' status: {}'.format(status_obj)
raise self.get_exception_class()(msg)
self._wait_for_response(name, namespace, 'delete')
评论列表
文章目录