diff options
author | Martin Basti <mbasti@redhat.com> | 2016-06-22 13:12:52 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-27 13:35:00 +0200 |
commit | 7bf3b1d546f22eeb61dce58cb69d471f834b8aac (patch) | |
tree | 816b3edacc4d3caac532d4bcb2d4452b14c77977 /ipaserver/dns_data_management.py | |
parent | 218734ba5ac3326daaf1097ef98217f6c86f526c (diff) | |
download | freeipa-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>
Diffstat (limited to 'ipaserver/dns_data_management.py')
-rw-r--r-- | ipaserver/dns_data_management.py | 10 |
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, |