| Class | MCollective::Message |
| In: |
lib/mcollective/message.rb
|
| Parent: | Object |
container for a message, its headers, agent, collective and other meta data
| VALIDTYPES | = | [:message, :request, :direct_request, :reply] |
| agent | [RW] | |
| collective | [RW] | |
| discovered_hosts | [RW] | |
| expected_msgid | [R] | |
| filter | [RW] | |
| headers | [RW] | |
| message | [R] | |
| msgtime | [R] | |
| options | [RW] | |
| payload | [R] | |
| reply_to | [R] | |
| request | [R] | |
| requestid | [RW] | |
| ttl | [RW] | |
| type | [R] | |
| validated | [R] |
payload - the message body without headers etc, just the text message - the original message received from the middleware options[:base64] - if the body base64 encoded? options[:agent] - the agent the message is for/from options[:collective] - the collective its for/from options[:headers] - the message headers options[:type] - an indicator about the type of message, :message, :request, :direct_request or :reply options[:request] - if this is a reply this should old the message we are replying to options[:filter] - for requests, the filter to encode into the message options[:options] - the normal client options hash options[:ttl] - the maximum amount of seconds this message can be valid for options[:expected_msgid] - in the case of replies this is the msgid it is expecting in the replies options[:requestid] - specific request id to use else one will be generated
in the case of reply messages we are expecting replies to a previously created message. This stores a hint to that previously sent message id and can be used by other classes like the security plugins as a means of optimizing their behavior like by ignoring messages not directed at us.
Sets a custom reply-to target for requests. The connector plugin should inspect this when constructing requests and set this header ensuring replies will go to the custom target otherwise the connector should just do what it usually does
Sets the message type to one of the known types. In the case of :direct_request the list of hosts to communicate with should have been set with discovered_hosts else an exception will be raised. This is for extra security, we never accidentally want to send a direct request without a list of hosts or something weird like that as it might result in a filterless broadcast being sent.
Additionally you simply cannot set :direct_request if direct_addressing was not enabled this is to force a workflow that doesnt not yield in a mistake when someone might assume direct_addressing is enabled when its not.