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/server.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/server.py')
-rw-r--r-- | ipaserver/plugins/server.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ipaserver/plugins/server.py b/ipaserver/plugins/server.py index 956e7e5e6..d338595a8 100644 --- a/ipaserver/plugins/server.py +++ b/ipaserver/plugins/server.py @@ -263,6 +263,20 @@ class server_mod(LDAPUpdate): self.add_message(messages.AutomaticDNSRecordsUpdateFailed()) self.obj.convert_location(entry_attrs, **options) + ipalocation = entry_attrs.get('ipalocation_location', [None])[0] + if ipalocation: + servers_in_loc = self.api.Command.server_find( + in_location=ipalocation, no_members=False)['result'] + dns_server_in_loc = False + for server in servers_in_loc: + if 'DNS server' in server.get('enabled_role_servrole', ()): + dns_server_in_loc = True + break + if not dns_server_in_loc: + self.add_message(messages.LocationWithoutDNSServer( + location=ipalocation + )) + return dn |