summaryrefslogtreecommitdiffstats
path: root/ipaserver/plugins/server.py
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-06-15 16:52:08 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-17 18:05:03 +0200
commit8dde1201ed9b0ca839ffe7421be7efd04b666e11 (patch)
tree23ee5359e75f18a4a603c4526bd31723eb896128 /ipaserver/plugins/server.py
parent1997733cdf60bbd5fee8a5286d567580fa4e0198 (diff)
downloadfreeipa-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.py14
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