From 501e25ac5a0d9b64f0a15d599f8d7a0f9078519d Mon Sep 17 00:00:00 2001
From: Julien Leduc <julien.leduc@cern.ch>
Date: Fri, 10 Feb 2017 12:14:37 +0100
Subject: [PATCH] Adding Database and Objectstore deletion feature: I merged
 the wrong commit when moving cta-orchestration in CTA repo.

---
 .../ctafrontend/cc7/opt/run/bin/init.sh       | 59 ++++++++++++-------
 1 file changed, 38 insertions(+), 21 deletions(-)

diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh
index fb86543cc0..ab5f5b73d5 100755
--- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh
+++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh
@@ -13,39 +13,56 @@ echo "Using this configuration for library:"
 cat /tmp/library-rc.sh
 . /tmp/library-rc.sh
 
-echo "Creating objectstore"
+echo "Configuring objectstore:"
 /opt/run/bin/init_objectstore.sh
 . /tmp/objectstore-rc.sh
 
-if [ "$OBJECTSTORETYPE" == "file" ]; then
-  rm -fr $OBJECTSTOREURL
-  mkdir -p $OBJECTSTOREURL
-  cta-objectstore-initialize $OBJECTSTOREURL
-  chmod -R 777 $OBJECTSTOREURL
-else
-  if [[ $(rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls | wc -l) -gt 0 ]]; then
-    echo "Rados objectstore ${OBJECTSTOREURL} is not empty: deleting content"
-    rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls | xargs -itoto rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE rm toto
+if [ "$KEEP_OBJECTSTORE" == "0" ]; then
+  echo "Wiping objectstore"
+  if [ "$OBJECTSTORETYPE" == "file" ]; then
+    rm -fr $OBJECTSTOREURL
+    mkdir -p $OBJECTSTOREURL
+    cta-objectstore-initialize $OBJECTSTOREURL
+    chmod -R 777 $OBJECTSTOREURL
+  else
+    if [[ $(rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls | wc -l) -gt 0 ]]; then
+      echo "Rados objectstore ${OBJECTSTOREURL} is not empty: deleting content"
+      rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls | xargs -itoto rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE rm toto
+    fi
+    cta-objectstore-initialize $OBJECTSTOREURL
+    echo "Rados objectstore ${OBJECTSTOREURL} content:"
+    rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls
   fi
-  cta-objectstore-initialize $OBJECTSTOREURL
-  echo "Rados objectstore ${OBJECTSTOREURL} content:"
-  rados -p $OBJECTSTOREPOOL --id $OBJECTSTOREID --namespace $OBJECTSTORENAMESPACE ls
+else
+  echo "Reusing objectstore (no check)"
 fi
 
-echo "Creating DB"
+
+echo "Configuring database:"
 /opt/run/bin/init_database.sh
 . /tmp/database-rc.sh
+echo ${DATABASEURL} >/etc/cta/cta_catalogue_db.conf
+
+if [ "$KEEP_DATABASE" == "0" ]; then
+  echo "Wiping database"
+  cta-catalogue-schema-unlock /etc/cta/cta_catalogue_db.conf
+  cta-catalogue-delete-all-data /etc/cta/cta_catalogue_db.conf
+  cta-catalogue-schema-status /etc/cta/cta_catalogue_db.conf
+  cta-catalogue-schema-drop /etc/cta/cta_catalogue_db.conf
 
-if [ "$DATABASETYPE" == "sqlite" ]; then
-  mkdir -p $(dirname $(echo ${DATABASEURL} | cut -d: -f2))
-  echo ${DATABASEURL} >/etc/cta/cta_catalogue_db.conf
-  cta-catalogue-schema-create /etc/cta/cta_catalogue_db.conf
-  chmod -R 777 $(dirname $(echo ${DATABASEURL} | cut -d: -f2)) # needed?
+  if [ "$DATABASETYPE" == "sqlite" ]; then
+    mkdir -p $(dirname $(echo ${DATABASEURL} | cut -d: -f2))
+    cta-catalogue-schema-create /etc/cta/cta_catalogue_db.conf
+    chmod -R 777 $(dirname $(echo ${DATABASEURL} | cut -d: -f2)) # needed?
+  else
+    cta-catalogue-schema-create /etc/cta/cta_catalogue_db.conf
+  fi
 else
-  echo ${DATABASEURL} >/etc/cta/cta_catalogue_db.conf
-  cta-catalogue-schema-create /etc/cta/cta_catalogue_db.conf
+  echo "Reusing database (no check)"
 fi
 
+
+
 if [ ! $LIBRARYTYPE == "mhvtl" ]; then
   echo "Real tapes, not labelling";
 else
-- 
GitLab