Fix empty match while setting supported_policy_files

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
This commit is contained in:
Martin Chlumsky 2019-11-04 11:54:58 -05:00
parent 6160cdc576
commit 9d0ccad15a

View File

@ -2,7 +2,7 @@
# Update policy file name
- set_fact:
supported_policy_files: "{{ supported_policy_format_list | map('regex_replace', '(.*)', '{{ project_name }}_\\1') | list }}"
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 }}"