From 3e9771f54401d707b70408e32a5cfb69948d8c71 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Tue, 25 Nov 2014 00:44:18 -0800 Subject: [PATCH] Normalize privs and flags to uppercase so comparisons against allowed names will work --- .../modules/database/postgresql/postgresql_privs.py | 2 +- .../modules/database/postgresql/postgresql_user.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ansible/modules/database/postgresql/postgresql_privs.py b/lib/ansible/modules/database/postgresql/postgresql_privs.py index 8fa8696f103..55821756246 100644 --- a/lib/ansible/modules/database/postgresql/postgresql_privs.py +++ b/lib/ansible/modules/database/postgresql/postgresql_privs.py @@ -563,7 +563,7 @@ def main(): try: # privs if p.privs: - privs = frozenset(p.privs.split(',')) + privs = frozenset(pr.upper() for pr in p.privs.split(',')) if not privs.issubset(VALID_PRIVS): module.fail_json(msg='Invalid privileges specified: %s' % privs.difference(VALID_PRIVS)) else: diff --git a/lib/ansible/modules/database/postgresql/postgresql_user.py b/lib/ansible/modules/database/postgresql/postgresql_user.py index ecc1ffb607b..0823bd7cd90 100644 --- a/lib/ansible/modules/database/postgresql/postgresql_user.py +++ b/lib/ansible/modules/database/postgresql/postgresql_user.py @@ -155,7 +155,7 @@ else: postgresqldb_found = True _flags = ('SUPERUSER', 'CREATEROLE', 'CREATEUSER', 'CREATEDB', 'INHERIT', 'LOGIN', 'REPLICATION') -VALID_FLAGS = frozenset(itertools.chain(_flags, ('NO%s' %f for f in _flags))) +VALID_FLAGS = frozenset(itertools.chain(_flags, ('NO%s' % f for f in _flags))) VALID_PRIVS = dict(table=frozenset(('SELECT', 'INSERT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER', 'ALL')), database=frozenset(('CREATE', 'CONNECT', 'TEMPORARY', 'TEMP', 'ALL')), @@ -399,9 +399,9 @@ def parse_role_attrs(role_attr_flags): """ if ',' in role_attr_flags: - flag_set = frozenset(role_attr_flags.split(",")) + flag_set = frozenset(r.upper() for r in role_attr_flags.split(",")) else: - flag_set = frozenset(role_attr_flags) + flag_set = frozenset(role_attr_flags.upper()) if not flag_set.is_subset(VALID_FLAGS): raise InvalidFlagsError('Invalid role_attr_flags specified: %s' % ' '.join(flag_set.difference(VALID_FLAGS))) @@ -431,11 +431,11 @@ def parse_privs(privs, db): if ':' not in token: type_ = 'database' name = db - priv_set = frozenset(x.strip() for x in token.split(',')) + priv_set = frozenset(x.strip().upper() for x in token.split(',')) else: type_ = 'table' name, privileges = token.split(':', 1) - priv_set = frozenset(x.strip() for x in privileges.split(',')) + priv_set = frozenset(x.strip().upper() for x in privileges.split(',')) if not priv_set.issubset(VALID_PRIVS[type_]): raise InvalidPrivsError('Invalid privs specified for %s: %s' %