fog--fog/lib/fog/go_grid/models/compute/server.rb

54 lines
1.2 KiB
Ruby
Raw Normal View History

2010-10-11 06:16:40 +00:00
require 'fog/core/model'
module Fog
module GoGrid
class Compute
class BlockInstantiationError < StandardError; end
class Server < Fog::Model
identity :id
attribute :name
attribute :image_id # id or name
attribute :ip
attribute :memory # server.ram
attribute :state
attribute :description # Optional
attribute :sandbox # Optional. Default: False
def initialize(attributes={})
super
end
def destroy
requires :id
connection.grid_server_destroy(@id)
true
end
def image
requires :image_id
connection.grid_image_get(@image_id)
end
def ready?
@state == 'On'
end
def save
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
requires :name, :image_id, :ip, :memory
options['isSandbox'] = sandbox if sandbox
options['server.ram'] = memory
options['image'] = image_id
data = connection.grid_server_add(name, image, ip, options)
merge_attributes(data.body)
true
end
end
end