From e64a267ff3844960e03963c2bd72d236e25e903c Mon Sep 17 00:00:00 2001
From: Tobias Reisinger <tobias@msrg.cc>
Date: Wed, 20 Dec 2023 02:31:31 +0100
Subject: [PATCH] Refactor the backup tasks into smaller files

---
 roles/backup/tasks/backup.d.yml | 16 +++++++++
 roles/backup/tasks/docker.yml   | 12 +++++++
 roles/backup/tasks/main.yml     | 60 ++++-----------------------------
 roles/backup/tasks/systemd.yml  | 20 +++++++++++
 4 files changed, 55 insertions(+), 53 deletions(-)
 create mode 100644 roles/backup/tasks/backup.d.yml
 create mode 100644 roles/backup/tasks/docker.yml
 create mode 100644 roles/backup/tasks/systemd.yml

diff --git a/roles/backup/tasks/backup.d.yml b/roles/backup/tasks/backup.d.yml
new file mode 100644
index 0000000..fb28870
--- /dev/null
+++ b/roles/backup/tasks/backup.d.yml
@@ -0,0 +1,16 @@
+---
+- name: Set backup.d path
+  ansible.builtin.set_fact:
+    backup_d_path: "{{ (service_path, 'backup.d') | path_join }}"
+- name: Create backup.d directory
+  ansible.builtin.file:
+    path: "{{ backup_d_path }}"
+    state: directory
+    mode: "0755"
+- name: Copy the additional backup scripts
+  ansible.builtin.copy:
+    src: "{{ item }}"
+    dest: "{{ backup_d_path }}"
+    mode: "0755"
+  with_fileglob:
+    - "{{ ansible_facts.hostname }}/*"
diff --git a/roles/backup/tasks/docker.yml b/roles/backup/tasks/docker.yml
new file mode 100644
index 0000000..f5ae9f2
--- /dev/null
+++ b/roles/backup/tasks/docker.yml
@@ -0,0 +1,12 @@
+---
+- name: Copy the Dockerfile
+  ansible.builtin.copy:
+    src: Dockerfile
+    dest: "{{ (service_path, 'Dockerfile') | path_join }}"
+    mode: "0644"
+  register: cmd_result
+
+- name: Set the docker rebuild flag
+  ansible.builtin.set_fact:
+    docker_rebuild: true
+  when: cmd_result.changed # noqa: no-handler We need to handle the restart per service. Handlers don't support variables.
diff --git a/roles/backup/tasks/main.yml b/roles/backup/tasks/main.yml
index 8595089..c165ce5 100644
--- a/roles/backup/tasks/main.yml
+++ b/roles/backup/tasks/main.yml
@@ -11,64 +11,18 @@
     - name: Import prepare tasks for common service
       ansible.builtin.import_tasks: tasks/prepare-common-service.yml
 
-    - name: Copy the Dockerfile
-      ansible.builtin.copy:
-        src: Dockerfile
-        dest: "{{ (service_path, 'Dockerfile') | path_join }}"
-        mode: "0644"
-      register: cmd_result
-
-    - name: Set the docker rebuild flag
-      ansible.builtin.set_fact:
-        docker_rebuild: true
-      when: cmd_result.changed # noqa: no-handler We need to handle the restart per service. Handlers don't support variables.
-
-    - name: Set backup.d path
-      ansible.builtin.set_fact:
-        backup_d_path: "{{ (service_path, 'backup.d') | path_join }}"
-
-    - name: Create backup.d directory
-      ansible.builtin.file:
-        path: "{{ backup_d_path }}"
-        state: directory
-        mode: "0755"
-
-    - name: Copy the additional backup scripts
-      ansible.builtin.copy:
-        src: "{{ item }}"
-        dest: "{{ backup_d_path }}"
-        mode: "0755"
-      with_fileglob:
-        - "{{ ansible_facts.hostname }}/*"
-
-    - name: Copy the main backup scripts
+    - name: Copy the main backup script
       ansible.builtin.template:
         src: "backup.sh.j2"
         dest: "{{ (service_path, 'backup.sh') | path_join }}"
         mode: "0755"
 
-    - name: Copy the system service
-      ansible.builtin.template:
-        src: backup.service.j2
-        dest: /etc/systemd/system/backup.service
-        mode: "0644"
-      become: true
-    - name: Copy the system timer
-      ansible.builtin.copy:
-        src: backup.timer
-        dest: /etc/systemd/system/backup.timer
-        mode: "0644"
-      become: true
-    - name: Enable the system timer
-      ansible.builtin.systemd_service:
-        name: backup.timer
-        state: started
-        enabled: true
-        daemon_reload: true
-      become: true
-
-    - name: Import tasks create a service.env file
-      ansible.builtin.import_tasks: tasks/steps/template-service-env.yml
+    - name: Import tasks specific to docker
+      ansible.builtin.import_tasks: docker.yml
+    - name: Import tasks specific to the backup.d scripts
+      ansible.builtin.import_tasks: backup.d.yml
+    - name: Import tasks specific to systemd
+      ansible.builtin.import_tasks: systemd.yml
 
     - name: Build service
       ansible.builtin.command:
diff --git a/roles/backup/tasks/systemd.yml b/roles/backup/tasks/systemd.yml
new file mode 100644
index 0000000..4efcbd6
--- /dev/null
+++ b/roles/backup/tasks/systemd.yml
@@ -0,0 +1,20 @@
+---
+- name: Copy the system service
+  ansible.builtin.template:
+    src: backup.service.j2
+    dest: /etc/systemd/system/backup.service
+    mode: "0644"
+  become: true
+- name: Copy the system timer
+  ansible.builtin.copy:
+    src: backup.timer
+    dest: /etc/systemd/system/backup.timer
+    mode: "0644"
+  become: true
+- name: Enable the system timer
+  ansible.builtin.systemd_service:
+    name: backup.timer
+    state: started
+    enabled: true
+    daemon_reload: true
+  become: true