Sha256: 5ca89cb3e0a05cfa274035ee3e152038c4ba0e4ea13776cfffa1611cb50415d5

Contents?: true

Size: 1.49 KB

Versions: 25

Compression:

Stored size: 1.49 KB

Contents

require 'fog/model'

module Fog
  module Rackspace
    module Servers

      class Server < Fog::Model

        identity :id

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

        def destroy
          requires :id
          connection.delete_server(@id)
          true
        end

        def flavor
          requires :flavor_id
          connection.flavors.get(@flavor_id)
        end

        def image
          requires :image_id
          connection.images.get(@image_id)
        end

        def images
          requires :id
          connection.images(:server => self)
        end

        def ready?
          @status == 'ACTIVE'
        end

        def reboot(type = 'SOFT')
          requires :id
          connection.reboot_server(@id, type)
          true
        end

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

      end

    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
fog-0.1.8 lib/fog/rackspace/models/servers/server.rb
fog-0.1.7 lib/fog/rackspace/models/servers/server.rb
fog-0.1.6 lib/fog/rackspace/models/servers/server.rb
fog-0.1.5 lib/fog/rackspace/models/servers/server.rb
fog-0.1.4 lib/fog/rackspace/models/servers/server.rb
fog-0.1.3 lib/fog/rackspace/models/servers/server.rb
fog-0.1.2 lib/fog/rackspace/models/servers/server.rb
fog-0.1.1 lib/fog/rackspace/models/servers/server.rb
fog-0.1.0 lib/fog/rackspace/models/servers/server.rb
fog-0.0.100 lib/fog/rackspace/models/servers/server.rb
fog-0.0.99 lib/fog/rackspace/models/servers/server.rb
fog-0.0.98 lib/fog/rackspace/models/servers/server.rb
fog-0.0.97 lib/fog/rackspace/models/servers/server.rb
fog-0.0.96 lib/fog/rackspace/models/servers/server.rb
fog-0.0.95 lib/fog/rackspace/models/servers/server.rb
fog-0.0.94 lib/fog/rackspace/models/servers/server.rb
fog-0.0.93 lib/fog/rackspace/models/servers/server.rb
fog-0.0.92 lib/fog/rackspace/models/servers/server.rb
fog-0.0.91 lib/fog/rackspace/models/servers/server.rb
fog-0.0.90 lib/fog/rackspace/models/servers/server.rb