diff options
author | Martin Basti <mbasti@redhat.com> | 2016-06-15 16:52:08 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-17 18:05:03 +0200 |
commit | 8dde1201ed9b0ca839ffe7421be7efd04b666e11 (patch) | |
tree | 23ee5359e75f18a4a603c4526bd31723eb896128 /ipaserver/plugins/location.py | |
parent | 1997733cdf60bbd5fee8a5286d567580fa4e0198 (diff) | |
download | freeipa-8dde1201ed9b0ca839ffe7421be7efd04b666e11.tar.gz freeipa-8dde1201ed9b0ca839ffe7421be7efd04b666e11.tar.xz freeipa-8dde1201ed9b0ca839ffe7421be7efd04b666e11.zip |
DNS Locations: show warning if there is no DNS servers in location
DNS servers must be in each location, otherwise DNS location without DNS
server assigned will not work.
https://fedorahosted.org/freeipa/ticket/2008
Reviewed-By: Petr Spacek <pspacek@redhat.com>
Diffstat (limited to 'ipaserver/plugins/location.py')
-rw-r--r-- | ipaserver/plugins/location.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ipaserver/plugins/location.py b/ipaserver/plugins/location.py index be7291bb2..073c1f957 100644 --- a/ipaserver/plugins/location.py +++ b/ipaserver/plugins/location.py @@ -14,6 +14,7 @@ from ipalib import ( Str, DNSNameParam, output, + messages ) from ipalib.plugable import Registry from ipaserver.plugins.baseldap import ( @@ -180,6 +181,7 @@ class location_show(LDAPRetrieve): def execute(self, *keys, **options): result = super(location_show, self).execute(*keys, **options) + dns_server_in_loc = False servers_additional_info = {} if not options.get('raw'): servers_name = [] @@ -197,6 +199,13 @@ class location_show(LDAPRetrieve): 'ipalocationweight', [u'100']), } + if not dns_server_in_loc: + show_result = self.api.Command.server_show( + server['cn'][0])['result'] + if 'DNS server' in show_result.get( + 'enabled_role_servrole', ()): + dns_server_in_loc = True + for server in servers_additional_info.values(): server['location_relative_weight'] = [ u'{:.1f}%'.format( @@ -206,4 +215,9 @@ class location_show(LDAPRetrieve): result['result']['servers_server'] = servers_name result['servers'] = servers_additional_info + if not dns_server_in_loc and servers_additional_info: + self.add_message(messages.LocationWithoutDNSServer( + location=keys[0] + )) + return result |