Merge "Propose the backporting process"
[yardstick.git] / yardstick / common / kubernetes_utils.py
index 42267fc..f5b0443 100644 (file)
@@ -75,15 +75,18 @@ def create_service(template,
         raise
 
 
-def delete_service(name,
-                   namespace='default',
-                   **kwargs):       # pragma: no cover
+def delete_service(name, namespace='default', skip_codes=None, **kwargs):
+    skip_codes = [] if not skip_codes else skip_codes
     core_v1_api = get_core_api()
     try:
         body = client.V1DeleteOptions()
         core_v1_api.delete_namespaced_service(name, namespace, body, **kwargs)
-    except ApiException:
-        LOG.exception('Delete Service failed')
+    except ApiException as e:
+        if e.status in skip_codes:
+            LOG.info(e.reason)
+        else:
+            raise exceptions.KubernetesApiException(
+                action='delete', resource='Service')
 
 
 def get_service_list(namespace='default', **kwargs):
@@ -136,8 +139,10 @@ def delete_replication_controller(name,
 def delete_pod(name,
                namespace='default',
                wait=False,
+               skip_codes=None,
                **kwargs):    # pragma: no cover
     # pylint: disable=unused-argument
+    skip_codes = [] if not skip_codes else skip_codes
     core_v1_api = get_core_api()
     body = kwargs.get('body', client.V1DeleteOptions())
     kwargs.pop('body', None)
@@ -146,9 +151,12 @@ def delete_pod(name,
                                           namespace,
                                           body,
                                           **kwargs)
-    except ApiException:
-        LOG.exception('Delete pod failed')
-        raise
+    except ApiException as e:
+        if e.status in skip_codes:
+            LOG.info(e.reason)
+        else:
+            raise exceptions.KubernetesApiException(
+                action='delete', resource='Pod')
 
 
 def read_pod(name,
@@ -218,14 +226,18 @@ def create_custom_resource_definition(body):
             action='create', resource='CustomResourceDefinition')
 
 
-def delete_custom_resource_definition(name):
+def delete_custom_resource_definition(name, skip_codes=None):
+    skip_codes = [] if not skip_codes else skip_codes
     api = get_extensions_v1beta_api()
     body_obj = client.V1DeleteOptions()
     try:
         api.delete_custom_resource_definition(name, body_obj)
-    except ApiException:
-        raise exceptions.KubernetesApiException(
-            action='delete', resource='CustomResourceDefinition')
+    except ApiException as e:
+        if e.status in skip_codes:
+            LOG.info(e.reason)
+        else:
+            raise exceptions.KubernetesApiException(
+                action='delete', resource='CustomResourceDefinition')
 
 
 def get_custom_resource_definition(kind):