Class: Bosh::Director::Errand::Result
- Defined in:
- lib/bosh/director/errand/result.rb
Constant Summary collapse
- AGENT_RUN_ERRAND_RESULT_SCHEMA =
::Membrane::SchemaParser.parse do { 'exit_code' => Integer, 'stdout' => String, 'stderr' => String, } end
Instance Attribute Summary collapse
-
#exit_code ⇒ Object
readonly
Returns the value of attribute exit_code.
Class Method Summary collapse
-
.from_agent_task_results(agent_task_result, logs_blobstore_id) ⇒ Object
Explicitly write out schema of the director task result to avoid accidently leaking agent task result extra fields.
Instance Method Summary collapse
-
#initialize(exit_code, stdout, stderr, logs_blobstore_id) ⇒ Result
constructor
A new instance of Result.
- #short_description(job_name) ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(exit_code, stdout, stderr, logs_blobstore_id) ⇒ Result
Returns a new instance of Result.
24 25 26 27 28 29 |
# File 'lib/bosh/director/errand/result.rb', line 24 def initialize(exit_code, stdout, stderr, logs_blobstore_id) @exit_code = exit_code @stdout = stdout @stderr = stderr @logs_blobstore_id = logs_blobstore_id end |
Instance Attribute Details
#exit_code ⇒ Object (readonly)
Returns the value of attribute exit_code.
5 6 7 |
# File 'lib/bosh/director/errand/result.rb', line 5 def exit_code @exit_code end |
Class Method Details
.from_agent_task_results(agent_task_result, logs_blobstore_id) ⇒ Object
Explicitly write out schema of the director task result to avoid accidently leaking agent task result extra fields.
17 18 19 20 21 22 |
# File 'lib/bosh/director/errand/result.rb', line 17 def self.from_agent_task_results(agent_task_result, logs_blobstore_id) AGENT_RUN_ERRAND_RESULT_SCHEMA.validate(agent_task_result) new(*agent_task_result.values_at('exit_code', 'stdout', 'stderr'), logs_blobstore_id) rescue Membrane::SchemaValidationError => e raise AgentInvalidTaskResult, e. end |
Instance Method Details
#short_description(job_name) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/bosh/director/errand/result.rb', line 31 def short_description(job_name) title_prefix = "Errand '#{job_name}'" exit_code_suffix = "(exit code #{@exit_code})" if @exit_code == 0 "#{title_prefix} completed successfully #{exit_code_suffix}" elsif @exit_code > 128 "#{title_prefix} was canceled #{exit_code_suffix}" else "#{title_prefix} completed with error #{exit_code_suffix}" end end |
#to_hash ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bosh/director/errand/result.rb', line 44 def to_hash { 'exit_code' => @exit_code, 'stdout' => @stdout, 'stderr' => @stderr, 'logs' => { 'blobstore_id' => @logs_blobstore_id, }, } end |