Sha256: b5f29a2094af91ff221663a92d28f4cc952d5aed3bd3ca1df9595561cca4b315

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

require 'rest_client'
require 'logger'

module I2X
	class Client

		##
		# => Load configuration properties from client/script code
		#
		def initialize config, log
			begin
				@config = config
				I2X::Config.set_access_token config[:server][:api_key]
				I2X::Config.set_host config[:server][:host]
				I2X::Config.set_log log

				I2X::Config.log.info(self.class.name) {'Configuration loaded successfully.'}
			rescue Exception => e
				I2X::Config.log.error(self.class.name) {"Failed to load configuration: #{e}"}
			end
			
		end

		##
		# => Validate API key.
		#
		def validate
			begin
				I2X::Config.log.info(self.class.name) {'Launching validation.'}

				out = RestClient.post "#{I2X::Config.host}fluxcapacitor/validate_key.json", {:access_token => I2X::Config.access_token}	
				response = {:status => 100, :response => out.to_str}
			rescue Exception => e
				I2X::Config.log.error(self.class.name) {"Failed validation: #{e}"}
			end
			response
		end

		##
		# => Start processing agents from configuration properties.
		#
		def process
			I2X::Config.log.info(self.class.name) {'Starting agent processing.'}
			begin
				@config[:agents].each do |agent|
					a = I2X::Agent.new agent
					a.execute
				end
			rescue Exception => e				
				I2X::Config.log.error(self.class.name) {"Failed agent processing: #{e}"}
			end
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
i2x-0.0.6 lib/i2x/client.rb