X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/a215ab4e803c5e8c9bae21d62eaccb2052f4f2d2..fe789bea628b15229156c8a4272c2b6063c9b1a0:/src/plugins/domtool-postgres diff --git a/src/plugins/domtool-postgres b/src/plugins/domtool-postgres dissimilarity index 81% index ded559d..214e9ac 100755 --- a/src/plugins/domtool-postgres +++ b/src/plugins/domtool-postgres @@ -1,40 +1,35 @@ -#!/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 databases 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 postgres write - fs setacl -dir $DIR -acl databases none - 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 +#!/bin/sh -e + +case $1 in + adduser) + USERNAME=$2 + + sudo -u postgres psql -c "CREATE USER $USERNAME" template1 + sudo -u postgres psql -c "ALTER TABLESPACE user_$USERNAME OWNER TO $USERNAME" + ;; + + createdb) + USERNAME=$2 + DBNAME_BASE=$3 + ENCODING=$4 + DBNAME="${USERNAME}_${DBNAME_BASE}" + + if [ -n $ENCODING ]; then + ENCODING="-E $ENCODING" + fi + + sudo -u postgres createdb -O $USERNAME -D user_$USERNAME $ENCODING $DBNAME + ;; + + dropdb) + USERNAME=$2 + DBNAME_BASE=$3 + DBNAME="${USERNAME}_${DBNAME_BASE}" + + sudo -u postgres dropdb $DBNAME + ;; + + *) + echo "Usage: domtool-postgres [adduser | createdb | dropdb ]" + ;; +esac