Files
computer-playbook/roles/sys-service/tasks/01_prune.yml
kevinveenbirkenbachandClaude Opus 4.8 4039313266 refactor(tasks): enforce and apply a single task-file numbering scheme
Add tests/lint/repository/test_task_file_numbering.py: numbered task
files use exactly two leading digits, a numbered *_core.yml must be
00_core.yml, per directory the numbers are unique/consecutive and start
at 01 (00 with a core file), numbered includes appear in ascending
order, and shared helpers live in tasks/utils/ instead of the numbered
chain.

Apply it across every role: rename NN_core.yml to 00_core.yml with a
consecutive down-shift of the siblings, move letter-suffix children into
a subdirectory named after their parent task, relocate helpers included
from more than one place into tasks/utils/, and update every reference
(include_tasks, path_absolute, .ansible-lint-ignore, requirement docs).
Legacy narration comments in the touched files are deleted; the upstream
xwiki.properties reference block opts out via nocheck. The unused
MAILU_IP6_PUBLIC var (only ever named in now-removed comments) is dropped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 20:01:31 +02:00

106 lines
3.4 KiB
YAML

---
# Remove/stop/disable systemd units that belong to this SOFTWARE_NAME,
# but are not for the current version.
- name: "🤔 sys-service | Determine current software/version (lowercase)"
ansible.builtin.set_fact:
sys_service_sw_lc: "{{ SOFTWARE_NAME | string | trim | lower }}"
sys_service_ver_lc: "{{ lookup('version') | string | trim | lower }}"
- name: "📊 sys-service | Collect {{ SOFTWARE_NAME }} timers (all versions)"
become: true
ansible.builtin.command:
argv:
- systemctl
- list-unit-files
- "*.{{ sys_service_sw_lc }}*.timer"
- --no-legend
- --no-pager
register: sys_service_all_timers
changed_when: false
failed_when: false
- name: "📊 sys-service | Collect {{ SOFTWARE_NAME }} services (all versions)"
become: true
ansible.builtin.command:
argv:
- systemctl
- list-unit-files
- "*.{{ sys_service_sw_lc }}*.service"
- --no-legend
- --no-pager
register: sys_service_all_services
changed_when: false
failed_when: false
- name: "🔨 sys-service | Build old-version unit lists (exclude current version)"
ansible.builtin.set_fact:
sys_service_old_units_timers: >-
{{
(sys_service_all_timers.stdout_lines | default([]))
| map('split', ' ')
| map('first')
| select('search', '\\.' ~ sys_service_sw_lc ~ '(?:@)?\\.timer$')
| reject('search', '\\.' ~ sys_service_ver_lc ~ '\\.' ~ sys_service_sw_lc)
| list
}}
sys_service_old_units_services: >-
{{
(sys_service_all_services.stdout_lines | default([]))
| map('split', ' ')
| map('first')
| select('search', '\\.' ~ sys_service_sw_lc ~ '(?:@)?\\.service$')
| reject('search', '\\.' ~ sys_service_ver_lc ~ '\\.' ~ sys_service_sw_lc)
| list
}}
- name: "⏹️ sys-service | Stop old-version services (best-effort)"
become: true
ansible.builtin.systemd:
name: "{{ item }}"
state: stopped
loop: "{{ sys_service_old_units_services }}"
when: sys_service_old_units_services | length > 0
failed_when: false
- name: "⏹️ sys-service | Stop old-version timers (best-effort)"
become: true
ansible.builtin.systemd:
name: "{{ item }}"
state: stopped
loop: "{{ sys_service_old_units_timers }}"
when: sys_service_old_units_timers | length > 0
failed_when: false
- name: "🔴 sys-service | Disable old-version services (best-effort)"
become: true
ansible.builtin.systemd:
name: "{{ item }}"
enabled: false
loop: "{{ sys_service_old_units_services }}"
when: sys_service_old_units_services | length > 0
failed_when: false
- name: "🔴 sys-service | Disable old-version timers (best-effort)"
become: true
ansible.builtin.systemd:
name: "{{ item }}"
enabled: false
loop: "{{ sys_service_old_units_timers }}"
when: sys_service_old_units_timers | length > 0
failed_when: false
- name: "🗑️ sys-service | Delete old-version unit files"
become: true
ansible.builtin.file:
path: "{{ [ DIR_SYSTEM_SERVICE, item ] | path_join }}"
state: absent
loop: "{{ (sys_service_old_units_services + sys_service_old_units_timers) | unique }}"
when: (sys_service_old_units_services | length > 0) or (sys_service_old_units_timers | length > 0)
- name: "🔄 sys-service | systemd daemon-reload after pruning"
become: true
ansible.builtin.systemd:
daemon_reload: true
when: (sys_service_old_units_services | length > 0) or (sys_service_old_units_timers | length > 0)