def do_editdnsserv(): s = request.environ.get('beaker.session') dnsrelay = request.forms.get("dnsrelay") dnsproxy = request.forms.get("dnsproxy") dnsrule = request.forms.get("dnsrule") dnslist = request.forms.get("dnslist").replace('\r\n', '\n').strip() idata = dict() idata['dnsrelay'] = dnsrelay idata['dnsproxy'] = dnsproxy idata['dnsrule'] = dnsrule idata['dnslist'] = dnslist idata['dnsport'] = 53 dnsstatus = cmds.servchk(idata.get('dnsport')) idata['dnsstatus'] = dnsstatus sql = " update sysattr set value=%s where attr='dnsconf' " iidata = json.dumps(idata) result = writeDb(sql, (iidata, )) if result == True: writeDNSconf(action='uptconf') writeROUTEconf(action='uptconf') writeUTMconf(action='uptconf') msg = {'color': 'green', 'message': '配置保存成功'} return (template('editdnsserv', session=s, msg=msg, info=idata)) else: msg = {'color': 'red', 'message': '配置保存失败'} sql = " select value from sysattr where attr='dnsconf' " idata = readDb(sql, ) return (template('editdnsserv', session=s, msg=msg, info=idata))
def do_editdnsserv(): s = request.environ.get('beaker.session') dnsrelay = request.forms.get("dnsrelay") dnsproxy = request.forms.get("dnsproxy") dnsrule = request.forms.get("dnsrule") dnslist = request.forms.get("dnslist").replace('\r\n','\n').strip() idata = dict() idata['dnsrelay']=dnsrelay idata['dnsproxy']=dnsproxy idata['dnsrule']=dnsrule idata['dnslist']=dnslist idata['dnsport']=53 dnsstatus=cmds.servchk(idata.get('dnsport')) idata['dnsstatus']=dnsstatus sql = " update sysattr set value=%s where attr='dnsconf' " iidata=json.dumps(idata) result = writeDb(sql,(iidata,)) if result == True : writeDNSconf(action='uptconf') writeROUTEconf(action='uptconf') writeUTMconf(action='uptconf') msg = {'color':'green','message':'配置保存成功'} return(template('editdnsserv',session=s,msg=msg,info=idata)) else : msg = {'color':'red','message':'配置保存失败'} sql = " select value from sysattr where attr='dnsconf' " idata = readDb(sql,) return(template('editdnsserv',session=s,msg=msg,info=idata))
def do_addroute(): s = request.environ.get('beaker.session') rttype = request.forms.get("rttype") destaddr = request.forms.get("ipaddr") netmask = request.forms.get("netmask") gateway = request.forms.get("gateway") gwiface = request.forms.get("gwiface") # 格式判断 if netmod.checkip(destaddr) == False or netmod.checkmask(netmask) == False or netmod.checkip(gateway) == False : msg = {'color':'red','message':u'地址不合法,添加失败'} return(template('staticroute',msg=msg,session=s)) # 系统判断 if gwiface == 'auto': resultA = cmds.getdictrst('route add -net %s netmask %s gw %s' % (destaddr,netmask,gateway)) else : resultA = cmds.getdictrst('route add -net %s netmask %s gw %s dev %s' % (destaddr,netmask,gateway,gwiface)) if resultA.get('status') != 0 : msg = {'color':'red','message':u'目标不可达或其他错误,添加失败'} return(template('staticroute',msg=msg,session=s)) sql = "INSERT INTO sysroute(type,dest,netmask,gateway,iface,fromtype) VALUES(%s,%s,%s,%s,%s,%s)" data = ('net',destaddr,netmask,gateway,gwiface,1) result = writeDb(sql,data) if result == True: writeROUTEconf(action='uptconf') writeUTMconf(action='uptconf') msg = {'color':'green','message':u'添加成功'} else: msg = {'color':'red','message':u'添加失败'} return(template('staticroute',msg=msg,session=s))
def do_editadvroute(id): s = request.environ.get('beaker.session') rulename = request.forms.get("rulename") srcaddr = request.forms.get("srcaddr").replace('\r\n','\n').strip() destaddr = request.forms.get("destaddr").replace('\r\n','\n').strip() pronum = request.forms.get("pronum") outdev = request.forms.get("ifacename") alladdr=srcaddr.split('\n')+destaddr.split('\n') #提交判断 if outdev == '' or rulename == '': msg = {'color':'red','message':u'描述或出口未填写,添加失败'} return(template('advroute',msg=msg,session=s)) if int(pronum) <0 or int(pronum) >32765 : msg = {'color':'red','message':u'优先级值填写错误,添加失败'} return(template('advroute',msg=msg,session=s)) for ipmask in alladdr : if netmod.checkipmask(ipmask) == False and ipmask != '': msg = {'color':'red','message':u'地址格式错误(%s),添加失败' % ipmask} return(template('advroute',msg=msg,session=s)) cmdDict=cmds.getdictrst('ip rule add prio %s fwmark 1000%s dev %s' % (pronum,id,outdev)) if cmdDict.get('status') == 0: sql = """ UPDATE sysrouteadv SET rulename=%s,srcaddr=%s,destaddr=%s,pronum=%s,iface=%s WHERE id=%s """ data = (rulename,srcaddr,destaddr,int(pronum),outdev,id) result = writeDb(sql,data) if result : writeROUTEconf(action='uptconf') writeUTMconf(action='uptconf') msg = {'color':'green','message':u'更新成功'} else : msg = {'color':'red','message':u'更新失败'} else: msg = {'color':'red','message':u'系统规则生成异常,添加失败'} return(template('advroute',msg=msg,session=s))
def deliface(stype,id): s = request.environ.get('beaker.session') if stype == 'sys' or stype == 'static' : sqlquery = " select dest,netmask,gateway FROM sysroute WHERE id=%s " sql = " DELETE FROM sysroute WHERE id=%s " else: sqlquery = " select srcaddr,destaddr,pronum,iface as outdev FROM sysrouteadv WHERE id=%s " sql = " DELETE FROM sysrouteadv WHERE id=%s " resultA = readDb(sqlquery,(id,)) # 判断删除入口并返回到指定界面 if stype == 'sys': tpl = 'routeconf' elif stype == 'static': tpl = 'staticroute' elif stype == 'adv': tpl = 'advroute' # 判断提交的指令 result = writeDb(sql,(id,)) if result == True: if stype == 'adv': try: if resultA[0].get('srcaddr') == '' and resultA[0].get('destaddr') != '': cmds.getdictrst('ip rule del prio %s to %s' % (resultA[0].get('pronum'),resultA[0].get('destaddr'))) elif resultA[0].get('destaddr') == '' and resultA[0].get('srcaddr') != '': cmds.getdictrst('ip rule del prio %s from %s dev %s' % (resultA[0].get('pronum'),resultA[0].get('srcaddr'))) elif resultA[0].get('destaddr') == '' and resultA[0].get('srcaddr') == '': cmds.getdictrst('ip rule del prio %s dev %s' % (resultA[0].get('pronum'),resultA[0].get('outdev'))) else: cmds.getdictrst('ip rule del prio %s from %s to %s' % (resultA[0].get('pronum'),resultA[0].get('srcaddr'),resultA[0].get('destaddr'))) msg = {'color':'green','message':u'删除成功'} return template(tpl,session=s,msg=msg) except: msg = {'color':'green','message':u'删除成功'} return template(tpl,session=s,msg=msg) else: cmds.getdictrst('route del -net %s netmask %s gw %s' % (resultA[0].get('dest'),resultA[0].get('netmask'),resultA[0].get('gateway'))) writeROUTEconf(action='uptconf') writeUTMconf(action='uptconf') msg = {'color':'green','message':u'删除成功'} return template(tpl,session=s,msg=msg) else: msg = {'color':'red','message':u'删除失败'} return template(tpl,session=s,msg=msg)