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_editrecord(id): s = request.environ.get('beaker.session') dnstype = request.forms.get("dnstype") domain = request.forms.get("domain") record = request.forms.get("record") pronum = request.forms.get("pronum") data = (dnstype,domain,record,pronum) if dnstype == 'NULL' : msg = {'color':'red','message':'请选择记录类型'} return(template('adddnsconf',session=s,msg=msg,info={})) if netmod.is_domain(domain) == False : msg = {'color':'red','message':'域名名称格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'MX' and netmod.is_domain(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'CNAME' and netmod.is_domain(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'A' and netmod.checkip(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) sql = "update dnsrecord set dnstype=%s,domain=%s,data=%s,pronum=%s where id=%s" data = (dnstype,domain,record,pronum,id) result = writeDb(sql,data) if result == True: writeDNSconf(action='uptconf') msg = {'color':'green','message':'更新成功'} return(template('dnsservconf',session=s,msg=msg,info={})) else : msg = {'color':'red','message':'更新失败'} return(template('dnsservconf',session=s,msg=msg,info={}))
def do_addroute(): s = request.environ.get('beaker.session') dnstype = request.forms.get("dnstype") domain = request.forms.get("domain") record = request.forms.get("record") pronum = request.forms.get("pronum") data = (dnstype,domain,record,pronum) if dnstype == 'NULL' : msg = {'color':'red','message':'请选择记录类型'} return(template('adddnsconf',session=s,msg=msg,info={})) if netmod.is_domain(domain) == False : msg = {'color':'red','message':'域名名称格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'MX' and netmod.is_domain(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'CNAME' and netmod.is_domain(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) if dnstype == 'A' and netmod.checkip(record) == False : msg = {'color':'red','message':'记录数据格式错误'} return(template('adddnsconf',session=s,msg=msg,info={})) sql = "insert into dnsrecord (dnstype,domain,data,pronum) VALUE (%s,%s,%s,%s)" result = writeDb(sql,data) if result == True: writeDNSconf(action='uptconf') msg = {'color':'green','message':'提交成功'} return(template('dnsservconf',session=s,msg=msg,info={})) else : msg = {'color':'red','message':'保存失败'} return(template('dnsservconf',session=s,msg=msg,info={}))
def do_editrecord(id): s = request.environ.get('beaker.session') dnstype = request.forms.get("dnstype") domain = request.forms.get("domain") record = request.forms.get("record") pronum = request.forms.get("pronum") data = (dnstype, domain, record, pronum) if dnstype == 'NULL': msg = {'color': 'red', 'message': '请选择记录类型'} return (template('adddnsconf', session=s, msg=msg, info={})) if netmod.is_domain(domain) == False: msg = {'color': 'red', 'message': '域名名称格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'MX' and netmod.is_domain(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'CNAME' and netmod.is_domain(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'A' and netmod.checkip(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) sql = "update dnsrecord set dnstype=%s,domain=%s,data=%s,pronum=%s where id=%s" data = (dnstype, domain, record, pronum, id) result = writeDb(sql, data) if result == True: writeDNSconf(action='uptconf') msg = {'color': 'green', 'message': '更新成功'} return (template('dnsservconf', session=s, msg=msg, info={})) else: msg = {'color': 'red', 'message': '更新失败'} return (template('dnsservconf', session=s, msg=msg, info={}))
def do_editdhcpserv(): s = request.environ.get('beaker.session') dhcpenable = request.forms.get("dhcpenable") getgw = request.forms.get("getgw") getdns1 = request.forms.get("getdns1") getdns2 = request.forms.get("getdns2") startip = request.forms.get("startip") stopip = request.forms.get("stopip") otime = request.forms.get("otime") dhcplist = request.forms.get("dhcplist").replace('\r\n', '\n').strip() idata = dict() idata['dhcpenable'] = dhcpenable idata['getgw'] = getgw idata['getdns1'] = getdns1 idata['getdns2'] = getdns2 idata['startip'] = startip idata['stopip'] = stopip idata['otime'] = otime if netmod.checkip(startip) == False or netmod.checkip( stopip) == False or netmod.checkip( getgw) == False or netmod.checkip(getdns1) == False: msg = {'color': 'red', 'message': '参数配置异常,保存失败'} return (template('editdhcpserv', session=s, msg=msg, info=idata)) #判断dhcp固定分配是否为空 if dhcplist != "": for i in dhcplist.split('\n'): try: xmac = i.split(',')[0] xip = i.split(',')[1] if (netmod.is_ValidMac(xmac) == False or netmod.checkip(xip) == False) and xmac != "": msg = {'color': 'red', 'message': '配置保存失败,固定分配记录异常'} return (template('editdhcpserv', session=s, msg=msg, info=idata)) else: idata['dhcplist'] = dhcplist except: msg = {'color': 'red', 'message': '配置保存失败,固定分配记录异常'} return (template('editdhcpserv', session=s, msg=msg, info=idata)) sql = " update sysattr set value=%s where attr='dhcpconf' " iidata = json.dumps(idata) result = writeDb(sql, (iidata, )) if result == True: writeDNSconf(action='uptconf') msg = {'color': 'green', 'message': '配置保存成功'} return (template('editdhcpserv', session=s, msg=msg, info=idata)) else: msg = {'color': 'red', 'message': '配置保存失败'} sql = " select value from sysattr where attr='dhcpconf' " idata = readDb(sql, ) return (template('editdhcpserv', session=s, msg=msg, info=idata))
def do_adddnsservconf(): """新增服务配置项""" s = request.environ.get('beaker.session') dns_domain = request.forms.get("dns_domain").strip('.') primary_dns = request.forms.get("primary_dns").strip('.') second_dns = request.forms.get("second_dns").strip('.') dns_ttl = request.forms.get("dns_ttl") dns_min_ttl = request.forms.get("dns_min_ttl") relay_dns = request.forms.get("relay_dns") resp_person = request.forms.get("resp_person").strip('.') retry = request.forms.get("retry") refresh = request.forms.get("refresh") expire = request.forms.get("expire") minimum = request.forms.get("minimum") dns_dis_nn = request.forms.get("dns_dis_nn") force_domain_dns = request.forms.get("force_domain_dns").replace('\r\n','\n').strip() query_sql = " select dns_domain,primary_dns,second_dns,dns_ttl,dns_min_ttl,relay_dns,resp_person,retry,refresh,expire,minimum,dns_dis_nn,force_domain_dns from dns_conf " for ips in relay_dns.split(',') : if netmod.checkip(ips) == False: msg = {'color':'red','message':u'转发地址填写不合法,保存失败'} result = readDb(query_sql,) info=result[0] info['servstatus']=servchk('53') return template('dnsservconf',session=s,msg=msg,info=info) if netmod.is_domain(dns_domain) == False or netmod.is_domain(primary_dns) == False or netmod.is_domain(second_dns) == False or netmod.is_domain(resp_person) == False : msg = {'color':'red','message':u'地址填写不合法,保存失败'} result = readDb(query_sql,) info=result[0] info['servstatus']=servchk('53') return template('dnsservconf',session=s,msg=msg,info=info) if force_domain_dns: for obj in force_domain_dns.split('\n') : if netmod.is_domain(obj.split('|')[0]) == False or netmod.checkip(obj.split('|')[1].split(',')[0]) == False : msg = {'color':'red','message':u'域名指定DNS转发解析语法错误,保存失败'} result = readDb(query_sql,) info=result[0] info['servstatus']=servchk('53') return template('dnsservconf',session=s,msg=msg,info=info) sql = " UPDATE dns_conf set dns_domain=%s,primary_dns=%s,second_dns=%s,dns_ttl=%s,dns_min_ttl=%s,relay_dns=%s,resp_person=%s,retry=%s,refresh=%s,expire=%s,minimum=%s,dns_dis_nn=%s,force_domain_dns=%s " data = (Formatdata(dns_domain),Formatdata(primary_dns),Formatdata(second_dns),dns_ttl,dns_min_ttl,relay_dns,Formatdata(resp_person),retry,refresh,expire,minimum,dns_dis_nn,force_domain_dns) result = writeDb(sql,data) if result == True : writeDNSconf(action='uptconf') msg = {'color':'green','message':u'配置保存成功'} result = readDb(query_sql,) info=result[0] time.sleep(1) #防止检测FTP服务状态时异常 info['servstatus']=servchk('53') return template('dnsservconf',session=s,msg=msg,info=info) else : msg = {'color':'red','message':u'配置保存失败'} result = readDb(query_sql,) info=result[0] info['servstatus']=servchk('53') return template('dnsservconf',session=s,msg=msg,info=info)
def delrecord(id): s = request.environ.get('beaker.session') sql = "delete from dnsrecord where id in (%s) " result = writeDb(sql, (id, )) if result: writeDNSconf(action='uptconf') msg = {'color': 'green', 'message': '删除成功'} return (template('dnsservconf', session=s, msg=msg, info={})) else: msg = {'color': 'red', 'message': '删除失败'} return (template('dnsservconf', session=s, msg=msg, info={}))
def delrecord(id): s = request.environ.get('beaker.session') sql = "delete from dnsrecord where id in (%s) " result = writeDb(sql,(id,)) if result: writeDNSconf(action='uptconf') msg = {'color':'green','message':'删除成功'} return(template('dnsservconf',session=s,msg=msg,info={})) else: msg = {'color':'red','message':'删除失败'} return(template('dnsservconf',session=s,msg=msg,info={}))
def do_delaidns(id): s = request.environ.get('beaker.session') sql = """ select count(*) as count from dns_records where view=(select setname from dns_ipset where id=%s) """ resultx = readDb(sql,(id,)) if resultx[0].get('count') > 0 : msg = {'color':'red','message':u'无法删除,该地址库已被关联使用'} return template('aidns',session=s,msg=msg) sql_1 = """ delete from dns_ipset where id=%s """ result = writeDb(sql_1,(id,)) if result == True: writeDNSconf(action='uptconf') msg = {'color':'green','message':u'删除成功'} return template('aidns',session=s,msg=msg) else : msg = {'color':'red','message':u'删除失败'} return template('aidns',session=s,msg=msg)
def do_editdhcpserv(): s = request.environ.get('beaker.session') dhcpenable = request.forms.get("dhcpenable") getgw = request.forms.get("getgw") getdns1 = request.forms.get("getdns1") getdns2 = request.forms.get("getdns2") startip = request.forms.get("startip") stopip = request.forms.get("stopip") otime = request.forms.get("otime") dhcplist = request.forms.get("dhcplist").replace('\r\n','\n').strip() idata = dict() idata['dhcpenable']=dhcpenable idata['getgw']=getgw idata['getdns1']=getdns1 idata['getdns2']=getdns2 idata['startip']=startip idata['stopip']=stopip idata['otime']=otime if netmod.checkip(startip) == False or netmod.checkip(stopip) == False or netmod.checkip(getgw) == False or netmod.checkip(getdns1) == False: msg = {'color':'red','message':'参数配置异常,保存失败'} return(template('editdhcpserv',session=s,msg=msg,info=idata)) #判断dhcp固定分配是否为空 if dhcplist != "": for i in dhcplist.split('\n'): try: xmac = i.split(',')[0] xip = i.split(',')[1] if (netmod.is_ValidMac(xmac) == False or netmod.checkip(xip) == False) and xmac != "": msg = {'color':'red','message':'配置保存失败,固定分配记录异常'} return(template('editdhcpserv',session=s,msg=msg,info=idata)) else: idata['dhcplist']=dhcplist except: msg = {'color':'red','message':'配置保存失败,固定分配记录异常'} return(template('editdhcpserv',session=s,msg=msg,info=idata)) sql = " update sysattr set value=%s where attr='dhcpconf' " iidata=json.dumps(idata) result = writeDb(sql,(iidata,)) if result == True : writeDNSconf(action='uptconf') msg = {'color':'green','message':'配置保存成功'} return(template('editdhcpserv',session=s,msg=msg,info=idata)) else : msg = {'color':'red','message':'配置保存失败'} sql = " select value from sysattr where attr='dhcpconf' " idata = readDb(sql,) return(template('editdhcpserv',session=s,msg=msg,info=idata))
def do_adddnsconf(): s = request.environ.get('beaker.session') dnstype = request.forms.get("dnstype") domain = request.forms.get("domainA") record = request.forms.get("record") pronum = request.forms.get("pronum") if dnstype == 'NULL': msg = {'color': 'red', 'message': '请选择记录类型'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'MX' and netmod.is_domain(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'CNAME' and netmod.is_domain(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'A' and netmod.checkip(record) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'PTR' and netmod.checkip(domain) == False: msg = {'color': 'red', 'message': '数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) if dnstype == 'SET': domain = request.forms.get("domainB").replace('\r\n', '\n').strip() if domain != "": for domains in domain.split('\n'): if netmod.is_domain(domains) == False: msg = {'color': 'red', 'message': '记录数据格式错误'} return (template('adddnsconf', session=s, msg=msg, info={})) sql = "insert into dnsrecord (dnstype,domain,data,pronum) VALUE (%s,%s,%s,%s)" data = (dnstype, domain, record, pronum) result = writeDb(sql, data) if result == True: #如果含SET记录,写入网络对象 if dnstype == 'SET': sql = " insert into netobjgroup (objname,objtype,objattr) value (%s,%s,'0')" data = (record, 'ipset') writeDb(sql, data) writeDNSconf(action='uptconf') msg = {'color': 'green', 'message': '提交成功'} return (template('dnsservconf', session=s, msg=msg, info={})) else: msg = {'color': 'red', 'message': '保存失败'} return (template('dnsservconf', session=s, msg=msg, info={}))
def add_aidns(id): """修改地址库""" s = request.environ.get('beaker.session') setname = request.forms.get("setname") setdesc = request.forms.get("setdesc") setdata = request.forms.get("setdata") utime = time.strftime('%Y-%m-%d',time.localtime(time.time())) objtext = request.forms.get("setdata").replace('\r\n','\n').strip() objtext = '\n'.join(sorted(set(objtext.split('\n')))) for ipaddr in objtext.split('\n'): if netmod.checkips(ipaddr) == False : msg = {'color':'red','message':u'添加失败,地址不合法'} return '-1' sql_1 = """ UPDATE dns_ipset SET setname=%s,setdesc=%s,setdata=%s,utime=%s where id=%s""" result = writeDb(sql_1,(setname,setdesc,setdata,utime,id)) if result == True: writeDNSconf(action='uptconf') msg = {'color':'green','message':'更新成功'} return 0 #return template('aidns',session=s,msg=msg) else: msg = {'color':'red','message':'新增失败'} return '-1'