Use Jinja2 macro to remove redundancy in workarounds.sh.j2.

Currenty, a lot of code was being repeted in the template which
would force to modify it in multiple places if a change was being
done in one of the workaround blocks. By using the Jinja2 macro,
which behaves as a function, we can reuse the code defining it in
one single place and calling to it multiple times.

Change-Id: I63db9e8b30c9f9e99c501300982b513b627bed07
This commit is contained in:
Jose Luis Franco Arza 2018-10-24 13:13:41 +02:00
parent 57dd504735
commit 8c37eaaa2b
1 changed files with 15 additions and 119 deletions

View File

@ -29,8 +29,9 @@ function apply_patch {
}
{% if 'pre_undercloud_upgrade_workarounds' in item -%}
{% for bugs in pre_undercloud_upgrade_workarounds|default([]) -%}
{% macro render_workarounds(workaround_var, workaround_name) -%}
{% if workaround_name in item -%}
{% for bugs in workaround_var -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
@ -42,130 +43,25 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor -%}
{% endfor -%}
{% endif -%}
{% endmacro -%}
{{ render_workarounds(pre_undercloud_upgrade_workarounds|default([]),'pre_undercloud_upgrade_workarounds') }}
{# finish pre_undercloud_upgrade_workarounds #}
{% if 'post_undercloud_upgrade_workarounds' in item -%}
{% for bugs in post_undercloud_upgrade_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(post_undercloud_upgrade_workarounds|default([]),'post_undercloud_upgrade_workarounds') }}
{# finish post_undercloud_upgrade_workarounds #}
{% if 'pre_overcloud_upgrade_prepare_workarounds' in item -%}
{% for bugs in pre_overcloud_upgrade_prepare_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(post_overcloud_upgrade_prepare_workarounds|default([]),'post_overcloud_upgrade_prepare_workarounds') }}
{# finish pre_overcloud_upgrade_prepare_workarounds #}
{% if 'post_overcloud_upgrade_prepare_workarounds' in item -%}
{% for bugs in post_overcloud_upgrade_prepare_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(post_overcloud_upgrade_prepare_workarounds|default([]),'post_overcloud_upgrade_prepare_workarounds') }}
{# finish post_overcloud_upgrade_prepare_workarounds #}
{% if 'pre_overcloud_upgrade_workarounds' in item -%}
{% for bugs in pre_overcloud_upgrade_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(pre_overcloud_upgrade_workarounds|default([]),'pre_overcloud_upgrade_workarounds') }}
{# finish pre_overcloud_upgrade_workarounds #}
{% if 'post_overcloud_upgrade_workarounds' in item -%}
{% for bugs in post_overcloud_upgrade_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(post_overcloud_upgrade_workarounds|default([]),'post_overcloud_upgrade_workarounds') }}
{# finish post_overcloud_upgrade_workarounds #}
{% if 'pre_overcloud_upgrade_converge_workarounds' in item -%}
{% for bugs in pre_overcloud_upgrade_converge_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(pre_overcloud_upgrade_converge_workarounds|default([]),'pre_overcloud_upgrade_converge_workarounds') }}
{# finish pre_overcloud_upgrade_converge_workarounds #}
{% if 'post_overcloud_upgrade_converge_workarounds' in item -%}
{% for bugs in post_overcloud_upgrade_converge_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(post_overcloud_upgrade_converge_workarounds|default([]),'post_overcloud_upgrade_converge_workarounds') }}
{# finish post_overcloud_upgrade_converge_workarounds #}
{% if 'pre_ceph_upgrade_workarounds' in item -%}
{% for bugs in pre_ceph_upgrade_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{% endif -%}
{{ render_workarounds(pre_ceph_upgrade_workarounds|default([]),'pre_ceph_upgrade_workarounds') }}
{# finish pre_ceph_upgrade_workarounds #}
{% if 'post_ceph_upgrade_workarounds' in item -%}
{% for bugs in post_ceph_upgrade_workarounds|default([]) -%}
{% for key, value in bugs.items() -%}
echo {{ key }}
{% if value.patch -%}
apply_patch {{ value.basedir }} {{ value.id }}
{% else -%}
{{ value.command }}
{% endif -%}
################################################################################
{% endfor -%}
{% endfor -%}
{{ render_workarounds(post_ceph_upgrade_workarounds|default([]),'post_ceph_upgrade_workarounds') }}
{# finish post_ceph_upgrade_workarounds #}
{% endif -%}