Class: GeoEngineer::Resources::AwsSecurityGroup

Inherits:
GeoEngineer::Resource show all
Defined in:
lib/geoengineer/resources/aws_security_group.rb

Overview

AwsSecurityGroup is the aws_security_group terrform resource,

Terraform Docs

Constant Summary

Constants inherited from GeoEngineer::Resource

GeoEngineer::Resource::DEFAULT_PROVIDER

Constants included from HasValidations

HasValidations::MAX_POLICY_LENGTH

Instance Attribute Summary

Attributes inherited from GeoEngineer::Resource

#environment, #id, #project, #template, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from GeoEngineer::Resource

_deep_symbolize_keys, #_find_remote_resource, _ignore_remote_resource?, #_json_file, #_normalize_json, _resources_to_ignore, build, #build_individual_remote_resource, clear_remote_resource_cache, #depends_on, #duplicate, #duplicate_resource, #fetch_provider, fetch_remote_resources, #find_remote_as_individual?, #for_resource, #in_project, #initialize, #matched_remote_resource, #merge_parent_tags, #merge_tags, #new?, #remote_resource, #remote_resource_params, #reset, #setup_tags_if_needed, #short_id, #short_name, #support_tags?, #terraform_name, #to_id_or_ref, #to_ref, #to_s, #to_terraform, #to_terraform_json, #to_terraform_state, type_from_class_name, #validate_has_tag, #validate_required_subresource, #validate_subresource_required_attributes

Methods included from HasLifecycle

#execute_lifecycle, included

Methods included from HasValidations

#errors, included, #validate_at_least_one_present, #validate_cidr_block, #validate_only_one_present, #validate_policy_length, #validate_required_attributes

Methods included from HasSubResources

#assign_block, #attribute_missing, #delete_all_subresources, #delete_subresources_where, #subresources

Methods included from HasAttributes

#[], #[]=, #assign_attribute, #assign_block, #attribute_missing, #attribute_procs, #attributes, #delete, #eager_load_attributes, #method_missing, #reset_attributes, #retrieve_attribute, #terraform_attribute_ref, #terraform_attributes, #timeout

Constructor Details

This class inherits a constructor from GeoEngineer::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class HasAttributes

Class Method Details

._fetch_remote_resources(provider) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
# 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

Instance Method Details

#flatten_cidr_and_sg_blocksObject



22
23
24
25
26
27
# 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_typeObject



41
42
43
# File 'lib/geoengineer/resources/aws_security_group.rb', line 41

def short_type
  "sg"
end

#validate_correct_cidr_blocksObject



29
30
31
32
33
34
35
36
37
38
39
# 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