X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=plugins%2Fmcollective%2Fagent%2Frpcutil.rb;fp=plugins%2Fmcollective%2Fagent%2Frpcutil.rb;h=1c8c71e36d4caa5351c237196cba1ec0ecc1385e;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/plugins/mcollective/agent/rpcutil.rb b/plugins/mcollective/agent/rpcutil.rb new file mode 100644 index 0000000..1c8c71e --- /dev/null +++ b/plugins/mcollective/agent/rpcutil.rb @@ -0,0 +1,99 @@ +module MCollective + module Agent + class Rpcutil target_agent, + :license => "unknown", + :timeout => agent.timeout, + :description => "unknown", + :name => target_agent, + :url => "unknown", + :version => "unknown", + :author => "unknown"} + + agent_data.merge!(agent.meta) + + reply[:agents] << agent_data + end + end + + # Retrieves a single config property that is in effect + action "get_config_item" do + reply.fail! "Unknown config property #{request[:item]}" unless config.respond_to?(request[:item]) + + reply[:item] = request[:item] + reply[:value] = config.send(request[:item]) + end + + # Responds to PING requests with the local timestamp + action "ping" do + reply[:pong] = Time.now.to_i + end + + # Returns all configured collectives + action "collective_info" do + config = Config.instance + reply[:main_collective] = config.main_collective + reply[:collectives] = config.collectives + end + + action "get_data" do + if request[:query] + query = Data.ddl_transform_input(Data.ddl(request[:source]), request[:query].to_s) + else + query = nil + end + + data = Data[ request[:source] ].lookup(query) + + data.keys.each do |key| + reply[key] = data[key] + end + end + end + end +end