问题描述
[2019-04-28 05:40:18 +0000] [3339] [DEBUG] POST /web/config/add/host
2019-04-28 05:40:18.888 3339 ERROR dnsdb_common.library.decorators [-] func: add_host, args: (), kwargs: {'host_name': 'a.a', 'host_ip': '10.110.3.211', 'group_name': 'Master'}
2019-04-28 05:40:18.888 3339 ERROR dnsdb_common.library.decorators [-] Invalid ip format: '10.110.3.211' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators Traceback (most recent call last):
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/decorators.py", line 84, in decorator
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators return resp(data=func(*kargs, *kwargs), is_json=is_json)
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/decorators.py", line 180, in _wrapper
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators ret = func(args, **kwargs)
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb/view/web/config.py", line 102, in add_host
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators HostGroupConfDal.check_host(host_name, host_ip)
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/dal/host_group_conf.py", line 41, in check_host
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators format_ipv4(ip)
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/utils.py", line 71, in format_ipv4
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误')
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators BadParam: Invalid ip format: '10.110.3.211' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?
2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators
修复:
vim open_dnsdb/dnsdb_common/library/utils.py
修改
def format_ipv4(ip):
if '.' not in ip:
raise BadParam('Invalid IPv6 format', msg_ch='IPv6格式错误')
try:
ip = ipaddress.ip_address(ip)
except Exception as e:
raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误')
return str(ip)
为
def format_ipv4(ip):
if '.' not in ip:
raise BadParam('Invalid IPv6 format', msg_ch='IPv6格式错误')
try:
ip = ipaddress.ip_address(ip.decode("utf8"))
except Exception as e:
raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误')
return str(ip)
问题描述 [2019-04-28 05:40:18 +0000] [3339] [DEBUG] POST /web/config/add/host 2019-04-28 05:40:18.888 3339 ERROR dnsdb_common.library.decorators [-] func: add_host, args: (), kwargs: {'host_name': 'a.a', 'host_ip': '10.110.3.211', 'group_name': 'Master'} 2019-04-28 05:40:18.888 3339 ERROR dnsdb_common.library.decorators [-] Invalid ip format: '10.110.3.211' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object? 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators Traceback (most recent call last): 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/decorators.py", line 84, in decorator 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators return resp(data=func(*kargs, *kwargs), is_json=is_json) 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/decorators.py", line 180, in _wrapper 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators ret = func(args, **kwargs) 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb/view/web/config.py", line 102, in add_host 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators HostGroupConfDal.check_host(host_name, host_ip) 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/dal/host_group_conf.py", line 41, in check_host 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators format_ipv4(ip) 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators File "/usr/local/open_dnsdb/dnsdb_common/library/utils.py", line 71, in format_ipv4 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误') 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators BadParam: Invalid ip format: '10.110.3.211' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object? 2019-04-28 05:40:18.888 3339 TRACE dnsdb_common.library.decorators
修复:
vim open_dnsdb/dnsdb_common/library/utils.py 修改 def format_ipv4(ip): if '.' not in ip: raise BadParam('Invalid IPv6 format', msg_ch='IPv6格式错误') try: ip = ipaddress.ip_address(ip) except Exception as e: raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误') return str(ip) 为 def format_ipv4(ip): if '.' not in ip: raise BadParam('Invalid IPv6 format', msg_ch='IPv6格式错误') try: ip = ipaddress.ip_address(ip.decode("utf8")) except Exception as e: raise BadParam('Invalid ip format: %s ' % e, msg_ch='ip格式错误') return str(ip)