2021-11-01 19:00:24 +01:00
|
|
|
# (c) 2021, Felix Fontein <felix@fontein.de>
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
|
|
|
|
|
|
from ansible.plugins.loader import action_loader, module_loader
|
|
|
|
|
2021-11-04 08:29:17 +01:00
|
|
|
try:
|
|
|
|
from ansible.errors import AnsiblePluginRemovedError
|
|
|
|
except ImportError:
|
|
|
|
AnsiblePluginRemovedError = Exception
|
|
|
|
|
2021-11-01 19:00:24 +01:00
|
|
|
|
|
|
|
def a_module(term):
|
|
|
|
"""
|
|
|
|
Example:
|
|
|
|
- 'community.general.ufw' is community.general.a_module
|
|
|
|
- 'community.general.does_not_exist' is not community.general.a_module
|
|
|
|
"""
|
2021-11-04 08:29:17 +01:00
|
|
|
try:
|
|
|
|
for loader in (action_loader, module_loader):
|
|
|
|
data = loader.find_plugin(term)
|
|
|
|
if data is not None:
|
|
|
|
return True
|
|
|
|
return False
|
|
|
|
except AnsiblePluginRemovedError:
|
|
|
|
return False
|
2021-11-01 19:00:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
class TestModule(object):
|
|
|
|
''' Ansible jinja2 tests '''
|
|
|
|
|
|
|
|
def tests(self):
|
|
|
|
return {
|
|
|
|
'a_module': a_module,
|
|
|
|
}
|