mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-26 14:41:23 -07:00
parent
2f33c1a1a1
commit
5553b20828
206 changed files with 1853 additions and 1870 deletions
|
@ -42,6 +42,7 @@ __all__ = ['Role', 'hash_params']
|
|||
# in a static method. This is also used in the base class for
|
||||
# strategies (ansible/plugins/strategy/__init__.py)
|
||||
|
||||
|
||||
def hash_params(params):
|
||||
"""
|
||||
Construct a data structure of parameters that is hashable.
|
||||
|
@ -96,21 +97,21 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
_delegate_facts = FieldAttribute(isa='bool', default=False)
|
||||
|
||||
def __init__(self, play=None, from_files=None):
|
||||
self._role_name = None
|
||||
self._role_path = None
|
||||
self._role_params = dict()
|
||||
self._loader = None
|
||||
self._role_name = None
|
||||
self._role_path = None
|
||||
self._role_params = dict()
|
||||
self._loader = None
|
||||
|
||||
self._metadata = None
|
||||
self._play = play
|
||||
self._parents = []
|
||||
self._dependencies = []
|
||||
self._task_blocks = []
|
||||
self._handler_blocks = []
|
||||
self._default_vars = dict()
|
||||
self._role_vars = dict()
|
||||
self._had_task_run = dict()
|
||||
self._completed = dict()
|
||||
self._metadata = None
|
||||
self._play = play
|
||||
self._parents = []
|
||||
self._dependencies = []
|
||||
self._task_blocks = []
|
||||
self._handler_blocks = []
|
||||
self._default_vars = dict()
|
||||
self._role_vars = dict()
|
||||
self._had_task_run = dict()
|
||||
self._completed = dict()
|
||||
|
||||
if from_files is None:
|
||||
from_files = {}
|
||||
|
@ -166,11 +167,11 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
obj=role_include._ds)
|
||||
|
||||
def _load_role_data(self, role_include, parent_role=None):
|
||||
self._role_name = role_include.role
|
||||
self._role_path = role_include.get_role_path()
|
||||
self._role_params = role_include.get_role_params()
|
||||
self._role_name = role_include.role
|
||||
self._role_path = role_include.get_role_path()
|
||||
self._role_params = role_include.get_role_params()
|
||||
self._variable_manager = role_include.get_variable_manager()
|
||||
self._loader = role_include.get_loader()
|
||||
self._loader = role_include.get_loader()
|
||||
|
||||
if parent_role:
|
||||
self.add_parent(parent_role)
|
||||
|
@ -209,7 +210,7 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
try:
|
||||
self._task_blocks = load_list_of_blocks(task_data, play=self._play, role=self, loader=self._loader, variable_manager=self._variable_manager)
|
||||
except AssertionError:
|
||||
raise AnsibleParserError("The tasks/main.yml file for role '%s' must contain a list of tasks" % self._role_name , obj=task_data)
|
||||
raise AnsibleParserError("The tasks/main.yml file for role '%s' must contain a list of tasks" % self._role_name, obj=task_data)
|
||||
|
||||
handler_data = self._load_role_yaml('handlers')
|
||||
if handler_data:
|
||||
|
@ -217,10 +218,10 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
self._handler_blocks = load_list_of_blocks(handler_data, play=self._play, role=self, use_handlers=True, loader=self._loader,
|
||||
variable_manager=self._variable_manager)
|
||||
except AssertionError:
|
||||
raise AnsibleParserError("The handlers/main.yml file for role '%s' must contain a list of tasks" % self._role_name , obj=handler_data)
|
||||
raise AnsibleParserError("The handlers/main.yml file for role '%s' must contain a list of tasks" % self._role_name, obj=handler_data)
|
||||
|
||||
# vars and default vars are regular dictionaries
|
||||
self._role_vars = self._load_role_yaml('vars', main=self._from_files.get('vars'))
|
||||
self._role_vars = self._load_role_yaml('vars', main=self._from_files.get('vars'))
|
||||
if self._role_vars is None:
|
||||
self._role_vars = dict()
|
||||
elif not isinstance(self._role_vars, dict):
|
||||
|
@ -239,7 +240,7 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
if self._loader.path_exists(main_file):
|
||||
return self._loader.load_from_file(main_file)
|
||||
elif main is not None:
|
||||
raise AnsibleParserError("Could not find specified file in role: %s/%s" % (subdir,main))
|
||||
raise AnsibleParserError("Could not find specified file in role: %s/%s" % (subdir, main))
|
||||
return None
|
||||
|
||||
def _resolve_main(self, basepath, main=None):
|
||||
|
@ -269,8 +270,8 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
else:
|
||||
for m in possible_mains:
|
||||
if self._loader.is_file(m):
|
||||
return m # exactly one main file
|
||||
return possible_mains[0] # zero mains (we still need to return something)
|
||||
return m # exactly one main file
|
||||
return possible_mains[0] # zero mains (we still need to return something)
|
||||
|
||||
def _load_dependencies(self):
|
||||
'''
|
||||
|
@ -286,7 +287,6 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
|
||||
return deps
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# other functions
|
||||
|
||||
def add_parent(self, parent_role):
|
||||
|
@ -347,7 +347,7 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
in the proper order in which they should be executed or evaluated.
|
||||
'''
|
||||
|
||||
child_deps = []
|
||||
child_deps = []
|
||||
|
||||
for dep in self.get_direct_dependencies():
|
||||
for child_dep in dep.get_all_dependencies():
|
||||
|
@ -425,13 +425,13 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
def serialize(self, include_deps=True):
|
||||
res = super(Role, self).serialize()
|
||||
|
||||
res['_role_name'] = self._role_name
|
||||
res['_role_path'] = self._role_path
|
||||
res['_role_vars'] = self._role_vars
|
||||
res['_role_params'] = self._role_params
|
||||
res['_role_name'] = self._role_name
|
||||
res['_role_path'] = self._role_path
|
||||
res['_role_vars'] = self._role_vars
|
||||
res['_role_params'] = self._role_params
|
||||
res['_default_vars'] = self._default_vars
|
||||
res['_had_task_run'] = self._had_task_run.copy()
|
||||
res['_completed'] = self._completed.copy()
|
||||
res['_completed'] = self._completed.copy()
|
||||
|
||||
if self._metadata:
|
||||
res['_metadata'] = self._metadata.serialize()
|
||||
|
@ -450,13 +450,13 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
return res
|
||||
|
||||
def deserialize(self, data, include_deps=True):
|
||||
self._role_name = data.get('_role_name', '')
|
||||
self._role_path = data.get('_role_path', '')
|
||||
self._role_vars = data.get('_role_vars', dict())
|
||||
self._role_params = data.get('_role_params', dict())
|
||||
self._role_name = data.get('_role_name', '')
|
||||
self._role_path = data.get('_role_path', '')
|
||||
self._role_vars = data.get('_role_vars', dict())
|
||||
self._role_params = data.get('_role_params', dict())
|
||||
self._default_vars = data.get('_default_vars', dict())
|
||||
self._had_task_run = data.get('_had_task_run', dict())
|
||||
self._completed = data.get('_completed', dict())
|
||||
self._completed = data.get('_completed', dict())
|
||||
|
||||
if include_deps:
|
||||
deps = []
|
||||
|
@ -488,4 +488,3 @@ class Role(Base, Become, Conditional, Taggable):
|
|||
parent.set_loader(loader)
|
||||
for dep in self.get_direct_dependencies():
|
||||
dep.set_loader(loader)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue