Exemple #1
0
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))
Exemple #2
0
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))
Exemple #3
0
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={}))
Exemple #4
0
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={}))
Exemple #5
0
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={}))
Exemple #6
0
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={}))
Exemple #7
0
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))
Exemple #8
0
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)
Exemple #9
0
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={}))
Exemple #10
0
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={}))
Exemple #11
0
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)
Exemple #12
0
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))
Exemple #13
0
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={}))
Exemple #14
0
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'