From 03b90e766bc7b25cf137c49e208bdaded6ca1a74 Mon Sep 17 00:00:00 2001 From: Cees-Jan Kiewiet Date: Wed, 9 Sep 2020 20:11:46 +0200 Subject: [PATCH] Check if database is empty before considering it --- engine/add.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/engine/add.sh b/engine/add.sh index a7defdf..14f6045 100755 --- a/engine/add.sh +++ b/engine/add.sh @@ -98,11 +98,14 @@ if [[ "$?" == "1" ]] ; then do isDatabaseFree=$(kubectl get configmap redis-database-assignment-operator-in-use-dbs-list -o json | jq -r '.data.dbs' | jq ".[\"${uri_host_port}\"].db${i}" | grep free | wc -l) if [[ "$isDatabaseFree" == "1" ]] ; then - echo "Database ${i} is available" - kubectl create secret generic "${secret}" -n "${namespace}" --from-literal=DATABASE="${i}" --from-literal=READ="${read_dsn}${i}" --from-literal=WRITE="${write_dsn}${i}" - kubectl create configmap redis-database-assignment-operator-in-use-dbs-list --from-literal=dbs=$(kubectl get configmap redis-database-assignment-operator-in-use-dbs-list -o json | jq -r '.data.dbs' | jq -r ". * {\"${uri_host_port}\": {\"db${i}\": \"${namespace}/${secret}\"}}" | jq -c) --dry-run -o yaml | kubectl apply -f - - echo "Database ${i} has now been claimed" - break + isDatabaseEmpty=$(redis-cli -u "${write}" INFO keyspace | grep -v Keyspace | grep "db${i}" | wc -l) + if [[ "$isDatabaseEmpty" == "0" ]] ; then + echo "Database ${i} is available" + kubectl create secret generic "${secret}" -n "${namespace}" --from-literal=DATABASE="${i}" --from-literal=READ="${read_dsn}${i}" --from-literal=WRITE="${write_dsn}${i}" + kubectl create configmap redis-database-assignment-operator-in-use-dbs-list --from-literal=dbs=$(kubectl get configmap redis-database-assignment-operator-in-use-dbs-list -o json | jq -r '.data.dbs' | jq -r ". * {\"${uri_host_port}\": {\"db${i}\": \"${namespace}/${secret}\"}}" | jq -c) --dry-run -o yaml | kubectl apply -f - + echo "Database ${i} has now been claimed" + break + fi fi done else