class Radiosonde::Exporter

Public Class Methods

export(cloud_watch, opts = {}) click to toggle source
# File lib/radiosonde/exporter.rb, line 5
def export(cloud_watch, opts = {})
  self.new(cloud_watch, opts).export
end
new(cloud_watch, options = {}) click to toggle source
# File lib/radiosonde/exporter.rb, line 10
def initialize(cloud_watch, options = {})
  @cloud_watch = cloud_watch
  @options = options
end

Public Instance Methods

export() click to toggle source
# File lib/radiosonde/exporter.rb, line 15
def export
  result = {}

  @cloud_watch.alarms.each do |alarm|
    if matched?(alarm.alarm_name, @options[:include], @options[:exclude])
      export_alarm(alarm, result)
    end
  end

  return result
end

Private Instance Methods

export_alarm(alarm, result) click to toggle source
# File lib/radiosonde/exporter.rb, line 29
def export_alarm(alarm, result)
  alarm_attrs = {
    :description => alarm.alarm_description,
    :metric_name => alarm.metric_name,
    :namespace => alarm.namespace,
    :dimensions => alarm.dimensions,
    :period => alarm.period,
    :statistic => alarm.statistic,
    :threshold => alarm.threshold,
    :comparison_operator => alarm.comparison_operator,
    :evaluation_periods => alarm.evaluation_periods,
    :actions_enabled => alarm.actions_enabled,
    :alarm_actions => alarm.alarm_actions,
    :ok_actions => alarm.ok_actions,
    :insufficient_data_actions => alarm.insufficient_data_actions,
    :unit => alarm.unit,
  }

  if @options[:with_status]
    alarm_attrs[:status] = export_alarm_status(alarm)
  end

  result[alarm.alarm_name] = alarm_attrs
end
export_alarm_status(alarm) click to toggle source
# File lib/radiosonde/exporter.rb, line 54
def export_alarm_status(alarm)
  {
    :alarm_arn => alarm.alarm_arn,
    :state_value => alarm.state_value,
    :state_reason => alarm.state_reason,
    :state_reason_data => alarm.state_reason_data ? JSON.parse(alarm.state_reason_data) : nil,
    :state_updated_timestamp => alarm.state_updated_timestamp,
    :alarm_configuration_updated_timestamp => alarm.alarm_configuration_updated_timestamp,
  }
end