From a65965e38ee569f765baa4551dc21b923754f27a Mon Sep 17 00:00:00 2001 From: Mischa ter Smitten Date: Tue, 15 Sep 2015 12:57:37 +0200 Subject: [PATCH] Add more modes to the mysql_replication module Fixes #979 --- database/mysql/mysql_replication.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/database/mysql/mysql_replication.py b/database/mysql/mysql_replication.py index f5d2d5cf630..a3bd63922ea 100644 --- a/database/mysql/mysql_replication.py +++ b/database/mysql/mysql_replication.py @@ -42,6 +42,8 @@ options: - changemaster - stopslave - startslave + - resetslave + - resetslaveall default: getslave login_user: description: @@ -165,6 +167,24 @@ def stop_slave(cursor): return stopped +def reset_slave(cursor): + try: + cursor.execute("RESET SLAVE") + reset = True + except: + reset = False + return reset + + +def reset_slave_all(cursor): + try: + cursor.execute("RESET SLAVE ALL") + reset = True + except: + reset = False + return reset + + def start_slave(cursor): try: cursor.execute("START SLAVE") @@ -400,6 +420,18 @@ def main(): module.exit_json(msg="Slave stopped", changed=True) else: module.exit_json(msg="Slave already stopped", changed=False) + elif mode in "resetslave": + reset = reset_slave(cursor) + if reset is True: + module.exit_json(msg="Slave reset", changed=True) + else: + module.exit_json(msg="Slave already reset", changed=False) + elif mode in "resetslaveall": + reset = reset_slave_all(cursor) + if reset is True: + module.exit_json(msg="Slave reset", changed=True) + else: + module.exit_json(msg="Slave already reset", changed=False) # import module snippets from ansible.module_utils.basic import *