From ab9e5edf553feb8fe0e4c7c55206ed598106f426 Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Thu, 20 Aug 2015 10:13:12 -0500 Subject: [PATCH] downstream-setup: separate cleanup and setup tasks into their own files This is a refactor that makes this role a bit easier to understand and use. I've simplified main.yml to only include setup.yml and cleanup.yml. This separation of cleanup and setup related tasks make it a bit easier to understand. Also fixes this bug: http://tracker.ceph.com/issues/12693 Signed-off-by: Andrew Schoen --- roles/downstream-setup/tasks/cleanup.yml | 30 ++++++++++++ .../tasks/disable_yum_repos.yml | 2 +- .../tasks/enable_yum_repos.yml | 2 +- roles/downstream-setup/tasks/main.yml | 48 +++++-------------- .../tasks/remove_yum_repos.yml | 2 +- roles/downstream-setup/tasks/setup.yml | 28 +++++++++++ roles/downstream-setup/tasks/yum_repos.yml | 2 +- 7 files changed, 75 insertions(+), 39 deletions(-) create mode 100644 roles/downstream-setup/tasks/cleanup.yml create mode 100644 roles/downstream-setup/tasks/setup.yml diff --git a/roles/downstream-setup/tasks/cleanup.yml b/roles/downstream-setup/tasks/cleanup.yml new file mode 100644 index 0000000..3807d6c --- /dev/null +++ b/roles/downstream-setup/tasks/cleanup.yml @@ -0,0 +1,30 @@ +--- +- debug: msg="Performing cleanup related tasks..." + +- include: yum_repos.yml + when: remove_yum_repos|length > 0 + vars: + repos: "{{ remove_yum_repos }}" + tags: + - yum-repos + +- include: remove_yum_repos.yml + when: yum_repos|length > 0 + vars: + repos: "{{ yum_repos }}" + tags: + - delete-yum-repos + +- include: disable_yum_repos.yml + when: enable_yum_repos|length > 0 + vars: + repos: "{{ enable_yum_repos }}" + tags: + - disable-yum-repos + +- include: enable_yum_repos.yml + when: disable_yum_repos|length > 0 + vars: + repos: "{{ disable_yum_repos }}" + tags: + - enable-yum-repos diff --git a/roles/downstream-setup/tasks/disable_yum_repos.yml b/roles/downstream-setup/tasks/disable_yum_repos.yml index 1a9a657..9c214ad 100644 --- a/roles/downstream-setup/tasks/disable_yum_repos.yml +++ b/roles/downstream-setup/tasks/disable_yum_repos.yml @@ -6,5 +6,5 @@ regexp: "enabled=1" backrefs: yes state: present - with_items: disable_yum_repos + with_items: repos ignore_errors: true diff --git a/roles/downstream-setup/tasks/enable_yum_repos.yml b/roles/downstream-setup/tasks/enable_yum_repos.yml index 6b5f5bb..2c7eb6d 100644 --- a/roles/downstream-setup/tasks/enable_yum_repos.yml +++ b/roles/downstream-setup/tasks/enable_yum_repos.yml @@ -6,5 +6,5 @@ regexp: "enabled=0" backrefs: yes state: present - with_items: enable_yum_repos + with_items: repos ignore_errors: true diff --git a/roles/downstream-setup/tasks/main.yml b/roles/downstream-setup/tasks/main.yml index 4ad9caa..eab8c93 100644 --- a/roles/downstream-setup/tasks/main.yml +++ b/roles/downstream-setup/tasks/main.yml @@ -1,36 +1,14 @@ --- -- include: yum_repos.yml - when: yum_repos|length > 0 and - not cleanup - tags: - - yum-repos - -- name: Set remove_yum_repos on cleanup - set_fact: - remove_yum_repos: "[{% for repo in yum_repos %}'{{ repo.name}}',{% endfor %}]" - when: yum_repos|length > 0 and - cleanup and - remove_yum_repos|length == 0 - -- include: remove_yum_repos.yml - when: remove_yum_repos|length > 0 - tags: - - delete-yum-repos - -- include: disable_yum_repos.yml - when: disable_yum_repos|length > 0 and - not cleanup - tags: - - disable-yum-repos - -- name: Set enable_yum_repos on cleanup - set_fact: - enable_yum_repos: "{{ disable_yum_repos }}" - when: disable_yum_repos|length > 0 and - cleanup and - enable_yum_repos|length == 0 - -- include: enable_yum_repos.yml - when: enable_yum_repos|length > 0 - tags: - - enable-yum-repos +# These are tasks which perform actions corresponding to the names of +# the variables they use. For example, `disable_yum_repos` would actually +# disable all repos defined in that list. +- include: setup.yml + when: not cleanup + +# These are tasks which reverse the actions corresponding to the names of +# the variables they use. For example, `disable_yum_repos` would actually +# enable all repos defined in that list. The primary use for this is through +# teuthology, so that you can tell a teuthology run to disable a set of repos +# for the test run but then re-enable them during the teuthology cleanup process. +- include: cleanup.yml + when: cleanup diff --git a/roles/downstream-setup/tasks/remove_yum_repos.yml b/roles/downstream-setup/tasks/remove_yum_repos.yml index b7e0594..6f249ba 100644 --- a/roles/downstream-setup/tasks/remove_yum_repos.yml +++ b/roles/downstream-setup/tasks/remove_yum_repos.yml @@ -3,4 +3,4 @@ file: path: "/etc/yum.repos.d/{{ item }}.repo" state: absent - with_items: remove_yum_repos + with_items: repos diff --git a/roles/downstream-setup/tasks/setup.yml b/roles/downstream-setup/tasks/setup.yml new file mode 100644 index 0000000..85d68e4 --- /dev/null +++ b/roles/downstream-setup/tasks/setup.yml @@ -0,0 +1,28 @@ +--- +- include: yum_repos.yml + when: yum_repos|length > 0 + vars: + repos: "{{ yum_repos }}" + tags: + - yum-repos + +- include: remove_yum_repos.yml + when: remove_yum_repos|length > 0 + vars: + repos: "{{ remove_yum_repos }}" + tags: + - delete-yum-repos + +- include: disable_yum_repos.yml + when: disable_yum_repos|length > 0 + vars: + repos: "{{ disable_yum_repos }}" + tags: + - disable-yum-repos + +- include: enable_yum_repos.yml + when: enable_yum_repos|length > 0 + vars: + repos: "{{ enable_yum_repos }}" + tags: + - enable-yum-repos diff --git a/roles/downstream-setup/tasks/yum_repos.yml b/roles/downstream-setup/tasks/yum_repos.yml index d6eafeb..3625bf9 100644 --- a/roles/downstream-setup/tasks/yum_repos.yml +++ b/roles/downstream-setup/tasks/yum_repos.yml @@ -4,4 +4,4 @@ url: "{{ item.url }}" dest: "/etc/yum.repos.d/{{ item.name }}.repo" force: yes - with_items: yum_repos + with_items: repos -- 2.39.5