mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Generalize plugin enumeration a bit (v2)
This commit is contained in:
parent
f310d13280
commit
a87d889182
3 changed files with 15 additions and 13 deletions
|
@ -37,11 +37,9 @@ from ansible.playbook.helpers import load_list_of_blocks
|
||||||
from ansible.playbook.role.include import RoleInclude
|
from ansible.playbook.role.include import RoleInclude
|
||||||
from ansible.playbook.role.metadata import RoleMetadata
|
from ansible.playbook.role.metadata import RoleMetadata
|
||||||
from ansible.playbook.taggable import Taggable
|
from ansible.playbook.taggable import Taggable
|
||||||
from ansible.plugins import PluginLoader
|
from ansible.plugins import get_all_plugin_loaders
|
||||||
from ansible.utils.vars import combine_vars
|
from ansible.utils.vars import combine_vars
|
||||||
|
|
||||||
from ansible import plugins as ansible_plugins
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['Role', 'ROLE_CACHE', 'hash_params']
|
__all__ = ['Role', 'ROLE_CACHE', 'hash_params']
|
||||||
|
|
||||||
|
@ -156,12 +154,11 @@ class Role(Base, Become, Conditional, Taggable):
|
||||||
setattr(self, 'tags', current_tags)
|
setattr(self, 'tags', current_tags)
|
||||||
|
|
||||||
# dynamically load any plugins from the role directory
|
# dynamically load any plugins from the role directory
|
||||||
for name, obj in inspect.getmembers(ansible_plugins):
|
for name, obj in get_all_plugin_loaders():
|
||||||
if isinstance(obj, PluginLoader):
|
if obj.subdir:
|
||||||
if obj.subdir:
|
plugin_path = os.path.join(self._role_path, obj.subdir)
|
||||||
plugin_path = os.path.join(self._role_path, obj.subdir)
|
if os.path.isdir(plugin_path):
|
||||||
if os.path.isdir(plugin_path):
|
obj.add_directory(plugin_path)
|
||||||
obj.add_directory(plugin_path)
|
|
||||||
|
|
||||||
# load the role's other files, if they exist
|
# load the role's other files, if they exist
|
||||||
metadata = self._load_role_yaml('meta')
|
metadata = self._load_role_yaml('meta')
|
||||||
|
|
|
@ -20,11 +20,13 @@
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
|
import glob
|
||||||
|
import imp
|
||||||
|
import inspect
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
import glob
|
|
||||||
import imp
|
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
from ansible.utils.display import Display
|
from ansible.utils.display import Display
|
||||||
from ansible import errors
|
from ansible import errors
|
||||||
|
@ -40,6 +42,9 @@ def push_basedir(basedir):
|
||||||
if basedir not in _basedirs:
|
if basedir not in _basedirs:
|
||||||
_basedirs.insert(0, basedir)
|
_basedirs.insert(0, basedir)
|
||||||
|
|
||||||
|
def get_all_plugin_loaders():
|
||||||
|
return [(name, obj) for (name, obj) in inspect.getmembers(sys.modules[__name__]) if isinstance(obj, PluginLoader)]
|
||||||
|
|
||||||
class PluginLoader:
|
class PluginLoader:
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -30,7 +30,7 @@ from ansible.inventory.group import Group
|
||||||
from ansible.playbook.handler import Handler
|
from ansible.playbook.handler import Handler
|
||||||
from ansible.playbook.helpers import load_list_of_blocks
|
from ansible.playbook.helpers import load_list_of_blocks
|
||||||
from ansible.playbook.role import ROLE_CACHE, hash_params
|
from ansible.playbook.role import ROLE_CACHE, hash_params
|
||||||
from ansible.plugins import module_loader, filter_loader, lookup_loader
|
from ansible.plugins import filter_loader, lookup_loader, module_loader
|
||||||
from ansible.utils.debug import debug
|
from ansible.utils.debug import debug
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,9 +45,9 @@ class SharedPluginLoaderObj:
|
||||||
the forked processes over the queue easier
|
the forked processes over the queue easier
|
||||||
'''
|
'''
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.module_loader = module_loader
|
|
||||||
self.filter_loader = filter_loader
|
self.filter_loader = filter_loader
|
||||||
self.lookup_loader = lookup_loader
|
self.lookup_loader = lookup_loader
|
||||||
|
self.module_loader = module_loader
|
||||||
|
|
||||||
class StrategyBase:
|
class StrategyBase:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue