Reload UI on server upgrade.

The JSON server has been modified to return the version number
in all responses. The UI has been modified to keep the version
obtained during env operation and check the version returned
in subsequent operations. If the version changes the UI will
reload itself.

Ticket #946
This commit is contained in:
Endi Sukma Dewata 2011-12-20 19:45:57 -06:00 committed by Endi S. Dewata
parent edd37d2019
commit 46d3abc450
3 changed files with 9 additions and 0 deletions

View File

@ -128,6 +128,7 @@ var IPA = function() {
method: 'env',
on_success: function(data, text_status, xhr) {
that.env = data.result;
that.version = that.env.version;
}
}));
@ -420,6 +421,9 @@ IPA.command = function(spec) {
message: data ? xhr.statusText : IPA.get_message('errors.no_response', 'No response')
});
} else if (IPA.version && data.version && IPA.version !== data.version) {
window.location.reload();
} else if (IPA.principal && data.principal && IPA.principal !== data.principal) {
window.location.reload();

View File

@ -22,6 +22,7 @@
All constants centralised in one file.
"""
import socket
from ipapython.version import VERSION
try:
FQDN = socket.getfqdn()
except:
@ -63,6 +64,8 @@ CONFIG_SECTION = 'global'
# This is a tuple instead of a dict so that it is immutable.
# To create a dict with this config, just "d = dict(DEFAULT_CONFIG)".
DEFAULT_CONFIG = (
('version', VERSION),
# Domain, realm, basedn:
('domain', 'example.com'),
('realm', 'EXAMPLE.COM'),

View File

@ -33,6 +33,7 @@ from ipalib.rpc import xml_dumps, xml_loads
from ipalib.util import make_repr
from ipalib.compat import json
from wsgiref.util import shift_path_info
from ipapython.version import VERSION
import base64
import os
import string
@ -470,6 +471,7 @@ class jsonserver(WSGIExecutioner):
error=error,
id=_id,
principal=unicode(context.principal),
version=unicode(VERSION),
)
response = json_encode_binary(response)
return json.dumps(response, sort_keys=True, indent=4)