[ARVADOS] updated: 4bf9e0c663789cbb748e628e8e86a8ea9ab047c5

git at public.curoverse.com git at public.curoverse.com
Mon Jun 2 14:47:39 EDT 2014


Summary of changes:
 apps/workbench/app/controllers/jobs_controller.rb  |  5 +++
 apps/workbench/app/models/job.rb                   |  4 ++
 .../workbench/app/views/jobs/_show_status.html.erb | 46 ++++++++++++----------
 apps/workbench/config/routes.rb                    |  4 +-
 4 files changed, 38 insertions(+), 21 deletions(-)

       via  4bf9e0c663789cbb748e628e8e86a8ea9ab047c5 (commit)
      from  2c77b59f16d698fa5368c2aa28f5c304c3f7e53b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 4bf9e0c663789cbb748e628e8e86a8ea9ab047c5
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Mon Jun 2 14:47:33 2014 -0400

    2882: Added button to cancel a running job.

diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index f693fa6..841d3a9 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -31,6 +31,11 @@ class JobsController < ApplicationController
     end
   end
 
+  def cancel
+    @object.cancel
+    redirect_to @object
+  end
+
   def show
     generate_provenance([@object])
   end
diff --git a/apps/workbench/app/models/job.rb b/apps/workbench/app/models/job.rb
index 56428ab..8dd66ed 100644
--- a/apps/workbench/app/models/job.rb
+++ b/apps/workbench/app/models/job.rb
@@ -10,4 +10,8 @@ class Job < ArvadosBase
   def self.creatable?
     false
   end
+
+  def cancel
+    arvados_api_client.api "jobs/#{self.uuid}/", "cancel", {}
+  end
 end
diff --git a/apps/workbench/app/views/jobs/_show_status.html.erb b/apps/workbench/app/views/jobs/_show_status.html.erb
index 660aa95..99f2414 100644
--- a/apps/workbench/app/views/jobs/_show_status.html.erb
+++ b/apps/workbench/app/views/jobs/_show_status.html.erb
@@ -1,27 +1,33 @@
 
 <div class="pull-right">
-Re-run job using version:
-<%= form_tag '/jobs', style: "display:inline; padding-left: 1em" do |f| %>
-<% [:script, :script_version, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
-  <%= hidden_field :job, d, :value => @object[d] %>
-<% end %>
-<% [:script_parameters, :runtime_constraints].each do |d| %>
-  <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
-<% end %>
-<%= hidden_field :options, :no_reuse, :value => true %>
-<%= button_tag "Same (#{@object.script_version.slice 0,8}...)", {class: 'btn btn-primary', id: "run-pipeline-button"} %>
-<% end %>
+  <% if @object.running %>
+    <%= form_tag "/jobs/#{@object.uuid}/cancel", style: "display:inline; padding-left: 1em" do |f| %>
+    <%= button_tag "Cancel running job", {class: 'btn btn-danger', id: "cancel-job-button"} %>
+    <% end %>
+  <% else %>
+    Re-run job using version:
+    <%= form_tag '/jobs', style: "display:inline; padding-left: 1em" do |f| %>
+    <% [:script, :script_version, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
+      <%= hidden_field :job, d, :value => @object[d] %>
+    <% end %>
+    <% [:script_parameters, :runtime_constraints].each do |d| %>
+      <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
+    <% end %>
+    <%= hidden_field :options, :no_reuse, :value => true %>
+    <%= button_tag "Same (#{@object.script_version.slice 0,8}...)", {class: 'btn btn-primary', id: "re-run-same-job-button"} %>
+  <% end %>
 
-<%= form_tag '/jobs', style: "display:inline" do |f| %>
-<% [:script, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
-  <%= hidden_field :job, d, :value => @object[d] %>
-<% end %>
-<%= hidden_field :job, :script_version, :value => @object[:supplied_script_version] %>
-<% [:script_parameters, :runtime_constraints].each do |d| %>
-  <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
+  <%= form_tag '/jobs', style: "display:inline" do |f| %>
+  <% [:script, :repository, :output_is_persistent, :supplied_script_version, :nondeterministic].each do |d| %>
+    <%= hidden_field :job, d, :value => @object[d] %>
+  <% end %>
+  <%= hidden_field :job, :script_version, :value => @object[:supplied_script_version] %>
+  <% [:script_parameters, :runtime_constraints].each do |d| %>
+    <%= hidden_field :job, d, :value => JSON.dump(@object[d]) %>
+  <% end %>
+  <%= hidden_field :options, :no_reuse, :value => true %>
+  <%= button_tag "Latest (#{@object.repository}/#{@object.supplied_script_version})", {class: 'btn btn-primary', id: "re-run-latest-job-button"} %>
 <% end %>
-<%= hidden_field :options, :no_reuse, :value => true %>
-<%= button_tag "Latest (#{@object.repository}/#{@object.supplied_script_version})", {class: 'btn btn-primary', id: "run-pipeline-button"} %>
 <% end %>
 </div>
 
diff --git a/apps/workbench/config/routes.rb b/apps/workbench/config/routes.rb
index b4da656..383d442 100644
--- a/apps/workbench/config/routes.rb
+++ b/apps/workbench/config/routes.rb
@@ -18,7 +18,9 @@ ArvadosWorkbench::Application.routes.draw do
   resources :virtual_machines
   resources :authorized_keys
   resources :job_tasks
-  resources :jobs
+  resources :jobs do
+    post 'cancel', :on => :member
+  end
   match '/logout' => 'sessions#destroy', via: [:get, :post]
   get '/logged_out' => 'sessions#index'
   resources :users do

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list