When supported_policy_files gets set under python 3.7 [1], the regex '(.*)'
matches twice, once for the policy file name and once more for the empty string
that follows the policy file name. This is new behavior under python
3.7. [2]
This leads to the replacement string being written out twice resulting
in something like this: "nova_policy.yamlnova_".
This patch changes the regex to '(.+)' ensuring there is no match success
against the empty string.
[1]:
- set_fact:
supported_policy_files: "{{ supported_policy_format_list | map('regex_replace', '(.*)', '{{ project_name }}_\\1') | list }}"
[2]: https://docs.python.org/3/library/re.html#re.sub
Change-Id: Ie5278832e293364c66d53ddb07dff9c5409f0cc6
Closes-Bug: 1851249
23 lines
635 B
YAML
23 lines
635 B
YAML
---
|
|
|
|
# Update policy file name
|
|
- set_fact:
|
|
supported_policy_files: "{{ supported_policy_format_list | map('regex_replace', '(.+)', '{{ project_name }}_\\1') | list }}"
|
|
|
|
- name: Check if policies shall be overwritten
|
|
local_action: stat path="{{ fullpath }}"
|
|
run_once: True
|
|
register: overwritten_files
|
|
with_first_found:
|
|
- files: "{{ supported_policy_files }}"
|
|
paths:
|
|
- "{{ node_custom_config }}/horizon/"
|
|
skip: true
|
|
loop_control:
|
|
loop_var: fullpath
|
|
|
|
- set_fact:
|
|
custom_policy: "{{ custom_policy }} + [ '{{ overwritten_files.results.0.stat.path }}' ]"
|
|
when:
|
|
- overwritten_files.results
|