pull/109/head
midoks 4 years ago
parent 19bce946cc
commit 64036bcfd3
  1. 48
      plugins/mysql/index.py
  2. 18
      plugins/mysql/js/mysql.js

@ -1267,6 +1267,14 @@ def findBinlogDoDb():
return dodb
def findBinlogSlaveDoDb():
conf = getConf()
con = mw.readFile(conf)
rep = r"replicate-do-db\s*?=\s*?(.*)"
dodb = re.findall(rep, con, re.M)
return dodb
def getMasterDbList(version=''):
args = getArgs()
page = 1
@ -1288,6 +1296,8 @@ def getMasterDbList(version=''):
dodb = findBinlogDoDb()
data['dodb'] = dodb
slave_dodb = findBinlogSlaveDoDb()
if not search == '':
condition = "name like '%" + search + "%'"
field = 'id,pid,name,username,password,accept,ps,addtime'
@ -1301,6 +1311,11 @@ def getMasterDbList(version=''):
else:
clist[x]['master'] = 0
if clist[x]['name'] in slave_dodb:
clist[x]['slave'] = 1
else:
clist[x]['slave'] = 0
_page = {}
_page['count'] = count
_page['p'] = page
@ -1343,6 +1358,37 @@ def setDbMaster(version):
return mw.returnJson(True, '设置成功', [args, dodb])
def setDbSlave(version):
args = getArgs()
data = checkArgs(args, ['name'])
if not data[0]:
return data[1]
conf = getConf()
con = mw.readFile(conf)
rep = r"(replicate-do-db\s*?=\s*?(.*))"
dodb = re.findall(rep, con, re.M)
isHas = False
for x in xrange(0, len(dodb)):
if dodb[x][1] == args['name']:
isHas = True
con = con.replace(dodb[x][0] + "\n", '')
mw.writeFile(conf, con)
if not isHas:
prefix = '#replicate-do-db'
con = con.replace(
prefix, prefix + "\nreplicate-do-db=" + args['name'])
mw.writeFile(conf, con)
restart(version)
time.sleep(4)
return mw.returnJson(True, '设置成功', [args, dodb])
def getMasterStatus(version=''):
conf = getConf()
con = mw.readFile(conf)
@ -1833,6 +1879,8 @@ if __name__ == "__main__":
print(setMasterStatus(version))
elif func == 'set_db_master':
print(setDbMaster(version))
elif func == 'set_db_slave':
print(setDbSlave(version))
elif func == 'get_master_rep_slave_list':
print(getMasterRepSlaveList(version))
elif func == 'add_master_rep_slave_user':

@ -1217,6 +1217,17 @@ function setDbMaster(name){
}
function setDbSlave(name){
myPost('set_db_slave', {name:name}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
masterOrSlaveConf();
}, 2000);
});
}
function addMasterRepSlaveUser(){
@ -1449,7 +1460,7 @@ function getFullSyncStatus(db){
var btn = '<div class="table_toolbar"><span class="sync btn btn-default btn-sm" id="begin_full_sync" title="">开始</span></div>';
var loadOpen = layer.open({
type: 1,
title: '全量同步',
title: '全量同步['+db+']',
area: '500px',
content:"<div class='bt-form pd20 c6'>\
<div class='divtable mtb10'>\
@ -1627,7 +1638,8 @@ function masterOrSlaveConf(version=''){
list += '<tr>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="alert(\'dev\');" title="修复">修复</a>' +
'<a href="javascript:;" class="btlink" onclick="setDbSlave(\''+rdata.data[i]['name']+'\')" title="加入|退出">'+(rdata.data[i]['slave']?'退出':'加入')+'</a> | ' +
'<a href="javascript:;" class="btlink" onclick="getFullSyncStatus(\''+rdata.data[i]['name']+'\')" title="修复">修复</a>' +
'</td>';
list += '</tr>';
}
@ -1645,7 +1657,7 @@ function masterOrSlaveConf(version=''){
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
<div class="table_toolbar">\
<span class="sync btn btn-default btn-sm" onclick="handlerRun()" title="免登录设置后,需要手动执行一下!">手动命令</span>\
<span class="sync btn btn-default btn-sm" onclick="getFullSyncStatus(\'test\')" title="全量同步">全量同步</span>\
<span class="sync btn btn-default btn-sm" onclick="getFullSyncStatus(\'ALL\')" title="全量同步">全量同步</span>\
</div>\
</div>';

Loading…
Cancel
Save