class Fog::Monitoring::Rackspace::Real
Public Class Methods
new(options={})
click to toggle source
# File lib/rackspace-monitoring.rb, line 69 def initialize(options={}) @rackspace_api_key = options[:rackspace_api_key] @rackspace_username = options[:rackspace_username] @rackspace_auth_url = options[:rackspace_auth_url] @rackspace_auth_token = options[:rackspace_auth_token] @rackspace_account_id = options[:rackspace_account_id] @rackspace_service_url = options[:rackspace_service_url] || ENDPOINT @rackspace_must_reauthenticate = false @connection_options = options[:connection_options] || {} if options.has_key?(:raise_errors) @raise_errors = options[:raise_errors] else @raise_errors = true end begin authenticate rescue Exception => error raise_error(error) end @persistent = options[:persistent] || false begin @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) rescue Exception => error raise_error(error) end end
Public Instance Methods
create_agent_token(options = {})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/create_agent_token.rb, line 6 def create_agent_token(options = {}) data = options.dup request( :body => JSON.encode(data), :expects => [201], :method => 'POST', :path => 'agent_tokens' ) end
create_alarm(entity_id, options = {})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/create_alarm.rb, line 6 def create_alarm(entity_id, options = {}) data = options.dup request( :body => JSON.encode(data), :expects => [201], :method => 'POST', :path => "entities/#{entity_id}/alarms" ) end
create_check(entity_id, options = {})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/create_check.rb, line 6 def create_check(entity_id, options = {}) data = options.dup request( :body => JSON.encode(data), :expects => [201], :method => 'POST', :path => "entities/#{entity_id}/checks" ) end
create_entity(options = {})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/create_entity.rb, line 6 def create_entity(options = {}) data = options.dup request( :body => JSON.encode(data), :expects => [201], :method => 'POST', :path => 'entities' ) end
delete_check(entity_id, check_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/delete_check.rb, line 6 def delete_check(entity_id, check_id) request( :expects => [204], :method => 'DELETE', :path => "entities/#{entity_id}/checks/#{check_id}" ) end
delete_entity(entity_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/delete_entity.rb, line 6 def delete_entity(entity_id) request( :expects => [204], :method => 'DELETE', :path => "entities/#{entity_id}" ) end
evaluate_alarm_example(id, options = {})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/evaluate_alarm_example.rb, line 6 def evaluate_alarm_example(id, options = {}) options ||= {} data = {:values => options.dup} request( :body => JSON.encode(data), :expects => [200], :method => 'POST', :path => "alarm_examples/#{id}" ) end
get_agent_token(id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/get_agent_token.rb, line 6 def get_agent_token(id) request( :expects => [200, 203], :method => 'GET', :path => "agent_tokens/#{id}" ) end
get_alarm(entity_id, alarm_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/get_alarm.rb, line 6 def get_alarm(entity_id, alarm_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/alarms/#{alarm_id}" ) end
get_alarm_example(id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/get_alarm_example.rb, line 6 def get_alarm_example(id) request( :expects => [200, 203], :method => 'GET', :path => "alarm_examples/#{id}" ) end
get_check(entity_id, check_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/get_check.rb, line 6 def get_check(entity_id, check_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/checks/#{check_id}" ) end
get_entity(entity_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/get_entity.rb, line 6 def get_entity(entity_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}" ) end
list_agent_tokens(options={})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_agent_tokens.rb, line 6 def list_agent_tokens(options={}) request( :expects => [200, 203], :method => 'GET', :path => 'agent_tokens', :query => options ) end
list_alarm_examples()
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_alarm_examples.rb, line 6 def list_alarm_examples request( :expects => [200, 203], :method => 'GET', :path => 'alarm_examples' ) end
list_alarms(entity_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_alarms.rb, line 6 def list_alarms(entity_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/alarms" ) end
list_check_types()
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_check_types.rb, line 6 def list_check_types request( :expects => [200, 203], :method => 'GET', :path => "check_types" ) end
list_checks(entity_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_checks.rb, line 6 def list_checks(entity_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/checks" ) end
list_data_points(entity_id, check_id, metric_name, options)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_data_points.rb, line 6 def list_data_points(entity_id, check_id, metric_name, options) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/checks/#{check_id}/metrics/#{metric_name}/plot", :query => options ) end
list_entities()
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_entities.rb, line 6 def list_entities request( :expects => [200, 203], :method => 'GET', :path => 'entities' ) end
list_metrics(entity_id, check_id)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_metrics.rb, line 6 def list_metrics(entity_id, check_id) request( :expects => [200, 203], :method => 'GET', :path => "entities/#{entity_id}/checks/#{check_id}/metrics" ) end
list_overview(opts={})
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/list_overview.rb, line 6 def list_overview(opts={}) path = "views/overview" opts.keys.each do |key| path = path + "?#{key}=#{opts[key]}" end request( :expects => [200, 203], :method => 'GET', :path => path ) end
raise_error(error)
click to toggle source
# File lib/rackspace-monitoring.rb, line 104 def raise_error(error) if @raise_errors raise error else print "Error occurred: " + error.message end end
reload()
click to toggle source
# File lib/rackspace-monitoring.rb, line 100 def reload @connection.reset end
request(params)
click to toggle source
# File lib/rackspace-monitoring.rb, line 112 def request(params) begin begin response = @connection.request(params.merge({ :headers => { 'Content-Type' => 'application/json', 'X-Auth-Token' => @auth_token }.merge!(params[:headers] || {}), :host => @host, :path => "#{@path}/#{params[:path]}" })) rescue Excon::Errors::Unauthorized => error if error.response.body != 'Bad username or password' # token expiration @rackspace_must_reauthenticate = true authenticate retry else # bad credentials raise error end rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::Monitoring::Rackspace::NotFound.slurp(error) else error end end unless response.body.empty? response.body = JSON.decode(response.body) end response rescue Exception => error raise_error(error) end end
update_alarm(entity_id, id, options)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/update_alarm.rb, line 6 def update_alarm(entity_id, id, options) request( :body => JSON.encode(options), :expects => [204], :method => 'PUT', :path => "entities/#{entity_id}/alarms/#{id}" ) end
update_check(entity_id, id, options)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/update_check.rb, line 6 def update_check(entity_id, id, options) request( :body => JSON.encode(options), :expects => [204], :method => 'PUT', :path => "entities/#{entity_id}/checks/#{id}" ) end
update_entity(id, options)
click to toggle source
# File lib/rackspace-monitoring/monitoring/requests/update_entity.rb, line 6 def update_entity(id, options) request( :body => JSON.encode(options), :expects => [204], :method => 'PUT', :path => "entities/#{id}" ) end
Private Instance Methods
authenticate()
click to toggle source
# File lib/rackspace-monitoring.rb, line 150 def authenticate if @rackspace_must_reauthenticate || @rackspace_auth_token.nil? || @account_id.nil? options = { :rackspace_api_key => @rackspace_api_key, :rackspace_username => @rackspace_username, :rackspace_auth_url => @rackspace_auth_url } begin credentials = Fog::Rackspace.authenticate(options) rescue Exception => error raise_error(error) return end @auth_token = credentials['X-Auth-Token'] @account_id = credentials['X-Server-Management-Url'].match(/.*\/([\d]+)$/)[1] else @auth_token = @rackspace_auth_token @account_id = @rackspace_account_id end uri = URI.parse("#{@rackspace_service_url}/#{@account_id}") @host = uri.host @path = uri.path @port = uri.port @scheme = uri.scheme end