summaryrefslogtreecommitdiffstats
path: root/ipaserver/dns_data_management.py
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-06-10 17:03:25 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-17 15:22:24 +0200
commite23159596e1851f156461d00b9f9f99dc698e12b (patch)
tree5c3f2436a80b7326ad39eaa798f2fa538dfda68d /ipaserver/dns_data_management.py
parentcf634a4ff8a100589f99e57c51b2c4591853e88a (diff)
downloadfreeipa-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.py24
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