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

57 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
2010-10-13 20:20:18 +00:00
class Server < Fog::Model
2010-10-11 06:16:40 +00:00
2010-10-13 20:20:18 +00:00
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)
2010-10-13 20:20:18 +00:00
true
end
def image
requires :image_id
connection.grid_image_get(image_id)
2010-10-13 20:20:18 +00:00
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
2010-10-11 06:16:40 +00:00
end
end
2010-10-13 20:20:18 +00:00
end
end
end