diff --git a/plugins/mongodb/index.py b/plugins/mongodb/index.py index e5dccc2a3..d4d7e7877 100755 --- a/plugins/mongodb/index.py +++ b/plugins/mongodb/index.py @@ -119,15 +119,20 @@ def getArgs(): if args_len == 1: t = args[0].strip('{').strip('}') - t = t.split(':') + t = t.split(':', 1) tmp[t[0]] = t[1] elif args_len > 1: for i in range(len(args)): - t = args[i].split(':') + t = args[i].split(':', 1) tmp[t[0]] = t[1] return tmp +def checkArgs(data, ck=[]): + for i in range(len(ck)): + if not ck[i] in data: + return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!')) + return (True, mw.returnJson(True, 'ok')) def status(): data = mw.execShell( @@ -318,7 +323,21 @@ def getConfig(): def saveConfig(): d = getConfigData() - return mw.returnJson(True,'保持成功') + + args = getArgs() + data = checkArgs(args, ['bind_ip','port','data_path','log','pid_file_path']) + if not data[0]: + return data[1] + + d['net']['bindIp'] = args['bind_ip'] + d['net']['port'] = args['port'] + + d['storage']['dbPath'] = args['data_path'] + d['systemLog']['path'] = args['log'] + d['processManagement']['pidFilePath'] = args['pid_file_path'] + setConfig(d) + reload() + return mw.returnJson(True,'设置成功') def runInfo(): ''' @@ -572,6 +591,8 @@ if __name__ == "__main__": print(getConf()) elif func == 'get_config': print(getConfig()) + elif func == 'set_config': + print(saveConfig()) elif func == 'run_log': print(runLog()) elif func == 'test': diff --git a/plugins/mongodb/js/mongodb.js b/plugins/mongodb/js/mongodb.js index dacc9e6d4..0e6be2838 100644 --- a/plugins/mongodb/js/mongodb.js +++ b/plugins/mongodb/js/mongodb.js @@ -159,7 +159,17 @@ function mongoSetConfig() { } function mongoConfigSave(){ - mgPost('set_config', '','',function(data){ + var data = {}; + data['bind_ip'] = $('input[name="bind_ip"]').val(); + data['port'] = $('input[name="port"]').val(); + data['data_path'] = $('input[name="data_path"]').val(); + data['log'] = $('input[name="log"]').val(); + data['pid_file_path'] = $('input[name="pid_file_path"]').val(); + + mgPost('set_config', '',data,function(rdata){ + // console.log(rdata); + var rdata = $.parseJSON(rdata.data); + layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); }