From a215ab4e803c5e8c9bae21d62eaccb2052f4f2d2 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 10 Feb 2007 22:08:34 +0000 Subject: [PATCH] Postgres stuff plus re-add vos release --- src/plugins/domtool-mysql | 1 + src/plugins/domtool-postgres | 31 +++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/plugins/domtool-mysql b/src/plugins/domtool-mysql index d2c5298..2eeb1be 100755 --- a/src/plugins/domtool-mysql +++ b/src/plugins/domtool-mysql @@ -11,6 +11,7 @@ case $1 in 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 diff --git a/src/plugins/domtool-postgres b/src/plugins/domtool-postgres index 276637f..ded559d 100755 --- a/src/plugins/domtool-postgres +++ b/src/plugins/domtool-postgres @@ -2,10 +2,37 @@ case $1 in adduser) - echo "I would create PostgreSQL user $2." + 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) - echo "I would create PostgreSQL table $2_$3 for user $2." + 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 ]" -- 2.20.1