Fix regression for bare metal nodes
When running on bare metal, the log folders are created in advance to /openstack/log/aio1-memcached in a /var/log/memcached link. The task ``Create memcached log dir`` would then fail with: ``/var/log/memcached already exists as a link``, because the folder exists, and the exit 1 after the chown would trigger. This replaces the code with a more idempotent code: If a change would be detected by chown -c, it would be listed in the stdout, while the rc would still be 0. An error in chown would still be rc != 0. So we can use this different state to mark the task as changed or not, and handle the create folder case when no folder exists. Change-Id: I904f13d2ae02cd410edc4aaeb83bedd1e14d69fb
This commit is contained in:
parent
f23482d536
commit
f43f9d2370
@ -16,19 +16,28 @@
|
||||
- name: Test for log directory or link
|
||||
shell: |
|
||||
if [ -h "{{ memcached_log | dirname }}" ]; then
|
||||
chown -h root:root "{{ memcached_log | dirname }}"
|
||||
chown -R root:root "$(readlink {{ memcached_log | dirname }})"
|
||||
chown -c -h root:root "{{ memcached_log | dirname }}"
|
||||
chown -c -R root:root "$(readlink {{ memcached_log | dirname }})"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
register: log_dir
|
||||
failed_when: false
|
||||
changed_when: log_dir.rc == 1
|
||||
changed_when: log_dir.rc == 1 or "changed" in log_dir.stdout
|
||||
|
||||
- name: Show the changes if verbose
|
||||
debug:
|
||||
var: log_dir.stdout_lines
|
||||
verbosity: 1
|
||||
when: "'changed' in log_dir.stdout"
|
||||
|
||||
- name: Create memcached log dir
|
||||
file:
|
||||
path: "{{ memcached_log | dirname }}"
|
||||
state: directory
|
||||
when: log_dir.rc != 0
|
||||
owner: root
|
||||
group: root
|
||||
when: log_dir.rc == 1
|
||||
|
||||
- name: Apply memcached config
|
||||
template:
|
||||
|
Loading…
Reference in New Issue
Block a user