
From: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> This patch adds an add_notification call to warn the UI about the pending reload process. To allow the UI to actually see the notification before WoK restarts, a 2 seconds wait (value defined by the wok.NOTIFICATION_INTERVAL var in wok.main.js) is given before sending the cherrypy.engine.restart call. Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> --- src/wok/i18n.py | 2 ++ src/wok/model/config.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/wok/i18n.py b/src/wok/i18n.py index e454e31..02adcdd 100644 --- a/src/wok/i18n.py +++ b/src/wok/i18n.py @@ -62,4 +62,6 @@ messages = { "WOKRES0001L": _("Request made on resource"), "WOKROOT0001L": _("User '%(username)s' login"), "WOKROOT0002L": _("User '%(username)s' logout"), + + "WOKCONFIG0001I": _("WoK is going to restart. Existing WoK connections will be closed."), } diff --git a/src/wok/model/config.py b/src/wok/model/config.py index 57c5ad8..b69f2dd 100644 --- a/src/wok/model/config.py +++ b/src/wok/model/config.py @@ -18,8 +18,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA import cherrypy +import time from wok.config import config, get_version +from wok.model.notifications import add_notification +from wok.utils import wok_log class ConfigModel(object): @@ -34,4 +37,16 @@ class ConfigModel(object): 'version': get_version()} def reload(self, name): + add_notification('WOKCONFIG0001I', plugin_name='/') + # If we proceed with the cherrypy.engine.restart() right after + # adding the notification, the server will reboot and the + # opened UIs will most likely not see the notification at all. The + # notification interval is set in wok.main.js as: + # + # wok.NOTIFICATION_INTERVAL = 2000 + # + # Inserting a time.sleep(2) here will ensure that all opened + # UI had the chance to see the reload notification. + wok_log.info('Reloading WoK in two seconds ...') + time.sleep(2) cherrypy.engine.restart() -- 2.7.4