Sha256: 690b37e69a3cbc1717c9847680669d1c2a78f9cf7e6294197c6d840a8bb37712
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 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.#{addr.allocation_id}"] = { "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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
terraforming-0.12.0 | lib/terraforming/resource/eip.rb |
terraforming-0.11.0 | lib/terraforming/resource/eip.rb |
terraforming-0.10.0 | lib/terraforming/resource/eip.rb |