{"record":{"id":"a3863ad79d8e592e","repo":"theforeman/foreman","slug":"please-provide-a-medium-provider-it-can-be-found","errorCode":null,"errorMessage":"Please provide a medium provider. It can be found as @medium_provider in templates, or Foreman::Plugin.medium_providers_registry.find_provider(host)","messagePattern":"Please provide a medium provider\\. It can be found as @medium_provider in templates, or Foreman::Plugin\\.medium_providers_registry\\.find_provider\\(host\\)","errorType":"exception","errorClass":"Foreman::Exception","httpStatus":null,"severity":"error","filePath":"app/models/operatingsystem.rb","lineNumber":178,"sourceCode":"\n  def to_s\n    fullname\n  end\n\n  # Implemented only in the OSs subclasses where it makes sense\n  def available_loaders\n    [\"None\", \"PXELinux BIOS\"]\n  end\n\n  # The DHCP record type to use, can be overriden by OSs subclasses\n  def dhcp_record_type\n    Net::DHCP::Record\n  end\n\n  # sets the prefix for the tfp files based on medium unique identifier\n  def pxe_prefix(medium_provider)\n    unless medium_provider.is_a? MediumProviders::Provider\n      raise Foreman::Exception.new(N_('Please provide a medium provider. It can be found as @medium_provider in templates, or Foreman::Plugin.medium_providers_registry.find_provider(host)'))\n    end\n    \"boot/#{medium_provider.unique_id}\"\n  end\n\n  def pxe_files(medium_provider)\n    unless medium_provider.is_a? MediumProviders::Provider\n      raise Foreman::Exception.new(N_('Please provide a medium provider. It can be found as @medium_provider in templates, or Foreman::Plugin.medium_providers_registry.find_provider(host)'))\n    end\n    boot_files_uri(medium_provider).collect do |img|\n      { pxe_prefix(medium_provider).to_sym => img.to_s}\n    end\n  end\n\n  def pxedir(medium_provider = nil)\n    \"\"\n  end\n\n  apipie :method, 'Returns path to the kernel to be installed with prefix based on given medium provider' do","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/theforeman/foreman/blob/6b05625475cfe6aac31a88f8c8ee6e62e4efe620/app/models/operatingsystem.rb#L160-L196","documentation":"Error \"Please provide a medium provider. It can be found as @medium_provider in templates, or Foreman::Plugin.medium_providers_registry.find_provider(host)\" thrown in theforeman/foreman.","triggerScenarios":"Thrown at app/models/operatingsystem.rb:178 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b05625475cfe6aac31a88f8c8ee6e62e4efe620","analyzedAt":"2026-08-23T17:46:34.094Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}