Sha256: 5b17ae7678cd875201a628280457a5351bcd0eeec6f3577ce55eb76b9af0705f

Contents?: true

Size: 1.05 KB

Versions: 12

Compression:

Stored size: 1.05 KB

Contents

module MCollective
  module RPC
    # Simple class to manage compliant results from MCollective::RPC agents
    #
    # Currently it just fakes Hash behaviour to the result to remain backward
    # compatible but it also knows which agent and action produced it so you
    # can associate results to a DDL
    class Result
      attr_reader :agent, :action, :results

      include Enumerable

      def initialize(agent, action, result={})
        @agent = agent
        @action = action
        @results = result
      end

      def [](idx)
        @results[idx]
      end

      def []=(idx, item)
        @results[idx] = item
      end

      def fetch(key, default)
        @results.fetch(key, default)
      end

      def each
        @results.each_pair {|k,v| yield(k,v) }
      end

      def to_json(*a)
        {:agent => @agent,
         :action => @action,
         :sender => @results[:sender],
         :statuscode => @results[:statuscode],
         :statusmsg => @results[:statusmsg],
         :data => @results[:data]}.to_json(*a)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mcollective-client-2.5.3 lib/mcollective/rpc/result.rb
mcollective-client-2.5.2 lib/mcollective/rpc/result.rb
mcollective-client-2.5.1 lib/mcollective/rpc/result.rb
mcollective-client-2.5.0 lib/mcollective/rpc/result.rb
mcollective-client-2.5.0.rc1 lib/mcollective/rpc/result.rb
mcollective-client-2.4.1 lib/mcollective/rpc/result.rb
mcollective-client-2.4.0 lib/mcollective/rpc/result.rb
mcollective-client-2.2.4 lib/mcollective/rpc/result.rb
mcollective-client-2.2.3 lib/mcollective/rpc/result.rb
mcollective-client-2.2.2 lib/mcollective/rpc/result.rb
mcollective-client-2.2.1 lib/mcollective/rpc/result.rb
mcollective-client-2.2.0 lib/mcollective/rpc/result.rb