class Fog::Rackspace::Monitoring::Real

Public Class Methods

new(options={}) click to toggle source
# File lib/fog/rackspace/monitoring.rb, line 129
def initialize(options={})
  @rackspace_api_key = options[:rackspace_api_key]
  @rackspace_username = options[:rackspace_username]
  @rackspace_auth_url = options[:rackspace_auth_url]
  @connection_options = options[:connection_options] || {}
  @rackspace_endpoint = Fog::Rackspace.normalize_url(options[:rackspace_monitoring_url])

  authenticate

  @persistent = options[:persistent] || false
  @connection = Fog::Core::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
end

Public Instance Methods

create_agent_token(options = {}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/create_agent_token.rb, line 5
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/fog/rackspace/requests/monitoring/create_alarm.rb, line 5
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/fog/rackspace/requests/monitoring/create_check.rb, line 5
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/fog/rackspace/requests/monitoring/create_entity.rb, line 5
def create_entity(options = {})
  data = options.dup
  request(
    :body     => JSON.encode(data),
    :expects  => [201],
    :method   => 'POST',
    :path     => 'entities'
  )
end
create_notification(options = {}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/create_notification.rb, line 5
def create_notification(options = {})
  data = options.dup
  request(
    :body     => JSON.encode(data),
    :expects  => [201],
    :method   => 'POST',
    :path     => 'notifications'
  )
end
delete_agent_token(token_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/delete_agent_token.rb, line 5
def delete_agent_token(token_id)
  request(
    :expects  => [204],
    :method   => 'DELETE',
    :path     => "agent_tokens/#{token_id}"
  )
end
delete_alarm(entity_id, alarm_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/delete_alarm.rb, line 5
def delete_alarm(entity_id, alarm_id)
  request(
    :expects  => [204],
    :method   => 'DELETE',
    :path     => "entities/#{entity_id}/alarms/#{alarm_id}"
  )
end
delete_check(entity_id, check_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/delete_check.rb, line 5
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/fog/rackspace/requests/monitoring/delete_entity.rb, line 5
def delete_entity(entity_id)
  request(
    :expects  => [204],
    :method   => 'DELETE',
    :path     => "entities/#{entity_id}"
  )
end
delete_notification(notification_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/delete_notification.rb, line 5
def delete_notification(notification_id)
  request(
    :expects  => [204],
    :method   => 'DELETE',
    :path     => "notifications/#{notification_id}"
  )
end
endpoint_uri(service_endpoint_url=nil) click to toggle source
Calls superclass method Fog::Rackspace::Service#endpoint_uri
# File lib/fog/rackspace/monitoring.rb, line 146
def endpoint_uri(service_endpoint_url=nil)
  @uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_monitoring_url)
end
evaluate_alarm_example(id, options = {}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb, line 5
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(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_agent.rb, line 5
def get_agent(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}"
  )
end
get_agent_token(id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_agent_token.rb, line 5
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/fog/rackspace/requests/monitoring/get_alarm.rb, line 5
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/fog/rackspace/requests/monitoring/get_alarm_example.rb, line 5
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/fog/rackspace/requests/monitoring/get_check.rb, line 5
def get_check(entity_id, check_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "entities/#{entity_id}/checks/#{check_id}"
  )
end
get_cpus_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_cpus_info.rb, line 5
def get_cpus_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/cpus"
  )
end
get_disks_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_disks_info.rb, line 5
def get_disks_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/disks"
  )
end
get_entity(entity_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_entity.rb, line 5
def get_entity(entity_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "entities/#{entity_id}"
  )
end
get_filesystems_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb, line 5
def get_filesystems_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/filesystems"
  )
end
get_logged_in_user_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb, line 5
def get_logged_in_user_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/who"
  )
end
get_memory_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_memory_info.rb, line 5
def get_memory_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/memory"
  )
end
get_monitoring_zone(by_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_monitoring_zone.rb, line 5
def get_monitoring_zone by_id
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "monitoring_zones/#{by_id}"
  )
end
get_network_interfaces_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb, line 5
def get_network_interfaces_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/network_interfaces"
  )
end
get_notification(notification_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_notification.rb, line 5
def get_notification(notification_id)
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "notifications/#{notification_id}"
  )
end
get_processes_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_processes_info.rb, line 5
def get_processes_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/processes"
  )
end
get_system_info(agent_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/get_system_info.rb, line 5
def get_system_info(agent_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents/#{agent_id}/host_info/system"
  )
end
list_agent_tokens(options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb, line 5
def list_agent_tokens(options={})
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => 'agent_tokens',
    :query    => options
  )
end
list_agents() click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_agents.rb, line 5
def list_agents
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "agents"
  )
end
list_alarm_examples() click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb, line 5
def list_alarm_examples
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => 'alarm_examples'
  )
