From: Jan Provaznik jprovazn@redhat.com
* HardwareProfileProperty 'kind' chnaged to symbol * allowed float format for CPU amount * HardwareProfile.name is generated from API 'id' attribute * added two simple CPU amount tests
(this patch replaces aggregator_Update-for-client-changes.patch, core part of patch is already pushed in repository) --- src/app/models/hardware_profile.rb | 6 ++-- src/app/models/hardware_profile_property.rb | 21 ++++--------- src/app/models/property_enum_entry.rb | 8 ++--- src/app/models/provider.rb | 4 +-- src/spec/factories/hardware_profile_property.rb | 36 +++++++++++----------- src/spec/models/hardware_profile_spec.rb | 14 +++++++++ 6 files changed, 45 insertions(+), 44 deletions(-)
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb index a92b658..de9ef23 100644 --- a/src/app/models/hardware_profile.rb +++ b/src/app/models/hardware_profile.rb @@ -90,10 +90,10 @@ class HardwareProfile < ActiveRecord::Base :value => prop.value) case prop.kind when HardwareProfileProperty::RANGE - the_property.range_first = prop.range.first - the_property.range_last = prop.range.last + the_property.range_first = prop.range[:from] + the_property.range_last = prop.range[:to] when HardwareProfileProperty::ENUM - the_property.property_enum_entries = prop.enum.entries.collect do |entry| + the_property.property_enum_entries = prop.options.collect do |entry| PropertyEnumEntry.new(:value => entry, :hardware_profile_property => the_property) end end diff --git a/src/app/models/hardware_profile_property.rb b/src/app/models/hardware_profile_property.rb index aedae31..0717484 100644 --- a/src/app/models/hardware_profile_property.rb +++ b/src/app/models/hardware_profile_property.rb @@ -26,9 +26,9 @@ class HardwareProfileProperty < ActiveRecord::Base CPU = "cpu" ARCHITECTURE = "architecture"
- FIXED = "fixed" - RANGE = "range" - ENUM = "enum" + FIXED = :fixed + RANGE = :range + ENUM = :enum
UNIT_MB = "MB" UNIT_GB = "GB" @@ -48,22 +48,14 @@ class HardwareProfileProperty < ActiveRecord::Base validates_presence_of :unit validates_presence_of :value validates_numericality_of :value, :greater_than => 0, - :if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE } - validates_numericality_of :value, :greater_than => 0, - :if => Proc.new{|p| p.name == CPU }, :only_integer => true + :if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE or p.name == CPU}
validates_numericality_of :range_first, :greater_than => 0, - :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and + :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE} validates_numericality_of :range_last, :greater_than => 0, - :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and + :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE} - validates_numericality_of :range_first, :greater_than => 0, - :if => Proc.new{|p| (p.name == CPU) and - p.kind == RANGE}, :only_integer => true - validates_numericality_of :range_last, :greater_than => 0, - :if => Proc.new{|p| (p.name == CPU) and - p.kind == RANGE}, :only_integer => true validates_associated :property_enum_entries def validate case name @@ -104,7 +96,6 @@ class HardwareProfileProperty < ActiveRecord::Base "Range ending must only be specified for range properties") end end - end end
diff --git a/src/app/models/property_enum_entry.rb b/src/app/models/property_enum_entry.rb index eb246ff..ff497ef 100644 --- a/src/app/models/property_enum_entry.rb +++ b/src/app/models/property_enum_entry.rb @@ -29,9 +29,7 @@ class PropertyEnumEntry < ActiveRecord::Base :if => Proc.new{|p| p.hardware_profile_property.name == HardwareProfileProperty::MEMORY or p.hardware_profile_property.name == - HardwareProfileProperty::STORAGE } - validates_numericality_of :value, :greater_than => 0, :only_integer => true, - :if => Proc.new{|p| p.hardware_profile_property.name == - HardwareProfileProperty::CPU } - + HardwareProfileProperty::STORAGE or + p.hardware_profile_property.name == + HardwareProfileProperty::CPU } end diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb index 0a0120f..e439520 100644 --- a/src/app/models/provider.rb +++ b/src/app/models/provider.rb @@ -56,9 +56,7 @@ class Provider < ActiveRecord::Base hardware_profiles.each do |hardware_profile| ar_hardware_profile = HardwareProfile.new(:external_key => hardware_profile.id, - :name => hardware_profile.name ? - hardware_profile.name : - hardware_profile.id, + :name => hardware_profile.id, :provider_id => id) ar_hardware_profile.add_properties(hardware_profile) ar_hardware_profile.save! diff --git a/src/spec/factories/hardware_profile_property.rb b/src/spec/factories/hardware_profile_property.rb index 7f470f6..0a2447d 100644 --- a/src/spec/factories/hardware_profile_property.rb +++ b/src/spec/factories/hardware_profile_property.rb @@ -3,35 +3,35 @@ end
Factory.define :mock_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'fixed' + p.kind :fixed p.unit 'MB' p.value 1740.8 end
Factory.define :mock_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'fixed' + p.kind :fixed p.unit 'GB' p.value 160 end
Factory.define :mock_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' - p.value 1 + p.value 1.0 end
Factory.define :mock_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'i386' end
Factory.define :mock_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'range' + p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680 @@ -40,7 +40,7 @@ end
Factory.define :mock_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'enum' + p.kind :enum p.unit 'GB' p.value 850 # p.property_enum_entries { |p| [p.association(:mock_hwp2_storage_enum1), @@ -49,49 +49,49 @@ end
Factory.define :mock_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' - p.value 2 + p.value 2.0 end
Factory.define :mock_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'x86_64' end
Factory.define :agg_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'fixed' + p.kind :fixed p.unit 'MB' p.value 1740.8 end
Factory.define :agg_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'fixed' + p.kind :fixed p.unit 'GB' p.value 160 end
Factory.define :agg_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' p.value 1 end
Factory.define :agg_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'i386' end
Factory.define :agg_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'range' + p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680 @@ -100,7 +100,7 @@ end
Factory.define :agg_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'enum' + p.kind :enum p.unit 'GB' p.value 850 # p.property_enum_entries { |p| [p.association(:agg_hwp2_storage_enum1), @@ -109,14 +109,14 @@ end
Factory.define :agg_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' p.value 2 end
Factory.define :agg_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'x86_64' end diff --git a/src/spec/models/hardware_profile_spec.rb b/src/spec/models/hardware_profile_spec.rb index ab04fe1..8aa6557 100644 --- a/src/spec/models/hardware_profile_spec.rb +++ b/src/spec/models/hardware_profile_spec.rb @@ -42,6 +42,20 @@ describe HardwareProfile do end end
+ it "should require valid amount of CPU" do + [nil, "hello", -1].each do |fail_value| + @hp.cpu.value = fail_value + @hp.should_not be_valid + end + end + + it "should allow numerical amount of CPU" do + [2, 2.2].each do |fail_value| + @hp.cpu.value = fail_value + @hp.should be_valid + end + end + it "should allow Aggregator profiles only for provider profiles" do @hp.provider = nil
ACK
Works with the latest Core.
Note that when you set up a mock provider, add a mockuser/mockpassword cloud account, and click on the Realms tab, you will see two realms with the name "Europe" instead of one "Europe" and one "United States".
However, that is an issue with the deltacloud-client library and Michal Fojtik is already looking into it. You can push this patch.
Thomas
----- Original Message ----- From: jprovazn@redhat.com To: deltacloud-devel@lists.fedorahosted.org Sent: Wednesday, July 7, 2010 6:05:16 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: [deltacloud-devel] [PATCH aggregator] Core and Aggregator compatibility
From: Jan Provaznik jprovazn@redhat.com
* HardwareProfileProperty 'kind' chnaged to symbol * allowed float format for CPU amount * HardwareProfile.name is generated from API 'id' attribute * added two simple CPU amount tests
(this patch replaces aggregator_Update-for-client-changes.patch, core part of patch is already pushed in repository) --- src/app/models/hardware_profile.rb | 6 ++-- src/app/models/hardware_profile_property.rb | 21 ++++--------- src/app/models/property_enum_entry.rb | 8 ++--- src/app/models/provider.rb | 4 +-- src/spec/factories/hardware_profile_property.rb | 36 +++++++++++----------- src/spec/models/hardware_profile_spec.rb | 14 +++++++++ 6 files changed, 45 insertions(+), 44 deletions(-)
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb index a92b658..de9ef23 100644 --- a/src/app/models/hardware_profile.rb +++ b/src/app/models/hardware_profile.rb @@ -90,10 +90,10 @@ class HardwareProfile < ActiveRecord::Base :value => prop.value) case prop.kind when HardwareProfileProperty::RANGE - the_property.range_first = prop.range.first - the_property.range_last = prop.range.last + the_property.range_first = prop.range[:from] + the_property.range_last = prop.range[:to] when HardwareProfileProperty::ENUM - the_property.property_enum_entries = prop.enum.entries.collect do |entry| + the_property.property_enum_entries = prop.options.collect do |entry| PropertyEnumEntry.new(:value => entry, :hardware_profile_property => the_property) end end diff --git a/src/app/models/hardware_profile_property.rb b/src/app/models/hardware_profile_property.rb index aedae31..0717484 100644 --- a/src/app/models/hardware_profile_property.rb +++ b/src/app/models/hardware_profile_property.rb @@ -26,9 +26,9 @@ class HardwareProfileProperty < ActiveRecord::Base CPU = "cpu" ARCHITECTURE = "architecture"
- FIXED = "fixed" - RANGE = "range" - ENUM = "enum" + FIXED = :fixed + RANGE = :range + ENUM = :enum
UNIT_MB = "MB" UNIT_GB = "GB" @@ -48,22 +48,14 @@ class HardwareProfileProperty < ActiveRecord::Base validates_presence_of :unit validates_presence_of :value validates_numericality_of :value, :greater_than => 0, - :if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE } - validates_numericality_of :value, :greater_than => 0, - :if => Proc.new{|p| p.name == CPU }, :only_integer => true + :if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE or p.name == CPU}
validates_numericality_of :range_first, :greater_than => 0, - :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and + :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE} validates_numericality_of :range_last, :greater_than => 0, - :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and + :if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE} - validates_numericality_of :range_first, :greater_than => 0, - :if => Proc.new{|p| (p.name == CPU) and - p.kind == RANGE}, :only_integer => true - validates_numericality_of :range_last, :greater_than => 0, - :if => Proc.new{|p| (p.name == CPU) and - p.kind == RANGE}, :only_integer => true validates_associated :property_enum_entries def validate case name @@ -104,7 +96,6 @@ class HardwareProfileProperty < ActiveRecord::Base "Range ending must only be specified for range properties") end end - end end
diff --git a/src/app/models/property_enum_entry.rb b/src/app/models/property_enum_entry.rb index eb246ff..ff497ef 100644 --- a/src/app/models/property_enum_entry.rb +++ b/src/app/models/property_enum_entry.rb @@ -29,9 +29,7 @@ class PropertyEnumEntry < ActiveRecord::Base :if => Proc.new{|p| p.hardware_profile_property.name == HardwareProfileProperty::MEMORY or p.hardware_profile_property.name == - HardwareProfileProperty::STORAGE } - validates_numericality_of :value, :greater_than => 0, :only_integer => true, - :if => Proc.new{|p| p.hardware_profile_property.name == - HardwareProfileProperty::CPU } - + HardwareProfileProperty::STORAGE or + p.hardware_profile_property.name == + HardwareProfileProperty::CPU } end diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb index 0a0120f..e439520 100644 --- a/src/app/models/provider.rb +++ b/src/app/models/provider.rb @@ -56,9 +56,7 @@ class Provider < ActiveRecord::Base hardware_profiles.each do |hardware_profile| ar_hardware_profile = HardwareProfile.new(:external_key => hardware_profile.id, - :name => hardware_profile.name ? - hardware_profile.name : - hardware_profile.id, + :name => hardware_profile.id, :provider_id => id) ar_hardware_profile.add_properties(hardware_profile) ar_hardware_profile.save! diff --git a/src/spec/factories/hardware_profile_property.rb b/src/spec/factories/hardware_profile_property.rb index 7f470f6..0a2447d 100644 --- a/src/spec/factories/hardware_profile_property.rb +++ b/src/spec/factories/hardware_profile_property.rb @@ -3,35 +3,35 @@ end
Factory.define :mock_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'fixed' + p.kind :fixed p.unit 'MB' p.value 1740.8 end
Factory.define :mock_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'fixed' + p.kind :fixed p.unit 'GB' p.value 160 end
Factory.define :mock_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' - p.value 1 + p.value 1.0 end
Factory.define :mock_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'i386' end
Factory.define :mock_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'range' + p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680 @@ -40,7 +40,7 @@ end
Factory.define :mock_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'enum' + p.kind :enum p.unit 'GB' p.value 850 # p.property_enum_entries { |p| [p.association(:mock_hwp2_storage_enum1), @@ -49,49 +49,49 @@ end
Factory.define :mock_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' - p.value 2 + p.value 2.0 end
Factory.define :mock_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'x86_64' end
Factory.define :agg_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'fixed' + p.kind :fixed p.unit 'MB' p.value 1740.8 end
Factory.define :agg_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'fixed' + p.kind :fixed p.unit 'GB' p.value 160 end
Factory.define :agg_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' p.value 1 end
Factory.define :agg_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'i386' end
Factory.define :agg_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory' - p.kind 'range' + p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680 @@ -100,7 +100,7 @@ end
Factory.define :agg_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage' - p.kind 'enum' + p.kind :enum p.unit 'GB' p.value 850 # p.property_enum_entries { |p| [p.association(:agg_hwp2_storage_enum1), @@ -109,14 +109,14 @@ end
Factory.define :agg_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu' - p.kind 'fixed' + p.kind :fixed p.unit 'count' p.value 2 end
Factory.define :agg_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture' - p.kind 'fixed' + p.kind :fixed p.unit 'label' p.value 'x86_64' end diff --git a/src/spec/models/hardware_profile_spec.rb b/src/spec/models/hardware_profile_spec.rb index ab04fe1..8aa6557 100644 --- a/src/spec/models/hardware_profile_spec.rb +++ b/src/spec/models/hardware_profile_spec.rb @@ -42,6 +42,20 @@ describe HardwareProfile do end end
+ it "should require valid amount of CPU" do + [nil, "hello", -1].each do |fail_value| + @hp.cpu.value = fail_value + @hp.should_not be_valid + end + end + + it "should allow numerical amount of CPU" do + [2, 2.2].each do |fail_value| + @hp.cpu.value = fail_value + @hp.should be_valid + end + end + it "should allow Aggregator profiles only for provider profiles" do @hp.provider = nil
On 08/07/10 06:24 -0400, Tomas Sedovic wrote:
ACK
Works with the latest Core.
Note that when you set up a mock provider, add a mockuser/mockpassword cloud account, and click on the Realms tab, you will see two realms with the name "Europe" instead of one "Europe" and one "United States".
However, that is an issue with the deltacloud-client library and Michal Fojtik is already looking into it. You can push this patch.
Confirming this bug. Patch is on the way ;-)
-- Michal
----- Original Message ----- From: jprovazn@redhat.com To: deltacloud-devel@lists.fedorahosted.org Sent: Wednesday, July 7, 2010 6:05:16 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: [deltacloud-devel] [PATCH aggregator] Core and Aggregator compatibility
From: Jan Provaznik jprovazn@redhat.com
- HardwareProfileProperty 'kind' chnaged to symbol
- allowed float format for CPU amount
- HardwareProfile.name is generated from API 'id' attribute
- added two simple CPU amount tests
(this patch replaces aggregator_Update-for-client-changes.patch, core part of patch is already pushed in repository)
src/app/models/hardware_profile.rb | 6 ++-- src/app/models/hardware_profile_property.rb | 21 ++++--------- src/app/models/property_enum_entry.rb | 8 ++--- src/app/models/provider.rb | 4 +-- src/spec/factories/hardware_profile_property.rb | 36 +++++++++++----------- src/spec/models/hardware_profile_spec.rb | 14 +++++++++ 6 files changed, 45 insertions(+), 44 deletions(-)
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb index a92b658..de9ef23 100644 --- a/src/app/models/hardware_profile.rb +++ b/src/app/models/hardware_profile.rb @@ -90,10 +90,10 @@ class HardwareProfile < ActiveRecord::Base :value => prop.value) case prop.kind when HardwareProfileProperty::RANGE
the_property.range_first = prop.range.first
the_property.range_last = prop.range.last
the_property.range_first = prop.range[:from]
when HardwareProfileProperty::ENUMthe_property.range_last = prop.range[:to]
the_property.property_enum_entries = prop.enum.entries.collect do |entry|
endthe_property.property_enum_entries = prop.options.collect do |entry| PropertyEnumEntry.new(:value => entry, :hardware_profile_property => the_property) end
diff --git a/src/app/models/hardware_profile_property.rb b/src/app/models/hardware_profile_property.rb index aedae31..0717484 100644 --- a/src/app/models/hardware_profile_property.rb +++ b/src/app/models/hardware_profile_property.rb @@ -26,9 +26,9 @@ class HardwareProfileProperty < ActiveRecord::Base CPU = "cpu" ARCHITECTURE = "architecture"
- FIXED = "fixed"
- RANGE = "range"
- ENUM = "enum"
FIXED = :fixed
RANGE = :range
ENUM = :enum
UNIT_MB = "MB" UNIT_GB = "GB"
@@ -48,22 +48,14 @@ class HardwareProfileProperty < ActiveRecord::Base validates_presence_of :unit validates_presence_of :value validates_numericality_of :value, :greater_than => 0,
:if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE }
- validates_numericality_of :value, :greater_than => 0,
:if => Proc.new{|p| p.name == CPU }, :only_integer => true
:if => Proc.new{|p| p.name == MEMORY or p.name == STORAGE or p.name == CPU}
validates_numericality_of :range_first, :greater_than => 0,
:if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and
validates_numericality_of :range_last, :greater_than => 0,:if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE}
:if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE) and
:if => Proc.new{|p| (p.name == MEMORY or p.name == STORAGE or p.name == CPU) and p.kind == RANGE}
- validates_numericality_of :range_first, :greater_than => 0,
:if => Proc.new{|p| (p.name == CPU) and
p.kind == RANGE}, :only_integer => true
- validates_numericality_of :range_last, :greater_than => 0,
:if => Proc.new{|p| (p.name == CPU) and
validates_associated :property_enum_entries def validate case namep.kind == RANGE}, :only_integer => true
@@ -104,7 +96,6 @@ class HardwareProfileProperty < ActiveRecord::Base "Range ending must only be specified for range properties") end end
- end
end
diff --git a/src/app/models/property_enum_entry.rb b/src/app/models/property_enum_entry.rb index eb246ff..ff497ef 100644 --- a/src/app/models/property_enum_entry.rb +++ b/src/app/models/property_enum_entry.rb @@ -29,9 +29,7 @@ class PropertyEnumEntry < ActiveRecord::Base :if => Proc.new{|p| p.hardware_profile_property.name == HardwareProfileProperty::MEMORY or p.hardware_profile_property.name ==
HardwareProfileProperty::STORAGE }
- validates_numericality_of :value, :greater_than => 0, :only_integer => true,
:if => Proc.new{|p| p.hardware_profile_property.name ==
HardwareProfileProperty::CPU }
HardwareProfileProperty::STORAGE or
p.hardware_profile_property.name ==
HardwareProfileProperty::CPU }
end diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb index 0a0120f..e439520 100644 --- a/src/app/models/provider.rb +++ b/src/app/models/provider.rb @@ -56,9 +56,7 @@ class Provider < ActiveRecord::Base hardware_profiles.each do |hardware_profile| ar_hardware_profile = HardwareProfile.new(:external_key => hardware_profile.id,
:name => hardware_profile.name ?
hardware_profile.name :
hardware_profile.id,
:name => hardware_profile.id, :provider_id => id) ar_hardware_profile.add_properties(hardware_profile) ar_hardware_profile.save!
diff --git a/src/spec/factories/hardware_profile_property.rb b/src/spec/factories/hardware_profile_property.rb index 7f470f6..0a2447d 100644 --- a/src/spec/factories/hardware_profile_property.rb +++ b/src/spec/factories/hardware_profile_property.rb @@ -3,35 +3,35 @@ end
Factory.define :mock_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory'
- p.kind 'fixed'
- p.kind :fixed p.unit 'MB' p.value 1740.8
end
Factory.define :mock_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage'
- p.kind 'fixed'
- p.kind :fixed p.unit 'GB' p.value 160
end
Factory.define :mock_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu'
- p.kind 'fixed'
- p.kind :fixed p.unit 'count'
- p.value 1
- p.value 1.0
end
Factory.define :mock_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture'
- p.kind 'fixed'
- p.kind :fixed p.unit 'label' p.value 'i386'
end
Factory.define :mock_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory'
- p.kind 'range'
- p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680
@@ -40,7 +40,7 @@ end
Factory.define :mock_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage'
- p.kind 'enum'
- p.kind :enum p.unit 'GB' p.value 850
# p.property_enum_entries { |p| [p.association(:mock_hwp2_storage_enum1), @@ -49,49 +49,49 @@ end
Factory.define :mock_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu'
- p.kind 'fixed'
- p.kind :fixed p.unit 'count'
- p.value 2
- p.value 2.0
end
Factory.define :mock_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture'
- p.kind 'fixed'
- p.kind :fixed p.unit 'label' p.value 'x86_64'
end
Factory.define :agg_hwp1_memory, :parent => :hardware_profile_property do |p| p.name 'memory'
- p.kind 'fixed'
- p.kind :fixed p.unit 'MB' p.value 1740.8
end
Factory.define :agg_hwp1_storage, :parent => :hardware_profile_property do |p| p.name 'storage'
- p.kind 'fixed'
- p.kind :fixed p.unit 'GB' p.value 160
end
Factory.define :agg_hwp1_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu'
- p.kind 'fixed'
- p.kind :fixed p.unit 'count' p.value 1
end
Factory.define :agg_hwp1_arch, :parent => :hardware_profile_property do |p| p.name 'architecture'
- p.kind 'fixed'
- p.kind :fixed p.unit 'label' p.value 'i386'
end
Factory.define :agg_hwp2_memory, :parent => :hardware_profile_property do |p| p.name 'memory'
- p.kind 'range'
- p.kind :range p.unit 'MB' p.value 10240 p.range_first 7680
@@ -100,7 +100,7 @@ end
Factory.define :agg_hwp2_storage, :parent => :hardware_profile_property do |p| p.name 'storage'
- p.kind 'enum'
- p.kind :enum p.unit 'GB' p.value 850
# p.property_enum_entries { |p| [p.association(:agg_hwp2_storage_enum1), @@ -109,14 +109,14 @@ end
Factory.define :agg_hwp2_cpu, :parent => :hardware_profile_property do |p| p.name 'cpu'
- p.kind 'fixed'
- p.kind :fixed p.unit 'count' p.value 2
end
Factory.define :agg_hwp2_arch, :parent => :hardware_profile_property do |p| p.name 'architecture'
- p.kind 'fixed'
- p.kind :fixed p.unit 'label' p.value 'x86_64'
end diff --git a/src/spec/models/hardware_profile_spec.rb b/src/spec/models/hardware_profile_spec.rb index ab04fe1..8aa6557 100644 --- a/src/spec/models/hardware_profile_spec.rb +++ b/src/spec/models/hardware_profile_spec.rb @@ -42,6 +42,20 @@ describe HardwareProfile do end end
- it "should require valid amount of CPU" do
- [nil, "hello", -1].each do |fail_value|
@hp.cpu.value = fail_value
@hp.should_not be_valid
- end
- end
- it "should allow numerical amount of CPU" do
- [2, 2.2].each do |fail_value|
@hp.cpu.value = fail_value
@hp.should be_valid
- end
- end
- it "should allow Aggregator profiles only for provider profiles" do @hp.provider = nil
-- 1.7.0.1
deltacloud-devel mailing list deltacloud-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/deltacloud-devel _______________________________________________ deltacloud-devel mailing list deltacloud-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/deltacloud-devel
deltacloud-devel@lists.fedorahosted.org