qunarcorp / open_dnsdb

OpenDnsdb 是去哪儿网OPS团队开源的基于Python语言的DNS管理系统
Apache License 2.0
415 stars 153 forks source link

导入 zone 文件后,访问 record 报错 #8

Closed senseab closed 5 years ago

senseab commented 5 years ago

问题描述 import-zone-records 操作,提示 添加zone omitted.zone 管理成功

但此时打开 普通域名 界面,出现报错提示

interval error, 'NoneType' object has no attribute 'group'

日志信息如下:

[2019-01-28 15:29:18 +0000] [26261] [DEBUG] GET /web/subnet/list/region
[2019-01-28 15:29:18 +0000] [26261] [DEBUG] GET /web/subnet/list/region
[2019-01-28 15:29:24 +0000] [26264] [DEBUG] GET /web/config/list/host_group
[2019-01-28 15:29:24 +0000] [26262] [DEBUG] GET /web/config/get/has_named_group
[2019-01-28 15:29:24 +0000] [26261] [DEBUG] GET /web/config/list/named_zone
[2019-01-28 15:29:24 +0000] [26263] [DEBUG] GET /web/config/list/zone_header
[2019-01-28 15:29:28 +0000] [26263] [DEBUG] GET /web/subnet/list/region
[2019-01-28 15:29:28 +0000] [26262] [DEBUG] GET /web/record/list/zone_ttl
2019-01-28 15:29:28.393 26262 ERROR dnsdb_common.library.decorators [-] func: list_zone_ttl, args: (), kwargs: {}
2019-01-28 15:29:28.393 26262 ERROR dnsdb_common.library.decorators [-] 'NoneType' object has no attribute 'group'
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators Traceback (most recent call last):
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators   File "/app/open_dnsdb/dnsdb_common/library/decorators.py", line 89, in decorator
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators     return resp(data=func(*kargs, **kwargs), is_json=is_json)
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators   File "/app/open_dnsdb/dnsdb/view/web/record.py", line 154, in list_zone_ttl
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators     return ZoneRecordDal.list_zone_ttl()
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators   File "/app/open_dnsdb/dnsdb_common/dal/zone_record.py", line 50, in list_zone_ttl
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators     for zone, header in db.session.query(DnsHeader.zone_name, DnsHeader.header_content)}
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators   File "/app/open_dnsdb/dnsdb_common/dal/zone_record.py", line 50, in <dictcomp>
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators     for zone, header in db.session.query(DnsHeader.zone_name, DnsHeader.header_content)}
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators AttributeError: 'NoneType' object has no attribute 'group'
2019-01-28 15:29:28.393 26262 TRACE dnsdb_common.library.decorators 

环境配置 python = 2.7.15 centos 6 其他均按照文档安装

复现步骤 1. 2. 3.

实际输出结果

期望输出结果

LostSymbol commented 5 years ago

贴一下omitted.zone这里面的内容

senseab commented 5 years ago
$ORIGIN omitted.cn.
$TTL 120
@       IN SOA 0. konglc.omitted.cn. (
            2019011601 ; serial
            21600 ; refresh
            3600 ; retry
            604800 ; expiry
            120 ; minimum ttl
        )

; Nameservers

omitted.cn. 86400 IN NS 172.16.0.4.

; Mailservers

; Reverse DNS Records (PTR)

; CNAME

DNS1    120 IN CNAME AL004.omitted.cn.
DNSPool 0 IN CNAME AL004.omitted.cn.
EJB1    1 IN CNAME AL009.omitted.cn.
OCS-IDM 120 IN CNAME 57f96c9f093d47a4.m.cnbjalicm12pub001.ocs.aliyuncs.com.
SIAM    120 IN CNAME AL008.omitted.cn.
SIM 120 IN CNAME AL007.omitted.cn.
api 0 IN CNAME TMP006.omitted.cn.
bjnpm   120 IN CNAME npm.omitted.cn.
bjsim   120 IN CNAME sim.omitted.cn.
bjyj    120 IN CNAME AL013.omitted.cn.
cfca    120 IN CNAME AL016.omitted.cn.
git 120 IN CNAME AL012.omitted.cn.
gitlab  120 IN CNAME git.omitted.cn.
hzs 0 IN CNAME AL022.omitted.cn.
jenkins 120 IN CNAME AL017.omitted.cn.
ldap    120 IN CNAME AL010.omitted.cn.
login   0 IN CNAME AW001.omitted.cn.
p2p 120 IN CNAME node.omitted.cn.
p2papi  120 IN CNAME AL018.omitted.cn.
sms 120 IN CNAME AL006.omitted.cn.
umpreturn   120 IN CNAME AL009.omitted.cn.
xd  120 IN CNAME bjxd.omitted.cn.
xwb 120 IN CNAME AL014.omitted.cn.

