From 74583315395fbbbb6c123bc86cc4f3fb390d5201 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Mon, 31 Aug 2015 13:25:07 -0400 Subject: [PATCH] package and service now check that module exists before trying to execute it --- lib/ansible/plugins/action/package.py | 4 ++++ lib/ansible/plugins/action/service.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ansible/plugins/action/package.py b/lib/ansible/plugins/action/package.py index 9488b9f1086..024ef790abf 100644 --- a/lib/ansible/plugins/action/package.py +++ b/lib/ansible/plugins/action/package.py @@ -44,6 +44,10 @@ class ActionModule(ActionBase): module = getattr(facts['ansible_facts'], 'ansible_pkg_mgr', 'auto') if module != 'auto': + + if module not in self._shared_loader_obj.module_loader: + return {'failed': True, 'msg': 'Could not find a module for %s.' % module} + # run the 'package' module new_module_args = self._task.args.copy() if 'use' in new_module_args: diff --git a/lib/ansible/plugins/action/service.py b/lib/ansible/plugins/action/service.py index fc1704c3862..8cceb85e945 100644 --- a/lib/ansible/plugins/action/service.py +++ b/lib/ansible/plugins/action/service.py @@ -20,6 +20,7 @@ __metaclass__ = type from ansible.plugins.action import ActionBase + class ActionModule(ActionBase): TRANSFERS_FILES = False @@ -43,7 +44,7 @@ class ActionModule(ActionBase): if not 'failed' in facts: module = getattr(facts['ansible_facts'], 'ansible_service_mgr', 'auto') - if not module or module == 'auto': + if not module or module == 'auto' or module not in self._shared_loader_obj.module_loader: module = 'service' if module != 'auto':