updated the source for ceph deployment.
[joid.git] / ci / openstack.sh
index 8efaac5..476533f 100755 (executable)
@@ -14,6 +14,8 @@ opnfvlab=$2
 opnfvdistro=$3
 opnfvos=$4
 
+jujuver=`juju --version`
+
 if [ -f ./deployconfig.yaml ];then
     EXTERNAL_NETWORK=`grep floating-ip-range deployconfig.yaml | cut -d ' ' -f 4 `
 
@@ -45,23 +47,38 @@ update_gw_mac() {
     ## get gateway mac
     EXTNET_GW_MAC=$(juju ssh nova-compute/0 "arp -a ${EXTNET_GW} | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})'")
     ## set external gateway mac in onos
-    juju set onos-controller gateway-mac=$EXTNET_GW_MAC
+    if [[ "$jujuver" < "2" ]]; then
+        juju set onos-controller gateway-mac=$EXTNET_GW_MAC
+    else
+        juju config onos-controller gateway-mac=$EXTNET_GW_MAC
+    fi
 }
 
 unitAddress() {
-        juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null
+    if [[ "$jujuver" < "2" ]]; then
+        juju status --format yaml | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null
+    else
+        juju status --format yaml | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"applications\"][\"$1\"][\"units\"][\"$1/$2\"][\"public-address\"]" 2> /dev/null
+    fi
 }
 
 unitMachine() {
-        juju status | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null
+    if [[ "$jujuver" < "2" ]]; then
+        juju status --format yaml | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"services\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null
+    else
+        juju status --format yaml | python -c "import yaml; import sys; print yaml.load(sys.stdin)[\"applications\"][\"$1\"][\"units\"][\"$1/$2\"][\"machine\"]" 2> /dev/null
+    fi
 }
 
 keystoneIp() {
-    KEYSTONE=$(juju status keystone |grep public-address|sed -- 's/.*\: //')
-    if [ $(echo $KEYSTONE|wc -w) == 1 ];then
-        echo $KEYSTONE
+    if [ $(juju status keystone --format=short | grep " keystone"|wc -l) == 1 ];then
+        unitAddress keystone 0
     else
-        juju get keystone | python -c "import yaml; import sys; print yaml.load(sys.stdin)['settings']['vip']['value']"
+        if [[ "$jujuver" < "2" ]]; then
+            juju get keystone | python -c "import yaml; import sys; print yaml.load(sys.stdin)['settings']['vip']['value']"
+        else
+            juju config keystone | python -c "import yaml; import sys; print yaml.load(sys.stdin)['settings']['vip']['value']"
+        fi
     fi
 }
 
@@ -69,14 +86,22 @@ keystoneIp() {
 create_openrc() {
     mkdir -m 0700 -p cloud
     keystoneIp=$(keystoneIp)
-    adminPasswd=$(juju get keystone | grep admin-password -A 5 | grep value | awk '{print $2}' 2> /dev/null)
-    configOpenrc admin $adminPasswd admin http://$keystoneIp:5000/v2.0 RegionOne > cloud/admin-openrc
-    chmod 0600 cloud/admin-openrc
+    if [[ "$jujuver" < "2" ]]; then
+        adminPasswd=$(juju get keystone | grep admin-password -A 5 | grep value | awk '{print $2}' 2> /dev/null)
+    else
+        adminPasswd=$(juju config keystone | grep admin-password -A 5 | grep value | awk '{print $2}' 2> /dev/null)
+    fi
+
+    configOpenrc admin $adminPasswd admin http://$keystoneIp:35357/v2.0 RegionOne > ~/joid_config/admin-openrc
+    chmod 0600 ~/joid_config/admin-openrc
 }
 
 configOpenrc() {
 if [ "$API_FQDN" != "None" ]; then
     cat <<-EOF
+        export SERVICE_ENDPOINT=$4
+        unset SERVICE_TOKEN
+        unset SERVICE_ENDPOINT
         export OS_USERNAME=$1
         export OS_PASSWORD=$2
         export OS_TENANT_NAME=$3
@@ -91,6 +116,9 @@ if [ "$API_FQDN" != "None" ]; then
 EOF
 else
     cat <<-EOF
+        export SERVICE_ENDPOINT=$4
+        unset SERVICE_TOKEN
+        unset SERVICE_ENDPOINT
         export OS_USERNAME=$1
         export OS_PASSWORD=$2
         export OS_TENANT_NAME=$3
@@ -103,8 +131,14 @@ fi
 
 if [ "$API_FQDN" != "None" ]; then
     # Push api fqdn local ip to all /etc/hosts
-    API_FQDN=$(juju get keystone | python -c "import yaml; import sys;\
-        print yaml.load(sys.stdin)['settings']['os-public-hostname']['value']")
+    if [[ "$jujuver" < "2" ]]; then
+        API_FQDN=$(juju get keystone | python -c "import yaml; import sys;\
+            print yaml.load(sys.stdin)['settings']['os-public-hostname']['value']")
+    else
+        API_FQDN=$(juju config keystone | python -c "import yaml; import sys;\
+            print yaml.load(sys.stdin)['settings']['os-public-hostname']['value']")
+    fi
+
 
     KEYSTONEIP=$(keystoneIp)
     juju run --all "if grep $API_FQDN /etc/hosts > /dev/null; then \
@@ -130,7 +164,7 @@ fi
 # Create an load openrc
 create_openrc
 
-. ./cloud/admin-openrc
+. ~/joid_config/admin-openrc
 
 echo "...... deploy public api proxy ......"
 
@@ -193,15 +227,28 @@ if [ "onos" == "$opnfvsdn" ]; then
     #update_gw_mac
 elif [ "nosdn" == "$opnfvsdn" ]; then
     neutron net-show ext-net > /dev/null 2>&1 || neutron net-create ext-net \
-                                             --router:external=True \
-                                             --provider:network_type flat \
-                                              --provider:physical_network external
+                                                   --router:external=True \
+                                                   --provider:network_type flat \
+                                                   --provider:physical_network phynet1
 
     neutron subnet-show ext-subnet > /dev/null 2>&1 || neutron subnet-create ext-net \
        --name ext-subnet --allocation-pool start=$EXTNET_FIP,end=$EXTNET_LIP \
        --disable-dhcp --gateway $EXTNET_GW $EXTNET_NET
-else
-    neutron net-show ext-net > /dev/null 2>&1 || neutron net-create ext-net --router:external=True
+
+elif [ "odl" == "$opnfvsdn" ]; then
+    neutron net-show ext-net > /dev/null 2>&1 || neutron net-create ext-net \
+                                                   --router:external=True \
+                                                   --provider:network_type vxlan
+
+    neutron subnet-show ext-subnet > /dev/null 2>&1 || neutron subnet-create ext-net \
+        --name ext-subnet --allocation-pool start=$EXTNET_FIP,end=$EXTNET_LIP \
+        --disable-dhcp --gateway $EXTNET_GW $EXTNET_NET
+ else
+    neutron net-show ext-net > /dev/null 2>&1 || neutron net-create ext-net \
+                                                   --router:external=True \
+                                                   --provider:network_type flat \
+                                                   --provider:physical_network phynet1
+
     neutron subnet-show ext-subnet > /dev/null 2>&1 || neutron subnet-create ext-net \
        --name ext-subnet --allocation-pool start=$EXTNET_FIP,end=$EXTNET_LIP \
        --disable-dhcp --gateway $EXTNET_GW $EXTNET_NET