set_profile

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