diff options
author | Martin Basti <mbasti@redhat.com> | 2016-06-16 15:24:08 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-17 18:05:03 +0200 |
commit | bbf8227e3fd678d4bd6659a12055ba3dbe1c8230 (patch) | |
tree | dd2c7fb05781a50734362620db1c435c7d94da4b /ipaserver/dns_data_management.py | |
parent | b2931210eb794e52eac4b0e295fcbdfc5bb07f87 (diff) | |
download | freeipa-bbf8227e3fd678d4bd6659a12055ba3dbe1c8230.tar.gz freeipa-bbf8227e3fd678d4bd6659a12055ba3dbe1c8230.tar.xz freeipa-bbf8227e3fd678d4bd6659a12055ba3dbe1c8230.zip |
DNS Locations: do not generate location records for unused locations
Location records for locations without assigned servers are useless and
we should not generate them.
https://fedorahosted.org/freeipa/ticket/2008
Reviewed-By: Petr Spacek <pspacek@redhat.com>
Diffstat (limited to 'ipaserver/dns_data_management.py')
-rw-r--r-- | ipaserver/dns_data_management.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ipaserver/dns_data_management.py b/ipaserver/dns_data_management.py index b5b9c1c18..d01e1137c 100644 --- a/ipaserver/dns_data_management.py +++ b/ipaserver/dns_data_management.py @@ -59,6 +59,7 @@ class IPASystemRecords(object): self.api_instance = api_instance self.domain_abs = DNSName(self.api_instance.env.domain).make_absolute() self.servers_data = {} + self.used_locations = set() self.__init_data() def reload_data(self): @@ -79,6 +80,7 @@ class IPASystemRecords(object): def __init_data(self): self.servers_data = {} + self.used_locations = set() servers_result = self.api_instance.Command.server_find( pkey_only=True)['result'] @@ -90,6 +92,8 @@ class IPASystemRecords(object): 'location': location, 'roles': roles, } + if location: + self.used_locations.add(location) def __add_srv_records( self, zone_obj, hostname, rname_port_map, @@ -306,13 +310,12 @@ class IPASystemRecords(object): pkey_only=True)['result'] servers = [s['cn'][0] for s in servers_result] - locations_result = self.api_instance.Command.location_find()['result'] - locations = [l['idnsname'][0] for l in locations_result] - + # generate only records for used location, records for unassigned + # locations are useless for server in servers: self._get_location_dns_records_for_server( zone_obj, server, - locations, roles=roles, + self.used_locations, roles=roles, include_master_role=include_master_role) return zone_obj |