in libraries/ceph_chef_helper.rb [56:132]
def ceph_chef_pool_create(pool)
if !node['ceph']['pools'][pool]['federated_names'].empty? && node['ceph']['pools'][pool]['federated_names']
node_loop = node['ceph']['pools'][pool]['federated_names']
num_of_pool_groups = node['ceph']['pools'][pool]['federated_zone_instances'].size
node_loop.each_with_index do |name, index|
profile_val = nil
options_val = nil
pool_val = node['ceph']['pools'][pool]['federated']['pools'][index]
type_val = pool_val['type']
pg_num_val = get_pool_pg_count(pool, index, type_val, num_of_pool_groups, true)
profile_val = pool_val['profile'] if type_val == 'erasure'
crush_ruleset_name = pool_val['crush_ruleset_name']
if node['ceph']['pools']['version'] != 2
ceph_chef_pool name do
action :create
pg_num pg_num_val
pgp_num pg_num_val
type type_val
crush_ruleset pool_val['crush_ruleset'] if node['ceph']['osd']['crush']['update']
crush_ruleset_name crush_ruleset_name if !crush_ruleset_name.nil? && node['ceph']['osd']['crush']['update']
profile profile_val unless profile_val.nil?
options options_val unless options_val.nil?
end
else
profile_val = '' if profile_val.nil?
crush_ruleset_name = '' if crush_ruleset_name.nil?
options_val = '' if options_val.nil?
execute "ceph-pool-create-#{name}" do
command lazy { "ceph osd pool create #{name} #{pg_num_val} #{pg_num_val} #{type_val} #{profile_val} #{crush_ruleset_name} #{options_val}" }
not_if "ceph osd pool get #{name} pg_num"
end
end
end
else
node_loop = node['ceph']['pools'][pool]['pools']
node_loop.each_with_index do |pool_val, index|
type_val = pool_val['type']
pg_num_val = get_pool_pg_count(pool, index, type_val, 1, false)
profile_val = pool_val['profile'] if type_val == 'erasure'
crush_ruleset_name = pool_val['crush_ruleset_name']
options_val = node['ceph']['pools'][pool]['settings']['options'] if node['ceph']['pools'][pool]['settings']['options']
if node['ceph']['pools']['version'] != 2
ceph_chef_pool pool_val['name'] do
action :create
pg_num pg_num_val
pgp_num pg_num_val
type type_val
crush_ruleset pool_val['crush_ruleset'] if node['ceph']['osd']['crush']['update']
crush_ruleset_name crush_ruleset_name if !crush_ruleset_name.nil? && node['ceph']['osd']['crush']['update']
profile profile_val unless profile_val.nil?
options node['ceph']['pools'][pool]['settings']['options'] if node['ceph']['pools'][pool]['settings']['options']
end
else
profile_val = '' if profile_val.nil?
crush_ruleset_name = '' if crush_ruleset_name.nil? || !node['ceph']['osd']['crush']['update']
options_val = '' if options_val.nil?
execute "ceph-pool-create-#{pool_val['name']}" do
command lazy { "ceph osd pool create #{pool_val['name']} #{pg_num_val} #{pg_num_val} #{type_val} #{profile_val} #{crush_ruleset_name} #{options_val}" }
not_if "ceph osd pool get #{pool_val['name']} pg_num"
end
end
end
end
end