From 2f775ea05d3017cb12846648bec4f3bdd6e9c08a Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Fri, 23 Jul 2021 09:39:41 +0200 Subject: [PATCH] Add wds-localboot parameter for template usage --- .../foreman_wds/unattended_controller_extensions.rb | 5 +++++ app/models/concerns/foreman_wds/host_extensions.rb | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb b/app/controllers/concerns/foreman_wds/unattended_controller_extensions.rb index 5d9f870..a952191 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 f80b490..69e186c 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? -- GitLab