Revert "modfiied to adjust timings as it seems download the container image is slow...
[joid.git] / ci / 03-maasdeploy.sh
index a13549c..668eab9 100755 (executable)
@@ -2,7 +2,25 @@
 #placeholder for deployment script.
 set -ex
 
-source tools.sh
+source common/tools.sh
+
+
+usage() {
+  # no xtrace output
+  { set +x; } 2> /dev/null
+
+  echo "OPNFV JOID deployer of the MAAS (Metal as a Service) infrastructure."
+  echo "Usage: $0 custom <path_to_labconfig>"
+  echo "       $0 virtual"
+  exit ${1-0}
+}
+
+# Print usage help message if requested
+if [ "$1" == "help" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]
+then
+    usage;
+fi
+
 
 virtinstall=0
 labname=$1
@@ -12,11 +30,13 @@ if [ ! -e $HOME/.ssh/id_rsa ]; then
 fi
 
 NODE_ARCTYPE=`arch`
+CPU_MODEL="host"
 
 if  [ "ppc64le" == "$NODE_ARCTYPE" ]; then
     NODE_ARCHES="ppc64el"
 elif [ "aarch64" == "$NODE_ARCTYPE" ]; then
     NODE_ARCHES="arm64"
+    CPU_MODEL="host-passthrough"
 else
     NODE_ARCHES="amd64"
 fi
@@ -43,22 +63,6 @@ sudo apt-get install bridge-utils openssh-server bzr git virtinst qemu-kvm libvi
 sudo -H pip install --upgrade pip
 
 
-usage() {
-  # no xtrace output
-  { set +x; } 2> /dev/null
-
-  echo "OPNFV JOID deployer of the MAAS (Metal as a Service) infrastructure."
-  echo "Usage: $0 custom <path_to_labconfig>"
-  echo "       $0 virtual"
-  exit ${1-0}
-}
-
-if [ "$1" == "help" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]
-then
-    usage;
-fi
-
-
 #
 # Config preparation
 #
@@ -382,6 +386,8 @@ addnodes(){
     do
         maas $PROFILE machine delete $m
     done
+    podno=$(maas $PROFILE pods read | jq -r ".[]".id)
+    maas $PROFILE pod delete $podno || true
 
     # if we have a virshurl configuration we use it, else we use local
     VIRSHURL=$(cat labconfig.json | jq -r '.opnfv.virshurl')
@@ -429,7 +435,7 @@ addnodes(){
 
     echo_info "Creating and adding bootstrap node"
 
-    virt-install --connect $VIRSHURL --name bootstrap --ram 4098 --cpu host --vcpus 2 \
+    virt-install --connect $VIRSHURL --name bootstrap --ram 4098 --cpu $CPU_MODEL --vcpus 2 \
                  --disk size=20,format=qcow2,bus=virtio,cache=directsync,io=native,pool=default \
                  $netw --boot network,hd,menu=off --noautoconsole \
                  --print-xml | tee bootstrap
@@ -444,6 +450,8 @@ addnodes(){
         done
     fi
     virsh -c $VIRSHURL define --file bootstrap
+    virsh -c $VIRSHURL autostart bootstrap
+
     rm -f bootstrap
 
     sleep 60
@@ -464,12 +472,14 @@ addnodes(){
            units=$(($units - 1));
            NODE_NAME=`cat labconfig.json | jq ".lab.racks[].nodes[$units].name" | cut -d \" -f 2 `
 
-            virt-install --connect $VIRSHURL --name $NODE_NAME --ram 8192 --cpu host --vcpus 4 \
+            virt-install --connect $VIRSHURL --name $NODE_NAME --ram 8192 --cpu $CPU_MODEL --vcpus 4 \
                      --disk size=120,format=qcow2,bus=virtio,cache=directsync,io=native,pool=default \
                      $netw $netw --boot network,hd,menu=off --noautoconsole --print-xml | tee $NODE_NAME
 
             nodemac=`grep  "mac address" $NODE_NAME | head -1 | cut -d '"' -f 2`
             virsh -c $VIRSHURL define --file $NODE_NAME
+            virsh -c $VIRSHURL autostart $NODE_NAME
+
             rm -f $NODE_NAME
             maas $PROFILE machines create autodetect_nodegroup='yes' name=$NODE_NAME \
                 tags='control compute' hostname=$NODE_NAME power_type='virsh' mac_addresses=$nodemac \
@@ -608,6 +618,7 @@ if [ -e ./labconfig.json ]; then
                 'data')     IF_MODE='AUTO' ;;
                 'public')   IF_MODE='AUTO' ;;
                 'storage')  IF_MODE='AUTO' ;;
+                'osapi')    IF_MODE='AUTO' ;;
                 'floating') IF_MODE='link_up' ;;
                 *) SUBNET_CIDR='null'; IF_MODE='null'; echo_info "      >>> Unknown SPACE" ;;
             esac
@@ -626,8 +637,12 @@ if [ -e ./labconfig.json ]; then
             if ([ $IF_VLAN ] && [ "$IF_VLAN" != "null" ]); then
                 echo_info "      >>> Configuring VLAN $IF_VLAN"
                 VLANID=$(maas $PROFILE subnets read | jq ".[].vlan | select(.vid==$IF_VLAN)".id)
-                FABRICID=$(maas $PROFILE subnets read | jq ".[].vlan | select(.vid==$IF_VLAN)".fabric_id)
-                INTERFACE=$(maas $PROFILE interfaces read $NODE_SYS_ID | jq ".[] | select(.vlan.fabric_id==$FABRICID)".id)
+                if ([ $VLANID ] && [ "$VLANID" != "null" ]); then
+                    FABRICID=$(maas $PROFILE subnets read | jq ".[].vlan | select(.vid==$IF_VLAN)".fabric_id)
+                    if ([ $FABRICID ] && [ "$FABRICID" != "null" ]); then
+                        INTERFACE=$(maas $PROFILE interfaces read $NODE_SYS_ID | jq ".[] | select(.vlan.fabric_id==$FABRICID)".id)
+                    fi
+                fi
                 if [[ -z $INTERFACE ]]; then
                     # parent interface is not set because it does not have a SUBNET_CIDR
                     PARENT_VLANID=$(maas $PROFILE fabrics read | jq ".[].vlans[] | select(.fabric_id==$FABRICID and .name==\"untagged\")".id)