mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Permit to have a action plugin without a empty module file
Currently, someone writing a action plugin will also need to have a empty file in the module path to avoid triggering the error "no action detected in task.".
This commit is contained in:
parent
0d290bddda
commit
4811c7f117
2 changed files with 6 additions and 2 deletions
|
@ -124,6 +124,8 @@ class DocCLI(CLI):
|
||||||
try:
|
try:
|
||||||
# if the plugin lives in a non-python file (eg, win_X.ps1), require the corresponding python file for docs
|
# if the plugin lives in a non-python file (eg, win_X.ps1), require the corresponding python file for docs
|
||||||
filename = loader.find_plugin(plugin, mod_type='.py', ignore_deprecated=True)
|
filename = loader.find_plugin(plugin, mod_type='.py', ignore_deprecated=True)
|
||||||
|
if filename is None and loader == module_loader:
|
||||||
|
filename = action_loader.find_plugin(module, mod_type='.py')
|
||||||
if filename is None:
|
if filename is None:
|
||||||
display.warning("%s %s not found in %s\n" % (plugin_type, plugin, DocCLI.print_paths(loader)))
|
display.warning("%s %s not found in %s\n" % (plugin_type, plugin, DocCLI.print_paths(loader)))
|
||||||
continue
|
continue
|
||||||
|
@ -217,6 +219,8 @@ class DocCLI(CLI):
|
||||||
# if the module lives in a non-python file (eg, win_X.ps1), require the corresponding python file for docs
|
# if the module lives in a non-python file (eg, win_X.ps1), require the corresponding python file for docs
|
||||||
filename = loader.find_plugin(plugin, mod_type='.py', ignore_deprecated=True)
|
filename = loader.find_plugin(plugin, mod_type='.py', ignore_deprecated=True)
|
||||||
|
|
||||||
|
if filename is None and loader == module_loader:
|
||||||
|
filename = action_loader.find_plugin(module, mod_type='.py')
|
||||||
if filename is None:
|
if filename is None:
|
||||||
continue
|
continue
|
||||||
if filename.endswith(".ps1"):
|
if filename.endswith(".ps1"):
|
||||||
|
|
|
@ -23,7 +23,7 @@ from ansible.errors import AnsibleParserError, AnsibleError
|
||||||
from ansible.module_utils.six import iteritems, string_types
|
from ansible.module_utils.six import iteritems, string_types
|
||||||
from ansible.module_utils._text import to_text
|
from ansible.module_utils._text import to_text
|
||||||
from ansible.parsing.splitter import parse_kv, split_args
|
from ansible.parsing.splitter import parse_kv, split_args
|
||||||
from ansible.plugins import module_loader
|
from ansible.plugins import module_loader, action_loader
|
||||||
from ansible.template import Templar
|
from ansible.template import Templar
|
||||||
|
|
||||||
|
|
||||||
|
@ -286,7 +286,7 @@ class ModuleArgsParser:
|
||||||
|
|
||||||
# walk the input dictionary to see we recognize a module name
|
# walk the input dictionary to see we recognize a module name
|
||||||
for (item, value) in iteritems(self._task_ds):
|
for (item, value) in iteritems(self._task_ds):
|
||||||
if item in module_loader or item in ['meta', 'include', 'include_tasks', 'include_role', 'import_tasks', 'import_role']:
|
if item in module_loader or item in action_loader or item in ['meta', 'include', 'include_tasks', 'include_role', 'import_tasks', 'import_role']:
|
||||||
# finding more than one module name is a problem
|
# finding more than one module name is a problem
|
||||||
if action is not None:
|
if action is not None:
|
||||||
raise AnsibleParserError("conflicting action statements: %s, %s" % (action, item), obj=self._task_ds)
|
raise AnsibleParserError("conflicting action statements: %s, %s" % (action, item), obj=self._task_ds)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue