Merge "Fix merge action plugins verbose output"

This commit is contained in:
Zuul 2023-04-14 10:36:45 +00:00 committed by Gerrit Code Review
commit b142b0ae7a
2 changed files with 16 additions and 9 deletions

View File

@ -171,12 +171,12 @@ class ActionModule(action.ActionBase):
del tmp # not used
sources = self._task.args.get('sources', None)
whitespace = self._task.args.get('whitespace', True)
if not isinstance(sources, list):
sources = [sources]
config = OverrideConfigParser(
whitespace=self._task.args.get('whitespace', True))
config = OverrideConfigParser(whitespace=whitespace)
for source in sources:
self.read_config(source, config)
@ -213,7 +213,11 @@ class ActionModule(action.ActionBase):
loader=self._loader,
templar=self._templar,
shared_loader_obj=self._shared_loader_obj)
result.update(copy_action.run(task_vars=task_vars))
copy_result = copy_action.run(task_vars=task_vars)
copy_result['invocation']['module_args'].update({
'src': result_file, 'sources': sources,
'whitespace': whitespace})
result.update(copy_result)
finally:
shutil.rmtree(local_tempdir)
return result

15
ansible/action_plugins/merge_yaml.py Executable file → Normal file
View File

@ -17,8 +17,7 @@ import os
import shutil
import tempfile
from yaml import dump
from yaml import safe_load
import yaml
from ansible import constants
from ansible import errors as ansible_errors
@ -81,7 +80,7 @@ class ActionModule(action.ActionBase):
def read_config(self, source):
result = None
# Only use config if present
if os.access(source, os.R_OK):
if source and os.access(source, os.R_OK):
with open(source, 'r') as f:
template_data = f.read()
@ -94,7 +93,7 @@ class ActionModule(action.ActionBase):
self._templar.environment.loader.searchpath = searchpath
template_data = self._templar.template(template_data)
result = safe_load(template_data)
result = yaml.safe_load(template_data)
return result or {}
def run(self, tmp=None, task_vars=None):
@ -128,7 +127,7 @@ class ActionModule(action.ActionBase):
try:
result_file = os.path.join(local_tempdir, 'source')
with open(result_file, 'w') as f:
f.write(dump(output, default_flow_style=False))
f.write(yaml.dump(output, default_flow_style=False))
new_task = self._task.copy()
new_task.args.pop('sources', None)
@ -147,7 +146,11 @@ class ActionModule(action.ActionBase):
loader=self._loader,
templar=self._templar,
shared_loader_obj=self._shared_loader_obj)
result.update(copy_action.run(task_vars=task_vars))
copy_result = copy_action.run(task_vars=task_vars)
copy_result['invocation']['module_args'].update({
'src': result_file, 'sources': sources,
'extend_lists': extend_lists})
result.update(copy_result)
finally:
shutil.rmtree(local_tempdir)
return result