summaryrefslogtreecommitdiffstats
path: root/lib/modules/mysql_user2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/modules/mysql_user2')
-rw-r--r--lib/modules/mysql_user219
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/modules/mysql_user2 b/lib/modules/mysql_user2
index d10e3e0..4188e8c 100644
--- a/lib/modules/mysql_user2
+++ b/lib/modules/mysql_user2
@@ -151,17 +151,18 @@ def user_exists(cursor, user, host):
count = cursor.fetchone()
return count[0] > 0
-def load_plugin(cursor, plugin):
- cursor.execute("SELECT count(*) FROM information_schema.plugins WHERE name = %s", plugin)
+def load_plugin(cursor, plugin, soname):
+ cursor.execute("SELECT count(*) FROM information_schema.plugins WHERE plugin_name = %s", plugin)
count = cursor.fetchone()
if count[0] == 0:
- so = "%s.so" % plugin
- cursor.execute("INSTALL PLUGIN %s SONAME %s", (plugin, so))
+ if soname is None:
+ module.fail_json(msg="missing plugin 'soname' parameter")
+ cursor.execute("INSTALL PLUGIN %s SONAME %s", (plugin, soname))
-def user_add(cursor, user, host, password, new_priv, auth_plugin):
+def user_add(cursor, user, host, password, new_priv, auth_plugin, soname):
if password is None:
# Automatically loaded on first first use.
- load_plugin(cursor, auth_plugin)
+ load_plugin(cursor, auth_plugin, soname)
cursor.execute("CREATE USER %s@%s IDENTIFIED WITH %s", (user,host,auth_plugin))
else:
cursor.execute("CREATE USER %s@%s IDENTIFIED BY %s", (user,host,password))
@@ -422,7 +423,8 @@ def main():
priv=dict(default=None),
append_privs=dict(type="bool", default="no"),
check_implicit_admin=dict(default=False),
- auth_plugin=dict(default=None)
+ auth_plugin=dict(default=None),
+ soname=dict(default=None)
)
)
user = module.params["user"]
@@ -433,6 +435,7 @@ def main():
check_implicit_admin = module.params['check_implicit_admin']
append_privs = module.boolean(module.params["append_privs"])
auth_plugin = module.params['auth_plugin']
+ soname = module.params['soname']
if not mysqldb_found:
module.fail_json(msg="the python mysqldb module is required")
@@ -478,7 +481,7 @@ def main():
else:
if (password is None and auth_plugin is None) or (password is not None and auth_plugin is not None):
module.fail_json(msg="password xor auth_plugin is required when adding a user")
- changed = user_add(cursor, user, host, password, priv, auth_plugin)
+ changed = user_add(cursor, user, host, password, priv, auth_plugin, soname)
elif state == "absent":
if user_exists(cursor, user, host):
changed = user_delete(cursor, user, host)