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