You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2010/07/09 01:43:00 UTC
svn commit: r962279 - in /incubator/deltacloud/trunk/server/lib/deltacloud:
hardware_profile.rb helpers/hardware_profiles_helper.rb
Author: lutter
Date: Thu Jul 8 23:43:00 2010
New Revision: 962279
URL: http://svn.apache.org/viewvc?rev=962279&view=rev
Log:
Hardware profiles: add defaults, param name and units to properties
Modified:
incubator/deltacloud/trunk/server/lib/deltacloud/hardware_profile.rb
incubator/deltacloud/trunk/server/lib/deltacloud/helpers/hardware_profiles_helper.rb
Modified: incubator/deltacloud/trunk/server/lib/deltacloud/hardware_profile.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/hardware_profile.rb?rev=962279&r1=962278&r2=962279&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/hardware_profile.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/hardware_profile.rb Thu Jul 8 23:43:00 2010
@@ -2,8 +2,19 @@
module Deltacloud
class HardwareProfile
+ UNITS = {
+ :memory => "MB",
+ :storage => "GB",
+ :architecture => "label",
+ :cpu => "count"
+ }
+
+ def self.unit(name)
+ UNITS[name]
+ end
+
class Property
- attr_reader :name, :kind
+ attr_reader :name, :kind, :default
# kind == :range
attr_reader :first, :last
# kind == :enum
@@ -11,29 +22,45 @@ module Deltacloud
# kind == :fixed
attr_reader :value
- def initialize(name, values)
+ def initialize(name, values, opts = {})
@name = name
if values.is_a?(Range)
@kind = :range
@first = values.first
@last = values.last
+ @default = values.first
elsif values.is_a?(Array)
@kind = :enum
@values = values
+ @default = values.first
else
@kind = :fixed
@value = values
+ @default = @value
end
+ @default = opts[:default] if opts[:default]
+ end
+
+ def unit
+ HardwareProfile.unit(name)
+ end
+
+ def param
+ "hwp_#{name}"
+ end
+
+ def fixed?
+ kind == :fixed
end
end
class << self
def property(prop)
define_method(prop) do |*args|
- values, *ignored = *args
+ values, opts, *ignored = *args
instvar = :"@#{prop}"
unless values.nil?
- @properties[prop] = Property.new(prop, values)
+ @properties[prop] = Property.new(prop, values, opts || {})
end
@properties[prop]
end
@@ -55,5 +82,18 @@ module Deltacloud
def each_property(&block)
@properties.each_value { |prop| yield prop }
end
+
+ def properties
+ @properties.values
+ end
+
+ def property(name)
+ @properties[name.to_sym]
+ end
+
+ def default?(prop, v)
+ p = @properties[prop.to_sym]
+ p && p.default.to_s == v
+ end
end
end
Modified: incubator/deltacloud/trunk/server/lib/deltacloud/helpers/hardware_profiles_helper.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/helpers/hardware_profiles_helper.rb?rev=962279&r1=962278&r2=962279&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/helpers/hardware_profiles_helper.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/helpers/hardware_profiles_helper.rb Thu Jul 8 23:43:00 2010
@@ -4,9 +4,9 @@ module HardwareProfilesHelper
return "∅" unless prop
case prop.kind
when :range
- "#{prop.first} - #{prop.last}"
+ "#{prop.first} - #{prop.last} (default: #{prop.default})"
when :enum
- prop.values.join(', ')
+ prop.values.join(', ') + " (default: #{prop.default})"
else
prop.value.to_s
end