Comment 4 for bug 1660996

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (master)

Reviewed: https://review.openstack.org/427855
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=59aaac0cb5cf935d5d5e9ee899ecfd25b67923a1
Submitter: Jenkins
Branch: master

commit 59aaac0cb5cf935d5d5e9ee899ecfd25b67923a1
Author: Nolan Brubaker <email address hidden>
Date: Wed Feb 1 13:28:58 2017 -0500

    Only insert container hosts into lxc_hosts

    This change introduces a set of functions for dynamically populating the
    lxc_hosts function on each inventory run. Any previous membership is
    overwritten each time. The output is written to the
    openstack_inventory.json still in order to provide parity with the
    values provided to the ansible executable on stdout.

    Previous code was fairly naive, inserting hosts into lxc_hosts when they
    were marked as `is_metal`. This would add hosts, such as Ceph, that
    were on metal but had no LXC containers.

    A previous attempt at fixing this changed the _build_container_hosts
    function to provide more information about the container build process,
    then used that data in the _append_host_containers function to populate
    the lxc_hosts group. However, this approach failed due to limited
    information in each pass of the loop - if a node was an AIO, it might be
    erroneously removed from the lxc_hosts group because a container wasn't
    built on a given pass, and due to ordering, that pass may be the last
    one of the loop.

    To get around such problems, this code instead processes the inventory
    in whole, after all containers have been made. Population into the group
    is determined according to whether or not a given host's `physical_host`
    hostvar matches the host name.

    Change-Id: I9f3336f77cd0ef05fe1c7edeaf7defc6d93c3111
    Closes-Bug: #1660996