diff options
author | Martin Kosek <mkosek@redhat.com> | 2011-11-23 16:03:51 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-11-29 17:14:28 +0100 |
commit | 3f0eb1417ca0162861a05e3ced6a532b3cfba2ab (patch) | |
tree | 5aad0cfa7025aea4c526f61390567a2ede6cd292 /ipaserver/install/bindinstance.py | |
parent | 1039653a1b51f095175eeee3380a59e7303585f6 (diff) | |
download | freeipa-3f0eb1417ca0162861a05e3ced6a532b3cfba2ab.tar.gz freeipa-3f0eb1417ca0162861a05e3ced6a532b3cfba2ab.tar.xz freeipa-3f0eb1417ca0162861a05e3ced6a532b3cfba2ab.zip |
Improve zonemgr validator and normalizer
The validator has been improved to support better both SOA format
(e-mail address in a domain name format, without '@') and standard
e-mail format. Allow '\.' character in a SOA format encoding the
standard '.' in the local-part of an e-mail. Normalization code
has been moved to one common function.
https://fedorahosted.org/freeipa/ticket/2053
Diffstat (limited to 'ipaserver/install/bindinstance.py')
-rw-r--r-- | ipaserver/install/bindinstance.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py index 7da4a891b..0b4a8d579 100644 --- a/ipaserver/install/bindinstance.py +++ b/ipaserver/install/bindinstance.py @@ -32,7 +32,7 @@ from ipapython import sysrestore from ipapython import ipautil from ipalib.constants import DNS_ZONE_REFRESH from ipalib.parameters import IA5Str -from ipalib.util import validate_zonemgr +from ipalib.util import validate_zonemgr, normalize_zonemgr from ipapython.ipa_log_manager import * import ipalib @@ -187,6 +187,9 @@ def add_zone(name, zonemgr=None, dns_backup=None, ns_hostname=None, ns_ip_addres if update_policy is None: update_policy = "grant %(realm)s krb5-self * A; grant %(realm)s krb5-self * AAAA;" % dict(realm=api.env.realm) + if zonemgr is None: + zonemgr = 'root.%s' % name + if ns_hostname is None: # automatically retrieve list of DNS masters dns_masters = api.Object.dnsrecord.get_dns_masters() @@ -298,10 +301,6 @@ def zonemgr_callback(option, opt_str, value, parser): except ValueError, e: parser.error("invalid zonemgr: " + unicode(e)) - name = opt_str.replace('--','') - v = unicode(value, 'utf-8') - ia = IA5Str(name) - ia._convert_scalar(v) parser.values.zonemgr = value class DnsBackup(object): @@ -387,10 +386,10 @@ class BindInstance(service.Service): self.zone_refresh = zone_refresh self.zone_notif = zone_notif - if zonemgr: - self.zonemgr = zonemgr.replace('@','.') - else: + if not zonemgr: self.zonemgr = 'root.%s.%s' % (self.host, self.domain) + else: + self.zonemgr = normalize_zonemgr(zonemgr) self.__setup_sub_dict() |