Sha256: 346c3db981510b89be7e23aee38b79accb3bff98909a61ca65553c5e315d4cbb

Contents?: true

Size: 1022 Bytes

Versions: 9

Compression:

Stored size: 1022 Bytes

Contents

module Fog
  module AWS
    class EC2

      def key_pairs
        Fog::AWS::EC2::KeyPairs.new(:connection => self)
      end

      class KeyPairs < Fog::Collection

        attribute :key_name

        model Fog::AWS::EC2::KeyPair

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

        def all(key_name = @key_name)
          data = connection.describe_key_pairs(key_name).body
          key_pairs = Fog::AWS::EC2::KeyPairs.new({
            :connection => connection,
            :key_name   => key_name
          }.merge!(attributes))
          data['keySet'].each do |key|
            key_pairs << Fog::AWS::EC2::KeyPair.new({
              :collection => key_pairs,
              :connection => connection
            }.merge!(key))
          end
          key_pairs
        end

        def get(key_name)
          if key_name
            all(key_name).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/key_pairs.rb
fog-0.0.37 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.36 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.35 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.34 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.33 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.32 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.31 lib/fog/aws/models/ec2/key_pairs.rb
fog-0.0.30 lib/fog/aws/models/ec2/key_pairs.rb