Sha256: c12bca87f4d418bdc787b76ee8dfe67c827bc24fc5e6bcdba7cf779a361d8c32

Contents?: true

Size: 1.12 KB

Versions: 43

Compression:

Stored size: 1.12 KB

Contents

# lock the host into discovery via PXE if feature is enabled in settings
module ForemanDiscovery
  module ImportHooks
    class LockTemplates < ImportHook
      def after_populate
        lock_templates if Setting::Discovered.discovery_lock? && host.subnet.tftp?
      end

      def lock_templates
        TemplateKind::PXE.each do |kind|
          setting = "discovery_#{kind.downcase}_lock_template"
          template_name = Setting[setting]
          logger.info "Locking discovered host #{host.mac} in subnet #{host.subnet} via #{template_name} template"
          template = ::ProvisioningTemplate.unscoped.find_by_name(template_name)
          if template.nil?
            logger.warn "Template '#{template_name}' provided by setting '#{setting}' does not exist, not locking"
            next
          end
          rendered_template = host.render_template(template: template, params: { host: host })
          host.subnet.tftp_proxy.set(kind, host.mac, pxeconfig: rendered_template)
        end
      rescue ::Foreman::Exception => e
        ::Foreman::Logging.exception('Could not set tftp_proxy from proxy', e)
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
foreman_discovery-21.0.5 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-22.0.2 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-21.0.4 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-21.0.3 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-21.0.2 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.5 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.4 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-21.0.1 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.3 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-21.0.0 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.2 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-20.0.1 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-20.0.0 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.1 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-19.0.0 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-18.0.5 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-18.0.4 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-18.0.3 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-17.0.5 app/services/foreman_discovery/import_hooks/lock_templates.rb
foreman_discovery-18.0.2 app/services/foreman_discovery/import_hooks/lock_templates.rb