summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/database/vertica/vertica_role.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/database/vertica/vertica_role.py')
-rw-r--r--lib/ansible/modules/database/vertica/vertica_role.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/ansible/modules/database/vertica/vertica_role.py b/lib/ansible/modules/database/vertica/vertica_role.py
index 33dbb7ad3c..2385b9f44e 100644
--- a/lib/ansible/modules/database/vertica/vertica_role.py
+++ b/lib/ansible/modules/database/vertica/vertica_role.py
@@ -98,11 +98,13 @@ from ansible.module_utils._text import to_native
class NotSupportedError(Exception):
pass
+
class CannotDropError(Exception):
pass
# module specific functions
+
def get_role_facts(cursor, role=''):
facts = {}
cursor.execute("""
@@ -123,6 +125,7 @@ def get_role_facts(cursor, role=''):
facts[role_key]['assigned_roles'] = row.assigned_roles.replace(' ', '').split(',')
return facts
+
def update_roles(role_facts, cursor, role,
existing, required):
for assigned_role in set(existing) - set(required):
@@ -130,6 +133,7 @@ def update_roles(role_facts, cursor, role,
for assigned_role in set(required) - set(existing):
cursor.execute("grant {0} to {1}".format(assigned_role, role))
+
def check(role_facts, role, assigned_roles):
role_key = role.lower()
if role_key not in role_facts:
@@ -138,6 +142,7 @@ def check(role_facts, role, assigned_roles):
return False
return True
+
def present(role_facts, cursor, role, assigned_roles):
role_key = role.lower()
if role_key not in role_facts:
@@ -147,19 +152,20 @@ def present(role_facts, cursor, role, assigned_roles):
return True
else:
changed = False
- if assigned_roles and (sorted(assigned_roles) != sorted(role_facts[role_key]['assigned_roles'])):
+ if assigned_roles and (sorted(assigned_roles) != sorted(role_facts[role_key]['assigned_roles'])):
update_roles(role_facts, cursor, role,
- role_facts[role_key]['assigned_roles'], assigned_roles)
+ role_facts[role_key]['assigned_roles'], assigned_roles)
changed = True
if changed:
role_facts.update(get_role_facts(cursor, role))
return changed
+
def absent(role_facts, cursor, role, assigned_roles):
role_key = role.lower()
if role_key in role_facts:
update_roles(role_facts, cursor, role,
- role_facts[role_key]['assigned_roles'], [])
+ role_facts[role_key]['assigned_roles'], [])
cursor.execute("drop role {0} cascade".format(role_facts[role_key]['name']))
del role_facts[role_key]
return True
@@ -168,6 +174,7 @@ def absent(role_facts, cursor, role, assigned_roles):
# module logic
+
def main():
module = AnsibleModule(
@@ -180,7 +187,7 @@ def main():
port=dict(default='5433'),
login_user=dict(default='dbadmin'),
login_password=dict(default=None, no_log=True),
- ), supports_check_mode = True)
+ ), supports_check_mode=True)
if not pyodbc_found:
module.fail_json(msg="The python pyodbc module is required.")
@@ -206,8 +213,8 @@ def main():
"User={3};"
"Password={4};"
"ConnectionLoadBalance={5}"
- ).format(module.params['cluster'], module.params['port'], db,
- module.params['login_user'], module.params['login_password'], 'true')
+ ).format(module.params['cluster'], module.params['port'], db,
+ module.params['login_user'], module.params['login_password'], 'true')
db_conn = pyodbc.connect(dsn, autocommit=True)
cursor = db_conn.cursor()
except Exception as e: