Skip to content

Commit

Permalink
Merge pull request #14092 from Ladas/fix_ordering_by_vms_in_network_m…
Browse files Browse the repository at this point in the history
…anagers_list

Fix ordering by VMs in NetworkManagers list
  • Loading branch information
kbrock authored Mar 1, 2017
2 parents 9338dbd + e2c1e8a commit 7d9308b
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions app/models/manageiq/providers/network_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,28 @@ class << model_name
has_many :load_balancer_health_checks, :foreign_key => :ems_id, :dependent => :destroy
has_many :load_balancer_health_check_members, :through => :load_balancer_health_checks

# Uses "ext_management_systems"."parent_ems_id" instead of "ext_management_systems"."id"
#
# ORDER BY ((
# SELECT COUNT(*)
# FROM "vms"
# WHERE "ext_management_systems"."parent_ems_id" = "vms"."ems_id"
# ))
#
# So unlike the parent class definition, this looks at "ext_management_systems"."parent_ems_id" instead of
# "ext_management_systems"."id"
# If we are able to define a has_many :vms, :through => :parent_manager, that does actual join, this code should
# not be needed.
virtual_total :total_vms, :vms, {
:arel => lambda do |t|
foreign_table = Vm.arel_table
local_key = :parent_ems_id
foreign_key = :ems_id
arel_column = Arel.star.count
t.grouping(foreign_table.project(arel_column).where(t[local_key].eq(foreign_table[foreign_key])))
end
}

alias all_cloud_networks cloud_networks

belongs_to :parent_manager,
Expand Down

0 comments on commit 7d9308b

Please sign in to comment.