diff options
author | Martin Basti <mbasti@redhat.com> | 2016-06-10 17:03:25 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-17 15:22:24 +0200 |
commit | e23159596e1851f156461d00b9f9f99dc698e12b (patch) | |
tree | 5c3f2436a80b7326ad39eaa798f2fa538dfda68d /ipaserver/dns_data_management.py | |
parent | cf634a4ff8a100589f99e57c51b2c4591853e88a (diff) | |
download | freeipa-e23159596e1851f156461d00b9f9f99dc698e12b.tar.gz freeipa-e23159596e1851f156461d00b9f9f99dc698e12b.tar.xz freeipa-e23159596e1851f156461d00b9f9f99dc698e12b.zip |
DNS Locations: command dns-update-system-records
command dns-update-system-records updates/fixes DNS records for IPA
services:
* updating A, AAAA records for CA
* updating SRV records for LDAP, kerberos and AD trust
* updating TXT record in _kerberos with proper realm
* updating dns locations if used
https://fedorahosted.org/freeipa/ticket/2008
Reviewed-By: Petr Spacek <pspacek@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipaserver/dns_data_management.py')
-rw-r--r-- | ipaserver/dns_data_management.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/ipaserver/dns_data_management.py b/ipaserver/dns_data_management.py index 7e5ad18e8..b5b9c1c18 100644 --- a/ipaserver/dns_data_management.py +++ b/ipaserver/dns_data_management.py @@ -4,6 +4,8 @@ from __future__ import absolute_import +import six + from collections import defaultdict from dns import ( rdataclass, @@ -17,6 +19,10 @@ from ipalib import errors from ipalib.dns import record_name_format from ipapython.dnsutil import DNSName, resolve_rrsets +if six.PY3: + unicode=str + + IPA_DEFAULT_MASTER_SRV_REC = ( # srv record name, port (DNSName(u'_ldap._tcp'), 389), @@ -214,7 +220,7 @@ class IPASystemRecords(object): for rdata in rdataset: option_name = (record_name_format % rdatatype.to_text( rdata.rdtype).lower()) - update_dict[option_name].append(rdata.to_text()) + update_dict[option_name].append(unicode(rdata.to_text())) return update_dict def __update_dns_records( @@ -378,3 +384,19 @@ class IPASystemRecords(object): self.update_base_records(), self.update_locations_records() ) + + @classmethod + def records_list_from_node(cls, name, node): + records = [] + for rdataset in node: + for rd in rdataset: + records.append( + u'{name} {ttl} {rdclass} {rdtype} {rdata}'.format( + name=name.ToASCII(), + ttl=rdataset.ttl, + rdclass=rdataclass.to_text(rd.rdclass), + rdtype=rdatatype.to_text(rd.rdtype), + rdata=rd.to_text() + ) + ) + return records |