Sha256: 918936f401a45494f677d03f8734dd49661519b56c9b9ef047601abcd2baa8c9

Contents?: true

Size: 910 Bytes

Versions: 7

Compression:

Stored size: 910 Bytes

Contents

require 'wombat/common'
require 'aws-sdk'

class OutputRunner

  include Common

  attr_reader :stack

  def initialize(opts)
    @stack = opts.stack
  end

  def start
    cfn_workstation_ips(stack)
  end

  private

  def cfn_workstation_ips(stack)
    ec2 = Aws::EC2::Resource.new
    instances = cfn_stack_instances(stack)
    instances.each do |name, id|
      instance = ec2.instance(id)
      if /Workstation/.match(name)
        puts "#{name} (#{id}) => #{instance.public_ip_address}"
      end
    end
  end

  def cfn_stack_instances(stack)
    cfn = Aws::CloudFormation::Client.new
    resp = cfn.describe_stack_resources({
      stack_name: stack,
      })

    instances = {}
    resp.stack_resources.map do |resource|
      if resource.resource_type == 'AWS::EC2::Instance'
        instances[resource.logical_resource_id] = resource.physical_resource_id
      end
    end
    instances
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
wombat-cli-0.3.4 lib/wombat/output.rb
wombat-cli-0.3.3 lib/wombat/output.rb
wombat-cli-0.3.2 lib/wombat/output.rb
wombat-cli-0.3.1 lib/wombat/output.rb
wombat-cli-0.3.0 lib/wombat/output.rb
wombat-cli-0.2.1 lib/wombat/output.rb
wombat-cli-0.2.0 lib/wombat/output.rb