summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Babej <tbabej@redhat.com>2013-04-15 12:50:54 +0200
committerMartin Kosek <mkosek@redhat.com>2013-04-25 12:45:54 +0200
commit2973128cf068898c57d12a274b6eecbfb3213898 (patch)
treec58ed55ace837c4fdfb9f8f587c3d1b87bb3b1aa
parent4cff518517fb400a399fc3cb5cc8bf5285c7cbc5 (diff)
downloadfreeipa-2973128cf068898c57d12a274b6eecbfb3213898.tar.gz
freeipa-2973128cf068898c57d12a274b6eecbfb3213898.tar.xz
freeipa-2973128cf068898c57d12a274b6eecbfb3213898.zip
Allow underscore in record targets
Makes record target validation less strict and allows underscore. This is requirement for IPA sites. https://fedorahosted.org/freeipa/ticket/3550
-rw-r--r--ipalib/plugins/dns.py2
-rw-r--r--tests/test_xmlrpc/test_dns_plugin.py6
2 files changed, 4 insertions, 4 deletions
diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py
index d59df59a2..3ad03402d 100644
--- a/ipalib/plugins/dns.py
+++ b/ipalib/plugins/dns.py
@@ -373,7 +373,7 @@ def _bind_hostname_validator(ugettext, value):
try:
# Allow domain name which is not fully qualified. These are supported
# in bind and then translated as <non-fqdn-name>.<domain>.
- validate_hostname(value, check_fqdn=False)
+ validate_hostname(value, check_fqdn=False, allow_underscore=True)
except ValueError, e:
return _('invalid domain-name: %s') \
% unicode(e)
diff --git a/tests/test_xmlrpc/test_dns_plugin.py b/tests/test_xmlrpc/test_dns_plugin.py
index 24fc7ecc4..0d78f80b0 100644
--- a/tests/test_xmlrpc/test_dns_plugin.py
+++ b/tests/test_xmlrpc/test_dns_plugin.py
@@ -677,7 +677,7 @@ class test_dns(Declarative):
'srv_part_port' : 123,
'srv_part_target' : u'foo bar'}),
expected=errors.ValidationError(name='srv_target',
- error=u'invalid domain-name: only letters, numbers, and - ' +
+ error=u'invalid domain-name: only letters, numbers, _, and - ' +
u'are allowed. DNS label may not start or end with -'),
),
@@ -780,7 +780,7 @@ class test_dns(Declarative):
desc='Try to add invalid CNAME record %r using dnsrecord_add' % (dnsrescname),
command=('dnsrecord_add', [dnszone1, dnsrescname], {'cnamerecord': u'-.example.com'}),
expected=errors.ValidationError(name='hostname',
- error=u'invalid domain-name: only letters, numbers, and - ' +
+ error=u'invalid domain-name: only letters, numbers, _, and - ' +
u'are allowed. DNS label may not start or end with -'),
),
@@ -849,7 +849,7 @@ class test_dns(Declarative):
desc='Try to add invalid DNAME record %r using dnsrecord_add' % (dnsresdname),
command=('dnsrecord_add', [dnszone1, dnsresdname], {'dnamerecord': u'-.example.com.'}),
expected=errors.ValidationError(name='target',
- error=u'invalid domain-name: only letters, numbers, and - ' +
+ error=u'invalid domain-name: only letters, numbers, _, and - ' +
u'are allowed. DNS label may not start or end with -'),
),