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