Commit | Line | Data |
---|---|---|
d541c618 AC |
1 | #!/bin/sh -e |
2 | ||
3 | case $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 | ;; | |
40 | esac |