get_pool_pg_count

in libraries/ceph_chef_helper.rb [193:223]


def get_pool_pg_count(pool_type, pool_index, type, num_of_pool_groups, federated)
  val = node['ceph']['pools']['pgs']['num']
  pool = if federated
           node['ceph']['pools'][pool_type]['federated']['pools'][pool_index]
         else
           node['ceph']['pools'][pool_type]['pools'][pool_index]
         end

  if pool
    calc = node['ceph']['pools']['pgs']['calc']
    total_osds = calc['total_osds']
    size = if type == 'erasure'
             calc['erasure_size']
           else
             calc['replicated_size']
           end
    size = 1 if size <= 0
    target_pgs_per_osd = calc['target_pgs_per_osd']
    data_percent = pool['data_percent']
    num_of_pool_groups = 1 if num_of_pool_groups <= 0

    
    
    num = [(target_pgs_per_osd * total_osds * (data_percent / 100) / num_of_pool_groups) / size, calc['min_pgs_per_pool']].max
    
    val = ceph_chef_power_of_2(num)
  end

  val
end