]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
when cm-ansible breaks!, backup to skip cm-ansible and run jobs
authorVasu Kulkarni <vasu@redhat.com>
Fri, 26 Jan 2018 00:31:56 +0000 (16:31 -0800)
committerVasu Kulkarni <vasu@redhat.com>
Mon, 17 Dec 2018 23:10:49 +0000 (15:10 -0800)
Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
teuthology/run.py
teuthology/task/internal/pre_cleanup.py [new file with mode: 0644]

index f61f2a6f2875235a23247d58f8d8e94ac97dc565..5c08cded9f8e85877624d7e016a89e95d9177435 100644 (file)
@@ -197,6 +197,7 @@ def get_initial_tasks(lock, config, machine_type):
             {'internal.connect': None},
             {'internal.push_inventory': None},
             {'internal.serialize_remote_roles': None},
+            {'internal.pre_cleanup': None},
             {'internal.check_conflict': None},
         ])
 
@@ -226,9 +227,12 @@ def get_initial_tasks(lock, config, machine_type):
         init_tasks.extend([
             {'pcp': None},
             {'selinux': None},
-            {'ansible.cephlab': None},
             {'clock': None}
         ])
+    if 'run-cm-ansible' in config:
+        init_tasks.extend([
+             {'ansible.cephlab': None},
+        ])
 
     if 'redhat' in config:
         init_tasks.extend([
@@ -237,7 +241,7 @@ def get_initial_tasks(lock, config, machine_type):
             {'internal.setup_additional_repo': None},
             {'kernel.install_latest_rh_kernel': None}
         ])
+
     return init_tasks
 
 
diff --git a/teuthology/task/internal/pre_cleanup.py b/teuthology/task/internal/pre_cleanup.py
new file mode 100644 (file)
index 0000000..b1d5076
--- /dev/null
@@ -0,0 +1,33 @@
+import contextlib
+import logging
+
+from teuthology.nuke import remove_installed_packages, remove_ceph_packages, remove_ceph_data
+from teuthology.orchestra import run
+
+log = logging.getLogger(__name__)
+
+
+@contextlib.contextmanager
+def pre_cleanup(ctx, config):
+    """
+    Ensure the test node doesn't have any ceph files that have escaped
+    uninstall from yum or apt-get, Trying to be pristine is a challenge
+    but atleast we could ensure whatever we install is uninstalled for
+    ceph and its related dependent packages
+    """
+
+    if ctx.config.get('run-cm-ansible'):
+        log.info("Ceph-cm-ansible task is configured to run, skipping..")
+        yield
+    else:
+        log.info("Remove any previously installed packages")
+        remove_installed_packages(ctx)
+        remove_ceph_packages(ctx)
+        remove_ceph_data(ctx)
+        # remove anything/everything in home dir
+        ctx.cluster.run(
+            args=[
+                'sudo', 'rm', '-rf', run.Raw('~/*')
+                ],
+        )
+        yield