Merge "Fix maximum width of the DIB Multiline-YAML"

This commit is contained in:
Zuul 2023-04-19 16:29:44 +00:00 committed by Gerrit Code Review
commit 0f2262266a
3 changed files with 15 additions and 2 deletions

View File

@ -9,6 +9,7 @@
merge_yaml:
sources: "{{ kolla_bifrost_config_paths | product(['/kolla/config/bifrost/' ~ item]) | map('join') | list }}"
dest: "{{ kolla_node_custom_config_path }}/bifrost/{{ item }}"
yaml_width: 131072
mode: 0640
with_items:
- bifrost.yml

View File

@ -10,7 +10,7 @@ dib_os_release: "{{ kolla_bifrost_dib_os_release }}"
dib_elements: "{{ (kolla_bifrost_dib_elements + [kolla_bifrost_dib_init_element]) | join(' ') }}"
# DIB image environment variables.
{{ {'dib_env_vars': kolla_bifrost_dib_env_vars} | to_nice_yaml }}
{{ {'dib_env_vars': kolla_bifrost_dib_env_vars} | to_nice_yaml(width=131072) }}
# List of DIB image packages.
dib_packages: "{{ kolla_bifrost_dib_packages | join(',') }}"

View File

@ -59,6 +59,14 @@ options:
default: False
required: False
type: bool
yaml_width:
description:
- The maximum width of the YAML document. By default, Ansible uses the
PyYAML library which has a default 80 symbol string length limit.
To change the limit, the new value can be used here.
default: None
required: False
type: int
author: Sean Mooney
'''
@ -72,6 +80,7 @@ Merge multiple yaml files:
sources:
- "/tmp/default.yml"
- "/tmp/override.yml"
yaml_width: 131072
dest:
- "/tmp/out.yml"
'''
@ -117,6 +126,7 @@ class ActionModule(action.ActionBase):
output = {}
sources = self._task.args.get('sources', None)
extend_lists = self._task.args.get('extend_lists', False)
yaml_width = self._task.args.get('yaml_width', None)
if not isinstance(sources, list):
sources = [sources]
for source in sources:
@ -131,11 +141,13 @@ class ActionModule(action.ActionBase):
try:
result_file = os.path.join(local_tempdir, 'source')
with open(result_file, 'w') as f:
f.write(yaml.dump(output, default_flow_style=False))
f.write(yaml.dump(output, default_flow_style=False,
width=yaml_width))
new_task = self._task.copy()
new_task.args.pop('sources', None)
new_task.args.pop('extend_lists', None)
new_task.args.pop('yaml_width', None)
new_task.args.update(
dict(
src=result_file