Petrb has uploaded a new change for review. https://gerrit.wikimedia.org/r/62236
Change subject: tool for removing of existing projects ...................................................................... tool for removing of existing projects Change-Id: I6d46145ba184b5ec07aa8fa49913c2fb51b36b68 --- A bin/rmtool 1 file changed, 77 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/labs/toollabs refs/changes/36/62236/1 diff --git a/bin/rmtool b/bin/rmtool new file mode 100755 index 0000000..317c12a --- /dev/null +++ b/bin/rmtool @@ -0,0 +1,77 @@ +#!/bin/bash + +if [ $UID -gt 0 ];then + echo "Error you must be root" + exit 2 +fi + +if [ $# -lt 1 ];then + echo "You need to provide a tool name" + exit 1 +fi + +tool=$1 +dbuser=`echo $1 | sed 's/-//'` + +# get a number of users of this name in mysql +uc=`echo "select user from user;" | mysql mysql | grep -cE ^$dbuser'$'` + +echo "There is $uc user accounts of name $dbuser in database" + +if [ "$uc" -gt 0 ];then + echo "Removing db access of $tool" + echo "drop user $dbuser;" | mysql mysql +fi + +# get the number of databases for this user +db=`echo "show databases;" | mysql mysql | grep -cE ^$dbuser'$'` + +echo "There is $db databases of name $tool in database" + +if [ "$db" -gt 0 ];then + echo "Creating a backup of database $tool" + if [ -f "/data/project/$tool/database_backup.sql" ];then + echo "Error there is already a backup file" + exit 1 + fi + if [ ! -d "/data/project/$tool" ];then + echo "There is no folder to save backup of db to!" + exit 1 + fi + mysqldump "$dbuser" > "/data/project/$tool/database_backup.sql" + echo "Removing db access of $tool" + echo "drop database $dbuser;" | mysql mysql +fi + +if [ -d "/data/project/$tool" ];then + echo "Removing data folder for $tool" + if [ -d "/data/project/removed_tools/$tool" ];then + echo "Unable to remove the folder, there is already backup folder with this name" + exit 1 + fi + mv "/data/project/$tool" "/data/project/removed_tools/$tool/" +fi + +# get a number of records in /data/project/.system/webservers + +while [ -f /data/project/.system/webservers.lock ] +do + echo "There is a lockfile, sleeping for 10 seconds" + sleep 10 +done + +touch /data/project/.system/webservers.lock +wc=`cat /data/project/.system/webservers | grep -Ec "^$tool\s.*"` +if [ "$wc" -gt 0 ];then + # create a backup file so that if stuff get fucked up we can recover it + cp /data/project/.system/webservers /tmp/webservers.backup.`date +%H:%M:%S` + echo "Removing webserver" + cat /data/project/.system/webservers | grep -vE "^$tool\s.*" > /tmp/webservers + mv /tmp/webservers /data/project/.system/webservers +fi + +rm /data/project/.system/webservers.lock + +echo "All data for $tool were cleaned" +exit 0 + -- To view, visit https://gerrit.wikimedia.org/r/62236 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6d46145ba184b5ec07aa8fa49913c2fb51b36b68 Gerrit-PatchSet: 1 Gerrit-Project: labs/toollabs Gerrit-Branch: master Gerrit-Owner: Petrb <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
