class Awspec::Generator::Spec::CloudwatchLogs

Public Instance Methods

cloudwatch_logs_spec_template() click to toggle source
# File lib/awspec/generator/spec/cloudwatch_logs.rb, line 46
      def cloudwatch_logs_spec_template
        template = <<-'EOF'
describe cloudwatch_logs('<%= log_group.log_group_name %>') do
  it { should exist }
<%- unless log_group.retention_in_days.nil? -%>
  its(:retention_in_days) { should eq <%= log_group.retention_in_days %> }
<% end -%>
<%- unless log_stream_line.nil? -%>
  <%= log_stream_line %>
<% end -%>
<% metric_filter_lines.each do |metric_filter_line| %>
  <%= metric_filter_line %>
<% end %>
<% subscription_filter_lines.each do |subscription_filter_line| %>
  <%= subscription_filter_line %>
<% end %>
end
EOF
        template
      end
generate_all() click to toggle source
# File lib/awspec/generator/spec/cloudwatch_logs.rb, line 5
def generate_all
  log_groups = select_all_cloudwatch_logs_log_groups
  raise 'Not Found Log Group' if log_groups.empty?
  specs = log_groups.map do |log_group|
    log_stream_line = generate_log_stream_spec(log_group.log_group_name)
    metric_filter_lines = generate_log_metric_filters_specs(log_group.log_group_name)
    subscription_filter_lines = generate_log_subscription_filters_specs(log_group.log_group_name)
    content = ERB.new(cloudwatch_logs_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
  end
  specs.join("\n")
end
generate_log_metric_filters_specs(log_group) click to toggle source
# File lib/awspec/generator/spec/cloudwatch_logs.rb, line 22
def generate_log_metric_filters_specs(log_group)
  metric_filters = select_all_cloudwatch_logs_metric_filter(log_group)
  metric_filter_lines = []
  metric_filters.each do |metric_filter|
    line = "it { should have_metric_filter('#{metric_filter.filter_name}') }"
    metric_filter_lines.push(line)
  end
  metric_filter_lines
end
generate_log_stream_spec(log_group) click to toggle source
# File lib/awspec/generator/spec/cloudwatch_logs.rb, line 17
def generate_log_stream_spec(log_group)
  log_stream = last_cloudwatch_logs_stream_by_log_group_name(log_group)
  "it { should have_log_stream('#{log_stream.log_stream_name}') }" unless log_stream.nil?
end
generate_log_subscription_filters_specs(log_group) click to toggle source
# File lib/awspec/generator/spec/cloudwatch_logs.rb, line 32
def generate_log_subscription_filters_specs(log_group)
  subscription_filters = select_all_cloudwatch_logs_subscription_filter(log_group)
  subscription_filter_lines = []
  subscription_filters.each do |subscription_filter|
    line = "it { should have_subscription_filter('#{subscription_filter.filter_name}')"
    unless subscription_filter.filter_pattern.empty?
      line += ".filter_pattern('#{subscription_filter.filter_pattern}')"
    end
    line += ' }'
    subscription_filter_lines.push(line)
  end
  subscription_filter_lines
end