Sha256: 037791b0244176a526e0adcc9f221fd9f2fd608f80f70e5e3b7c497c94eb01a7

Contents?: true

Size: 1.19 KB

Versions: 5

Compression:

Stored size: 1.19 KB

Contents

require 'json'
require 'cgi'

module MCollective
  module Agent
    class Action_agent < RPC::Agent
     action "run_command" do
        #validate :action_agent_request, String

        payload = request[:action_agent_request].to_json
        Log.info "Run command has been started with params: "
        Log.info payload

        # we encode payload
        encoded_payload = CGI.escape(payload)
        result = `/opt/puppet-omnibus/embedded/bin/dtk-action-agent '#{encoded_payload}'`

        json_result = JSON.parse(result)
        reply[:results] = json_result['results']
        reply[:errors]  = json_result['errors']

        Log.info "Results: "
        Log.info reply[:results]

        Log.info "Errors: "
        Log.info reply[:errors]


        reply[:pbuilderid] = Facts["pbuilderid"]

        if reply[:errors].empty?
          Log.info "DTK Action Agent has finished successfully sending proper response"
          reply[:status] = :ok
        else
          reply[:status]     = :failed
          reply[:statusmsg]  = :failed
          reply[:statuscode] = 1

          Log.error "DTK Action Agent has errors:"
          reply[:errors].each { |a| Log.error a }
        end

      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dtk-node-agent-0.7.7 mcollective_additions/plugins/v2.2/agent/action_agent.rb
dtk-node-agent-0.7.6 mcollective_additions/plugins/v2.2/agent/action_agent.rb
dtk-node-agent-0.7.5 mcollective_additions/plugins/v2.2/agent/action_agent.rb
dtk-node-agent-0.7.4.1 mcollective_additions/plugins/v2.2/agent/action_agent.rb
dtk-node-agent-0.7.4 mcollective_additions/plugins/v2.2/agent/action_agent.rb