update-json-file: avoid failure when destination does not exists
It is perfectly valid to want to add a value to a file that does not exist yet, even the path may be missing. This fixes last night regression when installing docker no longer creates the /etc/docker folder, causing our MTU update to fail. Change-Id: I0f037d1d6664de3c3b777aaf6da9cd7c3e8bb15f Reference: https://review.rdoproject.org/zuul/builds?job_name=tox-py36-ci-config&project=rdo-infra/ci-config
This commit is contained in:
parent
b1521dbdb5
commit
762ce6e96e
@ -46,3 +46,7 @@ idempotent and will write the file each time.
|
|||||||
.. zuul:rolevar:: update_json_file_group
|
.. zuul:rolevar:: update_json_file_group
|
||||||
|
|
||||||
The group for the combined file.
|
The group for the combined file.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: update_json_dir_mode
|
||||||
|
|
||||||
|
The mode for the directory if that does not already exists.
|
||||||
|
@ -28,6 +28,25 @@
|
|||||||
var: _config
|
var: _config
|
||||||
when: update_json_file_debug
|
when: update_json_file_debug
|
||||||
|
|
||||||
|
- name: Assure we have a target directory
|
||||||
|
when: update_json_file_name | dirname
|
||||||
|
block:
|
||||||
|
- name: Check if target directory exists
|
||||||
|
stat:
|
||||||
|
path: "{{ update_json_file_name | dirname }}"
|
||||||
|
register: _result
|
||||||
|
|
||||||
|
- name: Create target directory
|
||||||
|
file:
|
||||||
|
path: "{{ update_json_file_name | dirname }}"
|
||||||
|
state: directory
|
||||||
|
mode: '{{ update_json_dir_mode | default(omit) }}'
|
||||||
|
owner: '{{ update_json_file_owner | default(omit) }}'
|
||||||
|
group: '{{ update_json_file_group | default(omit) }}'
|
||||||
|
recurse: yes
|
||||||
|
become: '{{ update_json_file_become }}'
|
||||||
|
when: not _result.stat.exists
|
||||||
|
|
||||||
- name: Save new file
|
- name: Save new file
|
||||||
copy:
|
copy:
|
||||||
content: "{{ _config | to_nice_json }}"
|
content: "{{ _config | to_nice_json }}"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
- include_role:
|
- include_role:
|
||||||
name: update-json-file
|
name: update-json-file
|
||||||
vars:
|
vars:
|
||||||
update_json_file_name: test.json
|
update_json_file_name: some/test.json
|
||||||
update_json_file_default:
|
update_json_file_default:
|
||||||
foo: bar
|
foo: bar
|
||||||
update_json_file_combine:
|
update_json_file_combine:
|
||||||
@ -14,7 +14,7 @@
|
|||||||
- include_role:
|
- include_role:
|
||||||
name: update-json-file
|
name: update-json-file
|
||||||
vars:
|
vars:
|
||||||
update_json_file_name: test.json
|
update_json_file_name: some/test.json
|
||||||
update_json_file_combine:
|
update_json_file_combine:
|
||||||
new: content
|
new: content
|
||||||
a:
|
a:
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
- name: Load resulting merged file
|
- name: Load resulting merged file
|
||||||
slurp:
|
slurp:
|
||||||
path: 'test.json'
|
path: 'some/test.json'
|
||||||
register: _file
|
register: _file
|
||||||
|
|
||||||
- name: Parse merged file
|
- name: Parse merged file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user