Comment 7 for bug 1809491

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to kolla (stable/rocky)

Reviewed: https://review.openstack.org/627501
Committed: https://git.openstack.org/cgit/openstack/kolla/commit/?id=ce161f70ae24dabf31e2fefe61633b345b3bd659
Submitter: Zuul
Branch: stable/rocky

commit ce161f70ae24dabf31e2fefe61633b345b3bd659
Author: Mark Goddard <email address hidden>
Date: Mon Dec 24 09:38:07 2018 +0000

    Ignore undefined values in customizable filter

    When using the customizable filter to modify variables, if a template
    overrides file is shared between multiple sets of images, it is sometimes
    possible that a customised variable does not exist for a set of images.
    A specific example:

    My template overrides file has this:

    {% set ironic_inspector_packages_append = ["python-pip"] %}

    Normally I build binary/centos images.

    kolla-build -t binary

    Sometimes however I build a bifrost centos/source image, because bifrost
    does not support binary images.

    kolla-build -t source bifrost

    The ironic inspector image does not define ironic_inspector_packages for
    the source build, since it does not need any.

    {% elif install_type == 'source' %}
        {% if base_distro in ['debian', 'ubuntu'] %}
            {% set ironic_inspector_packages = ['iptables'] %}
        {% endif %}

    {{ macros.install_packages(ironic_inspector_packages |
            customizable("packages")) }}

    The install_packages macro copes with the undefined variable, however
    the customizable filter does not handle the base variable being
    undefined if a customised example exists.

    This change allows the customizable filter to ignore undefined
    variables, even if they have been customised.

    Change-Id: Ibe2fc91f5b6ceee8f937dd73c235128b2db525b1
    Closes-Bug: #1809491
    (cherry picked from commit f8d86969d0c042fd29d29df41ddd4052f687af55)