diff --git a/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb b/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb index 5d9f87040a8f84f256cc4fc09d5cee405924c529..a952191a927e58cbf74a9e8a072b71ee5d44a0c8 100644 --- a/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb +++ b/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb @@ -30,6 +30,11 @@ module ForemanWds iface.send :rebuild_tftp iface.send :rebuild_dhcp + @host.parameters.where(name: 'wds-specifictemplate').first_or_initialize.tap do |p| + p.value = 'local-boot' + p.save + end + render inline: "Success. Local boot template was deployed successfully.\n" rescue StandardError => e message = format('Failed to set local boot template: %{error}', error: e) diff --git a/app/models/concerns/foreman_wds/host_extensions.rb b/app/models/concerns/foreman_wds/host_extensions.rb index f80b490861b5e424eb883d3f93f7f806c0975548..69e186c0cdb32278ca487df49c45850ec2fa8768 100644 --- a/app/models/concerns/foreman_wds/host_extensions.rb +++ b/app/models/concerns/foreman_wds/host_extensions.rb @@ -3,6 +3,7 @@ module ForemanWds def self.prepended(base) base.class_eval do after_build :ensure_wds_client + after_build :ensure_wds_boot before_provision :remove_wds_client has_one :wds_facet, @@ -89,6 +90,15 @@ module ForemanWds private + def ensure_wds_boot + return unless wds? + + parameters.where(name: 'wds-specifictemplate').each(&:destroy) + Rails.logger.info 'Ensuring WDS boot' + rescue StandardError => ex + Rails.logger.error "Failed to ensure WDS boot, #{ex}" + end + def ensure_wds_client raise NotImplementedError, 'Not implemented yet' return unless wds?