Sha256: c7855a3d459e3e98d9a84487c6270bfdf6301654d9d8604030078dda5cb97997

Contents?: true

Size: 1.86 KB

Versions: 39

Compression:

Stored size: 1.86 KB

Contents

module Fog
  module Compute
    class RackspaceV2
      class Real

        # Request a new keypair to be created
        # @param [String] key_name: unique name of the keypair to create
        # @return  [Excon::Response] response :
        #   * body [Hash]: -
        #     * 'keypair' [Hash]: -
        #       * 'fingerprint' [String]: unique fingerprint of the keypair
        #       * 'name' [String]: unique name of the keypair
        #       * 'private_key' [String]: the private key of the keypair (only available here, at creation time)
        #       * 'public_key' [String]: the public key of the keypair
        #       * 'user_id' [String]: the user id
        # @raise [Fog::Compute::RackspaceV2::NotFound]
        # @raise [Fog::Compute::RackspaceV2::BadRequest]
        # @raise [Fog::Compute::RackspaceV2::InternalServerError]
        # @raise [Fog::Compute::RackspaceV2::ServiceError]
        # @see   http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateKeyPair.html
        def create_keypair(key_name, public_key=nil)
          data = {
            'keypair' => {
              'name' => key_name
            }
          }

          request(
            :method   => 'POST',
            :expects  => 200,
            :path     => '/os-keypairs',
            :body     => Fog::JSON.encode(data)
          )
        end
      end

      class Mock
        def create_keypair(key_name, public_key=nil)
            # 409 response when already existing
            raise Fog::Compute::RackspaceV2::ServiceError if not self.data[:keypairs].select { |k| key_name.include? k['keypair']['name'] }.first.nil?

            k = self.data[:keypair]
            k['name'] = key_name
            self.data[:keypairs] << { 'keypair' => k }

            response( :status => 200,
                      :body   => { 'keypair' => k } )
        end
      end

    end
  end
end

Version data entries

39 entries across 39 versions & 3 rubygems

Version Path
fog-maestrodev-1.19.0.20140212012611 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-1.19.0 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131218202447 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131209091424 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131209090811 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131206115947 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131205181604 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131127194823 lib/fog/rackspace/requests/compute_v2/create_keypair.rb
fog-maestrodev-1.18.0.20131126183714 lib/fog/rackspace/requests/compute_v2/create_keypair.rb