return a proper result set for getmaster/getslave (#2595)

* return a proper result set for getmaster/getslave

when not on a master/slave.
This allows for a cleaner error handling.

* A more uniform return of result keys for getmaster/slave
This commit is contained in:
Serge van Ginderachter 2016-08-04 17:27:39 +02:00 committed by Matt Clay
parent 121ef13e47
commit c1fd6c6388

View file

@ -258,18 +258,20 @@ def main():
module.fail_json(msg="unable to find %s. Exception message: %s" % (config_file, e))
if mode in "getmaster":
masterstatus = get_master_status(cursor)
try:
module.exit_json( **masterstatus )
except TypeError:
module.fail_json(msg="Server is not configured as mysql master")
status = get_master_status(cursor)
if not isinstance(status, dict):
status = dict(Is_Master=False, msg="Server is not configured as mysql master")
else:
status['Is_Master'] = True
module.exit_json(**status)
elif mode in "getslave":
slavestatus = get_slave_status(cursor)
try:
module.exit_json( **slavestatus )
except TypeError, e:
module.fail_json(msg="Server is not configured as mysql slave. ERROR: %s" % e)
status = get_slave_status(cursor)
if not isinstance(status, dict):
status = dict(Is_Slave=False, msg="Server is not configured as mysql slave")
else:
status['Is_Slave'] = True
module.exit_json(**status)
elif mode in "changemaster":
chm=[]