Sha256: 601062e1a7b0d7fc4564bae83457965aa72efd1aaa6f388989a19660401e4da0

Contents?: true

Size: 909 Bytes

Versions: 1

Compression:

Stored size: 909 Bytes

Contents

module Stackster
  class InstanceReader

    def initialize(args)
      @ec2 = AWS::EC2.new :config => args[:config]
    end

    # Data structure is return deffernelty for class
    # Currently only supports VPC
    def list_stack_instances(stack_name)
      h = []
      describe_instances.each do |instance|
        tag_set = instance['instancesSet'].first['tagSet']
        if tag_set['aws:cloudformation:stack-name']
          if tag_set['aws:cloudformation:stack-name'] == stack_name
            h << instance if instance_running? instance
          end
        end
      end
      h
    end

    private

    def get_instance_state(instance_hash)
      instance_hash['instancesSet'].first['instanceState']['name']
    end

    def instance_running?(instance_hash)
      get_instance_state(instance_hash) == 'running'
    end

    def describe_instances
      @ec2.describe_instances
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stackster-0.1.3 lib/stackster/instance/instance_reader.rb