projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into 3882-cancel-already-cancelled-job
[arvados.git]
/
services
/
api
/
app
/
controllers
/
arvados
/
v1
/
jobs_controller.rb
diff --git
a/services/api/app/controllers/arvados/v1/jobs_controller.rb
b/services/api/app/controllers/arvados/v1/jobs_controller.rb
index 5a571d4a8b6665b98ee6a9d76d9055c99e1c5e34..e2bef88548fbc8ddab4848e3937d089ac3c62bd5 100644
(file)
--- a/
services/api/app/controllers/arvados/v1/jobs_controller.rb
+++ b/
services/api/app/controllers/arvados/v1/jobs_controller.rb
@@
-65,9
+65,9
@@
class Arvados::V1::JobsController < ApplicationController
incomplete_job = nil
@objects.each do |j|
if j.nondeterministic != true and
incomplete_job = nil
@objects.each do |j|
if j.nondeterministic != true and
-
((j.success == true and j.output != nil) or j.running == tru
e) and
+
["Queued", "Running", "Complete"].include?(j.stat
e) and
j.script_parameters == resource_attrs[:script_parameters]
j.script_parameters == resource_attrs[:script_parameters]
- if j.
running
&& j.owner_uuid == current_user.uuid
+ if j.
state != "Complete"
&& j.owner_uuid == current_user.uuid
# We'll use this if we don't find a job that has completed
incomplete_job ||= j
else
# We'll use this if we don't find a job that has completed
incomplete_job ||= j
else
@@
-96,7
+96,12
@@
class Arvados::V1::JobsController < ApplicationController
def cancel
reload_object_before_update
def cancel
reload_object_before_update
- @object.update_attributes! cancelled_at: Time.now
+ @object.update_attributes! state: Job::Cancelled
+ show
+ end
+
+ def lock
+ @object.lock current_user.uuid
show
end
show
end
@@
-151,19
+156,17
@@
class Arvados::V1::JobsController < ApplicationController
params[:order] ||= ['priority desc', 'created_at']
load_limit_offset_order_params
load_where_param
params[:order] ||= ['priority desc', 'created_at']
load_limit_offset_order_params
load_where_param
- @where.merge!({
- started_at: nil,
- is_locked_by_uuid: nil,
- cancelled_at: nil,
- success: nil
- })
+ @where.merge!({state: Job::Queued})
return if false.equal?(load_filters_param)
find_objects_for_index
index
end
def queue_size
return if false.equal?(load_filters_param)
find_objects_for_index
index
end
def queue_size
- render :json => {:queue_size => Job.queue.size}
+ # Users may not be allowed to see all the jobs in the queue, so provide a
+ # method to get just the queue size in order to get a gist of how busy the
+ # cluster is.
+ render :json => {:queue_size => Job.queue.size}
end
def self._create_requires_parameters
end
def self._create_requires_parameters