check for updates and offer option option to restart
This commit is contained in:
parent
06d74f809d
commit
0bd359f89d
5 changed files with 109 additions and 14 deletions
33
oml/api.py
33
oml/api.py
|
|
@ -10,6 +10,8 @@ import ox
|
|||
from oxtornado import actions
|
||||
|
||||
|
||||
import settings
|
||||
|
||||
import item.api
|
||||
import user.api
|
||||
|
||||
|
|
@ -76,3 +78,34 @@ def autocompleteFolder(data):
|
|||
'items': ox.sorted_strings(folders)
|
||||
}
|
||||
actions.register(autocompleteFolder, cache=False)
|
||||
|
||||
def getVersion(data):
|
||||
'''
|
||||
check if new version is available
|
||||
'''
|
||||
response = {
|
||||
'current': settings.MINOR_VERSION,
|
||||
'upgrade': False,
|
||||
}
|
||||
if not os.path.exists(os.path.join(settings.updates_path, 'release.json')):
|
||||
return response
|
||||
if not os.path.exists(os.path.join(settings.config_path, 'release.json')):
|
||||
return response
|
||||
with open(os.path.join(settings.updates_path, 'release.json')) as fd:
|
||||
release = json.load(fd)
|
||||
current = settings.release['modules']['openmedialibrary']['version']
|
||||
response['current'] = current
|
||||
new = release['modules']['openmedialibrary']['version']
|
||||
response['new'] = new
|
||||
response['update'] = current < new
|
||||
return response
|
||||
actions.register(getVersion, cache=False)
|
||||
|
||||
def restart(data):
|
||||
'''
|
||||
restart (and upgrade if upgrades are available)
|
||||
'''
|
||||
#subprocess.Popen(['./ctl', 'restart'], preexec_fn=os.setpgrp, close_fds=True)
|
||||
subprocess.Popen(['./ctl', 'restart'], close_fds=True)
|
||||
return {}
|
||||
actions.register(restart, cache=False)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from __future__ import division, print_function
|
|||
|
||||
import os
|
||||
import sys
|
||||
import signal
|
||||
|
||||
from tornado.httpserver import HTTPServer
|
||||
from tornado.ioloop import IOLoop
|
||||
|
|
@ -94,14 +95,20 @@ def run():
|
|||
host = settings.server['address']
|
||||
url = 'http://%s:%s/' % (host, settings.server['port'])
|
||||
print('open browser at %s' % url)
|
||||
|
||||
def shutdown():
|
||||
if state.downloads:
|
||||
state.downloads.join()
|
||||
if state.tasks:
|
||||
state.tasks.join()
|
||||
if state.nodes:
|
||||
state.nodes.join()
|
||||
http_server.stop()
|
||||
|
||||
signal.signal(signal.SIGTERM, shutdown)
|
||||
|
||||
try:
|
||||
state.main.start()
|
||||
except:
|
||||
print('shutting down...')
|
||||
|
||||
if state.downloads:
|
||||
state.downloads.join()
|
||||
if state.tasks:
|
||||
state.tasks.join()
|
||||
if state.nodes:
|
||||
state.nodes.join()
|
||||
shutdown()
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ def check():
|
|||
old = settings.release['modules']['openmedialibrary']['version']
|
||||
new = release['modules']['openmedialibrary']['version']
|
||||
return verify(release) and old < new
|
||||
return False
|
||||
|
||||
def download():
|
||||
if not os.path.exists(os.path.join(settings.config_path, 'release.json')):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue