Correct jinja loop logic for role_networks

The `_role_networks` variable in network loops was being defined and then
potentially redefined in a larger loop. If this option is first populated
with a None type and then later discovers a hash the deployment will fail
with a stack trace:

    'None' has no attribute 'append'

A full traceback from the error can be seen here[0]. To reolsve this
issue the empty array, `_role_networks` has been moved into the
`role.networks` case statement which will ensure the option is type safe
for every round.

[0] - https://pasted.tech/pastes/edba7903977c841901c0e655850d4f8b08b32e6c.raw

Closes-Bug: #1831885
Change-Id: I480786ed4d6b0a5544535ce232ae8206d04299b1
Signed-off-by: Kevin Carter <kecarter@redhat.com>
(cherry picked from commit 8833c2da2d)
This commit is contained in:
Kevin Carter 2019-07-24 19:07:33 -05:00 committed by Kevin Carter (cloudnull)
parent c01ae2953e
commit 7bedd167e9
8 changed files with 24 additions and 24 deletions

View File

@ -26,10 +26,10 @@ resource_registry:
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -33,10 +33,10 @@ resource_registry:
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -22,10 +22,10 @@ resource_registry:
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -1,10 +1,10 @@
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -1,10 +1,10 @@
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -1,10 +1,10 @@
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -1,10 +1,10 @@
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}

View File

@ -1,10 +1,10 @@
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- set _role_networks = [] %}
{%- if role.networks is mapping %}
{%- for key,val in role.networks.items() %}
{%- set _role_networks = _role_networks.append(key) %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}