SQL Kerberos principal changes; switching some uses of OS.Path.joinDirFile to OS...
[hcoop/domtool2.git] / src / plugins / domtool-postgres
CommitLineData
d541c618
AC
1#!/bin/sh -e
2
3case $1 in
4 adduser)
a215ab4e
AC
5 USERNAME=$2
6 DIR=/afs/hcoop.net/common/databases/$USERNAME/postgres
7
8 kinit -k -t /etc/keytabs/root.admin.keytab root/admin
9 aklog
10
11 if ! vos examine db.$USERNAME >/dev/null 2>/dev/null; then
12 vos create -server afs -partition a -name db.$USERNAME -maxquota 5000
13 fs mkmount -dir /afs/.hcoop.net/common/.databases/$USERNAME -vol db.$USERNAME -rw
14 vos release common.databases
4cbaa5a7
AC
15 fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:postgres l
16 fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:mysql l
a215ab4e
AC
17 fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:backup rl
18 fi
19
20 if ! [ -d $DIR ]; then
21 sudo -u postgres psql -c "CREATE USER $USERNAME" template1
22 mkdir -p $DIR
23 chown postgres:postgres $DIR
4cbaa5a7 24 fs setacl -dir $DIR -acl system:postgres write
a215ab4e
AC
25 fs setacl -dir $DIR -acl system:backup rl
26
27 sudo -u postgres psql -c "CREATE TABLESPACE user_$USERNAME OWNER $USERNAME LOCATION '$DIR'" template1
28 fi
d541c618
AC
29 ;;
30 createdb)
a215ab4e
AC
31 USERNAME=$2
32 DBNAME_BASE=$3
33 DBNAME="${USERNAME}_${DBNAME_BASE}"
34
35 sudo -u postgres createdb -O $USERNAME -D user_$USERNAME $DBNAME
d541c618
AC
36 ;;
37 *)
38 echo "Usage: domtool-postgres [adduser <user> | createdb <user> <table>]"
39 ;;
40esac