Sha256: 77fd251cb7736de768dd82acbaf9430f61e48ec27ee0c034817b998958da0f1b

Contents?: true

Size: 1.14 KB

Versions: 10

Compression:

Stored size: 1.14 KB

Contents

module Fog
  module Rackspace
    class Servers

      class Server < Fog::Model

        attribute :admin_pass,  'adminPass'
        attribute :id
        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
          connection.delete_server(@id)
          true
        end

        def reload
          new_attributes = servers.get(@id).body['server']
          merge_attributes(new_attributes)
        end

        def save
          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

        def servers
          @servers
        end

        private

        def servers=(new_servers)
          @servers = new_servers
        end

      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fog-0.0.29 lib/fog/rackspace/models/servers/server.rb
fog-0.0.28 lib/fog/rackspace/models/servers/server.rb
fog-0.0.27 lib/fog/rackspace/models/servers/server.rb
fog-0.0.26 lib/fog/rackspace/models/servers/server.rb
fog-0.0.25 lib/fog/rackspace/models/servers/server.rb
fog-0.0.24 lib/fog/rackspace/models/servers/server.rb
fog-0.0.23 lib/fog/rackspace/models/servers/server.rb
fog-0.0.22 lib/fog/rackspace/models/servers/server.rb
fog-0.0.21 lib/fog/rackspace/models/servers/server.rb
fog-0.0.20 lib/fog/rackspace/models/servers/server.rb