summaryrefslogtreecommitdiffstats
path: root/ipaserver/dns_data_management.py
diff options
context:
space:
mode:
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