mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
53 lines
1.3 KiB
Ruby
53 lines
1.3 KiB
Ruby
require 'fog/core/model'
|
|
|
|
module Fog
|
|
module Compute
|
|
class Serverlove
|
|
|
|
class Server < Fog::Model
|
|
|
|
identity :id, :aliases => 'server'
|
|
|
|
attribute :name
|
|
attribute :cpu
|
|
attribute :mem
|
|
attribute :ide_0_0, :aliases => 'ide:0:0'
|
|
attribute :ide_0_1, :aliases => 'ide:0:1'
|
|
attribute :ide_1_0, :aliases => 'ide:1:0'
|
|
attribute :ide_1_1, :aliases => 'ide:1:1'
|
|
attribute :boot
|
|
attribute :persistent
|
|
attribute :vnc_password, :aliases => 'vnc:password'
|
|
attribute :status
|
|
attribute :user
|
|
attribute :started
|
|
|
|
def save
|
|
attributes = {}
|
|
|
|
if(identity)
|
|
attributes = connection.update_server(identity, allowed_attributes).body
|
|
else
|
|
requires :name
|
|
requires :cpu
|
|
attributes = connection.create_server(allowed_attributes).body
|
|
end
|
|
|
|
merge_attributes(attributes)
|
|
self
|
|
end
|
|
|
|
def destroy
|
|
requires :identity
|
|
connection.destroy_server(identity)
|
|
self
|
|
end
|
|
|
|
def allowed_attributes
|
|
allowed = [:name, :cpu, :mem, :persistent, :vnc_password]
|
|
attributes.select {|k,v| allowed.include? k}
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|