Skip to content
Snippets Groups Projects
Commit d9896473 authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Improve provisioning capabilities

parent dbe86b44
No related branches found
No related tags found
No related merge requests found
......@@ -7,13 +7,5 @@ module ForemanWds
render partial: 'wds_servers/image_select', locals: { item: wds_facet }
end
# FIXME Ugly hack
# Forcefully adds wds_facet to the permitted params
def host_params(top_level_hash = controller_name.singularize)
params[:host][:wds_facet].permit! if params.key?(:host) && params[:host][:wds_facet].is_a?(ActionController::Parameters)
super(top_level_hash)
end
end
end
class ForemanWds::WdsImage
WDS_IMAGE_ARCHES = [nil, /^i.86|x86$/i, /^ia64$/i, /^x86_64|x64$/i, /^arm$/i].freeze
WDS_ARCH_NAMES = [nil, 'x86', 'ia64', 'x64', 'arm'].freeze
WDS_PROCESSOR_NAMES = [nil, 'x86', 'ia64', 'amd64', 'arm'].freeze
attr_accessor :id, :name, :description, :enabled, :file_name,
:architecture, :product_family, :product_name, :version,
:wds_server
......
......@@ -51,6 +51,10 @@ module ForemanWds
wds_facet || build_wds_facet
end
def unattend_pass(suffix = '')
Base64.encode64(Encoding::Converter.new('UTF-8', 'UTF-16LE', undef: nil).convert(Base64.decode64(root_pass) + suffix)).delete!("\n")
end
private
def orchestrate_wds_client
......@@ -59,6 +63,12 @@ module ForemanWds
client = wds_server.client(self) || wds_server.create_client(self)
Rails.logger.info client
rescue NotImplementedException
Rails.logger.info 'WDS orchestration is not implemented yet'
end
end
end
class ::Host::Managed::Jail < Safemode::Jail
allow :unattend_pass
end
......@@ -21,4 +21,11 @@
required: true
%>
</span>
<%= select_f f, :ptable_id, os_ptable, :id, :to_label,
{:include_blank => blank_or_inherit_f(f, :ptable), :selected => @host.ptable_id},
{:label => _("Partition Table"), :disabled => os_ptable.empty?, :required => true}
%>
<%= textarea_f f, :disk, :size => "col-md-8", :rows => "4",
:help_block => _("What ever text(or ERB template) you use in here, would be used as your OS disk layout options If you want to use the partition table option, delete all of the text from this field") %>
</div>
......@@ -24,6 +24,7 @@ module ForemanWds
parent: :infrastructure_menu
register_facet ForemanWds::WdsFacet, :wds_facet
parameter_filter Host::Managed, :wds_facet
provision_method 'wds', N_('WDS Server')
template_labels 'wds_unattend' => N_('WDS Unattend file template')
......@@ -54,5 +55,11 @@ module ForemanWds
Rails.logger.fatal "foreman_wds: skipping engine hook (#{e})"
end
end
rake_tasks do
Rake::Task['db:seed'].enhance do
ForemanWds::Engine.load_seed
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment