summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2014-05-30 08:12:52 +0000
committerAurélien Bompard <aurelien@bompard.org>2014-05-30 08:13:00 +0000
commit960d87f8ca4f0b9d4b6026673359ec61a044cdab (patch)
tree884f0f48ac6f7133d022359d6dded2c07d1f18ee
parent2f9b7871ea992693f1d4e8fb936793b05c723c91 (diff)
downloadansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.tar.gz
ansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.tar.xz
ansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.zip
Mailman: create a HK DB for unit testing
-rw-r--r--playbooks/groups/mailman.yml2
-rwxr-xr-xroles/mailman/files/pg-give-rights.py23
2 files changed, 19 insertions, 6 deletions
diff --git a/playbooks/groups/mailman.yml b/playbooks/groups/mailman.yml
index ce631ac65..eef475021 100644
--- a/playbooks/groups/mailman.yml
+++ b/playbooks/groups/mailman.yml
@@ -99,6 +99,8 @@
- mailman
- hyperkitty
- kittystore
+ - name: test database creation
+ postgresql_db: name=test_hyperkitty owner=hyperkittyadmin encoding=UTF-8
# Real MM/HK-specific work
diff --git a/roles/mailman/files/pg-give-rights.py b/roles/mailman/files/pg-give-rights.py
index 08031515a..b1efc5b2a 100755
--- a/roles/mailman/files/pg-give-rights.py
+++ b/roles/mailman/files/pg-give-rights.py
@@ -14,32 +14,34 @@ import yaml
import psycopg2
-def give_rights(dbhost, dbuser, dbpasswd, dbname):
+def give_rights(dbhost, dbuser, dbpasswd, dbname, dbreguser=None):
+ if dbreguser is None:
+ dbreguser = dbname + "app"
conn = psycopg2.connect(host=dbhost, user=dbuser, password=dbpasswd,
database=dbname)
cur = conn.cursor()
# Database permissions
- dbrightsquery = "GRANT CONNECT,TEMP ON DATABASE %s TO %sapp;" % (dbname, dbname)
+ dbrightsquery = "GRANT CONNECT,TEMP ON DATABASE %s TO %s;" % (dbname, dbreguser)
print dbrightsquery
cur.execute(dbrightsquery)
# Table permissions
cur.execute("""
- SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON "' || relname || '" TO %sapp;'
+ SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON "' || relname || '" TO %s;'
FROM pg_class
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
WHERE nspname = 'public' AND relkind IN ('r', 'v');
- """ % dbname)
+ """ % dbreguser)
queries = [ q[0] for q in cur ]
for query in queries:
print query
cur.execute(query)
# Sequence permissions
cur.execute("""
- SELECT 'GRANT USAGE,SELECT,UPDATE ON ' || relname || ' TO %sapp;'
+ SELECT 'GRANT USAGE,SELECT,UPDATE ON ' || relname || ' TO %s;'
FROM pg_class
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
WHERE nspname = 'public' AND relkind = 'S';
- """ % dbname)
+ """ % dbreguser)
queries = [ q[0] for q in cur ]
for query in queries:
print query
@@ -80,5 +82,14 @@ def main():
settings_admin.DATABASES["default"]["NAME"],
)
+ # HyperKitty unit test database
+ give_rights(
+ settings_admin.DATABASES["default"]["HOST"],
+ settings_admin.DATABASES["default"]["USER"],
+ settings_admin.DATABASES["default"]["PASSWORD"],
+ "test_" + settings_admin.DATABASES["default"]["NAME"],
+ settings_admin.DATABASES["default"]["NAME"] + "app",
+ )
+
if __name__ == "__main__": main()