[COMMON] Allow to use ' in mariadb-init 85/109785/1
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Thu, 2 Jul 2020 18:10:04 +0000 (20:10 +0200)
committerKrzysztof Opasiak <k.opasiak@samsung.com>
Thu, 2 Jul 2020 18:10:04 +0000 (20:10 +0200)
' 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

index b2fdb14..40254d4 100755 (executable)
 # 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}..."