Sha256: 1f76f1bfd4538cbceec6c77a8dc198ae172bba57461a0c000b71b342dad9e7d6

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

module Fog
  module Rackspace
    class Servers

      class Server < Fog::Model

        identity :id

        attribute :admin_pass,  'adminPass'
        attribute :name
        attribute :image_id,    'imageId'
        attribute :flavor_id,   'flavorId'
        attribute :host_id,     'hostId'
        attribute :status
        attribute :personality
        attribute :progress
        attribute :addresses
        attribute :metadata

        def destroy
          requires :id

          connection.delete_server(@id)
          true
        end

        def images
          requires :id

          connection.images(:server => self)
        end

        def reboot(type = 'SOFT')
          requires :id

          connection.reboot_server(@id, type)
          true
        end

        def save
          requires :flavor_id, :image_id, :name
          options = { 'metadata' => @metadata, 'personality' => @personality }
          options = options.reject {|key, value| value.nil?}
          data = connection.create_server(@flavor_id, @image_id, @name, options)
          merge_attributes(data.body['server'])
          true
        end

      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fog-0.0.39 lib/fog/rackspace/models/servers/server.rb
fog-0.0.38 lib/fog/rackspace/models/servers/server.rb
fog-0.0.37 lib/fog/rackspace/models/servers/server.rb
fog-0.0.36 lib/fog/rackspace/models/servers/server.rb
fog-0.0.35 lib/fog/rackspace/models/servers/server.rb
fog-0.0.34 lib/fog/rackspace/models/servers/server.rb
fog-0.0.33 lib/fog/rackspace/models/servers/server.rb
fog-0.0.32 lib/fog/rackspace/models/servers/server.rb