Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import_playbook: remove deprecated free form params #77431

Merged
merged 1 commit into from
Mar 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions changelogs/fragments/import_playbook-remove-params.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
removed_features:
- import_playbook - remove deprecated functionality that allows providing additional parameters in free form
16 changes: 2 additions & 14 deletions lib/ansible/playbook/playbook_include.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ def _preprocess_import(self, ds, new_ds, k, v):
'''
Splits the playbook import line up into filename and parameters
'''

if v is None:
raise AnsibleParserError("playbook import parameter is missing", obj=ds)
elif not isinstance(v, string_types):
Expand All @@ -169,16 +168,5 @@ def _preprocess_import(self, ds, new_ds, k, v):
items = split_args(v)
if len(items) == 0:
raise AnsibleParserError("import_playbook statements must specify the file name to import", obj=ds)
else:
new_ds['import_playbook'] = items[0].strip()
if len(items) > 1:
display.deprecated("Additional parameters in import_playbook statements are deprecated. "
"Use 'vars' instead. See 'import_playbook' documentation for examples.", version='2.14')
# rejoin the parameter portion of the arguments and
# then use parse_kv() to get a dict of params back
params = parse_kv(" ".join(items[1:]))
if 'tags' in params:
new_ds['tags'] = params.pop('tags')
if 'vars' in new_ds:
raise AnsibleParserError("import_playbook parameters cannot be mixed with 'vars' entries for import statements", obj=ds)
new_ds['vars'] = params

new_ds['import_playbook'] = items[0].strip()
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# Test that additional parameters after import_playbook raises a warning & strips whitespaces
- import_playbook: playbook1.yml tags=test_import

# Test and validate playbook import
- import_playbook: playbook1.yml
- import_playbook: validate1.yml


# Test and validate conditional import
- import_playbook: playbook2.yml
when: no
Expand Down
2 changes: 1 addition & 1 deletion test/integration/targets/include_import/runme.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ ansible -m include_role -a name=role1 localhost
## Import (static)

# Playbook
test "$(ANSIBLE_DEPRECATION_WARNINGS=1 ansible-playbook -i ../../inventory playbook/test_import_playbook.yml "$@" 2>&1 | grep -c '\[DEPRECATION WARNING\]: Additional parameters in import_playbook')" = 1
ansible-playbook playbook/test_import_playbook.yml -i inventory "$@"

ANSIBLE_STRATEGY='linear' ansible-playbook playbook/test_import_playbook_tags.yml -i inventory "$@" --tags canary1,canary22,validate --skip-tags skipme

Expand Down
5 changes: 4 additions & 1 deletion test/integration/targets/includes/test_includes.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
- import_playbook: test_includes2.yml parameter1=asdf parameter2=jkl
- import_playbook: test_includes2.yml
vars:
parameter1: asdf
parameter2: jkl

- import_playbook: test_includes3.yml

Expand Down