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