Commit 25acfa81 by Michael DeHaan

Join with_items for the apt module, yum pending, and various fixes to the yum…

Join with_items for the apt module, yum pending, and various fixes to the yum module to support aliases
parent 86ec6391
...@@ -475,6 +475,7 @@ class Runner(object): ...@@ -475,6 +475,7 @@ class Runner(object):
inject['hostvars'] = self.setup_cache inject['hostvars'] = self.setup_cache
items = self.module_vars.get('items', []) items = self.module_vars.get('items', [])
if isinstance(items, basestring) and items.startswith("$"): if isinstance(items, basestring) and items.startswith("$"):
items = items.replace("$","") items = items.replace("$","")
if items in inject: if items in inject:
...@@ -484,6 +485,11 @@ class Runner(object): ...@@ -484,6 +485,11 @@ class Runner(object):
if type(items) != list: if type(items) != list:
raise errors.AnsibleError("with_items only takes a list: %s" % items) raise errors.AnsibleError("with_items only takes a list: %s" % items)
if self.module_name in [ 'apt' ]:
# hack for apt and soon yum, with_items maps back into a single module call
inject['item'] = ",".join(items)
items = []
if len(items) == 0: if len(items) == 0:
return self._executor_internal_inner(host, inject, port) return self._executor_internal_inner(host, inject, port)
else: else:
......
...@@ -119,7 +119,7 @@ def run_yum(command): ...@@ -119,7 +119,7 @@ def run_yum(command):
def ensure(my, state, pkgspec): def ensure(my, state, pkgspec):
yumconf = my.conf.config_file_path yumconf = my.conf.config_file_path
res = {} res = {}
if state == 'installed': if state in [ 'installed', 'present' ]:
# check if pkgspec is installed # check if pkgspec is installed
if re.search('[></=]',pkgspec): if re.search('[></=]',pkgspec):
try: try:
...@@ -170,7 +170,7 @@ def ensure(my, state, pkgspec): ...@@ -170,7 +170,7 @@ def ensure(my, state, pkgspec):
return res return res
if state == 'removed': if state in [ 'absent', 'removed' ]:
# check if pkgspec is installed # check if pkgspec is installed
# if not return {changed: False, failed=False } # if not return {changed: False, failed=False }
# if so try to remove it: # if so try to remove it:
...@@ -250,7 +250,7 @@ def ensure(my, state, pkgspec): ...@@ -250,7 +250,7 @@ def ensure(my, state, pkgspec):
return res return res
# should be caught by AnsibleModule argument_spec # should be caught by AnsibleModule argument_spec
return dict(changed=False, failed=True, results='', errors='unexpected state') return dict(changed=False, failed=True, results='', errors="unexpected state: %s" % state)
...@@ -289,7 +289,7 @@ def main(): ...@@ -289,7 +289,7 @@ def main():
if params['list'] and params['pkg']: if params['list'] and params['pkg']:
module.fail_json(msg="expected 'list=' or 'name=', but not both") module.fail_json(msg="expected 'list=' or 'name=', but not both")
if 'list' in params: if params['list']:
try: try:
my = yum_base(conf_file=params['conf_file'], cachedir=True) my = yum_base(conf_file=params['conf_file'], cachedir=True)
results = dict(results=list_stuff(my, params['list'])) results = dict(results=list_stuff(my, params['list']))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment