pull/561/head
Mr Chen 1 year ago
parent 26de973b82
commit 110e9b501e
  1. 21
      plugins/mongodb/index.py
  2. 16
      plugins/mongodb/js/mongodb.js

@ -1002,13 +1002,18 @@ def replSetName():
def replSetNode(): def replSetNode():
args = getArgs() args = getArgs()
data = checkArgs(args, ['node']) data = checkArgs(args, ['node','priority','arbiterOnly','votes','idx'])
if not data[0]: if not data[0]:
return data[1] return data[1]
c = getReplConfigData() c = getReplConfigData()
nodes = c['nodes'] nodes = c['nodes']
add_node = args['node'].strip() add_node = args['node'].strip()
idx = int(args['idx'])
priority = -1 priority = -1
if 'priority' in args: if 'priority' in args:
@ -1028,6 +1033,18 @@ def replSetNode():
votes = args['votes'] votes = args['votes']
votes = int(votes) votes = int(votes)
# 编辑状态
if idx>-1:
for i in range(len(nodes)):
if i == idx:
nodes[i]['host'] = add_node
nodes[i]['priority'] = priority
nodes[i]['votes'] = votes
nodes[i]['arbiterOnly'] = arbiterOnly
c['nodes'] = nodes
setReplConfigData(c)
return mw.returnJson(True, '编辑成功!')
is_have = False is_have = False
for x in nodes: for x in nodes:
if x['host'] == add_node: if x['host'] == add_node:
@ -1045,7 +1062,7 @@ def replSetNode():
nodes.append(t) nodes.append(t)
c['nodes'] = nodes c['nodes'] = nodes
setReplConfigData(c) setReplConfigData(c)
return mw.returnJson(True, '设置成功!') return mw.returnJson(True, '添加成功!')
def delReplNode(): def delReplNode():

@ -252,7 +252,7 @@ function mongoReplCfgReplSetName(){
}); });
} }
function mongoReplCfgNodes(host, priority, votes, arbiterOnly){ function mongoReplCfgNodes(idx,host, priority, votes, arbiterOnly){
if (typeof(host) == 'undefined'){ if (typeof(host) == 'undefined'){
host = '127.0.0.1:27017'; host = '127.0.0.1:27017';
@ -270,6 +270,11 @@ function mongoReplCfgNodes(host, priority, votes, arbiterOnly){
arbiterOnly = '1'; arbiterOnly = '1';
} }
var title_name = '添加节点';
if (idx>-1){
title_name = '编辑节点';
}
layer.open({ layer.open({
type: 1, type: 1,
area: '500px', area: '500px',
@ -278,7 +283,7 @@ function mongoReplCfgNodes(host, priority, votes, arbiterOnly){
shift: 5, shift: 5,
shadeClose: true, shadeClose: true,
btn:["提交","关闭"], btn:["提交","关闭"],
content: "<form class='bt-form pd20' id='mod_pwd'>\ content: "<form class='bt-form pd20'>\
<div class='line'>\ <div class='line'>\
<span class='tname'>节点服务:</span>\ <span class='tname'>节点服务:</span>\
<div class='info-r'>\ <div class='info-r'>\
@ -316,6 +321,7 @@ function mongoReplCfgNodes(host, priority, votes, arbiterOnly){
data['priority'] = $('input[name=priority]').val(); data['priority'] = $('input[name=priority]').val();
data['votes'] = $('input[name=votes]').val(); data['votes'] = $('input[name=votes]').val();
data['arbiterOnly'] = $('select[name=arbiterOnly]').val(); data['arbiterOnly'] = $('select[name=arbiterOnly]').val();
data['idx'] = idx;
mgPost('repl_set_node', '',data, function(data){ mgPost('repl_set_node', '',data, function(data){
var rdata = $.parseJSON(data.data); var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){ showMsg(rdata.msg,function(){
@ -323,7 +329,7 @@ function mongoReplCfgNodes(host, priority, votes, arbiterOnly){
layer.close(index); layer.close(index);
mongoReplCfgInit(); mongoReplCfgInit();
} }
},{icon: rdata.status ? 1 : 2},5000); },{icon: rdata.status ? 1 : 2},rdata['status']?2000:10000);
}); });
} }
}); });
@ -356,7 +362,7 @@ function mongoReplCfgInit(){
} }
var op = '<a href="javascript:;" class="btlink" onclick="mongoReplCfgDelNode(\''+t['host']+'\');" title="删除">删除</a>'; var op = '<a href="javascript:;" class="btlink" onclick="mongoReplCfgDelNode(\''+t['host']+'\');" title="删除">删除</a>';
op += ' | <a href="javascript:;" class="btlink" onclick="mongoReplCfgNodes(\''+t['host']+'\',\''+t['priority']+'\',\''+t['votes']+'\',\''+t['arbiterOnly']+'\');" title="编辑">编辑</a>'; op += ' | <a href="javascript:;" class="btlink" onclick="mongoReplCfgNodes(\''+i+'\',\''+t['host']+'\',\''+t['priority']+'\',\''+t['votes']+'\',\''+t['arbiterOnly']+'\');" title="编辑">编辑</a>';
node += '<tr><td>'+t['host']+'</td><td>'+t['priority']+'</td><td>'+t['votes']+'</td><td>'+arbiterOnly+'</td><td>'+op+'</td></tr>'; node += '<tr><td>'+t['host']+'</td><td>'+t['priority']+'</td><td>'+t['votes']+'</td><td>'+arbiterOnly+'</td><td>'+op+'</td></tr>';
} }
$('#repl_node tbody').html(node); $('#repl_node tbody').html(node);
@ -407,7 +413,7 @@ function mongoReplCfg(){
return false; return false;
}, },
btn3:function(){ btn3:function(){
mongoReplCfgNodes(); mongoReplCfgNodes(-1);
return false; return false;
}, },
btn4:function(){ btn4:function(){

Loading…
Cancel
Save