; HOST RECORDS

AL004   120 IN A 172.16.0.4
AL006   120 IN A 172.16.0.5
AL007   120 IN A 172.16.0.7
AL008   120 IN A 172.16.0.6
AL009   120 IN A 172.16.0.11
AL010   120 IN A 172.16.0.8
AL012   120 IN A 172.16.0.16
AL013   120 IN A 172.16.0.21
AL014   120 IN A 172.16.0.17
AL015   120 IN A 172.16.0.18
AL016   120 IN A 172.16.0.20
AL017   120 IN A 172.16.0.19
AL018   120 IN A 172.16.0.26
AL019   120 IN A 172.16.0.38
AL020   120 IN A 172.16.0.33
AL021   120 IN A 172.16.0.34
AL022   120 IN A 172.16.0.36
AW001   120 IN A 172.16.0.2
EJB 1 IN A 172.16.0.65
EJB-huoji-SP-PP 120 IN A 172.16.3.216
EJB-rouji-SP-PP 120 IN A 172.16.3.215
EJB2    120 IN A 172.16.0.64
NODE    120 IN A 172.16.0.12
NODE2   120 IN A 172.16.0.66
Node-sp-pp  120 IN A 172.16.3.214
P2PAPI-SP-PP    120 IN A 172.16.3.217
TEST    120 IN A 172.16.0.35
TMP006  120 IN A 172.16.0.39
XIAODAI-WAIWEI  120 IN A 172.16.0.69
blj 120 IN A 172.16.0.35
disconf 120 IN A 172.16.0.70
ejb-cg  120 IN A 172.16.3.191
ejb-cg-sp1  120 IN A 172.16.3.208
ejb-cg-sp2  120 IN A 172.16.3.209
ejb-cg2 120 IN A 172.16.0.87
fengkong    120 IN A 172.16.0.60
hudonga 120 IN A 172.16.3.185
hudongb 120 IN A 172.16.3.186
imgs    120 IN A 172.16.0.27
kafka   120 IN A 172.16.0.78
kafka-manager   120 IN A 172.16.0.76
lazycat-cg-sp   120 IN A 172.16.3.211
lazycat-pp  120 IN A 172.16.3.213
lazycat-pp2 120 IN A 172.16.3.218
lazycat2    120 IN A 172.16.3.212
lepus   120 IN A 172.16.0.29
nexus   120 IN A 172.16.0.15
node-cg 120 IN A 172.16.3.192
node-cg-sp  120 IN A 172.16.3.207
node-cg2    120 IN A 172.16.3.198
npm 120 IN A 172.16.0.15
ossim   120 IN A 172.16.0.86
p2papi-cg   120 IN A 172.16.3.193
p2papi-cg-sp    120 IN A 172.16.3.210
p2papi-cg2  120 IN A 172.16.3.197
pig 120 IN A 172.16.0.49
push-center 120 IN A 172.16.3.234
redis   120 IN A 172.16.0.57
redis1  120 IN A 172.16.0.57
redis2  120 IN A 172.16.0.58
sloan   120 IN A 172.16.0.50
splunk  120 IN A 172.16.0.79
tempejb 120 IN A 172.16.0.40
tempejb2    120 IN A 172.16.0.41
tuji    120 IN A 172.16.3.205
upjob   120 IN A 172.16.0.51
upms    120 IN A 172.16.0.69
weixin  120 IN A 172.16.0.53
LostSymbol commented 5 years ago

bug已经修复,另外zone文件名称要和文件内容中'$ORIGIN omitted.cn.'这儿定义的对应

git pull
mv /dir/for/zone/omitted.zone /dir/for/zone/omitted.cn
flask delete-zone omitted.zone

重新导入zone应该就可以了 抱歉,说明文档没写清楚