From: Vasu Kulkarni Date: Fri, 26 Jan 2018 00:31:56 +0000 (-0800) Subject: when cm-ansible breaks!, backup to skip cm-ansible and run jobs X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cab67748c1dd97f1c38a2d8e509e0fdd58844fda;p=teuthology.git when cm-ansible breaks!, backup to skip cm-ansible and run jobs Signed-off-by: Vasu Kulkarni --- diff --git a/teuthology/run.py b/teuthology/run.py index f61f2a6f2..5c08cded9 100644 --- a/teuthology/run.py +++ b/teuthology/run.py @@ -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 index 000000000..b1d507635 --- /dev/null +++ b/teuthology/task/internal/pre_cleanup.py @@ -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