Sha256: 8556e6561679fd89ea3cefdae24bee799dcb487a6edc5ed8d8a6a550606e6854

Contents?: true

Size: 1.13 KB

Versions: 9

Compression:

Stored size: 1.13 KB

Contents

module Fog
  module AWS
    class EC2

      def instances
        Fog::AWS::EC2::Instances.new(:connection => self)
      end

      class Instances < Fog::Collection

        attribute :instance_id

        model Fog::AWS::EC2::Instance

        def initialize(attributes)
          @instance_id ||= []
          super
        end

        def all(instance_id = @instance_id)
          data = connection.describe_instances(instance_id).body
          instances = Fog::AWS::EC2::Instances.new({
            :connection   => connection,
            :instance_id  => instance_id
          }.merge!(attributes))
          data['reservationSet'].each do |reservation|
            reservation['instancesSet'].each do |instance|
              instances << Fog::AWS::EC2::Instance.new({
                :collection => instances,
                :connection => connection
              }.merge!(instance))
            end
          end
          instances
        end

        def get(instance_id)
          if instance_id
            all(instance_id).first
          end
        rescue Excon::Errors::BadRequest
          nil
        end

      end

    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fog-0.0.38 lib/fog/aws/models/ec2/instances.rb
fog-0.0.37 lib/fog/aws/models/ec2/instances.rb
fog-0.0.36 lib/fog/aws/models/ec2/instances.rb
fog-0.0.35 lib/fog/aws/models/ec2/instances.rb
fog-0.0.34 lib/fog/aws/models/ec2/instances.rb
fog-0.0.33 lib/fog/aws/models/ec2/instances.rb
fog-0.0.32 lib/fog/aws/models/ec2/instances.rb
fog-0.0.31 lib/fog/aws/models/ec2/instances.rb
fog-0.0.30 lib/fog/aws/models/ec2/instances.rb