From c5dac87fa301247928211d5944be22ae14bcd534 Mon Sep 17 00:00:00 2001
From: Krzysztof Opasiak <k.opasiak@samsung.com>
Date: Thu, 2 Jul 2020 20:10:04 +0200
Subject: [COMMON] Allow to use ' in mariadb-init

' is one of characters that are placed in passwords by our default
password generation algorith. As ' is a special character in SQL
we need to escape it before concatenating it with SQL command.

Let's also add set -e to fail if any of databases has not been created

Issue-ID: OOM-2436
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Change-Id: Ida8c75639eaa4049e3f874d30666f1fe4dc02e12
---
 kubernetes/common/mariadb-init/resources/config/db_init.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'kubernetes/common/mariadb-init')

diff --git a/kubernetes/common/mariadb-init/resources/config/db_init.sh b/kubernetes/common/mariadb-init/resources/config/db_init.sh
index b2fdb14b12..40254d469b 100755
--- a/kubernetes/common/mariadb-init/resources/config/db_init.sh
+++ b/kubernetes/common/mariadb-init/resources/config/db_init.sh
@@ -14,11 +14,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# make sure the script fails if any of commands failed
+set -e
+
 while read DB ; do
     USER_VAR="MYSQL_USER_${DB^^}"
     PASS_VAR="MYSQL_PASSWORD_${DB^^}"
     USER=${!USER_VAR}
-    PASS=${!PASS_VAR}
+    PASS=`echo -n ${!PASS_VAR} | sed -e "s/'/''/g"`
     MYSQL_OPTS=( -h ${DB_HOST} -P ${DB_PORT} -uroot -p${MYSQL_ROOT_PASSWORD} )
 
     echo "Creating database ${DB} and user ${USER}..."
-- 
cgit