From e34ec9901ea04b4fab81742f9556e486849dfb4e Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Tue, 7 Jun 2016 12:36:50 -0400 Subject: [PATCH] Neutron/l3 - die if provider settings for v6 are not set If you are using provider networking, and have IP_VERSION set to include IPv6 (which we do by default) - you must set the required variables. If you do not want this behavior, set IP_VERSION=4 This arose from a third party CI system which was configured[1] to have provider networking, but would explode when hitting the router IPv6 setup step[2] since there was no IPv6 subnet created, and IPV6_SUBNET_ID would be empty, causing a python-neutronclient error and causing stack.sh to exit. [1]: http://paste.openstack.org/show/508710/ [2]: https://github.com/openstack-dev/devstack/blob/c35110e7c5c35dd1edc310dc3d0bb8693e58d336/lib/neutron_plugins/services/l3#L320 Change-Id: I267799b62284c3086ed7c3e2d8a9cbadb9ddcd60 --- lib/neutron_plugins/services/l3 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/neutron_plugins/services/l3 b/lib/neutron_plugins/services/l3 index a5a6c81ea4..dbd2b45d15 100644 --- a/lib/neutron_plugins/services/l3 +++ b/lib/neutron_plugins/services/l3 @@ -150,7 +150,9 @@ function create_neutron_initial_network { die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $PROVIDER_SUBNET_NAME $project_id" fi - if [[ "$IP_VERSION" =~ .*6 ]] && [[ -n "$IPV6_PROVIDER_FIXED_RANGE" ]] && [[ -n "$IPV6_PROVIDER_NETWORK_GATEWAY" ]]; then + if [[ "$IP_VERSION" =~ .*6 ]]; then + die_if_not_set $LINENO IPV6_PROVIDER_FIXED_RANGE "IPV6_PROVIDER_FIXED_RANGE has not been set, but Q_USE_PROVIDERNET_FOR_PUBLIC is true and IP_VERSION includes 6" + die_if_not_set $LINENO IPV6_PROVIDER_NETWORK_GATEWAY "IPV6_PROVIDER_NETWORK_GATEWAY has not been set, but Q_USE_PROVIDERNET_FOR_PUBLIC is true and IP_VERSION includes 6" SUBNET_V6_ID=$(neutron --os-cloud devstack-admin --os-region "$REGION_NAME" subnet-create --tenant_id $project_id --ip_version 6 --ipv6-address-mode $IPV6_ADDRESS_MODE --gateway $IPV6_PROVIDER_NETWORK_GATEWAY --name $IPV6_PROVIDER_SUBNET_NAME $NET_ID $IPV6_PROVIDER_FIXED_RANGE | grep 'id' | get_field 2) die_if_not_set $LINENO SUBNET_V6_ID "Failure creating SUBNET_V6_ID for $IPV6_PROVIDER_SUBNET_NAME $project_id" fi