Sha256: 1461a2b8a5b8098c33786824e4dab661ddfa66cf0367e26bc261f5780b083fa7
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
module Terraforming module Resource class EIP include Terraforming::Util def self.tf(client: Aws::EC2::Client.new) self.new(client).tf end def self.tfstate(client: Aws::EC2::Client.new) self.new(client).tfstate end def initialize(client) @client = client end def tf apply_template(@client, "tf/eip") end def tfstate eips.inject({}) do |resources, addr| attributes = { "association_id" => addr.association_id, "domain" => addr.domain, "id" => addr.allocation_id, "instance" => addr.instance_id, "network_interface" => addr.network_interface_id, "private_ip" => addr.private_ip_address, "public_ip" => addr.public_ip, "vpc" => vpc?(addr).to_s, } attributes.delete_if { |_k, v| v.nil? } resources["aws_eip.#{module_name_of(addr)}"] = { "type" => "aws_eip", "primary" => { "id" => addr.allocation_id, "attributes" => attributes } } resources end end private def eips @client.describe_addresses.map(&:addresses).flatten end def vpc?(addr) addr.domain.eql?("vpc") end def module_name_of(addr) normalize_module_name(addr.allocation_id) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
terraforming-0.13.1 | lib/terraforming/resource/eip.rb |
terraforming-0.13.0 | lib/terraforming/resource/eip.rb |