[Ovirt-devel] [PATCH] fixed a couple random smart pool UI bugs:
Jason Guiditta
jguiditt at redhat.com
Fri Jan 30 20:14:35 UTC 2009
On Thu, 2009-01-29 at 14:35 +0000, Scott Seago wrote:
> 1. the 'add storage' flexigrid for smart pools was broken due to an error in generating the :conditions block
> 2. the pulldown list for smart pools was showing the DirectoryPools for each user rather than the smart pools themselves.
>
> Signed-off-by: Scott Seago <sseago at redhat.com>
> ---
> src/app/controllers/smart_pools_controller.rb | 7 ++++++-
> src/app/models/smart_pool.rb | 22 ++++++++++++----------
> 2 files changed, 18 insertions(+), 11 deletions(-)
>
> diff --git a/src/app/controllers/smart_pools_controller.rb b/src/app/controllers/smart_pools_controller.rb
> index cbfbd1c..f5f3c9d 100644
> --- a/src/app/controllers/smart_pools_controller.rb
> +++ b/src/app/controllers/smart_pools_controller.rb
> @@ -76,7 +76,12 @@ class SmartPoolsController < PoolController
> def storage_pools_json
> args = items_json_internal(StoragePool, :tagged_storage_pools)
> conditions = args[:find_opts][:conditions]
> - conditions[0] = "(storage_pools.type != 'LvmStoragePool') and (#{conditions[0]})"
> + storage_conditions = "storage_pools.type != 'LvmStoragePool'"
> + if conditions[0]
> + conditions[0] = "(#{storage_conditions}) and (#{conditions[0]})"
> + else
> + conditions[0] = storage_conditions
> + end
> super(args)
> end
>
> diff --git a/src/app/models/smart_pool.rb b/src/app/models/smart_pool.rb
> index 7df26fa..ca55a2e 100644
> --- a/src/app/models/smart_pool.rb
> +++ b/src/app/models/smart_pool.rb
> @@ -75,22 +75,24 @@ class SmartPool < Pool
> def self.smart_pools_for_user(user)
> nested_pools = DirectoryPool.get_smart_root.full_set_nested(
> :privilege => Permission::PRIV_MODIFY, :user => user,
> - :smart_pool_set => true)
> + :smart_pool_set => true)[0][:children]
> user_pools = []
> other_pools = []
> - nested_pools.each do |pool_element|
> - pool = pool_element[:obj]
> - if pool.hasChildren
> - if pool.name == user
> + if nested_pools
> + nested_pools.each do |pool_element|
> + pool = pool_element[:obj]
> + 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
> - if pool_element.has_key?(:children)
> - pool_element[:children].each do |child_element|
> - child_pool = child_element[:obj]
> - other_pools << [pool.name + " > " + child_pool.name, child_pool.id]
> + else
> + if pool_element.has_key?(:children)
> + 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
ACK, this solves the problems I was seeing.
-j
More information about the ovirt-devel
mailing list