summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-06-22 13:12:52 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-27 13:35:00 +0200
commit7bf3b1d546f22eeb61dce58cb69d471f834b8aac (patch)
tree816b3edacc4d3caac532d4bcb2d4452b14c77977
parent218734ba5ac3326daaf1097ef98217f6c86f526c (diff)
downloadfreeipa-7bf3b1d546f22eeb61dce58cb69d471f834b8aac.tar.gz
freeipa-7bf3b1d546f22eeb61dce58cb69d471f834b8aac.tar.xz
freeipa-7bf3b1d546f22eeb61dce58cb69d471f834b8aac.zip
DNS Locations: optimization: use server-find to get information
Because separated calls for of server-show, getting server data is quite slow. This commit replaces several server-show with one server-find command. There are future plans to improve speed of server-find that will be beneficial for DNS locations. https://fedorahosted.org/freeipa/ticket/2008 Reviewed-By: Petr Spacek <pspacek@redhat.com>
-rw-r--r--ipaserver/dns_data_management.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/ipaserver/dns_data_management.py b/ipaserver/dns_data_management.py
index eac2e7d1a..e7f65958f 100644
--- a/ipaserver/dns_data_management.py
+++ b/ipaserver/dns_data_management.py
@@ -78,8 +78,7 @@ class IPASystemRecords(object):
"""
self.__init_data()
- def __get_server_attrs(self, hostname):
- server_result = self.api_instance.Command.server_show(hostname)['result']
+ def __get_server_attrs(self, server_result):
weight = int(server_result.get('ipaserviceweight', [u'100'])[0])
location = server_result.get('ipalocation_location', [None])[0]
roles = set(server_result.get('enabled_role_servrole', ()))
@@ -93,11 +92,10 @@ class IPASystemRecords(object):
self.servers_data = {}
servers_result = self.api_instance.Command.server_find(
- pkey_only=True)['result']
- servers = [s['cn'][0] for s in servers_result]
- for s in servers:
+ no_members=False)['result']
+ for s in servers_result:
weight, location, roles = self.__get_server_attrs(s)
- self.servers_data[s] = {
+ self.servers_data[s['cn'][0]] = {
'weight': weight,
'location': location,
'roles': roles,