Add running display of stdout.log when executing upgrade

This commit is contained in:
Lance Edgar 2017-08-09 11:44:31 -05:00
parent fbd73a48c4
commit e5b0fe7198
6 changed files with 243 additions and 92 deletions

View file

@ -71,8 +71,10 @@ class MasterView(View):
bulk_deletable = False
mergeable = False
downloadable = False
executable = False
cloneable = False
executable = False
execute_progress_template = None
execute_progress_initial_msg = None
supports_mobile = False
mobile_creatable = False
@ -841,20 +843,22 @@ class MasterView(View):
model_title = self.get_model_title()
if self.request.method == 'POST':
progress = self.make_execute_progress()
progress = self.make_execute_progress(obj)
kwargs = {'progress': progress}
thread = Thread(target=self.execute_thread, args=(obj.uuid, self.request.user.uuid), kwargs=kwargs)
thread.start()
return self.render_progress(progress, {
'instance': obj,
'initial_msg': self.execute_progress_initial_msg,
'cancel_url': self.get_action_url('view', obj),
'cancel_msg': "{} execution was canceled".format(model_title),
})
}, template=self.execute_progress_template)
self.request.session.flash("Sorry, you must POST to execute a {}.".format(model_title), 'error')
return self.redirect(self.get_action_url('view', obj))
def make_execute_progress(self):
def make_execute_progress(self, obj):
key = '{}.execute'.format(self.get_grid_key())
return SessionProgress(self.request, key)