Sha256: b141e377791829027ff6b1bb9490d3c76ebb4bbc61d5e149c16767be5978466b

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

require 'engineyard-cloud-client/models/api_struct'

module EY
  class CloudClient
    class Keypair < ApiStruct.new(:id, :name, :public_key)

      def self.all(api)
        self.from_array(api, api.request('/keypairs')["keypairs"])
      end

      # Create a Keypair with your SSH public key so that you can access your Instances
      # via SSH
      # If successful, returns new Keypair and EY Cloud will have registered your public key
      # If unsuccessful, raises +EY::CloudClient::RequestFailed+
      #
      # Usage
      # Keypair.create(api,
      #   name:       "laptop",
      #   public_key: "ssh-rsa OTHERKEYPAIR"
      # )
      #
      # NOTE: Syntax above is for Ruby 1.9. In Ruby 1.8, keys must all be strings.
      def self.create(api, attrs = {})
        params = attrs.dup # no default fields
        raise EY::CloudClient::AttributeRequiredError.new("name") unless params["name"]
        raise EY::CloudClient::AttributeRequiredError.new("public_key") unless params["public_key"]
        response = api.request("/keypairs", :method => :post, :params => {"keypair" => params})
        self.from_hash(api, response['keypair'])
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
engineyard-cloud-client-1.0.3 lib/engineyard-cloud-client/models/keypair.rb
engineyard-cloud-client-1.0.2 lib/engineyard-cloud-client/models/keypair.rb
engineyard-cloud-client-1.0.1 lib/engineyard-cloud-client/models/keypair.rb
engineyard-cloud-client-1.0.0 lib/engineyard-cloud-client/models/keypair.rb
engineyard-cloud-client-0.1.4 lib/engineyard-cloud-client/models/keypair.rb
engineyard-cloud-client-0.1.2 lib/engineyard-cloud-client/models/keypair.rb