def Change(self, region, host_content):
repluser, replpassword, ssl_ca, ssl_cert, ssl_key = GetConf().GetReplAcount(rg=True)
master_host, master_port = host_content['host'], int(host_content['port'])
if host_content['ssl']:
sql = 'change master to master_host="%s",master_port=%d,master_user="%s",master_password="%s",master_ssl=1,' \
'master_ssl_ca="%s",' \
'master_ssl_cert="%s",master_ssl_key="%s",master_auto_position=1 for channel "%s" ' % (
master_host, master_port,
repluser, replpassword, ssl_ca,
ssl_cert, ssl_key, region)
else:
sql = 'change master to master_host="%s",master_port=%d,master_user="%s",master_password="%s",' \
'master_auto_position=1 for channel "%s" ' % (master_host, master_port,
repluser, replpassword, region)
with closing(self.conn.cursor()) as cur:
try:
cur.execute('stop slave for channel "%s"' % region)
cur.execute('reset slave for channel "%s"' % region)
except:
pass
try:
cur.execute(sql)
self.__set_group_region(region,host_content)
except MySQLdb.Warning,e:
logging.error(traceback.format_exc())
cur.execute('start slave;')
self.__set_group_region(region, host_content)
except MySQLdb.Error,e:
logging.error(traceback.format_exc())
logging.error('addition task for %s failed,master to %s in region %s ! ! !' % (self.host, host_content['host'], region))
return False
return True
评论列表
文章目录