mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -873,6 +875,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], {}),
|
||||
|
||||
Reference in New Issue
Block a user