On 10/13/2011 10:54 AM, jprovazn@redhat.com wrote:
From: Jan Provaznikjprovazn@redhat.com
If front end value is out of back end range, first/last range value is returned instead of front end value.
src/app/models/hardware_profile.rb | 9 ++++++++- src/spec/models/hardware_profile_spec.rb | 2 ++ 2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb index cfe7022..1e3e599 100644 --- a/src/app/models/hardware_profile.rb +++ b/src/app/models/hardware_profile.rb @@ -161,7 +161,14 @@ class HardwareProfile< ActiveRecord::Base when "fixed" return back_end_property.value when "range"
return front_end_property.value.present? ? front_end_property.value : back_end_property.value
val = BigDecimal.new(front_end_property.value.to_s)
if val< BigDecimal.new(back_end_property.range_first.to_s)
return back_end_property.range_first.to_s
elsif val> BigDecimal.new(back_end_property.range_last.to_s)
return back_end_property.range_last.to_s
else
return front_end_property.value.to_s
end when "enum" create_array_from_property(back_end_property).sort!.each do |value| if front_end_property.value.nil? or BigDecimal.new(value)>= BigDecimal.new(front_end_property.value)
diff --git a/src/spec/models/hardware_profile_spec.rb b/src/spec/models/hardware_profile_spec.rb index 6fef1fe..9685706 100644 --- a/src/spec/models/hardware_profile_spec.rb +++ b/src/spec/models/hardware_profile_spec.rb @@ -137,6 +137,7 @@ describe HardwareProfile do
it "should generate the correct override property values for a given property" do front_end_memory = FactoryGirl.create(:hwpp_fixed, :name => 'memory', :unit => 'MB', :value => '2048')
- front_end_memory2 = FactoryGirl.create(:hwpp_fixed, :name => 'memory', :unit => 'MB', :value => '1.0') front_end_storage = FactoryGirl.create(:hwpp_fixed, :name => 'storage', :unit => 'GB', :value => '850') front_end_cpu = FactoryGirl.create(:hwpp_fixed, :name => 'cpu', :unit => 'count', :value => '2') front_end_architecture = FactoryGirl.create(:hwpp_fixed, :name => 'architecture', :unit => 'label', :value => 'x86_64')
@@ -147,6 +148,7 @@ describe HardwareProfile do back_end_architecture = FactoryGirl.create(:hwpp_fixed, :name => 'architecture', :unit => 'label', :value => 'x86_64')
HardwareProfile.generate_override_property_value(front_end_memory, back_end_memory).should == '2048'
- HardwareProfile.generate_override_property_value(front_end_memory2, back_end_memory).should == '1024' HardwareProfile.generate_override_property_value(front_end_storage, back_end_storage).should == '1500' HardwareProfile.generate_override_property_value(front_end_cpu, back_end_cpu).should == '2' end
Ignore this patch