Sha256: 1ad710e3bb432ff9e882da11bb7984f94f1a8f95e0c74248c8fe269e0602b1b9

Contents?: true

Size: 1.9 KB

Versions: 3

Compression:

Stored size: 1.9 KB

Contents

# frozen_string_literal: true

class Setting
  class Bootdisk < ::Setting
    def self.load_defaults
      return unless ApplicationRecord.connection.table_exists?('settings')
      return unless super

      ipxe = ['/usr/lib/ipxe'].find { |p| File.exist?(p) } || '/usr/share/ipxe'
      isolinux = ['/usr/lib/ISOLINUX'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
      syslinux = ['/usr/lib/syslinux/modules/bios', '/usr/lib/syslinux'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
      templates = -> { Hash[ProvisioningTemplate.where(template_kind: TemplateKind.where(name: 'Bootdisk')).map { |temp| [temp[:name], temp[:name]] }] }

      Setting.transaction do
        [
          set('bootdisk_ipxe_dir', N_('Path to directory containing iPXE images'), ipxe, N_('iPXE directory')),
          set('bootdisk_isolinux_dir', N_('Path to directory containing isolinux images'), isolinux, N_('ISOLINUX directory')),
          set('bootdisk_syslinux_dir', N_('Path to directory containing syslinux images'), syslinux, N_('SYSLINUX directory')),
          set('bootdisk_host_template', N_('iPXE template to use for host-specific boot disks'),
              'Boot disk iPXE - host', N_('Host image template'), nil, collection: templates),
          set('bootdisk_generic_host_template', N_('iPXE template to use for generic host boot disks'),
              'Boot disk iPXE - generic host', N_('Generic image template'), nil, collection: templates),
          set('bootdisk_mkiso_command', N_('Command to generate ISO image, use genisoimage or mkisofs'), 'genisoimage', N_('ISO generation command')),
          set('bootdisk_cache_media', N_('Installation media files will be cached for full host images'), true, N_('Installation media caching'))
        ].compact.each { |s| create s.update(category: 'Setting::Bootdisk') }
      end

      true
    end

    def self.humanized_category
      N_('Boot disk')
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
foreman_bootdisk-15.1.0 app/models/setting/bootdisk.rb
foreman_bootdisk-15.0.0 app/models/setting/bootdisk.rb
foreman_bootdisk-14.0.0 app/models/setting/bootdisk.rb