Module: Tfrb::Resource::AwsSecurityGroup

Extended by:
Tfrb::Resource
Defined in:
lib/tfrb/resource/aws_security_group.rb

Class Method Summary collapse

Methods included from Tfrb::Resource

aws_options, extended, get_custom_resource, get_state, import!, load_helpers!, resolve_tfvar, set_default

Class Method Details

.load(base, environment_name, resource_type, new_resources) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/tfrb/resource/aws_security_group.rb', line 16

def self.load(base, environment_name, resource_type, new_resources)
  new_resources.each do |resource_name, resource|
    client = ::Aws::EC2::Client.new(aws_options(base, resource))
    vpc_id = resolve_tfvar(base, resource_type, resource_name, 'vpc_id')
    next if vpc_id.empty?
    response = client.describe_security_groups({
      filters: [
        {
          name: 'vpc-id',
          values: [vpc_id]
        },
        {
          name: 'group-name',
          values: [resource['name']]
        }
      ]
    })
    if response.security_groups.size >= 1
      id = response.security_groups.first.group_id
      import!(base, resource_type, resource_name, id)
    end
  end
end

.preload(base, environment_name, resource_type, new_resources) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/tfrb/resource/aws_security_group.rb', line 6

def self.preload(base, environment_name, resource_type, new_resources)
  new_resources.each do |resource_name, resource|
    set_default(resource, 'name', resource_name.gsub('_', ' '))
    resource['lifecycle'] = {} unless resource.has_key?('lifecycle')
    resource['lifecycle']['create_before_destroy'] = true unless resource['lifecycle'].has_key?('create_before_destroy')
    resource['tags'] = {} unless resource.has_key?('tags')
    resource['tags']['Name'] = resource_name.gsub('_', ' ') unless resource['tags'].has_key?('Name')
  end
end