From d714fd78c6e318fd15d3ce32245649ce45786b2f Mon Sep 17 00:00:00 2001
From: Andreas <andreasv@fsmpi.rwth-aachen.de>
Date: Thu, 8 Jun 2017 09:09:57 +0200
Subject: [PATCH] added option to restart all failed jobs

---
 jobs.py                      | 7 +++++--
 templates/jobs_overview.html | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/jobs.py b/jobs.py
index 12f7ce9..1195828 100644
--- a/jobs.py
+++ b/jobs.py
@@ -37,9 +37,12 @@ def jobs_overview():
 @app.route('/internal/jobs/action/<action>')
 @mod_required
 @csrf_protect
-def jobs_action(action):
+def jobs_action(action, jobid=None):
+	print(jobid)
 	if action == 'clear_failed':
-		query('UPDATE jobs SET state="deleted" WHERE state="failed"')
+		query('UPDATE jobs SET state="deleted" WHERE state = "failed" AND (id = ? OR ? IS NULL)',jobid, jobid)
+	if action == 'retry_failed':
+		query('UPDATE jobs SET state="ready" WHERE state = "failed" AND (id = ? OR ? IS NULL)', jobid, jobid)
 	return redirect(request.values.get('ref', url_for('jobs_overview')))
 
 def jobs_api_token_required(func):
diff --git a/templates/jobs_overview.html b/templates/jobs_overview.html
index 835bcbe..66db847 100644
--- a/templates/jobs_overview.html
+++ b/templates/jobs_overview.html
@@ -38,6 +38,7 @@
 				Jobs
 				<a class="btn btn-default">Job(s) erzeugen</a>
 				<a class="btn btn-default" href="{{url_for('jobs_action', action='clear_failed', ref=request.url)}}" >Alle fehlgeschlagenen Jobs löschen</a>
+				<a class="btn btn-default" href="{{url_for('jobs_action', action='retry_failed', ref=request.url)}}" >Alle fehlgeschlagenen Jobs neustarten</a>
 			</h1>
 		</div>
 		<div class="panel-collapse collapse in">
-- 
GitLab