)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"382cb1ec7453073c2b8b4a7ec651565206186e53","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make the Neutron l3 plugin use the subnetpools"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The plugin creates subnetpools but does not use them when creating the"},{"line_number":10,"context_line":"default subnets. It uses CIDR values that overlap with the"},{"line_number":11,"context_line":"default pools. Change this to use the subnetpools."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6171c13507e420f146801d323cb1011be36c1e8c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3ac371cc_1fecfff1","line":10,"updated":"2016-08-17 21:46:40.000000000","message":"Why? We don\u0027t have to. I\u0027d love you to expand on the use case.","commit_id":"9083aeb475795862b6ca220cb53e2aded82f013d"}],"lib/neutron_plugins/services/l3":[{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"59cf6dcb23ee0d8c66f4ae39605841fd4105aa34","unresolved":false,"context_lines":[{"line_number":278,"context_line":"}"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"# Create public IPv4 subnet"},{"line_number":281,"context_line":"function _neutron_create_public_subnet_v4 {"},{"line_number":282,"context_line":"    local subnet_params+\u003d\"--ip_version 4 \""},{"line_number":283,"context_line":"    subnet_params+\u003d\"${Q_FLOATING_ALLOCATION_POOL:+--allocation-pool $Q_FLOATING_ALLOCATION_POOL} \""},{"line_number":284,"context_line":"    subnet_params+\u003d\"--gateway $PUBLIC_NETWORK_GATEWAY \""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"3ac371cc_4989f025","line":281,"updated":"2016-08-16 19:54:42.000000000","message":"It would be a nice touch to be able to allocate the public subnet from a subnet pool as well. This would make it easier for people to work with features like address scopes and BGP.","commit_id":"aafcd39650ecf26046d018712d3ba14fd66f79bb"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"d18f6143e4f942b497644f7e79b19ba1af199be8","unresolved":false,"context_lines":[{"line_number":338,"context_line":"            fi"},{"line_number":339,"context_line":"            ROUTER_GW_IP\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F\u0027ip_address\u0027  \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027)"},{"line_number":340,"context_line":"            die_if_not_set $LINENO ROUTER_GW_IP \"Failure retrieving ROUTER_GW_IP\""},{"line_number":341,"context_line":"            sudo ip route replace ${SUBNETPOOL_PREFIX_V4:-$FIXED_RANGE} via $ROUTER_GW_IP"},{"line_number":342,"context_line":"        fi"},{"line_number":343,"context_line":"        _neutron_set_router_id"},{"line_number":344,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3ac371cc_5f2cb798","line":341,"range":{"start_line":341,"start_character":34,"end_line":341,"end_character":71},"updated":"2016-08-17 21:41:18.000000000","message":"Since the prefix is always defined, the fixed range will never be used.  I think we\u0027d need to wrap an \u0027if\u0027 around this.","commit_id":"604f1a3b2bb791731a6b900660d3b6558dbe5db6"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"d18f6143e4f942b497644f7e79b19ba1af199be8","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":"            # Configure interface for public bridge"},{"line_number":379,"context_line":"            sudo ip -6 addr replace $ipv6_ext_gw_ip/$ipv6_cidr_len dev $ext_gw_interface"},{"line_number":380,"context_line":"            sudo ip -6 route replace ${SUBNETPOOL_PREFIX_V6:-$FIXED_RANGE_V6} via $IPV6_ROUTER_GW_IP dev $ext_gw_interface"},{"line_number":381,"context_line":"        fi"},{"line_number":382,"context_line":"        _neutron_set_router_id"},{"line_number":383,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3ac371cc_9f22afa1","line":380,"range":{"start_line":380,"start_character":37,"end_line":380,"end_character":59},"updated":"2016-08-17 21:41:18.000000000","message":"ditto","commit_id":"604f1a3b2bb791731a6b900660d3b6558dbe5db6"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"cb27036f725a392042b355fb8829211528c484e7","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        neutron_plugin_create_initial_network_profile $PHYSICAL_NETWORK"},{"line_number":150,"context_line":"    fi"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    if is_networking_extension_supported \"auto-allocated-topology\" \u0026\u0026 is_networking_extension_supported \"subnet_allocation\"; then"},{"line_number":153,"context_line":"        if [[ \"$IP_VERSION\" \u003d~ 4.* ]]; then"},{"line_number":154,"context_line":"            SUBNETPOOL_V4_ID\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" subnetpool-create $SUBNETPOOL_NAME --default-prefixlen $SUBNETPOOL_SIZE_V4 --pool-prefix $SUBNETPOOL_PREFIX_V4 --shared --is-default\u003dTrue | grep \u0027 id \u0027 | get_field 2)"},{"line_number":155,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3ac371cc_9f858fd0","line":152,"updated":"2016-08-17 21:51:16.000000000","message":"we should drop the last check as auto-allocated-topology depends on the latter, and since change [1], Neutron won\u0027t advertise the extension if there are missing dependencies.\n\n[1] https://review.openstack.org/#/c/351959/","commit_id":"9083aeb475795862b6ca220cb53e2aded82f013d"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"55f7a2c72c4d0cbf44ff63f2c96dd45086d0e4f1","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        neutron_plugin_create_initial_network_profile $PHYSICAL_NETWORK"},{"line_number":150,"context_line":"    fi"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    if is_networking_extension_supported \"auto-allocated-topology\" \u0026\u0026 is_networking_extension_supported \"subnet_allocation\"; then"},{"line_number":153,"context_line":"        if [[ \"$IP_VERSION\" \u003d~ 4.* ]]; then"},{"line_number":154,"context_line":"            SUBNETPOOL_V4_ID\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" subnetpool-create $SUBNETPOOL_NAME --default-prefixlen $SUBNETPOOL_SIZE_V4 --pool-prefix $SUBNETPOOL_PREFIX_V4 --shared --is-default\u003dTrue | grep \u0027 id \u0027 | get_field 2)"},{"line_number":155,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3ac371cc_023e66c0","line":152,"in_reply_to":"3ac371cc_9f858fd0","updated":"2016-08-17 22:00:18.000000000","message":"Done","commit_id":"9083aeb475795862b6ca220cb53e2aded82f013d"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e21b8cf8d43abae314878b0f415c51ac39e4f932","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            ROUTER_GW_IP\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F\u0027ip_address\u0027  \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027)"},{"line_number":340,"context_line":"            die_if_not_set $LINENO ROUTER_GW_IP \"Failure retrieving ROUTER_GW_IP\""},{"line_number":341,"context_line":"            local replace_range\u003d${SUBNETPOOL_PREFIX_V4}"},{"line_number":342,"context_line":"            if [[ -z \"${SUBNETPOOL_V4_ID}\" ]]; then"},{"line_number":343,"context_line":"                replace_range\u003d${FIXED_RANGE}"},{"line_number":344,"context_line":"            fi"},{"line_number":345,"context_line":"            sudo ip route replace $replace_range via $ROUTER_GW_IP"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"fa7ab95a_2c9c7fbf","line":342,"range":{"start_line":342,"start_character":15,"end_line":342,"end_character":45},"updated":"2016-09-01 18:05:31.000000000","message":"tiny nit: In other places you\u0027ve used the following form, why the extra verbosity here? As far as I can tell, they are functionally equivalent in bash.\n\n  if [ -z $SUBNETPOOL_V4_ID ]; then\n\nDon\u0027t change the patch just for this, just pointing out the inconsistency and extra verbosity.","commit_id":"d7a3f5c4cc55e61bdcb5eb57bf823cee2e059828"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"09532e91f24ea489753cbd19566f4984f219e62b","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            ROUTER_GW_IP\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F\u0027ip_address\u0027  \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027)"},{"line_number":340,"context_line":"            die_if_not_set $LINENO ROUTER_GW_IP \"Failure retrieving ROUTER_GW_IP\""},{"line_number":341,"context_line":"            local replace_range\u003d${SUBNETPOOL_PREFIX_V4}"},{"line_number":342,"context_line":"            if [[ -z \"${SUBNETPOOL_V4_ID}\" ]]; then"},{"line_number":343,"context_line":"                replace_range\u003d${FIXED_RANGE}"},{"line_number":344,"context_line":"            fi"},{"line_number":345,"context_line":"            sudo ip route replace $replace_range via $ROUTER_GW_IP"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"fa7ab95a_8d06621a","line":342,"range":{"start_line":342,"start_character":15,"end_line":342,"end_character":45},"in_reply_to":"fa7ab95a_2c9c7fbf","updated":"2016-09-01 20:04:09.000000000","message":"I think that\u0027s because I added the tweak to Matt\u0027s changereq (and I\u0027ve gotten into the habit of quoting variables having been burned by not doing so on occasion).  I probably should have looked closer at the rest of the changes to make sure it was consistent. :(","commit_id":"d7a3f5c4cc55e61bdcb5eb57bf823cee2e059828"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e21b8cf8d43abae314878b0f415c51ac39e4f932","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            # Configure interface for public bridge"},{"line_number":383,"context_line":"            sudo ip -6 addr replace $ipv6_ext_gw_ip/$ipv6_cidr_len dev $ext_gw_interface"},{"line_number":384,"context_line":"            local replace_range\u003d${SUBNETPOOL_PREFIX_V6}"},{"line_number":385,"context_line":"            if [[ -z \"${SUBNETPOOL_V6_ID}\" ]]; then"},{"line_number":386,"context_line":"                replace_range\u003d${FIXED_RANGE_V6}"},{"line_number":387,"context_line":"            fi"},{"line_number":388,"context_line":"            sudo ip -6 route replace $replace_range via $IPV6_ROUTER_GW_IP dev $ext_gw_interface"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"fa7ab95a_0cb41b33","line":385,"updated":"2016-09-01 18:05:31.000000000","message":"ditto","commit_id":"d7a3f5c4cc55e61bdcb5eb57bf823cee2e059828"}]}
