From 64036bcfd3c8192f28daa18db0e6ed4a314d67d0 Mon Sep 17 00:00:00 2001 From: midoks Date: Tue, 16 Feb 2021 14:10:06 +0800 Subject: [PATCH] up --- plugins/mysql/index.py | 48 +++++++++++++++++++++++++++++++++++++++ plugins/mysql/js/mysql.js | 18 ++++++++++++--- 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/plugins/mysql/index.py b/plugins/mysql/index.py index 97272d1a4..a20384ddc 100755 --- a/plugins/mysql/index.py +++ b/plugins/mysql/index.py @@ -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': diff --git a/plugins/mysql/js/mysql.js b/plugins/mysql/js/mysql.js index 80cae440a..a4cd35aa6 100755 --- a/plugins/mysql/js/mysql.js +++ b/plugins/mysql/js/mysql.js @@ -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 = '
开始
'; var loadOpen = layer.open({ type: 1, - title: '全量同步', + title: '全量同步['+db+']', area: '500px', content:"
\
\ @@ -1627,7 +1638,8 @@ function masterOrSlaveConf(version=''){ list += ''; list += '' + rdata.data[i]['name'] +''; list += '' + - '修复' + + ''+(rdata.data[i]['slave']?'退出':'加入')+' | ' + + '修复' + ''; list += ''; } @@ -1645,7 +1657,7 @@ function masterOrSlaveConf(version=''){
\
\ 手动命令\ - 全量同步\ + 全量同步\
\
';