As pointed out by lutter, we had the same constant for the
length of the name sprinkled throughout the drivers.
Since we already need to have it in-place for the constraint,
just re-use that when we do the checking.

Signed-off-by: Chris Lalancette <[email protected]>
---
 .../lib/deltacloud/drivers/gogrid/gogrid_driver.rb |    8 +++++---
 .../lib/deltacloud/drivers/rhevm/rhevm_driver.rb   |    8 +++++---
 .../drivers/terremark/terremark_driver.rb          |    8 +++++---
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb 
b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
index edca242..a747e99 100644
--- a/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
+++ b/server/lib/deltacloud/drivers/gogrid/gogrid_driver.rb
@@ -36,9 +36,11 @@ class GogridDriver < Deltacloud::BaseDriver
   feature :instances, :authentication_password
   feature :instances, :sandboxing
   feature :instances, :user_name do
-    constraint :max_length, "20"
+    constraint :max_length, 20
   end
 
+  USER_NAME_MAX = feature(:instances, :user_name).constraints[:max_length]
+
   def hardware_profiles(credentials, opts={})
     client = new_client(credentials)
     safely do
@@ -103,8 +105,8 @@ class GogridDriver < Deltacloud::BaseDriver
       name = "Server #{Time.now.to_i.to_s.reverse[0..3]}#{rand(9)}"
     end
 
-    if name.length > 20
-      raise "Parameter name must be 20 characters or less"
+    if name.length > USER_NAME_MAX
+      raise "Parameter name must be #{USER_NAME_MAX} characters or less"
     end
 
     client = new_client(credentials)
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb 
b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index 4930f3e..221edc8 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -34,9 +34,11 @@ module Deltacloud
 class RHEVMDriver < Deltacloud::BaseDriver
 
   feature :instances, :user_name do
-    constraint :max_length, "50"
+    constraint :max_length, 50
   end
 
+  USER_NAME_MAX = feature(:instances, :user_name).constraints[:max_length]
+
   # FIXME: These values are just for ilustration
   # Also I choosed 'SERVER' and 'DESKTOP' names
   # because they are referred by VM (API type)
@@ -174,8 +176,8 @@ class RHEVMDriver < Deltacloud::BaseDriver
     if not name
       name = Time.now.to_i.to_s
     end
-    if name.length > 50
-      raise "Parameter name must be 50 characters or less"
+    if name.length > USER_NAME_MAX
+      raise "Parameter name must be #{USER_NAME_MAX} characters or less"
     end
     safely do
       params[:name] = name
diff --git a/server/lib/deltacloud/drivers/terremark/terremark_driver.rb 
b/server/lib/deltacloud/drivers/terremark/terremark_driver.rb
index 32fceee..ba5209d 100644
--- a/server/lib/deltacloud/drivers/terremark/terremark_driver.rb
+++ b/server/lib/deltacloud/drivers/terremark/terremark_driver.rb
@@ -32,9 +32,11 @@ module Deltacloud
 class TerremarkDriver < Deltacloud::BaseDriver
 
   feature :instances, :user_name do
-    constraint :max_length, "15"
+    constraint :max_length, 15
   end
 
+  USER_NAME_MAX = feature(:instances, :user_name).constraints[:max_length]
+
 #--
 # Vapp State Map... for use with convert_instance (get an integer back from 
terremark)
 #--
@@ -134,8 +136,8 @@ VAPP_STATE_MAP = { "0" =>  "PENDING", "1" =>  "PENDING", 
"2" =>  "STOPPED", "4"
     if not name
       name = "inst#{Time.now.to_i}"
     end
-    if name.length > 15
-      raise "Parameter name must be 15 characters or less"
+    if name.length > USER_NAME_MAX
+      raise "Parameter name must be #{USER_NAME_MAX} characters or less"
     end
     unless ( (terremark_hwp.include?(:cpu, opts[:hwp_cpu].to_i)) &&
               (terremark_hwp.include?(:memory, opts[:hwp_memory].to_i)) ) then
-- 
1.7.4.4

Reply via email to