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