end
list_alarms(entity_id, options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_alarms.rb, line 5
def list_alarms(entity_id, options={})
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "entities/#{entity_id}/alarms",
    :query    => options
  )
end
list_check_types() click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_check_types.rb, line 5
def list_check_types
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "check_types"
  )
end
list_checks(entity_id, options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_checks.rb, line 5
def list_checks(entity_id, options={})
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "entities/#{entity_id}/checks",
    :query    => options
  )
end
list_data_points(entity_id, check_id, metric_name, options) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_data_points.rb, line 5
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(options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_entities.rb, line 5
def list_entities(options={})
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => 'entities',
    :query    => options
  )
end
list_metrics(entity_id, check_id) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_metrics.rb, line 5
def list_metrics(entity_id, check_id)
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "entities/#{entity_id}/checks/#{check_id}/metrics"
  )
end
list_monitoring_zones() click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_monitoring_zones.rb, line 5
def list_monitoring_zones
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "monitoring_zones"
  )
end
list_notification_plans() click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_notification_plans.rb, line 5
def list_notification_plans
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "notification_plans"
  )
end
list_notifications(options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_notifications.rb, line 5
def list_notifications(options={})
  request(
    :expects  => [200],
    :method   => 'GET',
    :path     => "notifications",
    :query    => options
  )
end
list_overview(options={}) click to toggle source
# File lib/fog/rackspace/requests/monitoring/list_overview.rb, line 5
def list_overview(options={})
  request(
    :expects  => [200, 203],
    :method   => 'GET',
    :path     => "views/overview",
    :query    => options
  )
end
region() click to toggle source
# File lib/fog/rackspace/monitoring.rb, line 125
def region
  @rackspace_region
end
reload() click to toggle source
# File lib/fog/rackspace/monitoring.rb, line 142
def reload
  @connection.reset
end
request_id_header() click to toggle source
# File lib/fog/rackspace/monitoring.rb, line 150
def request_id_header
 "X-Response-Id"
end
service_name() click to toggle source
# File lib/fog/rackspace/monitoring.rb, line 121
def service_name
  :cloudMonitoring
end
update_alarm(entity_id, alarm_id, options) click to toggle source
# File lib/fog/rackspace/requests/monitoring/update_alarm.rb, line 5
def update_alarm(entity_id, alarm_id, options)
  request(
    :body     => JSON.encode(options),
    :expects  => [204],
    :method   => 'PUT',
    :path     => "entities/#{entity_id}/alarms/#{alarm_id}"
  )
end
update_check(entity_id, check_id, options) click to toggle source
# File lib/fog/rackspace/requests/monitoring/update_check.rb, line 5
def update_check(entity_id, check_id, options)
  request(
    :body     => JSON.encode(options),
    :expects  => [204],
    :method   => 'PUT',
    :path     => "entities/#{entity_id}/checks/#{check_id}"
  )
end
update_entity(entity_id, options) click to toggle source
# File lib/fog/rackspace/requests/monitoring/update_entity.rb, line 5
def update_entity(entity_id, options)
  request(
    :body     => JSON.encode(options),
    :expects  => [204],
    :method   => 'PUT',
    :path     => "entities/#{entity_id}"
  )
end
update_notification(id, options) click to toggle source
# File lib/fog/rackspace/requests/monitoring/update_notification.rb, line 5
def update_notification(id, options)
  request(
    :body     => JSON.encode(options),
    :expects  => [204],
    :method   => 'PUT',
    :path     => "notifications/#{id}"
  )
end

Private Instance Methods

authenticate() click to toggle source
Calls superclass method Fog::Rackspace::Service#authenticate
# File lib/fog/rackspace/monitoring.rb, line 172
def authenticate
  options = {
    :rackspace_api_key => @rackspace_api_key,
    :rackspace_username => @rackspace_username,
    :rackspace_auth_url => @rackspace_auth_url,
    :connection_options => @connection_options
  }
  super(options)
end
request(params, parse_json = true) click to toggle source
Calls superclass method Fog::Rackspace::Service#request
# File lib/fog/rackspace/monitoring.rb, line 156
def request(params, parse_json = true)
  super
rescue Excon::Errors::BadRequest => error
  raise BadRequest.slurp(error, self)
rescue Excon::Errors::Conflict => error
  raise Conflict.slurp(error, self)
rescue Excon::Errors::NotFound => error
  raise NotFound.slurp(error, self)
rescue Excon::Errors::ServiceUnavailable => error
  raise ServiceUnavailable.slurp(error, self)
rescue Excon::Errors::InternalServerError => error
  raise InternalServerError.slurp(error, self)
rescue Excon::Errors::HTTPStatusError => error
  raise ServiceError.slurp(error, self)
end