)]}'
{"manifests/neutron.pp":[{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"a6afcc7ec804f660b7ab4d8cd5d6cfa908a399fb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      vs_bridge { \u0027br-ex\u0027:"},{"line_number":41,"context_line":"        ensure \u003d\u003e present,"},{"line_number":42,"context_line":"        notify \u003d\u003e Exec[\u0027create_loop1_port\u0027],"},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":"      exec { \u0027create_loop1_port\u0027:"},{"line_number":45,"context_line":"        path        \u003d\u003e \u0027/usr/bin:/bin:/usr/sbin:/sbin\u0027,"},{"line_number":46,"context_line":"        provider    \u003d\u003e shell,"}],"source_content_type":"text/x-puppet","patch_set":16,"id":"ba0121b8_ce2263b9","line":43,"updated":"2016-03-29 09:52:05.000000000","message":"As br-ex is specified in bridge_mappings, isn\u0027t it better to create it always before the class ml2::ovs?","commit_id":"577af3613f8d8e5980c870deba11baee65f2b144"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cc3305a1c92277777b81f89987c60bcebdb54b21","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      vs_bridge { \u0027br-ex\u0027:"},{"line_number":41,"context_line":"        ensure \u003d\u003e present,"},{"line_number":42,"context_line":"        notify \u003d\u003e Exec[\u0027create_loop1_port\u0027],"},{"line_number":43,"context_line":"      }"},{"line_number":44,"context_line":"      exec { \u0027create_loop1_port\u0027:"},{"line_number":45,"context_line":"        path        \u003d\u003e \u0027/usr/bin:/bin:/usr/sbin:/sbin\u0027,"},{"line_number":46,"context_line":"        provider    \u003d\u003e shell,"}],"source_content_type":"text/x-puppet","patch_set":16,"id":"ba0121b8_e003eb0d","line":43,"in_reply_to":"ba0121b8_ce2263b9","updated":"2016-03-29 12:45:43.000000000","message":"Done","commit_id":"577af3613f8d8e5980c870deba11baee65f2b144"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"a6afcc7ec804f660b7ab4d8cd5d6cfa908a399fb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        provider \u003d\u003e shell,"},{"line_number":73,"context_line":"        unless   \u003d\u003e \u0027ip l show loop0\u0027,"},{"line_number":74,"context_line":"        command  \u003d\u003e \u0027ip link add name loop0 type dummy \u0026\u0026 ip addr add 172.24.5.1/24 dev loop0 \u0026\u0026 ip link set loop0 up\u0027,"},{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      $external_network_bridge \u003d \u0027\u0027"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    default: {"}],"source_content_type":"text/x-puppet","patch_set":16,"id":"ba0121b8_49048d14","line":75,"updated":"2016-03-29 09:52:05.000000000","message":"The same question here - we have loop0 specified in physical_interface_mappings","commit_id":"577af3613f8d8e5980c870deba11baee65f2b144"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cc3305a1c92277777b81f89987c60bcebdb54b21","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        provider \u003d\u003e shell,"},{"line_number":73,"context_line":"        unless   \u003d\u003e \u0027ip l show loop0\u0027,"},{"line_number":74,"context_line":"        command  \u003d\u003e \u0027ip link add name loop0 type dummy \u0026\u0026 ip addr add 172.24.5.1/24 dev loop0 \u0026\u0026 ip link set loop0 up\u0027,"},{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      $external_network_bridge \u003d \u0027\u0027"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    default: {"}],"source_content_type":"text/x-puppet","patch_set":16,"id":"ba0121b8_a009f333","line":75,"in_reply_to":"ba0121b8_49048d14","updated":"2016-03-29 12:45:43.000000000","message":"Done","commit_id":"577af3613f8d8e5980c870deba11baee65f2b144"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"2f8a37151336f3fe8b34874064610334fa0745e8","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      vs_bridge { \u0027br-ex\u0027:"},{"line_number":34,"context_line":"        ensure \u003d\u003e present,"},{"line_number":35,"context_line":"        notify \u003d\u003e Exec[\u0027create_loop1_port\u0027],"},{"line_number":36,"context_line":"      }"},{"line_number":37,"context_line":"      exec { \u0027create_loop1_port\u0027:"},{"line_number":38,"context_line":"        path        \u003d\u003e \u0027/usr/bin:/bin:/usr/sbin:/sbin\u0027,"},{"line_number":39,"context_line":"        provider    \u003d\u003e shell,"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ba0121b8_fb770038","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":7},"updated":"2016-03-29 21:06:20.000000000","message":"Can you please explain moving the block? It looks like it\u0027s not enough and we need explicit dependency like \n\nVs_bridge[\u0027br-ex\u0027] -\u003e Class[\u0027::neutron::agents::ml2::ovs\u0027]","commit_id":"55db07189fa845aed104e8dfd994c090f5435c40"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"3882bc0f32115554642173e727b12ef94d9ff4fb","unresolved":false,"context_lines":[{"line_number":33,"context_line":"      vs_bridge { \u0027br-ex\u0027:"},{"line_number":34,"context_line":"        ensure \u003d\u003e present,"},{"line_number":35,"context_line":"        notify \u003d\u003e Exec[\u0027create_loop1_port\u0027],"},{"line_number":36,"context_line":"      }"},{"line_number":37,"context_line":"      exec { \u0027create_loop1_port\u0027:"},{"line_number":38,"context_line":"        path        \u003d\u003e \u0027/usr/bin:/bin:/usr/sbin:/sbin\u0027,"},{"line_number":39,"context_line":"        provider    \u003d\u003e shell,"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ba0121b8_b12647cc","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":7},"in_reply_to":"ba0121b8_fb770038","updated":"2016-03-29 22:14:17.000000000","message":"same reply as below","commit_id":"55db07189fa845aed104e8dfd994c090f5435c40"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"2f8a37151336f3fe8b34874064610334fa0745e8","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        local_ip                    \u003d\u003e $::ipaddress,"},{"line_number":73,"context_line":"        tunnel_types                \u003d\u003e [\u0027vxlan\u0027],"},{"line_number":74,"context_line":"        physical_interface_mappings \u003d\u003e [\u0027external:loop0\u0027],"},{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      $external_network_bridge \u003d \u0027\u0027"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    default: {"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ba0121b8_dbc4bc60","line":75,"updated":"2016-03-29 21:06:20.000000000","message":"Can you please add explicit dependency? Looks like moving this block is not enough at least for Puppet 3. E.x.:\n\nExec[\u0027create_dummy_iface\u0027] -\u003e Class[\u0027::neutron::agents::ml2::linuxbridge\u0027]","commit_id":"55db07189fa845aed104e8dfd994c090f5435c40"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"533970c84c1e7eaba8a908e72e715ac466e8bb0f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        local_ip                    \u003d\u003e $::ipaddress,"},{"line_number":73,"context_line":"        tunnel_types                \u003d\u003e [\u0027vxlan\u0027],"},{"line_number":74,"context_line":"        physical_interface_mappings \u003d\u003e [\u0027external:loop0\u0027],"},{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      $external_network_bridge \u003d \u0027\u0027"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    default: {"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ba0121b8_6c6fb8c5","line":75,"in_reply_to":"ba0121b8_713cafe2","updated":"2016-03-29 22:19:52.000000000","message":"Got it, thanks","commit_id":"55db07189fa845aed104e8dfd994c090f5435c40"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"3882bc0f32115554642173e727b12ef94d9ff4fb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        local_ip                    \u003d\u003e $::ipaddress,"},{"line_number":73,"context_line":"        tunnel_types                \u003d\u003e [\u0027vxlan\u0027],"},{"line_number":74,"context_line":"        physical_interface_mappings \u003d\u003e [\u0027external:loop0\u0027],"},{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      $external_network_bridge \u003d \u0027\u0027"},{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    default: {"}],"source_content_type":"text/x-puppet","patch_set":17,"id":"ba0121b8_713cafe2","line":75,"in_reply_to":"ba0121b8_dbc4bc60","updated":"2016-03-29 22:14:17.000000000","message":"we don\u0027t need it for bootstrap, because the bridge will be useful once we create a virtual router and attach networks (done during Tempest tests); not before. So no need to set orchestration here, tests are green.","commit_id":"55db07189fa845aed104e8dfd994c090f5435c40"}],"manifests/provision.pp":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a43ee20165c1ee870b505dc23abf89190de5a1ae","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  neutron_network { \u0027public\u0027:"},{"line_number":26,"context_line":"    tenant_name               \u003d\u003e \u0027openstack\u0027,"},{"line_number":27,"context_line":"    router_external           \u003d\u003e true,"},{"line_number":28,"context_line":"    provider_physical_network \u003d\u003e \u0027external\u0027,"},{"line_number":29,"context_line":"    provider_network_type     \u003d\u003e \u0027flat\u0027,"},{"line_number":30,"context_line":"  }"},{"line_number":31,"context_line":"  Keystone_user_role[\u0027admin@openstack\u0027] -\u003e Neutron_network\u003c||\u003e"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"ba0121b8_35cee75a","line":28,"updated":"2016-03-28 18:43:17.000000000","message":"wait, why are we testing provider networks now?","commit_id":"1551d287c704fbd9c3c33ccc8a7cc7779e58422d"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"d2107c3ad8b4809d13d77459ae018bce08897dcc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  neutron_network { \u0027public\u0027:"},{"line_number":26,"context_line":"    tenant_name               \u003d\u003e \u0027openstack\u0027,"},{"line_number":27,"context_line":"    router_external           \u003d\u003e true,"},{"line_number":28,"context_line":"    provider_physical_network \u003d\u003e \u0027external\u0027,"},{"line_number":29,"context_line":"    provider_network_type     \u003d\u003e \u0027flat\u0027,"},{"line_number":30,"context_line":"  }"},{"line_number":31,"context_line":"  Keystone_user_role[\u0027admin@openstack\u0027] -\u003e Neutron_network\u003c||\u003e"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"ba0121b8_099e2e56","line":28,"in_reply_to":"ba0121b8_09e2ae03","updated":"2016-03-28 20:22:13.000000000","message":"This is current devstack implementation https://github.com/openstack-dev/devstack/blob/master/lib/neutron-legacy#L1372 and it looks like they assign an IP address manually","commit_id":"1551d287c704fbd9c3c33ccc8a7cc7779e58422d"},{"author":{"_account_id":7604,"name":"Sergey Kolekonov","email":"skolekonov@mirantis.com","username":"skolekonov"},"change_message_id":"13c386c81489197521b5598c00174369b67e949c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  neutron_network { \u0027public\u0027:"},{"line_number":26,"context_line":"    tenant_name               \u003d\u003e \u0027openstack\u0027,"},{"line_number":27,"context_line":"    router_external           \u003d\u003e true,"},{"line_number":28,"context_line":"    provider_physical_network \u003d\u003e \u0027external\u0027,"},{"line_number":29,"context_line":"    provider_network_type     \u003d\u003e \u0027flat\u0027,"},{"line_number":30,"context_line":"  }"},{"line_number":31,"context_line":"  Keystone_user_role[\u0027admin@openstack\u0027] -\u003e Neutron_network\u003c||\u003e"}],"source_content_type":"text/x-puppet","patch_set":15,"id":"ba0121b8_09e2ae03","line":28,"in_reply_to":"ba0121b8_35cee75a","updated":"2016-03-28 20:18:46.000000000","message":"This is a long story. Per my investigations, the only way to make floating IPs reachable from the host with linuxbridge and use regular (vxlan) network as external is to determine public network\u0027s ID and manually assign an IP address to the appropriate brqxxxxx bridge. Flat networks allows to use a virtual iface and avoid such complications. This also seems to improve our tests coverage because we already test tenant vxlan networks when we create internal networks. Please correct me if I\u0027m missing another way to implement this.","commit_id":"1551d287c704fbd9c3c33ccc8a7cc7779e58422d"}]}
