summaryrefslogtreecommitdiffstats
path: root/ipaserver/install/bindinstance.py
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2011-11-23 16:03:51 +0100
committerMartin Kosek <mkosek@redhat.com>2011-11-29 17:14:28 +0100
commit3f0eb1417ca0162861a05e3ced6a532b3cfba2ab (patch)
tree5aad0cfa7025aea4c526f61390567a2ede6cd292 /ipaserver/install/bindinstance.py
parent1039653a1b51f095175eeee3380a59e7303585f6 (diff)
downloadfreeipa-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.py15
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()