class Terracop::Cop::Aws::EnsureTags
This cop makes sure that AWS resources that can be tagged, are indeed tagged. By default it just checks that resources have at least one tag, any tag. It is configurable to enforce the existance of some specific tags.
@example
# bad resource "aws_alb" "lb" { name_prefix = "app" } # good resource "aws_alb" "lb" { name_prefix = "app" tags = { environment = "staging" } }
Public Instance Methods
check()
click to toggle source
# File lib/terracop/cop/aws/ensure_tags.rb, line 29 def check tags = tags_for(attributes) return unless tags if self.class.config['Required'] check_required(tags, self.class.config['Required']) elsif tags.empty? offense 'Tag resources properly.' end end
Private Instance Methods
check_required(tags, required_tags)
click to toggle source
# File lib/terracop/cop/aws/ensure_tags.rb, line 42 def check_required(tags, required_tags) required_tags.each do |key| unless tag(tags, key) offense "Required tag \"#{key}\" is missing on this resource." end end end
tag(list, name)
click to toggle source
# File lib/terracop/cop/aws/ensure_tags.rb, line 59 def tag(list, name) if list.is_a?(Hash) list[name] else list.find { |tag| tag['key'] == name } end end