#!/bin/sh -e case $1 in adduser) USERNAME=$2 DIR=/afs/hcoop.net/common/databases/$USERNAME/postgres kinit -k -t /etc/keytabs/root.admin.keytab root/admin aklog if ! vos examine db.$USERNAME >/dev/null 2>/dev/null; then vos create -server afs -partition a -name db.$USERNAME -maxquota 5000 fs mkmount -dir /afs/.hcoop.net/common/.databases/$USERNAME -vol db.$USERNAME -rw vos release common.databases fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:postgres l fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:mysql l fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:backup rl fi if ! [ -d $DIR ]; then sudo -u postgres psql -c "CREATE USER $USERNAME" template1 mkdir -p $DIR chown postgres:postgres $DIR fs setacl -dir $DIR -acl system:postgres write fs setacl -dir $DIR -acl system:backup rl sudo -u postgres psql -c "CREATE TABLESPACE user_$USERNAME OWNER $USERNAME LOCATION '$DIR'" template1 fi ;; createdb) USERNAME=$2 DBNAME_BASE=$3 DBNAME="${USERNAME}_${DBNAME_BASE}" sudo -u postgres createdb -O $USERNAME -D user_$USERNAME $DBNAME ;; *) echo "Usage: domtool-postgres [adduser | createdb ]" ;; esac