Create database tablespace stubs on fritz
authorClinton Ebadi <clinton@unknownlamer.org>
Mon, 21 Feb 2011 11:50:40 +0000 (06:50 -0500)
committerClinton Ebadi <clinton@unknownlamer.org>
Mon, 21 Feb 2011 11:50:40 +0000 (06:50 -0500)
create-user
create-user-database [new file with mode: 0644]
destroy-user

index 7ad5114..5659b3f 100755 (executable)
@@ -45,6 +45,17 @@ function mire_and_deleuze() {
     ssh mire.hcoop.net $*
 }
 
+function execute_on_fritz () {
+    ssh fritz.hcoop.net $*
+}
+
+function execute_on_all_machines () {
+    $*
+    ssh mire.hcoop.net $*
+    ssh hopper.hcoop.net $*
+    ssh fritz.hcoop.net $*
+}
+
 #
 # Kerberos principals
 # (creat kerberos principals: fred, fred/cgi, fred/mailfilter)
@@ -79,10 +90,6 @@ ID_DAEMON=`pts examine $USER.daemon | head -n1 | sed 's_.*, id: *__' | sed 's_,.
 PATHBITS=`echo $USER | head -c 1`/`echo $USER | head -c 2`/$USER
 HOMEPATH=/afs/hcoop.net/user/$PATHBITS
 MAILPATH=/afs/hcoop.net/common/email/$PATHBITS
-DBPATH=/afs/hcoop.net/common/.databases/$PATHBITS
-PGDIR=$DBPATH/postgres
-MYSQLDIR=$DBPATH/mysql
-
 
 #
 # Create LDAP entries. (With the whole libnss-ptdb, I kind of
@@ -251,34 +258,8 @@ else
         $HOMEPATH/Maildir
 fi
 
-# DATABASE VOLUME
-if ! vos examine db.$USER >/dev/null 2>/dev/null; then
-  mkdir -p `dirname /afs/.hcoop.net/common/.databases/$PATHBITS`
-  vos create -server afs -partition a -name db.$USER -maxquota 400000
-  fs mkmount -dir /afs/.hcoop.net/common/.databases/$PATHBITS -vol db.$USER -rw
-  fs sa -dir $DBPATH -acl system:postgres l
-  fs sa -dir $DBPATH -acl system:mysql    l
-  fs sa -dir $DBPATH -acl system:backup   rl
-  fs sa -dir $DBPATH -acl $USER           rl
-fi
-
-# Create postgres user and tablespace placeholder within volume
-if ! test -d $PGDIR; then
-  mkdir -p $PGDIR
-  chown postgres:postgres $PGDIR
-  fs sa -dir $PGDIR -acl system:postgres write
-  fs sa -dir $PGDIR -acl $USER           none
-
- sudo -u postgres psql -c "CREATE TABLESPACE user_$USER OWNER postgres LOCATION '$PGDIR'" template1
-fi
-
-# Create mysql user and databases placeholder within volume
-mkdir -p $MYSQLDIR
-chown mysql:mysql $MYSQLDIR
-fs sa -dir $MYSQLDIR -acl system:mysql  write
-fs sa -dir $MYSQLDIR -acl $USER         none
-
-vos release common.databases
+# Create database tablespaces
+execute_on_fritz /afs/hcoop.net/common/etc/scripts/create-user-database $PATHBITS
 
 #
 # Mount points for backup volumes
diff --git a/create-user-database b/create-user-database
new file mode 100644 (file)
index 0000000..4725bd8
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash -ex
+
+# DO NOT EXECUTE DIRECTLY
+# This is only to be executed by create-user
+
+PATHBITS=$1
+DBPATH=/srv/databases/$PATHBITS
+PGDIR=$DBPATH/postgres
+MYSQLDIR=$DBPATH/mysql
+
+# Create postgres user and tablespace placeholder within volume
+if ! test -d $PGDIR; then
+  mkdir -p $PGDIR
+  chown postgres:postgres $PGDIR
+fi
+
+sudo -u postgres psql -c "CREATE TABLESPACE user_$USER OWNER postgres LOCATION '$PGDIR'" template1
+fi
+
+# Create mysql user and databases placeholder within volume
+mkdir -p $MYSQLDIR
+chown mysql:mysql $MYSQLDIR
\ No newline at end of file
index 766aa0e..10a7fb1 100755 (executable)
@@ -14,7 +14,6 @@ fi
 PATHBITS=`echo $USER | head -c 1`/`echo $USER | head -c 2`/$USER
 HOMEPATH=/afs/hcoop.net/user/$PATHBITS
 MAILPATH=/afs/hcoop.net/common/email/$PATHBITS
-DBPATH=/afs/.hcoop.net/common/.databases/$PATHBITS
 # We don't use separate partitions for logs
 #LOGSPATH=/afs/.hcoop.net/common/.logs/$USER
 
@@ -71,7 +70,7 @@ vos rename user.$USER user.$USER.d
 vos rename mail.$USER mail.$USER.d
 #XXX vos rename db.$USER db.$USER.d
 
-vos release common.databases
+#vos release common.databases
 #vos release common.logs
 
 sudo kadmin.local -q "delprinc -force $USER@HCOOP.NET"