[Ovirt-devel] [PATCH server] BUGFIX: 500 error if no smart pools exist.

Jason Guiditta jguiditt at redhat.com
Fri Oct 31 19:01:34 UTC 2008


This was happening when you clicked any tab that contained a
smart pool dropdown when no smart pools exist (like on new
appliance install).  smart_pools_for_user was failing when
there was no :children element.

Signed-off-by: Jason Guiditta <jguiditt at redhat.com>
---
 src/app/models/smart_pool.rb |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/app/models/smart_pool.rb b/src/app/models/smart_pool.rb
index 0ecbe05..ac6db5e 100644
--- a/src/app/models/smart_pool.rb
+++ b/src/app/models/smart_pool.rb
@@ -80,19 +80,21 @@ class SmartPool < Pool
     other_pools = []
     nested_pools.each do |pool_element|
       pool = pool_element[:obj]
-      if pool.name == user
-        pool_element[:children].each do |child_element|
-          child_pool = child_element[:obj]
-          user_pools <<[child_pool.name, child_pool.id]
-        end
-      else
-        pool_element[:children].each do |child_element|
-          child_pool = child_element[:obj]
-          other_pools << [pool.name + " > " + child_pool.name, child_pool.id]
+      if pool.hasChildren
+        if pool.name == user
+            pool_element[:children].each do |child_element|
+              child_pool = child_element[:obj]
+              user_pools <<[child_pool.name, child_pool.id]
+            end
+        else
+          pool_element[:children].each do |child_element|
+            child_pool = child_element[:obj]
+            other_pools << [pool.name + " > " + child_pool.name, child_pool.id]
+          end
         end
       end
     end
-    user_pools[-1] << "break"
+    user_pools[-1] << "break" unless user_pools.empty?
     user_pools + other_pools
   end
 end
-- 
1.5.6.5




More information about the ovirt-devel mailing list