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

Reply via email to