[Dbconfig-common-devel] dbconfig-common/internal mysql,1.5,1.6

seanius@haydn.debian.org seanius@haydn.debian.org


Update of /cvsroot/dbconfig-common/dbconfig-common/internal
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv4144/internal

Modified Files:
	mysql 
Log Message:
'verify user' and 'verify create database' fixes for mysql

Index: mysql
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/internal/mysql,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- mysql	5 May 2005 03:01:22 -0000	1.5
+++ mysql	5 May 2005 04:44:28 -0000	1.6
@@ -55,7 +55,7 @@
 ##	note this is done without passing any sensitive info on the cmdline
 ##
 dbc_mysql_exec_file(){
-	local l_sqlfile l_retval l_error
+	local l_sqlfile l_retval l_error l_dbname
 	l_sqlfile=$1
 
 	if [ ! "$l_sqlfile" ]; then
@@ -65,7 +65,15 @@
 	fi
 
 	mycnf=`_dbc_generate_mycnf`
-	l_error=`mysql --defaults-extra-file="$mycnf" $dbc_dbname < $l_sqlfile 2>&1`
+	if [ ! "$_dbc_nodb" ]; then
+		l_dbname="$dbc_dbname"
+	fi
+	if [ ! "$_dbc_pass_output" ]; then
+		l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
+	else
+		mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
+	fi
+
 	l_retval=$?
 	rm -f $mycnf
 	if [ $l_retval -ne 0 ]; then
@@ -92,7 +100,12 @@
 	if [ ! "$_dbc_nodb" ]; then
 		l_dbname="$dbc_dbname"
 	fi
-	l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1` 
+	if [ ! "$_dbc_pass_output" ]; then
+		l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1` 
+	else
+		mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
+	fi
+	
 	l_retval=$?
 	rm -f $mycnf $l_sqlfile
 	if [ $l_retval -ne 0 ]; then
@@ -105,9 +118,9 @@
 ## check for the existance of a specified database
 ##
 _dbc_mysql_check_database(){
-	local dbc_dbname
+	local dbc_dbname local _dbc_nodb _dbc_pass_output
 	dbc_dbname=$1
-	dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
+	_dbc_nodb="yes" _dbc_pass_output="yes" dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
 	return $?
 }
 
@@ -129,9 +142,11 @@
 		l_dballow="$dbc_dballow"
 	fi
 
-	_dbc_nodb="yes"
-	if dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" 2>/dev/null | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`" ; then
-	return $?
+	if ! _dbc_pass_output="yes" _dbc_nodb="yes" dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`"; then
+		return 1
+	else
+		return 0
+	fi
 }
 
 ###
@@ -164,8 +179,7 @@
 		dbc_logline "already exists"
 		dbc_status=nothing
 	else
-		_dbc_nodb="yes"
-		dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname"
+		_dbc_nodb="yes" dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname"
 		ret=$?
 		_dbc_nodb=""
 		if [ "$ret" = "0" ]; then
@@ -263,8 +277,7 @@
 		dbc_logline "already exists"
 	else
 		l_dbname=$dbc_dbname
-		_dbc_nodb="yes"
-		dbc_mysql_exec_file "$l_sqlfile"
+		_dbc_nodb="yes" dbc_mysql_exec_file "$l_sqlfile"
 		l_ret=$?
 		_dbc_nodb=""
 
@@ -272,6 +285,7 @@
 			dbc_logline "success"
 			dbc_logpart "verifying access for $dbc_dbuser@$l_dballow:"
 			if ! _dbc_mysql_check_user ; then
+				l_ret=1
 				dbc_logline "failed"
 			else
 				dbc_status=create
@@ -282,6 +296,7 @@
 		fi
 	fi
 	rm -f $l_sqlfile
+	return $l_ret
 }
 
 # File:		mysql-dropuser.sh
@@ -325,8 +340,7 @@
 REVOKE ALL PRIVILEGES ON \`$dbc_dbname\`.* FROM '$dbc_dbuser'@'$l_dballow';
 FLUSH PRIVILEGES;
 EOF
-		_dbc_nodb="yes"
-		if dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
+		if _dbc_nodb="yes" dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
 			dbc_status=drop
 			dbc_logline "success"
 		else