From 01acfc6c0ca09444c2bef4bf227b95deee83b772 Mon Sep 17 00:00:00 2001 From: Decklin Foster <decklin@red-bean.com> Date: Thu, 19 Jan 2012 14:29:48 -0500 Subject: [PATCH] [ibm] Add a InstanceType model, returned as part of Images --- lib/fog/ibm/models/compute/image.rb | 6 ++++++ lib/fog/ibm/models/compute/instance-type.rb | 14 ++++++++++++++ lib/fog/ibm/models/compute/instance-types.rb | 15 +++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 lib/fog/ibm/models/compute/instance-type.rb create mode 100644 lib/fog/ibm/models/compute/instance-types.rb diff --git a/lib/fog/ibm/models/compute/image.rb b/lib/fog/ibm/models/compute/image.rb index 3b5a8587c..2c2ff859c 100644 --- a/lib/fog/ibm/models/compute/image.rb +++ b/lib/fog/ibm/models/compute/image.rb @@ -1,4 +1,5 @@ require 'fog/core/model' +require 'fog/ibm/models/compute/instance-types' module Fog module Compute @@ -21,6 +22,11 @@ module Fog attribute :volume_id + def initialize(new_attributes = {}) + super(new_attributes) + attributes[:supported_instance_types] = Fog::Compute::IBM::InstanceTypes.new.load(attributes[:supported_instance_types]) if attributes[:supported_instance_types] + end + def save requires :id, :volume_id data = connection.create_image(id, volume_id) diff --git a/lib/fog/ibm/models/compute/instance-type.rb b/lib/fog/ibm/models/compute/instance-type.rb new file mode 100644 index 000000000..a790c5aa9 --- /dev/null +++ b/lib/fog/ibm/models/compute/instance-type.rb @@ -0,0 +1,14 @@ +require 'fog/core/model' + +module Fog + module Compute + class IBM + class InstanceType < Fog::Model + identity :id + attribute :detail + attribute :label + attribute :price + end + end + end +end diff --git a/lib/fog/ibm/models/compute/instance-types.rb b/lib/fog/ibm/models/compute/instance-types.rb new file mode 100644 index 000000000..694dcc23d --- /dev/null +++ b/lib/fog/ibm/models/compute/instance-types.rb @@ -0,0 +1,15 @@ +require 'fog/core/collection' +require 'fog/ibm/models/compute/instance-type' + +module Fog + module Compute + class IBM + + class InstanceTypes < Fog::Collection + + model Fog::Compute::IBM::InstanceType + + end + end + end +end