2.7: yum/dnf: fail when space separated string of names (#47109) (#47414)

* yum/dnf: fail when space separated string of names (#47109)

* yum/dnf: fail when space separated string of names

* Groups allow spaces in names

(cherry picked from commit e8b6864e21)

* Add changelog
pull/47463/head
Martin Krizek 6 years ago committed by Toshio Kuratomi
parent d130c166ad
commit 57c25636d8

@ -0,0 +1,2 @@
minor_changes:
- yum/dnf - fail when space separated string of names (https://github.com/ansible/ansible/pull/47109)

@ -92,6 +92,15 @@ class YumDnf(with_metaclass(ABCMeta, object)):
self.enablerepo = self.listify_comma_sep_strings_in_list(self.enablerepo) self.enablerepo = self.listify_comma_sep_strings_in_list(self.enablerepo)
self.exclude = self.listify_comma_sep_strings_in_list(self.exclude) self.exclude = self.listify_comma_sep_strings_in_list(self.exclude)
# Fail if someone passed a space separated string
# https://github.com/ansible/ansible/issues/46301
if any((' ' in name and '@' not in name for name in self.names)):
module.fail_json(
msg='It appears that a space separated string of packages was passed in '
'as an argument. To operate on several packages, pass a comma separated '
'string of packages or a list of packages.'
)
def listify_comma_sep_strings_in_list(self, some_list): def listify_comma_sep_strings_in_list(self, some_list):
""" """
method to accept a list of strings as the parameter, find any strings method to accept a list of strings as the parameter, find any strings

@ -26,9 +26,10 @@ description:
options: options:
name: name:
description: description:
- "A list of package names, or package specifier with version, like C(name-1.0) - "A package name or package specifier with version, like C(name-1.0).
When using state=latest, this can be '*' which means run: dnf -y update. When using state=latest, this can be '*' which means run: dnf -y update.
You can also pass a url or a local path to a rpm file." You can also pass a url or a local path to a rpm file.
To operate on several packages this can accept a comma separated string of packages or a list of packages."
required: true required: true
aliases: aliases:
- pkg - pkg

@ -40,7 +40,7 @@ options:
See the C(allow_downgrade) documentation for caveats with downgrading packages. See the C(allow_downgrade) documentation for caveats with downgrading packages.
- When using state=latest, this can be C('*') which means run C(yum -y update). - When using state=latest, this can be C('*') which means run C(yum -y update).
- You can also pass a url or a local path to a rpm file (using state=present). - You can also pass a url or a local path to a rpm file (using state=present).
To operate on several packages this can accept a comma separated list of packages or (as of 2.0) a list of packages. To operate on several packages this can accept a comma separated string of packages or (as of 2.0) a list of packages.
aliases: [ pkg ] aliases: [ pkg ]
exclude: exclude:
description: description:

Loading…
Cancel
Save