)]}'
{"ansible-role-requirements.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"739f8fba5fa0fb27c64d2be9d43f2785b5116fc6","unresolved":false,"context_lines":[{"line_number":196,"context_line":"  src: https://git.openstack.org/openstack/openstack-ansible-lxc_hosts"},{"line_number":197,"context_line":"  version: master"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"# This is forked version of the plugin libs to support nspawn container types."},{"line_number":200,"context_line":"- name: plugins"},{"line_number":201,"context_line":"  scm: git"},{"line_number":202,"context_line":"  src: https://github.com/os-cloud/openstack-ansible-plugins"},{"line_number":203,"context_line":"  version: nspawn-connection"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f201791_a57b2e79","line":203,"range":{"start_line":199,"start_character":0,"end_line":203,"end_character":28},"updated":"2017-06-24 06:45:09.000000000","message":"Can we get these changed in review, then use depends-on to test the two together? Having these changes in review will help to allow them to be refined in a more visible way.","commit_id":"10730e4c253e6ce6d55917a81b13432b3f6edb54"}],"group_vars/all/nspawn.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"d9fdb2ddbaac81a57e810951d2d87bf454e20dba","unresolved":false,"context_lines":[{"line_number":5,"context_line":"container_host_machine_volume_size: 32"},{"line_number":6,"context_line":"container_pull_mode: pull-tar"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"container_image:"},{"line_number":9,"context_line":"  url: \"https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-root.tar.gz\""},{"line_number":10,"context_line":"  name: \"xenial-base\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"container_distro_packages:"},{"line_number":13,"context_line":"  - apt-transport-https"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5f201791_eb38d5a0","line":10,"range":{"start_line":8,"start_character":0,"end_line":10,"end_character":21},"updated":"2017-06-24 09:24:32.000000000","message":"We could, instead just debootstrap the base and it will not include unnecessary packages like the kernel:\n\ndebootstrap --variant\u003dminbase --include\u003ddbus,isc-dhcp-client,apt-transport-https xenial /var/lib/machines/xenial http://archive.ubuntu.com/ubuntu/\n\nI see, though, that the LXC container prep process contains some more things so perhaps it makes sense to continue using those prepped images for now instead of reinventing the wheel?\n\nhttps://github.com/lxc/lxc/blob/master/templates/lxc-ubuntu.in","commit_id":"89c858353f829e1547b33e5c1a520e5649923edd"}],"group_vars/hosts.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"739f8fba5fa0fb27c64d2be9d43f2785b5116fc6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# additional policy is written. See LP Bug 1657517 for more details."},{"line_number":29,"context_line":"security_rhel7_enable_linux_security_module: \"{{ ansible_os_family \u003d\u003d \u0027RedHat\u0027 | ternary(false, true) }}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"container_storage_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-storage\u0027, \u0027br-storage\u0027) }}\""},{"line_number":32,"context_line":"container_vlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vlan\u0027, \u0027br-vlan\u0027) }}\""},{"line_number":33,"context_line":"container_flat_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-flat\u0027, \u0027br-flat\u0027) }}\""},{"line_number":34,"context_line":"container_vxlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vxlan\u0027, \u0027br-vxlan\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f201791_c5ef4a1c","line":31,"range":{"start_line":31,"start_character":73,"end_line":31,"end_character":78},"updated":"2017-06-24 06:45:09.000000000","message":"What\u0027s with the \u0027mv-mv-\u0027 prefix?","commit_id":"10730e4c253e6ce6d55917a81b13432b3f6edb54"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# additional policy is written. See LP Bug 1657517 for more details."},{"line_number":29,"context_line":"security_rhel7_enable_linux_security_module: \"{{ ansible_os_family \u003d\u003d \u0027RedHat\u0027 | ternary(false, true) }}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"container_storage_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-storage\u0027, \u0027br-storage\u0027) }}\""},{"line_number":32,"context_line":"container_vlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vlan\u0027, \u0027br-vlan\u0027) }}\""},{"line_number":33,"context_line":"container_flat_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-flat\u0027, \u0027br-flat\u0027) }}\""},{"line_number":34,"context_line":"container_vxlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vxlan\u0027, \u0027br-vxlan\u0027) }}\""},{"line_number":35,"context_line":"container_mgmt_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-mgmt\u0027, \u0027br-mgmt\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_49f2b108","line":35,"range":{"start_line":31,"start_character":0,"end_line":35,"end_character":97},"updated":"2017-06-29 10:25:33.000000000","message":"Maybe I don\u0027t understand, but I think in all cases, we should have a bridge to interface with the carrying interface. Even more with macvlan interfaces.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"3b978d8a459ce794a95bbd38aac7b3a0939896b0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# additional policy is written. See LP Bug 1657517 for more details."},{"line_number":29,"context_line":"security_rhel7_enable_linux_security_module: \"{{ ansible_os_family \u003d\u003d \u0027RedHat\u0027 | ternary(false, true) }}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"container_storage_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-storage\u0027, \u0027br-storage\u0027) }}\""},{"line_number":32,"context_line":"container_vlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vlan\u0027, \u0027br-vlan\u0027) }}\""},{"line_number":33,"context_line":"container_flat_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-flat\u0027, \u0027br-flat\u0027) }}\""},{"line_number":34,"context_line":"container_vxlan_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-vxlan\u0027, \u0027br-vxlan\u0027) }}\""},{"line_number":35,"context_line":"container_mgmt_interface: \"{{ (container_type \u003d\u003d \u0027nspawn\u0027) | ternary(\u0027mv-mv-mgmt\u0027, \u0027br-mgmt\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_14404935","line":35,"range":{"start_line":31,"start_character":0,"end_line":35,"end_character":97},"in_reply_to":"3f1d235d_49f2b108","updated":"2017-06-29 10:26:19.000000000","message":"Ok I\u0027ve seen you\u0027re using a carrying interface in the playbook, which is good. But I think we should stick with br- notation.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"}],"inventory/group_vars/all/nspawn.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull): These are host specific variables we capture up-front."},{"line_number":17,"context_line":"_ansible_distribution: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution\u0027] | lower }}\""},{"line_number":18,"context_line":"_ansible_distribution_version: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution_version\u0027] }}\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_9c0b6e28","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":73},"updated":"2018-02-01 17:44:17.000000000","message":"You don\u0027t explain why this happens.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull): These are host specific variables we capture up-front."},{"line_number":17,"context_line":"_ansible_distribution: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution\u0027] | lower }}\""},{"line_number":18,"context_line":"_ansible_distribution_version: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution_version\u0027] }}\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_c93ccd94","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":73},"in_reply_to":"5f93b717_9c0b6e28","updated":"2018-02-01 23:04:45.000000000","message":"what?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull): These are host specific variables we capture up-front."},{"line_number":17,"context_line":"_ansible_distribution: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution\u0027] | lower }}\""},{"line_number":18,"context_line":"_ansible_distribution_version: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution_version\u0027] }}\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(cloudnull): This allows the nspawn containers to connect to an existing"},{"line_number":21,"context_line":"#                  lxc bridge."}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_bf073c18","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":126},"updated":"2018-02-01 17:44:17.000000000","message":"Why isn\u0027t this an host var?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(cloudnull): These are host specific variables we capture up-front."},{"line_number":17,"context_line":"_ansible_distribution: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution\u0027] | lower }}\""},{"line_number":18,"context_line":"_ansible_distribution_version: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_distribution_version\u0027] }}\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(cloudnull): This allows the nspawn containers to connect to an existing"},{"line_number":21,"context_line":"#                  lxc bridge."}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_a93941a4","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":126},"in_reply_to":"5f93b717_bf073c18","updated":"2018-02-01 23:04:45.000000000","message":"what?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(cloudnull): This allows the nspawn containers to connect to an existing"},{"line_number":21,"context_line":"#                  lxc bridge."},{"line_number":22,"context_line":"nspawn_networks:"},{"line_number":23,"context_line":"  lxcbr0_address:"},{"line_number":24,"context_line":"    bridge: lxcbr0"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"nspawn_architecture_mapping:"},{"line_number":27,"context_line":"  x86_64: amd64"},{"line_number":28,"context_line":"  ppc64le: ppc64el"},{"line_number":29,"context_line":"  s390x: s390x"},{"line_number":30,"context_line":"  armv7l: armhf"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_7f15343f","line":30,"range":{"start_line":22,"start_character":0,"end_line":30,"end_character":15},"updated":"2018-02-01 17:44:17.000000000","message":"why is this an all group var, instead of in a var file?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# NOTE(cloudnull): This allows the nspawn containers to connect to an existing"},{"line_number":21,"context_line":"#                  lxc bridge."},{"line_number":22,"context_line":"nspawn_networks:"},{"line_number":23,"context_line":"  lxcbr0_address:"},{"line_number":24,"context_line":"    bridge: lxcbr0"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"nspawn_architecture_mapping:"},{"line_number":27,"context_line":"  x86_64: amd64"},{"line_number":28,"context_line":"  ppc64le: ppc64el"},{"line_number":29,"context_line":"  s390x: s390x"},{"line_number":30,"context_line":"  armv7l: armhf"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_693fb986","line":30,"range":{"start_line":22,"start_character":0,"end_line":30,"end_character":15},"in_reply_to":"5f93b717_7f15343f","updated":"2018-02-01 23:04:45.000000000","message":"it is a group var.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  s390x: s390x"},{"line_number":30,"context_line":"  armv7l: armhf"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"nspawn_map:"},{"line_number":35,"context_line":"  ubuntu:"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_1f2e7091","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":108},"updated":"2018-02-01 17:44:17.000000000","message":"why isn\u0027t this a fact?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  s390x: s390x"},{"line_number":30,"context_line":"  armv7l: armhf"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"nspawn_map:"},{"line_number":35,"context_line":"  ubuntu:"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_8942450e","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":108},"in_reply_to":"5f93b717_1f2e7091","updated":"2018-02-01 23:04:45.000000000","message":"what?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"nspawn_map:"},{"line_number":35,"context_line":"  ubuntu:"},{"line_number":36,"context_line":"    distro: ubuntu"},{"line_number":37,"context_line":"    arch: \"{{ nspawn_architecture_mapping[nspawn_architecture] }}\""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_3f348cdd","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":11},"updated":"2018-02-01 17:44:17.000000000","message":"Why isn\u0027t this in vars file?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"nspawn_architecture: \"{{ hostvars[hostvars[inventory_hostname][\u0027physical_host\u0027]][\u0027ansible_architecture\u0027] }}\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"nspawn_map:"},{"line_number":35,"context_line":"  ubuntu:"},{"line_number":36,"context_line":"    distro: ubuntu"},{"line_number":37,"context_line":"    arch: \"{{ nspawn_architecture_mapping[nspawn_architecture] }}\""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_094e3537","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":11},"in_reply_to":"5f93b717_3f348cdd","updated":"2018-02-01 23:04:45.000000000","message":"because I\u0027ve added it as part of the this group var however I could add it to a new var file.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      - yum-plugin-priorities"},{"line_number":69,"context_line":"      - yum-utils"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"container_cache_packages: \"{{ nspawn_map[_ansible_distribution][\u0027distro_packages\u0027] }}\""},{"line_number":72,"context_line":"container_image: \"{{ nspawn_map[_ansible_distribution][\u0027distro\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027release\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027arch\u0027] }}\""},{"line_number":73,"context_line":"container_default_bind_mounts: []"},{"line_number":74,"context_line":"container_bind_mounts: []"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_7f43f442","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":86},"updated":"2018-02-01 17:44:17.000000000","message":"Why isn\u0027t this in a defaults thing?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      - yum-plugin-priorities"},{"line_number":69,"context_line":"      - yum-utils"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"container_cache_packages: \"{{ nspawn_map[_ansible_distribution][\u0027distro_packages\u0027] }}\""},{"line_number":72,"context_line":"container_image: \"{{ nspawn_map[_ansible_distribution][\u0027distro\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027release\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027arch\u0027] }}\""},{"line_number":73,"context_line":"container_default_bind_mounts: []"},{"line_number":74,"context_line":"container_bind_mounts: []"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_695819f9","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":86},"in_reply_to":"5f93b717_7f43f442","updated":"2018-02-01 23:04:45.000000000","message":"its in this group var, as a default.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"container_cache_packages: \"{{ nspawn_map[_ansible_distribution][\u0027distro_packages\u0027] }}\""},{"line_number":72,"context_line":"container_image: \"{{ nspawn_map[_ansible_distribution][\u0027distro\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027release\u0027] }}-{{ nspawn_map[_ansible_distribution][\u0027arch\u0027] }}\""},{"line_number":73,"context_line":"container_default_bind_mounts: []"},{"line_number":74,"context_line":"container_bind_mounts: []"},{"line_number":75,"context_line":"container_config_overrides: {}"},{"line_number":76,"context_line":"container_network_config_overrides: {}"},{"line_number":77,"context_line":"container_domain: \"openstack.local\""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_dfa6c80f","line":76,"range":{"start_line":73,"start_character":0,"end_line":76,"end_character":38},"updated":"2018-02-01 17:44:17.000000000","message":"Will that be something that would be shared accross lxc/nspawn/physical hosts? It doesn\u0027t look like it, and probably should be scoped to a nspawn_all group. Or as a default of a role.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":74,"context_line":"container_bind_mounts: []"},{"line_number":75,"context_line":"container_config_overrides: {}"},{"line_number":76,"context_line":"container_network_config_overrides: {}"},{"line_number":77,"context_line":"container_domain: \"openstack.local\""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_7f6c54cd","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":35},"updated":"2018-02-01 17:44:17.000000000","message":"why redefining this, can\u0027t we reuse something we have?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":74,"context_line":"container_bind_mounts: []"},{"line_number":75,"context_line":"container_config_overrides: {}"},{"line_number":76,"context_line":"container_network_config_overrides: {}"},{"line_number":77,"context_line":"container_domain: \"openstack.local\""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_a90701ca","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":35},"in_reply_to":"5f93b717_7f6c54cd","updated":"2018-02-01 23:04:45.000000000","message":"we certainly could","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"}],"osa_toolkit/generate.py":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":83,"id":"5f93b717_3f900c95","updated":"2018-02-01 17:44:17.000000000","message":"Could inventory changes be in a separate commit, included with their tests?\n\nThe inventory is already fragile.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":83,"id":"5f93b717_89100502","in_reply_to":"5f93b717_3f900c95","updated":"2018-02-01 23:04:45.000000000","message":"it could but I\u0027m not sure there\u0027s a point to that. This adds one case statement and some debug messages.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"da4bb31afb2ab01017ae241591ce56a528f2b753","unresolved":false,"context_lines":[{"line_number":760,"context_line":"    logger.debug(\"Created lxc_hosts and nspawn_hosts group.\")"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"def _find_lxc_hosts(inventory):"},{"line_number":764,"context_line":"    \"\"\"Build the lxc_hosts dynamic group"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"    Inspect the generated inventory for nodes that host LXC containers."},{"line_number":767,"context_line":"    Return a list of those that match for insertion into the inventory."},{"line_number":768,"context_line":"    Populate the \u0027lxc_hosts\u0027 group with any node that matches."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    This and the populate_lxc_hosts function are split in order to be less"},{"line_number":771,"context_line":"    coupled and more testable."},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"    :param inventory: The dictionary containing the Ansible inventory"},{"line_number":774,"context_line":"    :returns: List of hostnames that are LXC hosts"},{"line_number":775,"context_line":"    :rtype: list"},{"line_number":776,"context_line":"    \"\"\""},{"line_number":777,"context_line":"    host_nodes \u003d []"},{"line_number":778,"context_line":"    for host, hostvars in inventory[\u0027_meta\u0027][\u0027hostvars\u0027].items():"},{"line_number":779,"context_line":"        physical_host \u003d hostvars.get(\u0027physical_host\u0027, None)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        # We want this node\u0027s \"parent\", so append the physical host"},{"line_number":782,"context_line":"        if not host \u003d\u003d physical_host:"},{"line_number":783,"context_line":"            appended \u003d du.append_if(array\u003dhost_nodes, item\u003dphysical_host)"},{"line_number":784,"context_line":"            if appended:"},{"line_number":785,"context_line":"                logger.debug(\"%s added to lxc_hosts and nspawn_hosts group\","},{"line_number":786,"context_line":"                             physical_host)"},{"line_number":787,"context_line":"    return host_nodes"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"def _ensure_inventory_uptodate(inventory, container_skel):"}],"source_content_type":"text/x-python","patch_set":98,"id":"3fa0c359_9c63e8b1","line":787,"range":{"start_line":763,"start_character":0,"end_line":787,"end_character":21},"updated":"2018-02-07 19:22:23.000000000","message":"Ah, so it would appear that for this patch lxc_hosts and nspawn_hosts will have the same content, which is bad because then it\u0027s mutually exclusive (no slow migration capability) and requires the dynamic inclusion which throws up those horrible warnings because ansible has deprecated \u0027include:\u0027, and of course include_playbook and import_playbook don\u0027t work with variables.\n\nIf we could somehow use something like openstack-ansible.rc to set an env var, or configure the tech another way, then have the inventory set the container type on creation, then we can benefit from a migration from one tech to another on the same hosts and we can be rid of those nasty warnings.","commit_id":"7358f96695851a7b2753e4ab32056eb5d9192531"}],"playbooks/common-playbooks/nspawn-containers-create.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Gather nspawn containers"},{"line_number":17,"context_line":"  hosts: \"{{ container_group }}\""},{"line_number":18,"context_line":"  gather_facts: false"},{"line_number":19,"context_line":"  connection: local"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_09f9597f","line":16,"range":{"start_line":16,"start_character":8,"end_line":16,"end_character":32},"updated":"2017-06-29 10:25:33.000000000","message":"\"Create nspawn dynamic groups.\"","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  gather_facts: false"},{"line_number":19,"context_line":"  connection: local"},{"line_number":20,"context_line":"  tasks:"},{"line_number":21,"context_line":"    - name: Create group of nspawn hosts"},{"line_number":22,"context_line":"      add_host:"},{"line_number":23,"context_line":"        name: \"{{ hostvars[item][\u0027physical_host\u0027] }}\""},{"line_number":24,"context_line":"        groups: nspawn_host_group"},{"line_number":25,"context_line":"      when: \u003e"},{"line_number":26,"context_line":"        hostvars[item][\u0027physical_host\u0027] \u003d\u003d hostvars[item][\u0027container_name\u0027] or"},{"line_number":27,"context_line":"        (hostvars[item][\u0027is_metal\u0027] | default(false) | bool)"},{"line_number":28,"context_line":"      with_items: \"{{ groups[container_group] }}\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    - name: Create group of nspawn containers"},{"line_number":31,"context_line":"      add_host:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_dbbe84fe","line":28,"range":{"start_line":21,"start_character":0,"end_line":28,"end_character":49},"updated":"2017-06-29 10:25:33.000000000","message":"We can probably simplify this and remove it completely if there is a group of nspawnable hosts in the inventory. (See comment L39).","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"774757bef0446465b5587d1d6bc78abd6a08edc3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  gather_facts: false"},{"line_number":19,"context_line":"  connection: local"},{"line_number":20,"context_line":"  tasks:"},{"line_number":21,"context_line":"    - name: Create group of nspawn hosts"},{"line_number":22,"context_line":"      add_host:"},{"line_number":23,"context_line":"        name: \"{{ hostvars[item][\u0027physical_host\u0027] }}\""},{"line_number":24,"context_line":"        groups: nspawn_host_group"},{"line_number":25,"context_line":"      when: \u003e"},{"line_number":26,"context_line":"        hostvars[item][\u0027physical_host\u0027] \u003d\u003d hostvars[item][\u0027container_name\u0027] or"},{"line_number":27,"context_line":"        (hostvars[item][\u0027is_metal\u0027] | default(false) | bool)"},{"line_number":28,"context_line":"      with_items: \"{{ groups[container_group] }}\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    - name: Create group of nspawn containers"},{"line_number":31,"context_line":"      add_host:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_73cd7eb5","line":28,"range":{"start_line":21,"start_character":0,"end_line":28,"end_character":49},"in_reply_to":"3f1d235d_dbbe84fe","updated":"2017-07-06 17:14:36.000000000","message":"The dynamic group is used because the containers are built when needed for a specific seed group. With LXC we build all containers in one play, with NSPAWN we build what we require only when instructed to do so.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        (hostvars[item][\u0027is_metal\u0027] | default(false) | bool)"},{"line_number":28,"context_line":"      with_items: \"{{ groups[container_group] }}\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    - name: Create group of nspawn containers"},{"line_number":31,"context_line":"      add_host:"},{"line_number":32,"context_line":"        name: \"{{ hostvars[item][\u0027container_name\u0027] }}\""},{"line_number":33,"context_line":"        groups: nspawn_container_group"},{"line_number":34,"context_line":"      when:"},{"line_number":35,"context_line":"        - hostvars[item][\u0027physical_host\u0027] !\u003d hostvars[item][\u0027container_name\u0027]"},{"line_number":36,"context_line":"      with_items: \"{{ groups[container_group] }}\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- name: Gather nspawn container host facts"},{"line_number":39,"context_line":"  hosts: \"nspawn_host_group\""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_3e0d6637","line":36,"range":{"start_line":30,"start_character":0,"end_line":36,"end_character":49},"updated":"2017-06-29 10:25:33.000000000","message":"Same here, but with an ! instead of \u0026","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      with_items: \"{{ groups[container_group] }}\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- name: Gather nspawn container host facts"},{"line_number":39,"context_line":"  hosts: \"nspawn_host_group\""},{"line_number":40,"context_line":"  gather_facts: true"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"- name: Create container(s)"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_bb5068d6","line":39,"range":{"start_line":39,"start_character":10,"end_line":39,"end_character":27},"updated":"2017-06-29 10:25:33.000000000","message":"With my comment for L28 in mind, just change this line into\nhosts: \"{{ container_group }}:\u0026nspawnablehosts\"\n\nNo task needed.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"}],"playbooks/common-tasks/os-nspawn-container-setup.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  tags:"},{"line_number":26,"context_line":"    - common-nspawn"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- name: Ensure mount directories exists (physical host)"},{"line_number":29,"context_line":"  file:"},{"line_number":30,"context_line":"    path: \"{{ item[\u0027bind_dir_path\u0027] }}\""},{"line_number":31,"context_line":"    state: \"directory\""},{"line_number":32,"context_line":"  with_items:"},{"line_number":33,"context_line":"    - \"{{ list_of_bind_mounts | default([]) }}\""},{"line_number":34,"context_line":"  when:"},{"line_number":35,"context_line":"    - not is_metal | bool"},{"line_number":36,"context_line":"  tags:"},{"line_number":37,"context_line":"    - common-nspawn"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- name: Create container bind mount config"},{"line_number":40,"context_line":"  lineinfile:"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_bff17c03","line":37,"range":{"start_line":28,"start_character":0,"end_line":37,"end_character":19},"updated":"2018-02-01 17:44:17.000000000","message":"Why do we repeat ourselves? Can\u0027t we reuse what\u0027s already done  for lxc?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  tags:"},{"line_number":26,"context_line":"    - common-nspawn"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- name: Ensure mount directories exists (physical host)"},{"line_number":29,"context_line":"  file:"},{"line_number":30,"context_line":"    path: \"{{ item[\u0027bind_dir_path\u0027] }}\""},{"line_number":31,"context_line":"    state: \"directory\""},{"line_number":32,"context_line":"  with_items:"},{"line_number":33,"context_line":"    - \"{{ list_of_bind_mounts | default([]) }}\""},{"line_number":34,"context_line":"  when:"},{"line_number":35,"context_line":"    - not is_metal | bool"},{"line_number":36,"context_line":"  tags:"},{"line_number":37,"context_line":"    - common-nspawn"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- name: Create container bind mount config"},{"line_number":40,"context_line":"  lineinfile:"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_09fcf5b2","line":37,"range":{"start_line":28,"start_character":0,"end_line":37,"end_character":19},"in_reply_to":"5f93b717_bff17c03","updated":"2018-02-01 23:04:45.000000000","message":"this is an entirely different code path.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  tags:"},{"line_number":51,"context_line":"    - common-nspawn"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- name: Escape quote container name"},{"line_number":54,"context_line":"  command: \"systemd-escape {{ inventory_hostname }}\""},{"line_number":55,"context_line":"  changed_when: false"},{"line_number":56,"context_line":"  register: systemd_escape"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_9fda8075","line":53,"range":{"start_line":53,"start_character":8,"end_line":53,"end_character":35},"updated":"2018-02-01 17:44:17.000000000","message":"What does that mean?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  tags:"},{"line_number":51,"context_line":"    - common-nspawn"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- name: Escape quote container name"},{"line_number":54,"context_line":"  command: \"systemd-escape {{ inventory_hostname }}\""},{"line_number":55,"context_line":"  changed_when: false"},{"line_number":56,"context_line":"  register: systemd_escape"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_a93061a0","line":53,"range":{"start_line":53,"start_character":8,"end_line":53,"end_character":35},"in_reply_to":"5f93b717_9fda8075","updated":"2018-02-01 23:04:45.000000000","message":"what?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"60680af6983554ecf6d1f2a6041d8dc5522d6dce","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  tags:"},{"line_number":73,"context_line":"    - common-nspawn"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- name: Wait for container connectivity"},{"line_number":76,"context_line":"  wait_for_connection:"},{"line_number":77,"context_line":"    delay: 3"},{"line_number":78,"context_line":"    timeout: 60"}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_2907e684","line":75,"updated":"2018-02-08 09:36:15.000000000","message":"Is there a reason why this is using different parameters to the LXC task that does the same thing?\n\nhttps://github.com/openstack/openstack-ansible/blob/master/playbooks/common-tasks/os-lxc-container-setup.yml#L141-L151","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"6894cd7186b1b3cef14bf8b1a592427cac6fbca4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  tags:"},{"line_number":73,"context_line":"    - common-nspawn"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- name: Wait for container connectivity"},{"line_number":76,"context_line":"  wait_for_connection:"},{"line_number":77,"context_line":"    delay: 3"},{"line_number":78,"context_line":"    timeout: 60"}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_1fd6d150","line":75,"in_reply_to":"3fa0c359_2907e684","updated":"2018-02-08 15:15:52.000000000","message":"I simplified it, however I could port {{ lxc_container_wait_params }} over","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"}],"playbooks/containers-lxc-create.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"60680af6983554ecf6d1f2a6041d8dc5522d6dce","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    - name: Add hosts to dynamic inventory group"},{"line_number":25,"context_line":"      add_host:"},{"line_number":26,"context_line":"        group: \"all_lxc_containers\""},{"line_number":27,"context_line":"        name: \"{{ item }}\""},{"line_number":28,"context_line":"      when:"},{"line_number":29,"context_line":"        - container_tech \u003d\u003d \u0027lxc\u0027"},{"line_number":30,"context_line":"  tags:"}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_09122ab2","line":27,"range":{"start_line":27,"start_character":18,"end_line":27,"end_character":22},"updated":"2018-02-08 09:36:15.000000000","message":"\u0027item\u0027 is not defined - I think you might mean the ansible_hostname or something like that\n\nnot sure if it\u0027s better or worse but we could also have these dynamic groups created in the inventory, like lxc_hosts and nspawn_hosts...","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"6894cd7186b1b3cef14bf8b1a592427cac6fbca4","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    - name: Add hosts to dynamic inventory group"},{"line_number":25,"context_line":"      add_host:"},{"line_number":26,"context_line":"        group: \"all_lxc_containers\""},{"line_number":27,"context_line":"        name: \"{{ item }}\""},{"line_number":28,"context_line":"      when:"},{"line_number":29,"context_line":"        - container_tech \u003d\u003d \u0027lxc\u0027"},{"line_number":30,"context_line":"  tags:"}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_dfcf09ae","line":27,"range":{"start_line":27,"start_character":18,"end_line":27,"end_character":22},"in_reply_to":"3fa0c359_09122ab2","updated":"2018-02-08 15:15:52.000000000","message":"good catch. fixed.","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"}],"playbooks/containers-nspawn-create.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":20,"context_line":"- name: Create container(s)"},{"line_number":21,"context_line":"  hosts: \"{{ container_group|default(\u0027all_containers\u0027) }}\""},{"line_number":22,"context_line":"  gather_facts: false"},{"line_number":23,"context_line":"  max_fail_percentage: 20"},{"line_number":24,"context_line":"  user: root"},{"line_number":25,"context_line":"  handlers:"},{"line_number":26,"context_line":"    - name: Wait for container connectivity"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_bfe5fcdd","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":25},"updated":"2018-02-01 17:44:17.000000000","message":"shouldn\u0027t we remove that max_fail?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"- name: Create container(s)"},{"line_number":21,"context_line":"  hosts: \"{{ container_group|default(\u0027all_containers\u0027) }}\""},{"line_number":22,"context_line":"  gather_facts: false"},{"line_number":23,"context_line":"  max_fail_percentage: 20"},{"line_number":24,"context_line":"  user: root"},{"line_number":25,"context_line":"  handlers:"},{"line_number":26,"context_line":"    - name: Wait for container connectivity"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_c9336daa","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":25},"in_reply_to":"5f93b717_bfe5fcdd","updated":"2018-02-01 23:04:45.000000000","message":"Done","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        - \"/openstack/{{ inventory_hostname }}\""},{"line_number":55,"context_line":"        - \"/openstack/backup/{{ inventory_hostname }}\""},{"line_number":56,"context_line":"        - \"/openstack/log/{{ inventory_hostname }}\""},{"line_number":57,"context_line":"        - /var/lib/machines/{{ inventory_hostname }}/etc/systemd/network"},{"line_number":58,"context_line":"        - /var/lib/machines/{{ inventory_hostname }}/etc/systemd/nspawn"},{"line_number":59,"context_line":"      delegate_to: \"{{ physical_host }}\""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_9fc9205a","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":72},"updated":"2018-02-01 17:44:17.000000000","message":"please wrap with \"","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        - \"/openstack/{{ inventory_hostname }}\""},{"line_number":55,"context_line":"        - \"/openstack/backup/{{ inventory_hostname }}\""},{"line_number":56,"context_line":"        - \"/openstack/log/{{ inventory_hostname }}\""},{"line_number":57,"context_line":"        - /var/lib/machines/{{ inventory_hostname }}/etc/systemd/network"},{"line_number":58,"context_line":"        - /var/lib/machines/{{ inventory_hostname }}/etc/systemd/nspawn"},{"line_number":59,"context_line":"      delegate_to: \"{{ physical_host }}\""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_8929e537","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":72},"in_reply_to":"5f93b717_9fc9205a","updated":"2018-02-01 23:04:45.000000000","message":"Done","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":147,"context_line":"      remote_user: root"},{"line_number":148,"context_line":"      delegate_to: \"{{ physical_host }}\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    - name: Escape quote container name"},{"line_number":151,"context_line":"      command: \"systemd-escape {{ inventory_hostname }}\""},{"line_number":152,"context_line":"      changed_when: false"},{"line_number":153,"context_line":"      register: systemd_escape"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_1f0c30a3","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":39},"updated":"2018-02-01 17:44:17.000000000","message":"Same comment as in previous file.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"      remote_user: root"},{"line_number":148,"context_line":"      delegate_to: \"{{ physical_host }}\""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    - name: Escape quote container name"},{"line_number":151,"context_line":"      command: \"systemd-escape {{ inventory_hostname }}\""},{"line_number":152,"context_line":"      changed_when: false"},{"line_number":153,"context_line":"      register: systemd_escape"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_491f5d07","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":39},"in_reply_to":"5f93b717_1f0c30a3","updated":"2018-02-01 23:04:45.000000000","message":"what?","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        state: started"},{"line_number":161,"context_line":"      delegate_to: \"{{ physical_host }}\""},{"line_number":162,"context_line":"      notify:"},{"line_number":163,"context_line":"        - check connection"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  environment: \"{{ deployment_environment_variables | default({}) }}\""},{"line_number":166,"context_line":"  tags:"}],"source_content_type":"text/x-yaml","patch_set":83,"id":"5f93b717_7ffc546f","line":163,"range":{"start_line":163,"start_character":10,"end_line":163,"end_character":26},"updated":"2018-02-01 17:44:17.000000000","message":"I like this !","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"}],"playbooks/containers-nspawn-host.yml":[{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"ff273bf8a6fe8e5ff49711d5c84afceef2a19b0d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# NOTE(cloudnull): At this time the nspawn implementation piggybacks off of the"},{"line_number":17,"context_line":"#                  lxc_hosts role. In the future this can be largely"},{"line_number":18,"context_line":"#                  simplified/removed."},{"line_number":19,"context_line":"- include: containers-lxc-host.yml"},{"line_number":20,"context_line":"  vars:"},{"line_number":21,"context_line":"    lxc_host_group: \"{{ nspawn_host_group | default(\u0027nspawn_hosts\u0027) }}\""},{"line_number":22,"context_line":"    lxc_cache_distro_packages: \"{{ container_cache_packages }}\""}],"source_content_type":"text/x-yaml","patch_set":71,"id":"df87a7cf_ea64204c","line":19,"range":{"start_line":19,"start_character":25,"end_line":19,"end_character":26},"updated":"2017-12-11 17:27:03.000000000","message":"The re-use here makes sense, but it is a little confusing.","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"ff273bf8a6fe8e5ff49711d5c84afceef2a19b0d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      with_dict: \"{{ container_networks | combine(nspawn_networks) }}\""},{"line_number":66,"context_line":"      notify: Restart networkd"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    - name: Create MACVLAN interface(s)"},{"line_number":69,"context_line":"      copy:"},{"line_number":70,"context_line":"        content: |"},{"line_number":71,"context_line":"          [NetDev]"}],"source_content_type":"text/x-yaml","patch_set":71,"id":"df87a7cf_4ade6cda","line":68,"updated":"2017-12-11 17:27:03.000000000","message":"I wish there was a more efficient way to deploy these, but this should be okay for now.","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"8259340d431e19d647f63aedba8e21339aa3117f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      with_dict: \"{{ container_networks | combine(nspawn_networks) }}\""},{"line_number":66,"context_line":"      notify: Restart networkd"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    - name: Create MACVLAN interface(s)"},{"line_number":69,"context_line":"      copy:"},{"line_number":70,"context_line":"        content: |"},{"line_number":71,"context_line":"          [NetDev]"}],"source_content_type":"text/x-yaml","patch_set":71,"id":"df87a7cf_9aa03d44","line":68,"in_reply_to":"df87a7cf_4ade6cda","updated":"2017-12-11 22:48:31.000000000","message":"I\u0027ll move these into named templates instead of using the copy module with content.","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"}],"playbooks/inventory/env.d/neutron.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      - neutron_l3_agent"},{"line_number":61,"context_line":"      - neutron_lbaas_agent"},{"line_number":62,"context_line":"      - neutron_bgp_dragent"},{"line_number":63,"context_line":"    properties:"},{"line_number":64,"context_line":"      is_metal: true"},{"line_number":65,"context_line":"  neutron_server_container:"},{"line_number":66,"context_line":"    belongs_to:"},{"line_number":67,"context_line":"      - network_containers"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_1e406a35","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":20},"updated":"2017-06-29 10:25:33.000000000","message":"Shouldn\u0027t be in the same commit.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"774757bef0446465b5587d1d6bc78abd6a08edc3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      - neutron_l3_agent"},{"line_number":61,"context_line":"      - neutron_lbaas_agent"},{"line_number":62,"context_line":"      - neutron_bgp_dragent"},{"line_number":63,"context_line":"    properties:"},{"line_number":64,"context_line":"      is_metal: true"},{"line_number":65,"context_line":"  neutron_server_container:"},{"line_number":66,"context_line":"    belongs_to:"},{"line_number":67,"context_line":"      - network_containers"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_33c3868b","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":20},"in_reply_to":"3f1d235d_1e406a35","updated":"2017-07-06 17:14:36.000000000","message":"This is required for nspawn. we can not have neutron agents in containers.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"}],"playbooks/nspawn-containers-create.yml":[{"author":{"_account_id":12892,"name":"Nolan Brubaker","email":"nolan.brubaker@rackspace.com","username":"nrb"},"change_message_id":"0a0c8f1aa0820d655faf1fb91d22746295285015","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Gather nspawn container host facts"},{"line_number":17,"context_line":"  hosts: \"{{ nspawn_host_group | default(\u0027nspawn_hosts\u0027)}}\""},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5f201791_8e7738d5","line":16,"updated":"2017-06-23 20:49:35.000000000","message":"Should this perhaps be a role, to conform with the wider convention?","commit_id":"987963e742e4e35ed192ad4c206d79a0cee9aabc"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"26601a7a69dbc7e8d1bda6273a23e001bd53f1f9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Gather nspawn container host facts"},{"line_number":17,"context_line":"  hosts: \"{{ nspawn_host_group | default(\u0027nspawn_hosts\u0027)}}\""},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5f93b717_ec00b7ad","line":16,"in_reply_to":"5f201791_054f8234","updated":"2018-02-04 09:20:42.000000000","message":"Done","commit_id":"987963e742e4e35ed192ad4c206d79a0cee9aabc"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"4de99d7ece5424cae750b1f652d240aa3885b7a5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Gather nspawn container host facts"},{"line_number":17,"context_line":"  hosts: \"{{ nspawn_host_group | default(\u0027nspawn_hosts\u0027)}}\""},{"line_number":18,"context_line":"  gather_facts: \"{{ gather_facts | default(True) }}\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5f201791_054f8234","line":16,"in_reply_to":"5f201791_8e7738d5","updated":"2017-06-24 06:46:07.000000000","message":"Yes, I think Kevin was just trying something simple in a single repo to get things going and expose the work. Much of this patch would end up in various roles.","commit_id":"987963e742e4e35ed192ad4c206d79a0cee9aabc"}],"playbooks/nspawn-hosts-setup.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"739f8fba5fa0fb27c64d2be9d43f2785b5116fc6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"      with_dict: \"{{ container_networks | combine({\u0027container\u0027: {\u0027bridge\u0027: \u0027br-container\u0027}}) }}\""},{"line_number":122,"context_line":"      register: mv_veth1"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    - name: Plugin bridge veth2 into mv-bridge"},{"line_number":125,"context_line":"      copy:"},{"line_number":126,"context_line":"        content: |"},{"line_number":127,"context_line":"          [Match]"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f201791_45c45a91","line":124,"range":{"start_line":124,"start_character":37,"end_line":124,"end_character":46},"updated":"2017-06-24 06:45:09.000000000","message":"Ah \u0027mv\u0027 \u003d macvlan ?","commit_id":"10730e4c253e6ce6d55917a81b13432b3f6edb54"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  user: root"},{"line_number":21,"context_line":"  pre_tasks:"},{"line_number":22,"context_line":"    - name: Install apt packages"},{"line_number":23,"context_line":"      apt:"},{"line_number":24,"context_line":"        name: \"{{ item }}\""},{"line_number":25,"context_line":"        state: \"{{ nova_package_state }}\""},{"line_number":26,"context_line":"        update_cache: yes"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_3ea9e6de","line":23,"range":{"start_line":23,"start_character":6,"end_line":23,"end_character":9},"updated":"2017-06-29 10:25:33.000000000","message":"package","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"774757bef0446465b5587d1d6bc78abd6a08edc3","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  user: root"},{"line_number":21,"context_line":"  pre_tasks:"},{"line_number":22,"context_line":"    - name: Install apt packages"},{"line_number":23,"context_line":"      apt:"},{"line_number":24,"context_line":"        name: \"{{ item }}\""},{"line_number":25,"context_line":"        state: \"{{ nova_package_state }}\""},{"line_number":26,"context_line":"        update_cache: yes"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_f3b86e11","line":23,"range":{"start_line":23,"start_character":6,"end_line":23,"end_character":9},"in_reply_to":"3f1d235d_3ea9e6de","updated":"2017-07-06 17:14:36.000000000","message":"++ this playbook will be converted to a role which will follow our multi-OS structure.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":66,"context_line":"      when:"},{"line_number":67,"context_line":"        - resolved | changed"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    - name: Create psuedo interface bridge"},{"line_number":70,"context_line":"      copy:"},{"line_number":71,"context_line":"        content: |"},{"line_number":72,"context_line":"          [NetDev]"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_1edcea72","line":69,"range":{"start_line":69,"start_character":19,"end_line":69,"end_character":25},"updated":"2017-06-29 10:25:33.000000000","message":"pseudo","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        - resolved | changed"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    - name: Create psuedo interface bridge"},{"line_number":70,"context_line":"      copy:"},{"line_number":71,"context_line":"        content: |"},{"line_number":72,"context_line":"          [NetDev]"},{"line_number":73,"context_line":"          Name\u003d{{ item.value.bridge }}"},{"line_number":74,"context_line":"          Kind\u003dbridge"},{"line_number":75,"context_line":"        dest: \"/etc/systemd/network/{{ item.value.bridge }}.netdev\""},{"line_number":76,"context_line":"      with_dict: \"{{ container_networks }}\""},{"line_number":77,"context_line":"      register: bridge_netdev"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    - name: Create macvlan bridge"},{"line_number":80,"context_line":"      copy:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_fef5ae84","line":77,"range":{"start_line":70,"start_character":0,"end_line":77,"end_character":29},"updated":"2017-06-29 10:25:33.000000000","message":"This is good, because it decouples the macvlan interfaces from the carrying interface, which we don\u0027t own.\n\nHowever, I think it\u0027s up to the deployer to do this, and we should only care about plugging the macvlan bridges into this.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":76,"context_line":"      with_dict: \"{{ container_networks }}\""},{"line_number":77,"context_line":"      register: bridge_netdev"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    - name: Create macvlan bridge"},{"line_number":80,"context_line":"      copy:"},{"line_number":81,"context_line":"        content: |"},{"line_number":82,"context_line":"          [NetDev]"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_1e6cea34","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":33},"updated":"2017-06-29 10:25:33.000000000","message":"\"Create macvlan bridge device\"","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      with_dict: \"{{ container_networks | combine({\u0027container\u0027: {\u0027bridge\u0027: \u0027br-container\u0027}}) }}\""},{"line_number":90,"context_line":"      register: mv_bridge_netdev"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    - name: Create macvlan bridge"},{"line_number":93,"context_line":"      copy:"},{"line_number":94,"context_line":"        content: |"},{"line_number":95,"context_line":"          [Match]"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_fe512e64","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":33},"updated":"2017-06-29 10:25:33.000000000","message":"\"Create networks for each macvlan bridge\"","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":101,"context_line":"      with_dict: \"{{ container_networks | combine({\u0027container\u0027: {\u0027bridge\u0027: \u0027br-container\u0027}}) }}\""},{"line_number":102,"context_line":"      register: mv_bridge_network"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    - name: Create macvlan bridge veths"},{"line_number":105,"context_line":"      copy:"},{"line_number":106,"context_line":"        content: |"},{"line_number":107,"context_line":"          [NetDev]"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_7199cf1d","line":104,"range":{"start_line":104,"start_character":12,"end_line":104,"end_character":39},"updated":"2017-06-29 10:25:33.000000000","message":"\"Create veth pairs (cable) to plug macvlan bridge into carrying interface bridge\"","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":144,"context_line":"          [Link]"},{"line_number":145,"context_line":"          MACAddressPolicy\u003dpersistent"},{"line_number":146,"context_line":"        dest: \"/etc/systemd/network/99-default.link\""},{"line_number":147,"context_line":"      register: network_link"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    - name: Drop dummy interface netdev"},{"line_number":150,"context_line":"      copy:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_d1aae317","line":147,"updated":"2017-06-29 10:25:33.000000000","message":"What should we do with the lxc hwaddr facts behavior if nspawn is used?  Maybe we should drop facts too? Probably not, but worth opening a discussion to ensure all the job is done there.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        dest: \"/etc/systemd/network/99-default.link\""},{"line_number":147,"context_line":"      register: network_link"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    - name: Drop dummy interface netdev"},{"line_number":150,"context_line":"      copy:"},{"line_number":151,"context_line":"        content: |"},{"line_number":152,"context_line":"          [NetDev]"},{"line_number":153,"context_line":"          Name\u003ddummy0"},{"line_number":154,"context_line":"          Kind\u003ddummy"},{"line_number":155,"context_line":"        dest: \"/etc/systemd/network/00-dummy0.netdev\""},{"line_number":156,"context_line":"      register: dummy_netdev"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    - name: Drop dummy interface network"},{"line_number":159,"context_line":"      copy:"},{"line_number":160,"context_line":"        content: |"},{"line_number":161,"context_line":"          [Match]"},{"line_number":162,"context_line":"          Name\u003ddummy0"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"          [Network]"},{"line_number":165,"context_line":"          Bridge\u003dbr-container"},{"line_number":166,"context_line":"        dest: \"/etc/systemd/network/00-dummy0.network\""},{"line_number":167,"context_line":"      register: dummy_network"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    - name: Drop br-container interface netdev"},{"line_number":170,"context_line":"      copy:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_d12d43a9","line":167,"range":{"start_line":149,"start_character":0,"end_line":167,"end_character":29},"updated":"2017-06-29 10:25:33.000000000","message":"Why?\n\nFor the br-container should be able to speak to an external bridge or external hosts, and not be plugged to a dummy interface (For readers, dummy interfaces DROP traffic).\n\nI think this is like the other above: we should let the deployers do it.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        dest: \"/etc/systemd/network/00-dummy0.network\""},{"line_number":167,"context_line":"      register: dummy_network"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    - name: Drop br-container interface netdev"},{"line_number":170,"context_line":"      copy:"},{"line_number":171,"context_line":"        content: |"},{"line_number":172,"context_line":"          [NetDev]"},{"line_number":173,"context_line":"          Name\u003dbr-container"},{"line_number":174,"context_line":"          Kind\u003dbridge"},{"line_number":175,"context_line":"        dest: \"/etc/systemd/network/br-container.netdev\""},{"line_number":176,"context_line":"      register: interface_netdev"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    - name: Drop br-container interface network"},{"line_number":179,"context_line":"      copy:"},{"line_number":180,"context_line":"        content: |"},{"line_number":181,"context_line":"          [Match]"},{"line_number":182,"context_line":"          Name\u003dbr-container"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"          [Network]"},{"line_number":185,"context_line":"          Address\u003d10.0.3.2/24"},{"line_number":186,"context_line":"          Gateway\u003d10.0.3.1"},{"line_number":187,"context_line":"          IPForward\u003dyes"},{"line_number":188,"context_line":"          IPMasquerade\u003dyes"},{"line_number":189,"context_line":"          DHCPServer\u003dyes"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"          [DHCPServer]"},{"line_number":192,"context_line":"          PoolOffset\u003d25"},{"line_number":193,"context_line":"          PoolSize\u003d100"},{"line_number":194,"context_line":"          DefaultLeaseTimeSec\u003d3h"},{"line_number":195,"context_line":"          EmitTimezone\u003dyes"},{"line_number":196,"context_line":"          EmitNTP\u003dyes"},{"line_number":197,"context_line":"          EmitDNS\u003dyes"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        dest: \"/etc/systemd/network/br-container.network\""},{"line_number":200,"context_line":"      register: interface_network"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    - name: restart networkd"},{"line_number":203,"context_line":"      systemd:"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_f1095f31","line":200,"range":{"start_line":169,"start_character":0,"end_line":200,"end_character":33},"updated":"2017-06-29 10:25:33.000000000","message":"Can\u0027t this be done like the other ones above?","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"}],"playbooks/templates/container_config.nspawn.j2":[{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"ff273bf8a6fe8e5ff49711d5c84afceef2a19b0d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Exec]"},{"line_number":2,"context_line":"Boot\u003don"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[Files]"}],"source_content_type":"text/x-jinja2","patch_set":71,"id":"df87a7cf_0a9b8417","line":1,"updated":"2017-12-11 17:27:03.000000000","message":"An {{ ansible_managed }} would be nice here.","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"8259340d431e19d647f63aedba8e21339aa3117f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Exec]"},{"line_number":2,"context_line":"Boot\u003don"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[Files]"}],"source_content_type":"text/x-jinja2","patch_set":71,"id":"df87a7cf_5a015537","line":1,"in_reply_to":"df87a7cf_0a9b8417","updated":"2017-12-11 22:48:31.000000000","message":"Done","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":83,"id":"5f93b717_ff64e44b","updated":"2018-02-01 17:44:17.000000000","message":"this should probably be packaged in templates of some role.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":83,"id":"5f93b717_a9d5c11d","in_reply_to":"5f93b717_ff64e44b","updated":"2018-02-01 23:04:45.000000000","message":"I can move this all into a role again.","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"}],"playbooks/templates/container_mv.network.j2":[{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"ff273bf8a6fe8e5ff49711d5c84afceef2a19b0d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Match]"},{"line_number":2,"context_line":"{% if item.value.bridge is defined %}"},{"line_number":3,"context_line":"Name\u003dmv-mv-{{ item.value.bridge.split(\u0027br-\u0027)[-1] }}"},{"line_number":4,"context_line":"{% else %}"}],"source_content_type":"text/x-jinja2","patch_set":71,"id":"df87a7cf_caa03c45","line":1,"updated":"2017-12-11 17:27:03.000000000","message":"An {{ ansible_managed }} would be nice here.","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"8259340d431e19d647f63aedba8e21339aa3117f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Match]"},{"line_number":2,"context_line":"{% if item.value.bridge is defined %}"},{"line_number":3,"context_line":"Name\u003dmv-mv-{{ item.value.bridge.split(\u0027br-\u0027)[-1] }}"},{"line_number":4,"context_line":"{% else %}"}],"source_content_type":"text/x-jinja2","patch_set":71,"id":"df87a7cf_1af74d5b","line":1,"in_reply_to":"df87a7cf_caa03c45","updated":"2017-12-11 22:48:31.000000000","message":"Done","commit_id":"dd6e6e23bb683666ed3f57c93ccb6a981ea7bfbf"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"e3fb5617f37f626706d50c136882d41ece2bce06","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# {{ ansible_managed }}"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Match]"},{"line_number":4,"context_line":"{% if item.value.bridge is defined %}"}],"source_content_type":"text/x-jinja2","patch_set":83,"id":"5f93b717_1f68b01a","line":1,"updated":"2018-02-01 17:44:17.000000000","message":"Same comment","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"df7e596d06ff5a80af4f48307c72994b13adb2dc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# {{ ansible_managed }}"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Match]"},{"line_number":4,"context_line":"{% if item.value.bridge is defined %}"}],"source_content_type":"text/x-jinja2","patch_set":83,"id":"5f93b717_69db394e","line":1,"in_reply_to":"5f93b717_1f68b01a","updated":"2018-02-01 23:04:45.000000000","message":"Done","commit_id":"91903aaaf631c7266566aada668cf2cddf04488e"}],"scripts/gate-check-commit.sh":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"4a6f15ccd1c0f1cae5f710d31d5f5e90be339763","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    # Prepare the hosts"},{"line_number":164,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-hosts.log\""},{"line_number":165,"context_line":"    openstack-ansible setup-hosts.yml -e osa_gather_facts\u003dFalse"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":168,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_a1a47fba","side":"PARENT","line":165,"range":{"start_line":165,"start_character":37,"end_line":165,"end_character":63},"updated":"2018-02-07 19:00:02.000000000","message":"Why is this being removed? The fact gathering just beforehand, and the application of this override, made a significant gate speed improvement when it was implemented.\n\nRemoving this will make each play gather facts again, which slows things down somewhat and is unnecessary on an AIO.","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7eef7f422f12f443b020f15a602f7b9afe83d826","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    # Prepare the hosts"},{"line_number":164,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-hosts.log\""},{"line_number":165,"context_line":"    openstack-ansible setup-hosts.yml -e osa_gather_facts\u003dFalse"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":168,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_fc3b0cce","side":"PARENT","line":165,"range":{"start_line":165,"start_character":37,"end_line":165,"end_character":63},"in_reply_to":"3fa0c359_a1a47fba","updated":"2018-02-07 19:14:34.000000000","message":"Done","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"4a6f15ccd1c0f1cae5f710d31d5f5e90be339763","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    # Prepare the infrastructure"},{"line_number":176,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-infrastructure.log\""},{"line_number":177,"context_line":"    openstack-ansible setup-infrastructure.yml -e osa_gather_facts\u003dFalse"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":180,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_a18d5f32","side":"PARENT","line":177,"updated":"2018-02-07 19:00:02.000000000","message":"As above.","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7eef7f422f12f443b020f15a602f7b9afe83d826","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    # Prepare the infrastructure"},{"line_number":176,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-infrastructure.log\""},{"line_number":177,"context_line":"    openstack-ansible setup-infrastructure.yml -e osa_gather_facts\u003dFalse"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":180,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_bc3584dc","side":"PARENT","line":177,"in_reply_to":"3fa0c359_a18d5f32","updated":"2018-02-07 19:14:34.000000000","message":"Done","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"4a6f15ccd1c0f1cae5f710d31d5f5e90be339763","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    # Setup OpenStack"},{"line_number":183,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-openstack.log\""},{"line_number":184,"context_line":"    openstack-ansible setup-openstack.yml -e osa_gather_facts\u003dFalse"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":187,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_61875711","side":"PARENT","line":184,"updated":"2018-02-07 19:00:02.000000000","message":"As above.","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7eef7f422f12f443b020f15a602f7b9afe83d826","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    # Setup OpenStack"},{"line_number":183,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-openstack.log\""},{"line_number":184,"context_line":"    openstack-ansible setup-openstack.yml -e osa_gather_facts\u003dFalse"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    # Log some data about the instance and the rest of the system"},{"line_number":187,"context_line":"    log_instance_info"}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_9c50c80c","side":"PARENT","line":184,"in_reply_to":"3fa0c359_61875711","updated":"2018-02-07 19:14:34.000000000","message":"Done","commit_id":"1c7829b20037d22090b81d402ef803c8ce85b0c9"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"4a6f15ccd1c0f1cae5f710d31d5f5e90be339763","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    # Once setup-hosts is complete, we should gather facts for everything"},{"line_number":171,"context_line":"    # (now including containers) so that the fact cache is complete for the"},{"line_number":172,"context_line":"    # remainder of the run."},{"line_number":173,"context_line":"    ansible -m setup -a \u0027gather_subset\u003dnetwork,hardware,virtual\u0027 all 1\u003e${ANSIBLE_LOG_DIR}/facts-all.log || true"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    # Prepare the infrastructure"},{"line_number":176,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-infrastructure.log\""}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_818aa318","line":173,"updated":"2018-02-07 19:00:02.000000000","message":"Why would this fail once setup-hosts has run? Are the containers not running yet?","commit_id":"701bdaf6ae949a893039f59d15a5b3ab39917fc8"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"7eef7f422f12f443b020f15a602f7b9afe83d826","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    # Once setup-hosts is complete, we should gather facts for everything"},{"line_number":171,"context_line":"    # (now including containers) so that the fact cache is complete for the"},{"line_number":172,"context_line":"    # remainder of the run."},{"line_number":173,"context_line":"    ansible -m setup -a \u0027gather_subset\u003dnetwork,hardware,virtual\u0027 all 1\u003e${ANSIBLE_LOG_DIR}/facts-all.log || true"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    # Prepare the infrastructure"},{"line_number":176,"context_line":"    export ANSIBLE_LOG_PATH\u003d\"${ANSIBLE_LOG_DIR}/setup-infrastructure.log\""}],"source_content_type":"text/x-sh","patch_set":97,"id":"3fa0c359_5c2560aa","line":173,"in_reply_to":"3fa0c359_818aa318","updated":"2018-02-07 19:14:34.000000000","message":"Done","commit_id":"701bdaf6ae949a893039f59d15a5b3ab39917fc8"}],"tests/roles/bootstrap-host/defaults/main.yml":[{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":88,"context_line":"bootstrap_host_bridge_mgmt_ports: none"},{"line_number":89,"context_line":"bootstrap_host_bridge_vxlan_ports: none"},{"line_number":90,"context_line":"bootstrap_host_bridge_storage_ports: none"},{"line_number":91,"context_line":"bootstrap_host_bridge_flat_ports: \"br-vlan-veth\""},{"line_number":92,"context_line":"# This enables the VXLAN encapsulation the traditional bridges"},{"line_number":93,"context_line":"# (br-mgmt, br-vxlan, br-storage)"},{"line_number":94,"context_line":"bootstrap_host_encapsulation_enabled: \"{{ not bootstrap_host_aio_config | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_f4370de3","line":91,"range":{"start_line":91,"start_character":38,"end_line":91,"end_character":42},"updated":"2017-06-29 10:25:33.000000000","message":"br-vlan?\n\n\nShouldn\u0027t we define both:\nbootstrap_host_bridge_flat_ports and bootstrap_host_bridge_vlan_ports ? Looks simpler and easier to understand.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"774757bef0446465b5587d1d6bc78abd6a08edc3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"bootstrap_host_bridge_mgmt_ports: none"},{"line_number":89,"context_line":"bootstrap_host_bridge_vxlan_ports: none"},{"line_number":90,"context_line":"bootstrap_host_bridge_storage_ports: none"},{"line_number":91,"context_line":"bootstrap_host_bridge_flat_ports: \"br-vlan-veth\""},{"line_number":92,"context_line":"# This enables the VXLAN encapsulation the traditional bridges"},{"line_number":93,"context_line":"# (br-mgmt, br-vxlan, br-storage)"},{"line_number":94,"context_line":"bootstrap_host_encapsulation_enabled: \"{{ not bootstrap_host_aio_config | bool }}\""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_136c0a9a","line":91,"range":{"start_line":91,"start_character":38,"end_line":91,"end_character":42},"in_reply_to":"3f1d235d_f4370de3","updated":"2017-07-06 17:14:36.000000000","message":"this removes the br-vlan-veth, so this is a typo.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"eab6be4a9ccbf71ee7baf3017e6a8de50c8772be","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    netmask: \"255.255.252.0\""},{"line_number":142,"context_line":"  - name: \"br-flat\""},{"line_number":143,"context_line":"    ip_addr: \"172.29.252.100\""},{"line_number":144,"context_line":"    alias: \"172.29.248.1\""},{"line_number":145,"context_line":"    veth_peer: \"eth12\""},{"line_number":146,"context_line":"    netmask: \"255.255.252.0\""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_3426a5b9","line":144,"range":{"start_line":144,"start_character":19,"end_line":144,"end_character":22},"updated":"2017-06-29 10:25:33.000000000","message":"that sounds weird to me","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"774757bef0446465b5587d1d6bc78abd6a08edc3","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    netmask: \"255.255.252.0\""},{"line_number":142,"context_line":"  - name: \"br-flat\""},{"line_number":143,"context_line":"    ip_addr: \"172.29.252.100\""},{"line_number":144,"context_line":"    alias: \"172.29.248.1\""},{"line_number":145,"context_line":"    veth_peer: \"eth12\""},{"line_number":146,"context_line":"    netmask: \"255.255.252.0\""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3f1d235d_1353eae3","line":144,"range":{"start_line":144,"start_character":19,"end_line":144,"end_character":22},"in_reply_to":"3f1d235d_3426a5b9","updated":"2017-07-06 17:14:36.000000000","message":"good catch this should be 252.","commit_id":"c395f1860183830a5c6a4f7ff25e640539c22632"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"60680af6983554ecf6d1f2a6041d8dc5522d6dce","unresolved":false,"context_lines":[{"line_number":238,"context_line":"#bootstrap_host_public_address: 0.0.0.0"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"# Set the container technology in service. Options are nspawn and lxc."},{"line_number":241,"context_line":"container_tech: \"{{ (\u0027nspawn\u0027 in bootstrap_host_scenario) | ternary(\u0027nspawn\u0027, \u0027lxc\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_89c15a31","line":241,"updated":"2018-02-08 09:36:15.000000000","message":"This should be able to be removed now, given that the setting is in the inventory?","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"6894cd7186b1b3cef14bf8b1a592427cac6fbca4","unresolved":false,"context_lines":[{"line_number":238,"context_line":"#bootstrap_host_public_address: 0.0.0.0"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"# Set the container technology in service. Options are nspawn and lxc."},{"line_number":241,"context_line":"container_tech: \"{{ (\u0027nspawn\u0027 in bootstrap_host_scenario) | ternary(\u0027nspawn\u0027, \u0027lxc\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":100,"id":"3fa0c359_9fc18183","line":241,"in_reply_to":"3fa0c359_89c15a31","updated":"2018-02-08 15:15:52.000000000","message":"This is being rendered in the openstack_user_config.yml","commit_id":"95cf6b8140173931562c78e39a595ff815ef1699"}],"zuul.d/project.yaml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"ce1aebaecee3492cd23d21afa6d33c6d00fb1352","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      jobs:"},{"line_number":29,"context_line":"        - openstack-ansible-deploy-octavia-ubuntu-xenial"},{"line_number":30,"context_line":"        - openstack-ansible-deploy_with_ansible_devel-aio-ubuntu-xenial"},{"line_number":31,"context_line":"        - openstack-ansible-deploy-aio_nspawn-ubuntu-xenial"},{"line_number":32,"context_line":"        - openstack-ansible-deploy-aio_nspawn-centos-7"},{"line_number":33,"context_line":"    gate:"},{"line_number":34,"context_line":"      jobs:"}],"source_content_type":"text/x-yaml","patch_set":106,"id":"3fa0c359_17af677d","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":59},"updated":"2018-02-10 11:21:57.000000000","message":"As this is passing, shall we add this as a non-voting check now?","commit_id":"cfc3aa4dc1bf0c2e4c7174cc38d5bf06afb8f17a"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"5dd78f63c4d418151f32781153d372e478136f88","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      jobs:"},{"line_number":29,"context_line":"        - openstack-ansible-deploy-octavia-ubuntu-xenial"},{"line_number":30,"context_line":"        - openstack-ansible-deploy_with_ansible_devel-aio-ubuntu-xenial"},{"line_number":31,"context_line":"        - openstack-ansible-deploy-aio_nspawn-ubuntu-xenial"},{"line_number":32,"context_line":"        - openstack-ansible-deploy-aio_nspawn-centos-7"},{"line_number":33,"context_line":"    gate:"},{"line_number":34,"context_line":"      jobs:"}],"source_content_type":"text/x-yaml","patch_set":106,"id":"3fa0c359_cd74126b","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":59},"in_reply_to":"3fa0c359_17af677d","updated":"2018-02-10 20:56:35.000000000","message":"Done","commit_id":"cfc3aa4dc1bf0c2e4c7174cc38d5bf06afb8f17a"}]}
