Module: Bosh::Director::AgentMessageConverter
- Defined in:
- lib/bosh/director/agent_message_converter.rb
Class Method Summary collapse
-
.convert_old_message_to_new(msg) ⇒ Hash
This converts the old agent response format to the new.
Class Method Details
.convert_old_message_to_new(msg) ⇒ Hash
This converts the old agent response format to the new. This can be taken
out once the agents never reply with the old message format.
The old message format is just to pass the return object as JSON. That
means it could be any type -- array, hash, string, int, etc.
The new format is:
"value"=>
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/bosh/director/agent_message_converter.rb', line 13 def self.(msg) if msg && msg.is_a?(Hash) if !msg.has_key?('value') # There's no value but there is state and agent_task_id. # Just leave it. if msg.has_key?('state') && msg.has_key?('agent_task_id') return msg end # There's no value and either one or both of state/agent_task_id don't # exist. Assume that the whole message response was meant to be the # value. return { 'value' => msg, 'state' => msg['state'] || 'done', 'agent_task_id' => msg['agent_task_id'] || nil } elsif !msg.has_key?('state') # The message has a value section but no "state". Mark state as # done. return { 'value' => msg['value'], 'state' => 'done', 'agent_task_id' => msg['agent_task_id'] || nil } else # The message was good from the start! return msg end end # If the message was anything other than a hash (float, int, string, # array, etc.) then we want to just make that be the "value". { 'state' => 'done', 'value' => msg, 'agent_task_id' => nil } end |