[sr-dev] git:5.1:ec7d89da: kamctl: expose db root password variable used by kamdbctl.mysql in kamctlrc

Daniel-Constantin Mierla miconda at gmail.com
Mon Dec 4 09:32:58 CET 2017


Module: kamailio
Branch: 5.1
Commit: ec7d89da1cce4060969b4a7bd7db64ffa23c1b3d
URL: https://github.com/kamailio/kamailio/commit/ec7d89da1cce4060969b4a7bd7db64ffa23c1b3d

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2017-12-04T09:26:33+01:00

kamctl: expose db root password variable used by kamdbctl.mysql in kamctlrc

- DBROOTPW can be now set in kamctlrc
- targeting use for automatic testing

(cherry picked from commit 313805136d22ed79d1c4900753247032240d5a5b)

---

Modified: utils/kamctl/kamctlrc
Modified: utils/kamctl/kamdbctl.mysql

---

Diff:  https://github.com/kamailio/kamailio/commit/ec7d89da1cce4060969b4a7bd7db64ffa23c1b3d.diff
Patch: https://github.com/kamailio/kamailio/commit/ec7d89da1cce4060969b4a7bd7db64ffa23c1b3d.patch

---

diff --git a/utils/kamctl/kamctlrc b/utils/kamctl/kamctlrc
index 6ac3cd4c2e..46fcdf5664 100644
--- a/utils/kamctl/kamctlrc
+++ b/utils/kamctl/kamctlrc
@@ -47,6 +47,11 @@
 ## database super user (for ORACLE this is 'scheme-creator' user)
 # DBROOTUSER="root"
 
+## password for database super user
+## - important: this is insecure, targeting the use only for automatic testing
+## - known to work for: mysql
+# DBROOTPW="dbrootpw"
+
 ## database character set (used by MySQL when creating database)
 #CHARSET="latin1"
 
diff --git a/utils/kamctl/kamdbctl.mysql b/utils/kamctl/kamdbctl.mysql
index 8d090fc7fe..422eed8beb 100644
--- a/utils/kamctl/kamdbctl.mysql
+++ b/utils/kamctl/kamdbctl.mysql
@@ -32,10 +32,10 @@ if [ -z "$DBROOTUSER" ]; then
 	DBROOTUSER="root"
 fi
 
-# Uncomment this to set the database root password if you want to run this 
-# script without any user prompt. This is unsafe, but useful e.g. for 
-# automatic testing.
-#PW=""
+# Set DBROOTPW in kamctlrc or via next line to set the database
+# root password if you want to run this script without any user prompt.
+# This is unsafe, but useful e.g. for automatic testing.
+#DBROOTPW=""
 
 
 if [ -z "$DBPORT" ] ; then
@@ -55,13 +55,13 @@ prompt_pw()
 	savetty=`stty -g`
 	echo -n "MySQL password for $DBROOTUSER: "
 	stty -echo
-	read PW
+	read DBROOTPW
 	stty $savetty
 	echo
-	export PW
+	export DBROOTPW
 }
 
-# execute sql command with optional db name 
+# execute sql command with optional db name
 # and password parameters given
 sql_query()
 {
@@ -72,14 +72,14 @@ sql_query()
 			DB=""
 		fi
 		shift
-		if [ -n "$PW" ]; then
-			$CMD "-p$PW" $DB -e "$@"
+		if [ -n "$DBROOTPW" ]; then
+			$CMD "-p$DBROOTPW" $DB -e "$@"
 		else
 			$CMD $DB -e "$@"
 		fi
 	else
-		if [ -n "$PW" ]; then
-			$CMD "-p$PW" "$@"
+		if [ -n "$DBROOTPW" ]; then
+			$CMD "-p$DBROOTPW" "$@"
 		else
 			$CMD "$@"
 		fi
@@ -106,9 +106,9 @@ kamailio_drop()  # pars: <database name>
 
 db_charset_test()
 {
-	if [ -n "$PW" ]; then
-		CURRCHARSET=`echo "show variables like '%character_set_server%'" | $CMD "-p$PW" | $AWK '{print $2}' | $SED -e 1d`
-		ALLCHARSETS=`echo "show character set" | $CMD "-p$PW" | $AWK '{print $1}' | $SED -e 1d | $GREP -iv -e "utf8\|ucs2"`
+	if [ -n "$DBROOTPW" ]; then
+		CURRCHARSET=`echo "show variables like '%character_set_server%'" | $CMD "-p$DBROOTPW" | $AWK '{print $2}' | $SED -e 1d`
+		ALLCHARSETS=`echo "show character set" | $CMD "-p$DBROOTPW" | $AWK '{print $1}' | $SED -e 1d | $GREP -iv -e "utf8\|ucs2"`
 	else
 		CURRCHARSET=`echo "show variables like '%character_set_server%'" | $CMD | $AWK '{print $2}' | $SED -e 1d`
 		ALLCHARSETS=`echo "show character set" | $CMD | $AWK '{print $1}' | $SED -e 1d | $GREP -iv -e "utf8\|ucs2"`
@@ -386,7 +386,7 @@ migrate_table () # 4 paremeters (dst_table, dst_cols, src_table, src_cols)
 
 	if [ $? -ne 0 ] ; then
 		echo $X | $GREP "ERROR 1146" > /dev/null
-		if [ $? -eq 0 ] ; then 
+		if [ $? -eq 0 ] ; then
 			echo " -- Migrating $3 to $1.....SKIPPED (no source)"
 			return 0
 		fi
@@ -540,9 +540,9 @@ fi
 }  #end migrate_db()
 
 
-export PW
-if [ "$#" -ne 0 ] && [ "$PW" = "" ]; then
-	if [ "$PWSKIP" = "" ]; then
+export DBROOTPW
+if [ "$#" -ne 0 ] && [ "$DBROOTPW" = "" ]; then
+	if [ "$DBROOTPWSKIP" = "" ]; then
 		prompt_pw
 	fi
 fi




More information about the sr-dev mailing list