diff options
author | Martin Basti <mbasti@redhat.com> | 2016-06-13 20:02:21 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-17 15:22:24 +0200 |
commit | 2157ea0e6d0d762bdc71022ddd55045406c4b300 (patch) | |
tree | 312c488152c3d417f230906fb2476c4885bc17f7 /ipaserver/plugins/dns.py | |
parent | 88a0952f26f9d1e2ee9d02126b27f3075dbad46a (diff) | |
download | freeipa-2157ea0e6d0d762bdc71022ddd55045406c4b300.tar.gz freeipa-2157ea0e6d0d762bdc71022ddd55045406c4b300.tar.xz freeipa-2157ea0e6d0d762bdc71022ddd55045406c4b300.zip |
DNS Locations: dnsserver-* commands
New commands for manipulation with DNS server configuration were added:
* dnsserver-show
* dnsserver-mod
* dnsserver-find
https://fedorahosted.org/bind-dyndb-ldap/wiki/Design/PerServerConfigInLDAP
https://fedorahosted.org/freeipa/ticket/2008
Reviewed-By: Petr Spacek <pspacek@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipaserver/plugins/dns.py')
-rw-r--r-- | ipaserver/plugins/dns.py | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/ipaserver/plugins/dns.py b/ipaserver/plugins/dns.py index e9eb1f98f..094f8eb57 100644 --- a/ipaserver/plugins/dns.py +++ b/ipaserver/plugins/dns.py @@ -66,7 +66,9 @@ from ipalib.util import (normalize_zonemgr, EDNS0UnsupportedError, DNSSECValidationError, validate_dnssec_zone_forwarder_step1, validate_dnssec_zone_forwarder_step2, - verify_host_resolvable) + verify_host_resolvable, + validate_bind_forwarder, + ipaddr_validator) from ipapython.dn import DN from ipapython.ipautil import CheckedIPAddress from ipapython.dnsutil import check_zone_overlap @@ -373,23 +375,12 @@ def _reverse_zone_name(netstr): else: return None -def _validate_ipaddr(ugettext, ipaddr, ip_version=None): - try: - ip = netaddr.IPAddress(str(ipaddr), flags=netaddr.INET_PTON) - - if ip_version is not None: - if ip.version != ip_version: - return _('invalid IP address version (is %(value)d, must be %(required_value)d)!') \ - % dict(value=ip.version, required_value=ip_version) - except (netaddr.AddrFormatError, ValueError): - return _('invalid IP address format') - return None def _validate_ip4addr(ugettext, ipaddr): - return _validate_ipaddr(ugettext, ipaddr, 4) + return ipaddr_validator(ugettext, ipaddr, 4) def _validate_ip6addr(ugettext, ipaddr): - return _validate_ipaddr(ugettext, ipaddr, 6) + return ipaddr_validator(ugettext, ipaddr, 6) def _validate_ipnet(ugettext, ipnet): try: @@ -457,24 +448,6 @@ def _normalize_bind_aci(bind_acis): acis += u';' return acis -def _validate_bind_forwarder(ugettext, forwarder): - ip_address, sep, port = forwarder.partition(u' port ') - - ip_address_validation = _validate_ipaddr(ugettext, ip_address) - - if ip_address_validation is not None: - return ip_address_validation - - if sep: - try: - port = int(port) - if port < 0 or port > 65535: - raise ValueError() - except ValueError: - return _('%(port)s is not a valid port' % dict(port=port)) - - return None - def _validate_nsec3param_record(ugettext, value): _nsec3param_pattern = (r'^(?P<alg>\d+) (?P<flags>\d+) (?P<iter>\d+) ' r'(?P<salt>([0-9a-fA-F]{2})+|-)$') @@ -2001,7 +1974,7 @@ class DNSZoneBase(LDAPObject): attribute=True, ), Str('idnsforwarders*', - _validate_bind_forwarder, + validate_bind_forwarder, cli_name='forwarder', label=_('Zone forwarders'), doc=_('Per-zone forwarders. A custom port can be specified ' @@ -4043,7 +4016,7 @@ class dnsconfig(LDAPObject): takes_params = ( Str('idnsforwarders*', - _validate_bind_forwarder, + validate_bind_forwarder, cli_name='forwarder', label=_('Global forwarders'), doc=_('Global forwarders. A custom port can be specified for each ' |