diff options
author | Aurélien Bompard <aurelien@bompard.org> | 2014-05-30 08:12:52 +0000 |
---|---|---|
committer | Aurélien Bompard <aurelien@bompard.org> | 2014-05-30 08:13:00 +0000 |
commit | 960d87f8ca4f0b9d4b6026673359ec61a044cdab (patch) | |
tree | 884f0f48ac6f7133d022359d6dded2c07d1f18ee | |
parent | 2f9b7871ea992693f1d4e8fb936793b05c723c91 (diff) | |
download | ansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.tar.gz ansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.tar.xz ansible-960d87f8ca4f0b9d4b6026673359ec61a044cdab.zip |
Mailman: create a HK DB for unit testing
-rw-r--r-- | playbooks/groups/mailman.yml | 2 | ||||
-rwxr-xr-x | roles/mailman/files/pg-give-rights.py | 23 |
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() |