in providers/erasure.rb [50:94]
def set_profile
if @current_resource.exists && !new_resource.force
Chef::Log.debug 'Erasure profile exists and force not issued.'
return 1
end
cmd_text = "ceph osd erasure-code-profile set #{new_resource.name}"
unless new_resource.directory.nil?
cmd_text += " directory=#{new_resource.directory}"
end
cmd_text += " plugin=#{new_resource.plugin}" unless new_resource.plugin.nil?
unless new_resource.technique.nil?
cmd_text += " technique=#{new_resource.technique}"
end
if !new_resource.ruleset_root.nil? && !new_resource.ruleset_root.empty?
cmd_text += " ruleset-root=#{new_resource.ruleset_root}"
end
if !new_resource.ruleset_failure_domain.nil? && !new_resource.ruleset_failure_domain.empty?
cmd_text += " ruleset-failure-domain=#{new_resource.ruleset_failure_domain}"
end
unless new_resource.key_value.nil?
new_resource.key_value.each do |key, value|
cmd_text += " #{key}=#{value}"
end
end
cmd_text += ' --force' if new_resource.force
puts "\nErasure-coding profile... #{cmd_text}"
cmd = Mixlib::ShellOut.new(cmd_text)
cmd.run_command
cmd.error!
Chef::Log.debug "Erasure coding profile updated: #{cmd.stderr}"
end