summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-06-13 13:32:25 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-17 15:22:24 +0200
commit4076e8e4e50d527f613536138cd851cd068cd2d9 (patch)
treebec1209bab4cbb1288804ada8a59dea70668e4a9
parenta7e463948db5870d264f59954c9a2e9b5b59e1dd (diff)
downloadfreeipa-4076e8e4e50d527f613536138cd851cd068cd2d9.tar.gz
freeipa-4076e8e4e50d527f613536138cd851cd068cd2d9.tar.xz
freeipa-4076e8e4e50d527f613536138cd851cd068cd2d9.zip
DNS Locations: server-mod: add automatic records update
For any location or server weight change is required to update records https://fedorahosted.org/freeipa/ticket/2008 Reviewed-By: Petr Spacek <pspacek@redhat.com> Reviewed-By: Jan Cholasta <jcholast@redhat.com>
-rw-r--r--ipalib/messages.py10
-rw-r--r--ipaserver/plugins/server.py7
2 files changed, 16 insertions, 1 deletions
diff --git a/ipalib/messages.py b/ipalib/messages.py
index a81cc664c..cae9d7867 100644
--- a/ipalib/messages.py
+++ b/ipalib/messages.py
@@ -418,6 +418,16 @@ class DNSUpdateNotIPAManagedZone(PublicMessage):
)
+class AutomaticDNSRecordsUpdateFailed(PublicMessage):
+ errno = 13024
+ type = "warning"
+ format = _(
+ "Automatic update of DNS system records failed. "
+ "Please re-run update of system records manually to get list of "
+ "missing records."
+ )
+
+
def iter_messages(variables, base):
"""Return a tuple with all subclasses
"""
diff --git a/ipaserver/plugins/server.py b/ipaserver/plugins/server.py
index edbd3bb78..3b58c6b2f 100644
--- a/ipaserver/plugins/server.py
+++ b/ipaserver/plugins/server.py
@@ -230,8 +230,13 @@ class server_mod(LDAPUpdate):
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
assert isinstance(dn, DN)
- self.obj.convert_location(entry_attrs, **options)
self.obj.get_enabled_roles(entry_attrs)
+
+ if 'ipalocation' or 'ipalocationweight' in entry_attrs:
+ result = self.api.Command.dns_update_system_records()
+ if not result.get('value'):
+ self.add_message(messages.AutomaticDNSRecordsUpdateFailed())
+ self.obj.convert_location(entry_attrs, **options)
return dn