cfg-checker benchmark module part 2
- fixes for fio-runner error handling
- fixes for web-server error handling
- proper handling of 'scheduled_to' option
- cleanup procedure
- kube can wait for specific phases of svc, pod, pvc, pv
Change-Id: I9b241597e6314fed1dbc3aba5e8dee1637eea1c7
diff --git a/cfg_checker/nodes.py b/cfg_checker/nodes.py
index 9570978..c1b3d4c 100644
--- a/cfg_checker/nodes.py
+++ b/cfg_checker/nodes.py
@@ -1308,3 +1308,52 @@
def expose_benchmark_agent(self, agent):
return self.kube.expose_pod_port(agent, 8765)
+
+ def cleanup_resource_by_name(self, res_type, name, ns=None, wait=False):
+ """Cleansup resource using string res_type and the ns/name
+
+ Args:
+ res_type (string): resource type name: pod, pv, pvc, svc
+ name (string): resource name to cleanup
+ ns (string, optional): Namespace to use. Default is 'qa-space'
+
+ return: (Bool) Is Success?
+ """
+ # fill defaults
+ if not ns:
+ ns = self._namespace
+ # Handle res_type errors and choose resource type
+ if not res_type:
+ logger_cli.debug(
+ "... resource type invalid: '{}'".format(res_type)
+ )
+ return False
+ elif not name:
+ logger_cli.debug("... resource name invalid: '{}'".format(name))
+ return False
+ elif res_type == "svc":
+ # Delete service
+ logger_cli.info("-> deleting svc {}/{}".format(ns, name))
+ self.kube.CoreV1.delete_namespaced_service(name, ns)
+ # TODO: Check if successfull
+ elif res_type == "pod":
+ # Delete a pod
+ logger_cli.info("-> deleting pod {}/{}".format(ns, name))
+ self.kube.CoreV1.delete_namespaced_pod(name, ns)
+ if wait:
+ self.kube.wait_for_phase(res_type, name, ns, ["Terminated"])
+ elif res_type == "pvc":
+ logger_cli.info("-> deleting pvc {}/{}".format(ns, name))
+ self.kube.CoreV1.delete_namespaced_persistent_volume_claim(
+ name,
+ ns
+ )
+ if wait:
+ self.kube.wait_for_phase(res_type, name, ns, ["Terminated"])
+ elif res_type == "pv":
+ logger_cli.info("-> deleting pv {}/{}".format(ns, name))
+ self.kube.CoreV1.delete_persistent_volume(name)
+ if wait:
+ self.kube.wait_for_phase(res_type, name, None, ["Terminated"])
+
+ return True