Parent

Class Index [+]

Quicksearch

MCollective::RPC::Reply

Simple class to manage compliant replies to MCollective::RPC

Attributes

statuscode[RW]

(Not documented)

statusmsg[RW]

(Not documented)

data[RW]

(Not documented)

Public Class Methods

new(action, ddl) click to toggle source

(Not documented)

    # File lib/mcollective/rpc/reply.rb, line 7
 7:       def initialize(action, ddl)
 8:         @data = {}
 9:         @statuscode = 0
10:         @statusmsg = "OK"
11:         @ddl = ddl
12:         @action = action
13: 
14:         begin
15:           initialize_data
16:         rescue Exception => e
17:           Log.warn("Could not pre-populate reply data from the DDL: %s: %s" % [e.class, e.to_s ])
18:         end
19:       end

Public Instance Methods

[](key) click to toggle source

Read from the data hash

    # File lib/mcollective/rpc/reply.rb, line 70
70:       def [](key)
71:         @data[key]
72:       end
[]=(key, val) click to toggle source

Write to the data hash

    # File lib/mcollective/rpc/reply.rb, line 65
65:       def []=(key, val)
66:         @data[key] = val
67:       end
fail(msg, code=1) click to toggle source

Helper to fill in statusmsg and code on failure

    # File lib/mcollective/rpc/reply.rb, line 36
36:       def fail(msg, code=1)
37:         @statusmsg = msg
38:         @statuscode = code
39:       end
fail!(msg, code=1) click to toggle source

Helper that fills in statusmsg and code but also raises an appropriate error

    # File lib/mcollective/rpc/reply.rb, line 42
42:       def fail!(msg, code=1)
43:         @statusmsg = msg
44:         @statuscode = code
45: 
46:         case code
47:           when 1
48:             raise RPCAborted, msg
49: 
50:           when 2
51:             raise UnknownRPCAction, msg
52: 
53:           when 3
54:             raise MissingRPCData, msg
55: 
56:           when 4
57:             raise InvalidRPCData, msg
58: 
59:           else
60:             raise UnknownRPCError, msg
61:         end
62:       end
fetch(key, default) click to toggle source

(Not documented)

    # File lib/mcollective/rpc/reply.rb, line 74
74:       def fetch(key, default)
75:         @data.fetch(key, default)
76:       end
initialize_data() click to toggle source

(Not documented)

    # File lib/mcollective/rpc/reply.rb, line 21
21:       def initialize_data
22:         unless @ddl.actions.include?(@action)
23:           raise "No action '%s' defined for agent '%s' in the DDL" % [@action, @ddl.pluginname]
24:         end
25: 
26:         interface = @ddl.action_interface(@action)
27: 
28:         interface[:output].keys.each do |output|
29:           # must deep clone this data to avoid accidental updates of the DDL in cases where the
30:           # default is for example a string and someone does << on it
31:           @data[output] = Marshal.load(Marshal.dump(interface[:output][output].fetch(:default, nil)))
32:         end
33:       end
to_hash() click to toggle source

Returns a compliant Hash of the reply that should be sent over the middleware

    # File lib/mcollective/rpc/reply.rb, line 80
80:       def to_hash
81:         return {:statuscode => @statuscode,
82:                 :statusmsg => @statusmsg,
83:                 :data => @data}
84:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.