Fix idempotency issues that could cause install/configuration failures
[osm/RO.git] / charms / layers / openmano / scripts / create-datacenter.sh
index 4b192e4..6aafab5 100755 (executable)
@@ -4,20 +4,33 @@ OPENMANO=$HOME/bin/openmano
 export OPENMANO_TENANT=$4
 
 OPENMANO_DATACENTER=`$OPENMANO datacenter-list myov`
-if [ $? -ne 0 ]; then
+if [ $? -eq 0 ]; then
+    # If the datacenter exists, the current approach is to delete the existing
+    # one and create a new one. We may want to change this behavior to retain
+    # the existing datacenter, but this script will also go away in favour of
+    # a python API to OpenMano
+
+    # If the datacenter exists, remove all traces of it before continuing
+    OPENMANO_DATACENTER=`echo $OPENMANO_DATACENTER |gawk '{print $1}'`
+
+    # Delete netmap
+    $OPENMANO datacenter-netmap-delete --all -f --datacenter $OPENMANO_DATACENTER
+
+    # detach
+    $OPENMANO datacenter-detach -a $OPENMANO_DATACENTER
+
     # Make sure the datacenter is deleted
-    $OPENMANO datacenter-delete myov
+    $OPENMANO datacenter-delete --force myov
+
     OPENMANO_DATACENTER=`$OPENMANO datacenter-create myov http://$1:$2/openvim`
 fi
-export OPENMANO_DATACENTER=`echo $OPENMANO_DATACENTER |gawk '{print $1}'`
+OPENMANO_DATACENTER=`echo $OPENMANO_DATACENTER |gawk '{print $1}'`
 
-#export OPENMANO_DATACENTER=`$OPENMANO datacenter-create myov http://$1:$2/openvim |gawk '{print $1}'`
-# FIXME: don't add this to .bashrc if it already exists.
-if ! grep -q "^export OPENMANO_DATACENTER" $HOME/.bashrc
-then
-    echo "export OPENMANO_DATACENTER=$OPENMANO_DATACENTER " >> $HOME/.bashrc
-fi
 
-# TODO: Test idempotency. We may need to check and remove existing data
+# if ! grep -q "^export OPENMANO_DATACENTER" $HOME/.bashrc
+# then
+#     echo "export OPENMANO_DATACENTER=$OPENMANO_DATACENTER " >> $HOME/.bashrc
+# fi
+
 $OPENMANO datacenter-attach myov --vim-tenant-id $3
 $OPENMANO datacenter-netmap-import -f --datacenter $OPENMANO_DATACENTER