1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/glesys/models/compute/server.rb
2011-09-20 13:34:03 +02:00

71 lines
1.8 KiB
Ruby

require 'fog/compute/models/server'
module Fog
module Compute
class Glesys
class Server < Fog::Compute::Server
extend Fog::Deprecation
identity :serverid
attribute :hostname
attribute :datacenter
attribute :cpucores
attribute :memorysize
attribute :disksize
attribute :transfer
attribute :template
attribute :managedhosting
attribute :platform
attribute :cost
attribute :rootpw
attribute :keepip
attribute :state
attribute :iplist
attribute :ipversion
attribute :ip
def ready?
state == 'running'
end
def start
requires :identity
connection.start(:serverid => identity)
end
def stop
requires :identity
connection.stop(:serverid => identity)
end
def destroy
requires :identity
connection.destroy(:serverid => identity, :keepip => keepip)
end
def save
raise "Operation not supported" if self.identity
requires :hostname, :rootpw
options = {
:datacenter => datacenter || "Falkenberg",
:platform => platform || "Xen",
:hostname => hostname,
:template => template || "Debian-6 x64",
:disksize => disksize || "10",
:memorysize => memorysize || "512",
:cpucores => cpucores || "1",
:rootpw => rootpw,
:transfer => transfer || "500",
}
data = connection.create(options)
merge_attributes(data.body['response']['server'])
data.status == 200 ? true : false
end
end
end
end
end