Sha256: d1a4e00ba0b61db46a939e177617f13b07d092802458c40ad04eba7ff94fed69

Contents?: true

Size: 1.92 KB

Versions: 43

Compression:

Stored size: 1.92 KB

Contents

module Fog
  module Compute
    class IBM
      class Real
        # Requests a new keypair to be created
        #
        # ==== Parameters
        # * name<~String> - name to give new key
        #
        # ==== Returns
        # * response<~Excon::Response>:
        #   * body<~Hash>:
        #     * 'keyName'<~String>: name of new key
        #     * 'lastModifiedTime'<~Integer>: epoch time of last modification
        #     * 'default'<~Bool>: is default?
        #     * 'instanceIds'<~Array>: id's of instances using key (should be empty upon creation)
        #     * 'keyMaterial'<~String>: private key contents
        def create_key(name, public_key=nil)
          request(
            :method   => 'POST',
            :expects  => 200,
            :path     => '/keys',
            :body => {
              'name' => name,
              'publicKey' => public_key
            }
          )
        end
      end

      class Mock
        # SmartCloud returns the private key when create_key is called
        # We need to store both the private and public key for later use
        def create_key(name, public_key=nil)
          response = Excon::Response.new
          response.status = 200
          attributes  = {
            "keyName"           => name,
            "lastModifiedTime"  => Fog::IBM::Mock.launch_time,
            "default"           => false,
            "instanceIds"       => [],
          }
          if public_key.nil?
            private_key   = Fog::IBM::Mock.key_material
            public_key    = private_key.public_key
            response.body = attributes.merge("keyMaterial" => private_key.to_s)
          else
            response.body = { 'success' => true }
          end
          self.data[:keys][name] = attributes.merge("keyMaterial" => public_key.to_s)
          self.data[:private_keys][name] = attributes.merge("keyMaterial" => private_key.to_s)
          response
        end
      end
    end
  end
end

Version data entries

43 entries across 41 versions & 6 rubygems

Version Path
fog-2.3.0 lib/fog/ibm/requests/compute/create_key.rb
fog-ifeel-2.2.0 lib/fog/ibm/requests/compute/create_key.rb
fog-2.2.0 lib/fog/ibm/requests/compute/create_key.rb
fog-2.1.0 lib/fog/ibm/requests/compute/create_key.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/ibm/requests/compute/create_key.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/ibm/requests/compute/create_key.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/ibm/requests/compute/create_key.rb
fog-1.42.1 lib/fog/ibm/requests/compute/create_key.rb
fog-2.0.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.42.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.41.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.40.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.39.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.38.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.37.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.36.0 lib/fog/ibm/requests/compute/create_key.rb
fog-1.35.0 lib/fog/ibm/requests/compute/create_key.rb
fog-2.0.0.pre.0 lib/fog/ibm/requests/compute/create_key.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/ibm/requests/compute/create_key.rb
fog-1.34.0 lib/fog/ibm/requests/compute/create_key.rb