namespace :katello do

desc "Migrate deb content attributes to Pulp3"
task :migrate_deb_content_attributes_to_pulp3 => ["environment", "check_ping"] do
  User.current = User.anonymous_api_admin
  repos = Katello::Repository.deb_type.where(library_instance_id: nil)

  repos.find_each.with_index do |repo, index|
    puts "Processing Repository #{index + 1}/#{repos.count}: #{repo.name} (#{repo.id})"
    begin
      ForemanTasks.sync_task(::Actions::Katello::Repository::Update, repo.root,
                             download_policy: 'immediate',
                             deb_architectures: repo.root.deb_architectures&.gsub(',', ' '),
                             deb_releases: repo.root.deb_releases&.gsub(',', ' ') || 'stable',
                             deb_components: repo.root.deb_components&.gsub(',', ' '))
    rescue => e
      puts "Failed to update repository #{repo.name} (#{repo.id}): #{e.message}"
    end
  end
end

end