[PATCH conductor 1/5] Removed provider_images_for_image_list from image model
jprovazn at redhat.com
jprovazn at redhat.com
Wed Dec 14 14:09:20 UTC 2011
From: Jan Provaznik <jprovazn at redhat.com>
It's not needed anymore since aeolus-image-rubygem now uses 'query' when getting
objects from warehouse, so operation 'get me all provider images for a catalog'
is not so slow as before.
---
src/app/controllers/pools_controller.rb | 7 -------
src/app/models/image.rb | 26 --------------------------
src/app/models/pool.rb | 20 --------------------
src/app/views/pools/_images.html.haml | 8 ++++----
4 files changed, 4 insertions(+), 57 deletions(-)
diff --git a/src/app/controllers/pools_controller.rb b/src/app/controllers/pools_controller.rb
index 7e4503a..b9d4cd3 100644
--- a/src/app/controllers/pools_controller.rb
+++ b/src/app/controllers/pools_controller.rb
@@ -86,13 +86,6 @@ class PoolsController < ApplicationController
{:name => "#{t'properties'}", :view => 'properties', :id => 'properties'},
{:name => "#{t'catalog_images'}", :view => 'images', :id => 'images'}
]
- if "images" == params[:details_tab]
- begin
- @map = @pool.provider_image_map
- rescue
- flash[:error] = t 'pools.flash.error.iwhd_unavailable'
- end
- end
add_permissions_tab(@pool)
details_tab_name = params[:details_tab].blank? ? 'deployments' : params[:details_tab]
diff --git a/src/app/models/image.rb b/src/app/models/image.rb
index 346e5f2..053db9d 100644
--- a/src/app/models/image.rb
+++ b/src/app/models/image.rb
@@ -37,30 +37,4 @@ class Image < WarehouseModel
def image_builds
ImageBuild.find_all_by_image_uuid(self.uuid)
end
-
- # The iwhd API really isn't built for what we're trying to do.
- # Here's a nutty workaround to not issues thousands of queries.
- # images should be an array of Aeolus::Image::Warehouse::Image objects
- # Please don't shoot me for this!
- def self.provider_images_for_image_list(images)
- unless images.nil?
- # Fetch all of these, but only once
- provider_images = Aeolus::Image::Warehouse::ProviderImage.all
- target_images = Aeolus::Image::Warehouse::TargetImage.all
- builds = Aeolus::Image::Warehouse::ImageBuild.all
- return_objs = {}
- images.each do |image|
- _builds = builds.select{|b| b.instance_variable_get('@image') == image.uuid}
- _builds.each do |build|
- _target_images = target_images.select{|ti| ti.instance_variable_get('@build') == build.uuid}
- _target_images.each do |target_image|
- _provider_images = provider_images.select{|pi| pi.instance_variable_get('@target_image') == target_image.uuid}
- return_objs[image.uuid] = _provider_images
- end
- end
- end
- return_objs
- end
- end
-
end
diff --git a/src/app/models/pool.rb b/src/app/models/pool.rb
index 33f9b8b..287bc70 100644
--- a/src/app/models/pool.rb
+++ b/src/app/models/pool.rb
@@ -124,26 +124,6 @@ class Pool < ActiveRecord::Base
result
end
- def provider_image_map
- deployables = catalogs.collect{|c| c.deployables}.flatten
- all_images = deployables.collect{|d| d.fetch_images}.flatten.uniq.compact
- provider_images = Image.provider_images_for_image_list(all_images)
- return_obj = {}
- catalogs.each do |catalog|
- return_obj[catalog] = {}
- catalog.deployables.each do |deployable|
- images = deployable.fetch_images.compact
- unless images.empty?
- return_obj[catalog][deployable] = {}
- images.each do |image|
- return_obj[catalog][deployable][image] = provider_images.nil? ? {} : provider_images[image.uuid]
- end
- end
- end
- end
- return_obj
- end
-
PRESET_FILTERS_OPTIONS = [
{:title => I18n.t("pools.preset_filters.enabled_pools"), :id => "enabled_pools", :query => where("pools.enabled" => true)},
{:title => I18n.t("pools.preset_filters.with_pending_instances"), :id => "with_pending_instances", :query => includes(:deployments => :instances).where("instances.state" => "pending")},
diff --git a/src/app/views/pools/_images.html.haml b/src/app/views/pools/_images.html.haml
index 7c30233..c580d96 100644
--- a/src/app/views/pools/_images.html.haml
+++ b/src/app/views/pools/_images.html.haml
@@ -5,21 +5,21 @@
=image_tag 'flash_error_icon.png', :alt => 'Errors'
=flash[:error]
-else
- - @map.each_pair do |catalog, deployables|
+ - @pool.catalogs.each do |catalog|
%div.catalog_deployments_and_images
%h1
= catalog.name
= t('.catalog')
- - deployables.each_pair do |deployable, images|
+ - catalog.deployables.each do |deployable|
%h2
= deployable.name
= t('.deployable')
- - images.each_pair do |image, provider_images|
+ - deployable.fetch_images.compact.each do |image|
%h3
= t('.image')
= "#{image.name} (#{image.uuid})"
%ul
- - provider_images.each do |provider_image|
+ - image.provider_images.each do |provider_image|
%li= t('.pushed', :uuid => provider_image.uuid, :provider => provider_image.provider_name)
--
1.7.6
More information about the aeolus-devel
mailing list