Ensure `allow_duplicates: true` enables to run single role multiple times (#64902) (#65063)

* Ensure `allow_duplicates: true` enables to run single role multiple times(#64902)

* Changed return value in `_load_roles` . Fixes #64902

* Add changelog fragment

* Add an integration test for the issue

* Fix changelog generation error and integration test.

* Fix yaml syntax error in changelog fragment
pull/65467/head
Kiyo Nagamine 5 years ago committed by Sam Doran
parent 4be8b2134f
commit daecbb9bf0

@ -0,0 +1,4 @@
---
bugfixes:
- "roles - Ensure that ``allow_duplidates: true`` enables to run single
role multiple times (https://github.com/ansible/ansible/issues/64902)"

@ -201,11 +201,9 @@ class Play(Base, Taggable, CollectionSearch):
for ri in role_includes: for ri in role_includes:
roles.append(Role.load(ri, play=self)) roles.append(Role.load(ri, play=self))
return self._extend_value( self.roles[:0] = roles
self.roles,
roles, return self.roles
prepend=True
)
def _load_vars_prompt(self, attr, ds): def _load_vars_prompt(self, attr, ds):
new_ds = preprocess_vars(ds) new_ds = preprocess_vars(ds)

@ -104,3 +104,7 @@ ansible-playbook test_loop_var_bleed.yaml "$@"
# https://github.com/ansible/ansible/issues/56580 # https://github.com/ansible/ansible/issues/56580
ansible-playbook valid_include_keywords/playbook.yml "$@" ansible-playbook valid_include_keywords/playbook.yml "$@"
# https://github.com/ansible/ansible/issues/64902
ansible-playbook tasks/test_allow_single_role_dup.yml 2>&1 | tee test_allow_single_role_dup.out
test "$(grep -c 'ok=3' test_allow_single_role_dup.out)" = 1

@ -0,0 +1,8 @@
---
- name: test for allow_duplicates with single role
hosts: localhost
gather_facts: false
roles:
- dup_allowed_role
- dup_allowed_role
- dup_allowed_role
Loading…
Cancel
Save