projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix crash in collections.provenance when a script_parameter is a Fixnum.
[arvados.git]
/
services
/
api
/
app
/
models
/
job.rb
diff --git
a/services/api/app/models/job.rb
b/services/api/app/models/job.rb
index 3ef52164d203ddf732a04560e051cf65fc49a7e5..9c8f724120ba8049b4a498141e669c5708ca0317 100644
(file)
--- a/
services/api/app/models/job.rb
+++ b/
services/api/app/models/job.rb
@@
-35,6
+35,7
@@
class Job < ArvadosModel
t.add :tasks_summary
t.add :dependencies
t.add :log_stream_href
t.add :tasks_summary
t.add :dependencies
t.add :log_stream_href
+ t.add :log_buffer
end
def assert_finished
end
def assert_finished
@@
-57,6
+58,10
@@
class Job < ArvadosModel
protected
protected
+ def foreign_key_attributes
+ super + %w(output log)
+ end
+
def ensure_script_version_is_commit
if self.is_locked_by_uuid and self.started_at
# Apparently client has already decided to go for it. This is
def ensure_script_version_is_commit
if self.is_locked_by_uuid and self.started_at
# Apparently client has already decided to go for it. This is
@@
-64,11
+69,13
@@
class Job < ArvadosModel
# instead of a commit-ish.
return true
end
# instead of a commit-ish.
return true
end
- sha1 = Commit.find_by_commit_ish(self.script_version) rescue nil
- if sha1
- self.script_version = sha1
- else
- raise ArgumentError.new("Specified script_version does not resolve to a commit")
+ if new_record? or script_version_changed?
+ sha1 = Commit.find_by_commit_ish(self.script_version) rescue nil
+ if sha1
+ self.script_version = sha1
+ else
+ raise ArgumentError.new("Specified script_version does not resolve to a commit")
+ end
end
end
end
end
@@
-106,8
+113,8
@@
class Job < ArvadosModel
script_parameters_changed? or
script_version_changed? or
(!cancelled_at_was.nil? and
script_parameters_changed? or
script_version_changed? or
(!cancelled_at_was.nil? and
- (cancelled_by_client_changed? or
- cancelled_by_user_changed? or
+ (cancelled_by_client_
uuid_
changed? or
+ cancelled_by_user_
uuid_
changed? or
cancelled_at_changed?)) or
started_at_changed? or
finished_at_changed? or
cancelled_at_changed?)) or
started_at_changed? or
finished_at_changed? or
@@
-158,10
+165,20
@@
class Job < ArvadosModel
def trigger_crunch_dispatch_if_cancelled
if @need_crunch_dispatch_trigger
def trigger_crunch_dispatch_if_cancelled
if @need_crunch_dispatch_trigger
- File.open(Rails.configuration.crunch_
dispatch_hup
_trigger, 'wb') do
- # That's all, just create
a file for crunch-dispatch
to see.
+ File.open(Rails.configuration.crunch_
refresh
_trigger, 'wb') do
+ # That's all, just create
/touch a file for crunch-job
to see.
end
end
end
end
end
end
+ def log_buffer
+ begin
+ @@redis ||= Redis.new(:timeout => 0)
+ if @@redis.exists uuid
+ @@redis.getrange(uuid, 0 - 2**10, -1)
+ end
+ rescue Redis::CannotConnectError
+ return '(not available)'
+ end
+ end
end
end