mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
71 lines
1.8 KiB
Ruby
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
|