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/serverlove/models/compute/image.rb
Sean Handley aaabc1d6a9 Shindo tests pass.
Turns out our UUIDs for pre-built drives are way out of date.
2012-06-22 16:26:11 +01:00

57 lines
1.3 KiB
Ruby

require 'fog/core/model'
module Fog
module Compute
class Serverlove
class Image < Fog::Model
identity :id, :aliases => 'drive'
attribute :name
attribute :user
attribute :size
attribute :claimed
attribute :status
attribute :imaging
attribute :encryption_cipher, :aliases => 'encryption:cipher'
def save
attributes = {}
if(identity)
attributes = connection.update_image(identity, allowed_attributes).body
else
requires :name
requires :size
attributes = connection.create_image(allowed_attributes).body
end
merge_attributes(attributes)
self
end
def load_standard_image(standard_image_uuid)
requires :identity
connection.load_standard_image(identity, standard_image_uuid)
end
def ready?
status.upcase == 'ACTIVE'
end
def destroy
requires :identity
connection.destroy_image(identity)
self
end
def allowed_attributes
allowed = [:name, :size]
attributes.select {|k,v| allowed.include? k}
end
end
end
end
end