Merge pull request #4342 from pileofrogs/devel
mysql_replication switch to DictCursor for compatibility with more mysql server versions
This commit is contained in:
commit
e4036b1bfc
1 changed files with 6 additions and 49 deletions
|
@ -294,67 +294,24 @@ def main():
|
|||
db_connection = MySQLdb.connect(host=module.params["login_host"], unix_socket=module.params["login_unix_socket"], user=login_user, passwd=login_password, db="mysql")
|
||||
else:
|
||||
db_connection = MySQLdb.connect(host=module.params["login_host"], user=login_user, passwd=login_password, db="mysql")
|
||||
cursor = db_connection.cursor()
|
||||
except Exception, e:
|
||||
module.fail_json(msg="unable to connect to database, check login_user and login_password are correct or ~/.my.cnf has the credentials")
|
||||
try:
|
||||
cursor = db_connection.cursor(cursorclass=MySQLdb.cursors.DictCursor)
|
||||
except Exception, e:
|
||||
module.fail_json(msg="Trouble getting DictCursor from db_connection: %s" % e)
|
||||
|
||||
if mode in "getmaster":
|
||||
masterstatus = get_master_status(cursor)
|
||||
try:
|
||||
module.exit_json(
|
||||
File=masterstatus[0],
|
||||
Position=masterstatus[1],
|
||||
Binlog_Do_DB=masterstatus[2],
|
||||
Binlog_Ignore_DB=masterstatus[3]
|
||||
)
|
||||
module.exit_json( **masterstatus )
|
||||
except TypeError:
|
||||
module.fail_json(msg="Server is not configured as mysql master")
|
||||
|
||||
elif mode in "getslave":
|
||||
slavestatus = get_slave_status(cursor)
|
||||
try:
|
||||
module.exit_json(
|
||||
Slave_IO_State=slavestatus[0],
|
||||
Master_Host=slavestatus[1],
|
||||
Master_User=slavestatus[2],
|
||||
Master_Port=slavestatus[3],
|
||||
Connect_Retry=slavestatus[4],
|
||||
Master_Log_File=slavestatus[5],
|
||||
Read_Master_Log_Pos=slavestatus[6],
|
||||
Relay_Log_File=slavestatus[7],
|
||||
Relay_Log_Pos=slavestatus[8],
|
||||
Relay_Master_Log_File=slavestatus[9],
|
||||
Slave_IO_Running=slavestatus[10],
|
||||
Slave_SQL_Running=slavestatus[11],
|
||||
Replicate_Do_DB=slavestatus[12],
|
||||
Replicate_Ignore_DB=slavestatus[13],
|
||||
Replicate_Do_Table=slavestatus[14],
|
||||
Replicate_Ignore_Table=slavestatus[15],
|
||||
Replicate_Wild_Do_Table=slavestatus[16],
|
||||
Replicate_Wild_Ignore_Table=slavestatus[17],
|
||||
Last_Errno=slavestatus[18],
|
||||
Last_Error=slavestatus[19],
|
||||
Skip_Counter=slavestatus[20],
|
||||
Exec_Master_Log_Pos=slavestatus[21],
|
||||
Relay_Log_Space=slavestatus[22],
|
||||
Until_Condition=slavestatus[23],
|
||||
Until_Log_File=slavestatus[24],
|
||||
Until_Log_Pos=slavestatus[25],
|
||||
Master_SSL_Allowed=slavestatus[26],
|
||||
Master_SSL_CA_File=slavestatus[27],
|
||||
Master_SSL_CA_Path=slavestatus[28],
|
||||
Master_SSL_Cert=slavestatus[29],
|
||||
Master_SSL_Cipher=slavestatus[30],
|
||||
Master_SSL_Key=slavestatus[31],
|
||||
Seconds_Behind_Master=slavestatus[32],
|
||||
Master_SSL_Verify_Server_Cert=slavestatus[33],
|
||||
Last_IO_Errno=slavestatus[34],
|
||||
Last_IO_Error=slavestatus[35],
|
||||
Last_SQL_Errno=slavestatus[36],
|
||||
Last_SQL_Error=slavestatus[37],
|
||||
Replicate_Ignore_Server_Ids=slavestatus[38],
|
||||
Master_Server_Id=slavestatus[39]
|
||||
)
|
||||
module.exit_json( **slavestatus )
|
||||
except TypeError:
|
||||
module.fail_json(msg="Server is not configured as mysql slave")
|
||||
|
||||
|
|
Loading…
Reference in a new issue