qunarcorp / open_dnsdb

OpenDnsdb 是去哪儿网OPS团队开源的基于Python语言的DNS管理系统

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

senseab opened this issue · comments

问题描述
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.

实际输出结果

期望输出结果

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

$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

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

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

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