Browse code

Merge "Provision deployment requirements for get-me-a-network"

Jenkins authored on 2016/02/23 06:09:14
Showing 1 changed files
... ...
@@ -73,6 +73,16 @@ PUBLIC_NETWORK_GATEWAY=${PUBLIC_NETWORK_GATEWAY:-172.24.4.1}
73 73
 PRIVATE_SUBNET_NAME=${PRIVATE_SUBNET_NAME:-"private-subnet"}
74 74
 PUBLIC_SUBNET_NAME=${PUBLIC_SUBNET_NAME:-"public-subnet"}
75 75
 
76
+# Subnetpool defaults
77
+SUBNETPOOL_NAME=${SUBNETPOOL_NAME:-"shared-default-subnetpool"}
78
+
79
+SUBNETPOOL_PREFIX_V4=${SUBNETPOOL_PREFIX_V4:-10.0.0.0/24}
80
+SUBNETPOOL_PREFIX_V6=${SUBNETPOOL_PREFIX_V6:-2001:db8:8000::/48}
81
+
82
+SUBNETPOOL_SIZE_V4=${SUBNETPOOL_SIZE_V4:-26}
83
+SUBNETPOOL_SIZE_V6=${SUBNETPOOL_SIZE_V6:-64}
84
+
85
+
76 86
 if is_ssl_enabled_service "neutron" || is_service_enabled tls-proxy; then
77 87
     Q_PROTOCOL="https"
78 88
 fi
... ...
@@ -580,6 +590,8 @@ function create_neutron_initial_network {
580 580
         fi
581 581
     fi
582 582
 
583
+    AUTO_ALLOCATE_EXT=$(neutron ext-list | grep 'auto-allocated-topology' | get_field 1)
584
+    SUBNETPOOL_EXT=$(neutron ext-list | grep 'subnet_allocation' | get_field 1)
583 585
     if [[ "$Q_L3_ENABLED" == "True" ]]; then
584 586
         # Create a router, and add the private subnet as one of its interfaces
585 587
         if [[ "$Q_L3_ROUTER_PER_TENANT" == "True" ]]; then
... ...
@@ -592,11 +604,23 @@ function create_neutron_initial_network {
592 592
             die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $Q_ROUTER_NAME"
593 593
         fi
594 594
 
595
+        # if the extension is available, then mark the external
596
+        # network as default, and provision default subnetpools
597
+        EXTERNAL_NETWORK_FLAGS="--router:external"
598
+        if [[ -n $AUTO_ALLOCATE_EXT && -n $SUBNETPOOL_EXT ]]; then
599
+            EXTERNAL_NETWORK_FLAGS="$EXTERNAL_NETWORK_FLAGS --is-default"
600
+            if [[ "$IP_VERSION" =~ 4.* ]]; then
601
+                SUBNETPOOL_V4_ID=$(neutron subnetpool-create $SUBNETPOOL_NAME --default-prefixlen $SUBNETPOOL_SIZE_V4 --pool-prefix $SUBNETPOOL_PREFIX_V4 --shared --is-default=True | grep ' id ' | get_field 2)
602
+            fi
603
+            if [[ "$IP_VERSION" =~ .*6 ]]; then
604
+                SUBNETPOOL_V6_ID=$(neutron subnetpool-create $SUBNETPOOL_NAME --default-prefixlen $SUBNETPOOL_SIZE_V6 --pool-prefix $SUBNETPOOL_PREFIX_V6 --shared --is-default=True | grep ' id ' | get_field 2)
605
+            fi
606
+        fi
595 607
         # Create an external network, and a subnet. Configure the external network as router gw
596 608
         if [ "$Q_USE_PROVIDERNET_FOR_PUBLIC" = "True" ]; then
597
-            EXT_NET_ID=$(neutron net-create "$PUBLIC_NETWORK_NAME" -- --router:external=True --provider:network_type=flat --provider:physical_network=${PUBLIC_PHYSICAL_NETWORK} | grep ' id ' | get_field 2)
609
+            EXT_NET_ID=$(neutron net-create "$PUBLIC_NETWORK_NAME" -- $EXTERNAL_NETWORK_FLAGS --provider:network_type=flat --provider:physical_network=${PUBLIC_PHYSICAL_NETWORK} | grep ' id ' | get_field 2)
598 610
         else
599
-            EXT_NET_ID=$(neutron net-create "$PUBLIC_NETWORK_NAME" -- --router:external=True | grep ' id ' | get_field 2)
611
+            EXT_NET_ID=$(neutron net-create "$PUBLIC_NETWORK_NAME" -- $EXTERNAL_NETWORK_FLAGS | grep ' id ' | get_field 2)
600 612
         fi
601 613
         die_if_not_set $LINENO EXT_NET_ID "Failure creating EXT_NET_ID for $PUBLIC_NETWORK_NAME"
602 614