summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-02-24 14:15:24 +0100
committerMartin Kosek <mkosek@redhat.com>2012-02-27 16:52:08 +0100
commit4265028befbea0418aa7469adc7ce356e357fda4 (patch)
tree54df09612a8cd8549e7bb9cbb9e4782895033620 /tests
parent455c6d5df7d0e878f31b76641065333741b0a3af (diff)
downloadfreeipa.git-4265028befbea0418aa7469adc7ce356e357fda4.tar.gz
freeipa.git-4265028befbea0418aa7469adc7ce356e357fda4.tar.xz
freeipa.git-4265028befbea0418aa7469adc7ce356e357fda4.zip
Add reverse DNS record when forward is created
Adding reverse DNS record may be a time consuming task, especially for IPv6 addresses. Having a way to automatically create a reverse record when a forward record is created could speed up the process. host-add command already has this possibility. This patch takes advantage of the new per-type API and adds new options for A/AAAA record types: --a-create-reverse and --aaaa-create-reverse. These commands can be used to automatically create reverse records for new A/AAAA addresses (both forward and reverse zones need to be managed by FreeIPA server): ipa dnsrecord-add example.com foo --a-rec=10.0.0.1 --a-create-reverse This command would add a new A record to record foo in zone example.com and a PTR record to appropriate reverse zone for IP address 10.0.0.1 (for example PTR record 1 in zone 0.0.10.in-addr.arpa. pointing to foo.example.com.). Few modification were done to new DNS API to support this feature: - Refactor --ip-address option handling from host-add and place it to dns.py to be used by both modules - Add support for "extra" per-type options - Hide DNS record part options in dnsrecord_find command as they have no effect for this command https://fedorahosted.org/freeipa/ticket/2009
Diffstat (limited to 'tests')
-rw-r--r--tests/test_xmlrpc/test_dns_plugin.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/test_xmlrpc/test_dns_plugin.py b/tests/test_xmlrpc/test_dns_plugin.py
index 5d05d3af..7b1a4532 100644
--- a/tests/test_xmlrpc/test_dns_plugin.py
+++ b/tests/test_xmlrpc/test_dns_plugin.py
@@ -42,6 +42,8 @@ dnsres1 = u'testdnsres'
dnsres1_dn = DN(('idnsname',dnsres1), dnszone1_dn)
dnsrev1 = u'80'
dnsrev1_dn = DN(('idnsname',dnsrev1), revdnszone1_dn)
+dnsrev2 = u'81'
+dnsrev2_dn = DN(('idnsname',dnsrev2), revdnszone1_dn)
class test_dns(Declarative):
@@ -874,6 +876,46 @@ class test_dns(Declarative):
dict(
+ desc='Try to create duplicate PTR record for %r with --a-create-reverse' % dnsres1,
+ command=('dnsrecord_add', [dnszone1, dnsres1], {'arecord': u'80.142.15.80',
+ 'a_extra_create_reverse' : True}),
+ expected=errors.DuplicateEntry(message=u''),
+ ),
+
+
+ dict(
+ desc='Create A record %r in zone %r with --a-create-reverse' % (dnsres1, dnszone1),
+ command=('dnsrecord_add', [dnszone1, dnsres1], {'arecord': u'80.142.15.81',
+ 'a_extra_create_reverse' : True}),
+ expected={
+ 'value': dnsres1,
+ 'summary': None,
+ 'result': {
+ 'dn': unicode(dnsres1_dn),
+ 'idnsname': [dnsres1],
+ 'objectclass': [u'top', u'idnsrecord'],
+ 'arecord': [u'80.142.15.81'],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Check reverse record for %r created via --a-create-reverse' % dnsres1,
+ command=('dnsrecord_show', [revdnszone1, dnsrev2], {}),
+ expected={
+ 'value': dnsrev2,
+ 'summary': None,
+ 'result': {
+ 'dn': unicode(dnsrev2_dn),
+ 'idnsname': [dnsrev2],
+ 'ptrrecord': [dnsres1 + '.' + dnszone1 + '.'],
+ },
+ },
+ ),
+
+
+ dict(
desc='Delete zone %r' % dnszone1,
command=('dnszone_del', [dnszone1], {}),
expected={