Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 093fef94 authored by Zuul's avatar Zuul Committed by Gerrit Code Review
Browse files

Merge "Support check and diff mode for merge_config and merge_yaml module"

parents 64ff5889 1db352f0
No related branches found
No related tags found
No related merge requests found
......@@ -19,7 +19,10 @@
import collections
import inspect
import os
import shutil
import tempfile
from ansible import constants
from ansible.plugins import action
from six import StringIO
......@@ -131,22 +134,34 @@ class ActionModule(action.ActionBase):
fakefile = StringIO()
config.write(fakefile)
remote_path = self._connection._shell.join_path(tmp, 'src')
xfered = self._transfer_data(remote_path, fakefile.getvalue())
full_source = fakefile.getvalue()
fakefile.close()
new_module_args = self._task.args.copy()
new_module_args.pop('sources', None)
local_tempdir = tempfile.mkdtemp(dir=constants.DEFAULT_LOCAL_TMP)
try:
result_file = os.path.join(local_tempdir, 'source')
with open(result_file, 'wb') as f:
f.write(full_source)
new_task = self._task.copy()
new_task.args.pop('sources', None)
new_module_args.update(
dict(
src=xfered
new_task.args.update(
dict(
src=result_file
)
)
)
result.update(self._execute_module(module_name='copy',
module_args=new_module_args,
task_vars=task_vars,
tmp=tmp))
copy_action = self._shared_loader_obj.action_loader.get(
'copy',
task=new_task,
connection=self._connection,
play_context=self._play_context,
loader=self._loader,
templar=self._templar,
shared_loader_obj=self._shared_loader_obj)
result.update(copy_action.run(task_vars=task_vars))
finally:
shutil.rmtree(local_tempdir)
return result
......@@ -17,6 +17,8 @@
import inspect
import os
import shutil
import tempfile
from yaml import dump
from yaml import safe_load
......@@ -28,6 +30,7 @@ except ImportError:
from yaml import Loader # noqa: F401
from ansible import constants
from ansible.plugins import action
......@@ -78,19 +81,31 @@ class ActionModule(action.ActionBase):
# restore original vars
self._templar.set_available_variables(old_vars)
remote_path = self._connection._shell.join_path(tmp, 'src')
xfered = self._transfer_data(remote_path,
dump(output,
default_flow_style=False))
new_module_args = self._task.args.copy()
new_module_args.update(
dict(
src=xfered
local_tempdir = tempfile.mkdtemp(dir=constants.DEFAULT_LOCAL_TMP)
try:
result_file = os.path.join(local_tempdir, 'source')
with open(result_file, 'wb') as f:
f.write(dump(output, default_flow_style=False))
new_task = self._task.copy()
new_task.args.pop('sources', None)
new_task.args.update(
dict(
src=result_file
)
)
)
del new_module_args['sources']
result.update(self._execute_module(module_name='copy',
module_args=new_module_args,
task_vars=task_vars,
tmp=tmp))
copy_action = self._shared_loader_obj.action_loader.get(
'copy',
task=new_task,
connection=self._connection,
play_context=self._play_context,
loader=self._loader,
templar=self._templar,
shared_loader_obj=self._shared_loader_obj)
result.update(copy_action.run(task_vars=task_vars))
finally:
shutil.rmtree(local_tempdir)
return result
......@@ -241,6 +241,7 @@
owner: "{{ config_owner_user }}"
group: "{{ config_owner_group }}"
mode: "0770"
ignore_errors: "{{ ansible_check_mode }}"
when:
- item.value.enabled | bool
- item.key != "kolla-toolbox"
......
......@@ -188,6 +188,7 @@
- name: Save the returned from cron jobs for building the crontab
set_fact:
cron_jobs: "{{ (cron_jobs_json.stdout | from_json).cron_jobs }}"
ignore_errors: "{{ ansible_check_mode }}"
when: keystone_token_provider == 'fernet'
- name: Copying files for keystone-fernet
......@@ -199,6 +200,7 @@
mode: "0660"
become: true
register: keystone_fernet_confs
ignore_errors: "{{ ansible_check_mode }}"
with_items:
- { src: "crontab.j2", dest: "crontab" }
- { src: "fernet-rotate.sh.j2", dest: "fernet-rotate.sh" }
......
---
features:
- |
Support ansible check and diff module for generate configrations. You could
use ``EXTRA_OPTS='--check --diff' kolla-ansible genconfig`` to check what
the configration file will be like in dry-run mode.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment