From 2973128cf068898c57d12a274b6eecbfb3213898 Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Mon, 15 Apr 2013 12:50:54 +0200 Subject: 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 --- ipalib/plugins/dns.py | 2 +- tests/test_xmlrpc/test_dns_plugin.py | 6 +++--- 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 .. - 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 -'), ), -- cgit