From 247b416bba43b479934c04df49e1e3ba5aa4170c Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Fri, 8 May 2020 16:08:08 +0200 Subject: [PATCH] Update foreman_wds for 2.0 compatibility --- .../{ => foreman_wds}/host_edit_extensions.js | 20 ++++++++++++++----- .../concerns/foreman_wds/host_extensions.rb | 8 +++++--- .../hosts/provision_method/wds/_form.html.erb | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) rename app/assets/javascripts/{ => foreman_wds}/host_edit_extensions.js (80%) diff --git a/app/assets/javascripts/host_edit_extensions.js b/app/assets/javascripts/foreman_wds/host_edit_extensions.js similarity index 80% rename from app/assets/javascripts/host_edit_extensions.js rename to app/assets/javascripts/foreman_wds/host_edit_extensions.js index 79ad622..7dfaae4 100644 --- a/app/assets/javascripts/host_edit_extensions.js +++ b/app/assets/javascripts/foreman_wds/host_edit_extensions.js @@ -31,20 +31,30 @@ os_selected = function(element){ } }; +var old_onHostEditLoad = onHostEditLoad; +onHostEditLoad = function() { + old_onHostEditLoad(); + + $('#wds_provisioning').detach().insertBefore('#media_select'); +}; + function wds_provision_method_selected() { - build_provision_method_selected(); + $('div[id*=_provisioning]').hide(); + $('#network_provisioning').show(); $('#wds_provisioning').show(); - if ($('#wds_image_select select').val() === '') + if ($('#wds_image_select select').val() === '') { $('#wds_image_select select').attr('disabled', true); + } } $(document).on('change', '#host_provision_method_wds', wds_provision_method_selected); $(function() { + if($('#host_provision_method_wds').is(':checked')) { + wds_provision_method_selected(); + } + var caps = $('#capabilities').val() || $('#bare_metal_capabilities').val(); update_capabilities(caps); - $('#provisioning_method input[checked]').click(); - - $('#wds_provisioning').detach().insertBefore('#media_select'); }); diff --git a/app/models/concerns/foreman_wds/host_extensions.rb b/app/models/concerns/foreman_wds/host_extensions.rb index 6249c5c..f80b490 100644 --- a/app/models/concerns/foreman_wds/host_extensions.rb +++ b/app/models/concerns/foreman_wds/host_extensions.rb @@ -40,23 +40,25 @@ module ForemanWds end def capabilities + return [:wds] if wds_build? return super + [:wds] if compute_resource && (os.nil? || os.family == 'Windows') super end def bare_metal_capabilities + return [:wds] if wds_build? return super + [:wds] if os.nil? || os.family == 'Windows' super end def can_be_built? - super || (wds? && !build?) + super || (managed? && SETTINGS[:unattended] && wds? && !build?) end def wds_build? - provision_method == 'wds' + self[:provision_method] == 'wds' end def pxe_build? @@ -117,5 +119,5 @@ module ForemanWds end class ::Host::Managed::Jail < Safemode::Jail - allow :unattend_arch, :unattend_pass, :wds_facet, :wds_server, :wds_install_image_file, :wds_install_image_group, :wds_install_image_name + allow :unattend_arch, :unattend_pass, :wds_build?, :wds_facet, :wds_server, :wds_install_image_file, :wds_install_image_group, :wds_install_image_name end diff --git a/app/views/hosts/provision_method/wds/_form.html.erb b/app/views/hosts/provision_method/wds/_form.html.erb index 3a8bf59..df2a74a 100644 --- a/app/views/hosts/provision_method/wds/_form.html.erb +++ b/app/views/hosts/provision_method/wds/_form.html.erb @@ -1,4 +1,4 @@ -<%= javascript 'host_edit_extensions' %> +<%= javascript 'foreman_wds/host_edit_extensions' %> <% wds_facet = @host.wds_facet || @host.build_wds_facet -%> <div id="wds_provisioning" <%= display? !@host.wds_build? %>> -- GitLab