class GeoEngineer::Resources::AwsSecurityGroup

AwsSecurityGroup is the aws_security_group terrform resource,

{www.terraform.io/docs/providers/aws/r/security_group.html Terraform Docs}

Public Class Methods

_fetch_remote_resources(provider) click to toggle source
# File lib/geoengineer/resources/aws_security_group.rb, line 45
def self._fetch_remote_resources(provider)
  AwsClients.ec2(provider).describe_security_groups['security_groups'].map(&:to_h).map do |sg|
    sg.merge(
      {
        name: sg[:group_name],
        _terraform_id: sg[:group_id],
        _geo_id: sg[:tags]&.find { |tag| tag[:key] == "Name" }&.dig(:value)
      }
    )
  end
end

Public Instance Methods

flatten_cidr_and_sg_blocks() click to toggle source
# File lib/geoengineer/resources/aws_security_group.rb, line 22
def flatten_cidr_and_sg_blocks
  (self.all_ingress + self.all_egress).each do |in_eg|
    in_eg.cidr_blocks      = in_eg.cidr_blocks.flatten     if in_eg.cidr_blocks
    in_eg.security_groups  = in_eg.security_groups.flatten if in_eg.security_groups
  end
end
short_type() click to toggle source
# File lib/geoengineer/resources/aws_security_group.rb, line 41
def short_type
  "sg"
end
validate_correct_cidr_blocks() click to toggle source
# File lib/geoengineer/resources/aws_security_group.rb, line 29
def validate_correct_cidr_blocks
  errors = []
  (self.all_ingress + self.all_egress).each do |in_eg|
    next unless in_eg.cidr_blocks
    in_eg.cidr_blocks.each do |cidr|
      error = validate_cidr_block(cidr)
      errors << error unless error.nil?
    end
  end
  errors
end