Sha256: 5b9bdeb5c10864a7eac71ed8cac9f41735041be1f544cc77b85f5bbeb0987bbb

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

require 'rest_client'

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

2 entries across 2 versions & 1 rubygems

Version Path
i2x-0.1.1 lib/i2x/client.rb
i2x-0.1 lib/i2x/client.rb