Sha256: f7d96d36cb34c335e10e13d79b7409919f9624192d2c36295d218b96602cc31c

Contents?: true

Size: 788 Bytes

Versions: 5

Compression:

Stored size: 788 Bytes

Contents

class Radiosonde::Wrapper::AlarmCollection
  include Radiosonde::Logger::Helper

  def initialize(cloud_watch, options = {})
    @cloud_watch = cloud_watch
    @options = options
  end

  def each
    @cloud_watch.describe_alarms.each do |page|
      page.metric_alarms.each do |alarm|
        yield(Radiosonde::Wrapper::Alarm.new(@cloud_watch, alarm, @options))
      end
    end
  end

  def create(name, dsl)
    log(:info, 'Create Alarm', :cyan, name)
    opts = Radiosonde::Wrapper::Alarm.normalize_attrs(dsl)

    alarm = Aws::CloudWatch::Types::MetricAlarm.new(opts.merge(alarm_name: name))
    unless @options[:dry_run]
      @cloud_watch.put_metric_alarm(alarm.to_h)
      @cloud_watch.modify!
    end

    Radiosonde::Wrapper::Alarm.new(@cloud_watch, alarm, @options)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
radiosonde-0.2.0.beta5 lib/radiosonde/wrapper/alarm_collection.rb
radiosonde-0.2.0.beta4 lib/radiosonde/wrapper/alarm_collection.rb
radiosonde-0.2.0.beta3 lib/radiosonde/wrapper/alarm_collection.rb
radiosonde-0.2.0.beta2 lib/radiosonde/wrapper/alarm_collection.rb
radiosonde-0.2.0.beta lib/radiosonde/wrapper/alarm_collection.rb