foreman_bootdisk 16.0.0 → 18.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rubocop.yaml +19 -0
  3. data/.tx/config +1 -1
  4. data/AUTHORS +9 -1
  5. data/README.md +11 -3
  6. data/app/controllers/concerns/allowed_actions.rb +16 -0
  7. data/app/controllers/foreman_bootdisk/api/v2/disks_controller.rb +15 -8
  8. data/app/controllers/foreman_bootdisk/api/v2/subnet_disks_controller.rb +16 -4
  9. data/app/controllers/foreman_bootdisk/disks_controller.rb +29 -23
  10. data/app/controllers/foreman_bootdisk/subnet_disks_controller.rb +41 -0
  11. data/app/helpers/bootdisk_links_helper.rb +46 -0
  12. data/app/helpers/concerns/foreman_bootdisk/hosts_helper_ext.rb +58 -44
  13. data/app/helpers/concerns/foreman_bootdisk/pretty_error.rb +13 -0
  14. data/app/helpers/concerns/foreman_bootdisk/subnets_helper_ext.rb +45 -0
  15. data/app/helpers/disk_helper.rb +8 -0
  16. data/app/lib/foreman_bootdisk/scope/bootdisk.rb +28 -1
  17. data/app/lib/foreman_bootdisk/scope/full_host_bootdisk_efi.rb +15 -0
  18. data/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb +10 -1
  19. data/app/models/concerns/foreman_bootdisk/host_ext.rb +13 -6
  20. data/app/models/concerns/foreman_bootdisk/orchestration/compute.rb +38 -22
  21. data/app/models/setting/bootdisk.rb +14 -1
  22. data/app/services/foreman_bootdisk/iso_generator.rb +134 -56
  23. data/app/services/foreman_bootdisk/renderer.rb +36 -19
  24. data/app/views/foreman_bootdisk/disks/help.html.erb +16 -4
  25. data/app/views/foreman_bootdisk/generic_efi_host.erb +68 -0
  26. data/app/views/foreman_bootdisk/host.erb +7 -0
  27. data/app/views/subnets/_bootdisk_action_buttons.erb +1 -0
  28. data/app/views/subnets/_bootdisk_title_buttons.erb +1 -0
  29. data/config/routes.rb +1 -1
  30. data/db/seeds.d/50-bootdisk_templates.rb +1 -0
  31. data/lib/foreman_bootdisk/engine.rb +18 -8
  32. data/lib/foreman_bootdisk/version.rb +1 -1
  33. data/lib/tasks/bootdisk.rake +10 -24
  34. data/locale/action_names.rb +5 -0
  35. data/locale/ca/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  36. data/locale/ca/foreman_bootdisk.po +76 -13
  37. data/locale/de/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  38. data/locale/de/foreman_bootdisk.po +81 -18
  39. data/locale/en/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  40. data/locale/en/foreman_bootdisk.po +71 -8
  41. data/locale/en_GB/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  42. data/locale/en_GB/foreman_bootdisk.po +79 -16
  43. data/locale/es/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  44. data/locale/es/foreman_bootdisk.po +92 -28
  45. data/locale/foreman_bootdisk.pot +164 -71
  46. data/locale/fr/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  47. data/locale/fr/foreman_bootdisk.po +100 -36
  48. data/locale/it/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  49. data/locale/it/foreman_bootdisk.po +78 -15
  50. data/locale/ja/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  51. data/locale/ja/foreman_bootdisk.po +90 -26
  52. data/locale/ko/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  53. data/locale/ko/foreman_bootdisk.po +79 -16
  54. data/locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  55. data/locale/pt_BR/foreman_bootdisk.po +99 -36
  56. data/locale/ru/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  57. data/locale/ru/foreman_bootdisk.po +79 -16
  58. data/locale/sv_SE/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  59. data/locale/sv_SE/foreman_bootdisk.po +75 -12
  60. data/locale/zh_CN/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  61. data/locale/zh_CN/foreman_bootdisk.po +131 -68
  62. data/locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  63. data/locale/zh_TW/foreman_bootdisk.po +79 -16
  64. data/test/functional/foreman_bootdisk/api/v2/disks_controller_test.rb +51 -17
  65. data/test/functional/foreman_bootdisk/api/v2/subnet_disks_controller_test.rb +23 -10
  66. data/test/functional/foreman_bootdisk/disks_controller_test.rb +60 -30
  67. data/test/functional/foreman_bootdisk/subnet_disks_controller_test.rb +51 -0
  68. data/test/test_plugin_helper.rb +21 -3
  69. data/test/unit/concerns/host_test.rb +12 -1
  70. data/test/unit/concerns/orchestration/compute_test.rb +32 -13
  71. data/test/unit/foreman_bootdisk/renderer_test.rb +1 -1
  72. data/test/unit/iso_generator_test.rb +6 -7
  73. metadata +21 -37
@@ -0,0 +1,68 @@
1
+ #
2
+ # Boot disk Grub2 EFI - generic host
3
+ #
4
+ #set debug="http,efinet,net"
5
+ #set debug=all
6
+ echo "Foreman Bootdisk: 'Boot disk Grub2 EFI - generic host' template"
7
+ echo
8
+ echo "********************************************************"
9
+ echo " REQUIREMENTS:"
10
+ echo " * SUBNET GENERIC IMAGE ONLY (host image not supported)"
11
+ echo " * HOST PARAM default_grub_install_entry set to efi_http"
12
+ echo " * PROXY WITH HTTPBOOT FEATURE"
13
+ echo " * HTTP UEFI BOOT ONLY (Legacy/PXE not supported)"
14
+ echo " * IPv4 ONLY (IPv6 not tested, change the template)"
15
+ echo " * HTTP ONLY (change the template for HTTPS)"
16
+ echo " * ISC DHCP (other servers not tested)"
17
+ echo " * GRUB FROM RHEL 8.3+/7.9+ (when generating the image)"
18
+ echo " * EFI HTTP or HTTPS grub entry must be selected in menu"
19
+ echo " * DNS must resolve proxy hostname via DNS proxy if set"
20
+ echo "*******************************************************"
21
+ sleep 5
22
+ <%
23
+ # possible values are: "http" or "https"
24
+ proxy_proto = "http"
25
+
26
+ @subnet || bootdisk_raise("Generic disk not supported for EFI, use subnet disk")
27
+ @subnet.template? || bootdisk_raise("Requires a proxy with template feature")
28
+ proxy_port = if proxy_proto == "http"
29
+ @subnet.httpboot.httpboot_http_port
30
+ else
31
+ @subnet.httpboot.httpboot_https_port
32
+ end
33
+ # Workaround for "no DNS server configured" https://bugzilla.redhat.com/show_bug.cgi?id=1842509
34
+ proxy_httpboot_host = dns_lookup(@subnet.httpboot.hostname)
35
+ proxy_template_host = dns_lookup(@subnet.template.hostname)
36
+ -%>
37
+ echo
38
+ net_ls_cards
39
+ echo "Configuring ALL cards via BOOTP/IPv4"
40
+ net_bootp
41
+ # uncomment here for IPv6 support (not tested)
42
+ #echo "Configuring ALL cards via BOOTP/IPv6"
43
+ #net_ipv6_autoconf
44
+ net_ls_addr
45
+ net_ls_routes
46
+ net_ls_dns
47
+ echo Trying to ping proxy_httpboot_host: <%= proxy_httpboot_host %>
48
+ ping --count 1 <%= proxy_httpboot_host %> || echo Ping to proxy_httpboot_host failed or ping command not available.
49
+ echo Trying to ping proxy_template_host: <%= proxy_template_host %>
50
+ ping --count 1 <%= proxy_template_host %> || echo Ping to proxy_template_host failed or ping command not available.
51
+ sleep 5
52
+ set root=(<%= proxy_proto %>,<%= proxy_httpboot_host %>:<%= proxy_port %>)
53
+ # The variable will not survive configfile fetch, therefore absolute path
54
+ # must be used in the chainloaded template.
55
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1842893
56
+ set http_path=/httpboot/
57
+ set default=efi_<%= proxy_proto %>
58
+ <% (0..32).each do |i| -%>
59
+ echo "Trying efinet<%= i %> via <%= proxy_proto %>://<%= proxy_template_host %>:<%= proxy_port %>/unattended/PXEGrub2?mac=$net_efinet<%= i %>_dhcp_mac"
60
+ set net_default_mac=$net_efinet<%= i %>_dhcp_mac
61
+ sleep 5
62
+ configfile (<%= proxy_proto %>,<%= proxy_template_host %>:<%= proxy_port %>)/unattended/PXEGrub2?mac=$net_efinet<%= i %>_dhcp_mac
63
+ <% end -%>
64
+
65
+ echo "Could not find a host with PXEGrub2 template and one of the MAC addresses!"
66
+ echo "The system will poweroff in few minutes..."
67
+ sleep 500
68
+ poweroff
@@ -58,6 +58,13 @@ set dns <%= dns %>
58
58
  set domain <%= interface.domain.to_s %>
59
59
  <% end %>
60
60
 
61
+ echo Trying to ping Gateway: ${netX/gateway}
62
+ ping --count 1 ${netX/gateway} || echo Ping to Gateway failed or ping command not available.
63
+ <% if dns.present? -%>
64
+ echo Trying to ping DNS: ${netX/dns}
65
+ ping --count 1 ${netX/dns} || echo Ping to DNS failed or ping command not available.
66
+ <% end %>
67
+
61
68
  # Chainload from Foreman rather than embedding OS info here, so the behaviour
62
69
  # is entirely dynamic.
63
70
  chain <%= bootdisk_chain_url %>
@@ -0,0 +1 @@
1
+ <%= display_bootdisk_for_subnet(subject) %>
@@ -0,0 +1 @@
1
+ <%= display_bootdisk_title_buttons %>
data/config/routes.rb CHANGED
@@ -7,7 +7,7 @@ ForemanBootdisk::Engine.routes.draw do
7
7
  constraints(id: %r{[^/]+}) do
8
8
  get 'hosts/:id', on: :collection, to: 'disks#host'
9
9
  get 'full_hosts/:id', on: :collection, to: 'disks#full_host'
10
- get 'subnet/:id', on: :collection, to: 'disks#subnet'
10
+ get 'subnet/:id', on: :collection, to: 'subnet_disks#subnet'
11
11
  end
12
12
  end
13
13
 
@@ -27,5 +27,6 @@ end
27
27
  ProvisioningTemplate.without_auditing do
28
28
  ensure_bootdisk_template("Boot disk iPXE - host", read_bootdisk_template("host.erb"))
29
29
  ensure_bootdisk_template("Boot disk iPXE - generic host", read_bootdisk_template("generic_host.erb"))
30
+ ensure_bootdisk_template("Boot disk Grub2 EFI - generic host", read_bootdisk_template("generic_efi_host.erb"))
30
31
  ensure_bootdisk_template("Boot disk iPXE - generic static host", read_bootdisk_template("generic_static_host.erb"))
31
32
  end
@@ -38,22 +38,31 @@ module ForemanBootdisk
38
38
 
39
39
  initializer 'foreman_bootdisk.register_plugin', before: :finisher_hook do |_app|
40
40
  Foreman::Plugin.register :foreman_bootdisk do
41
- requires_foreman '>= 1.24'
41
+ requires_foreman '>= 3.0'
42
42
 
43
43
  security_block :bootdisk do |_map|
44
- permission :download_bootdisk, 'foreman_bootdisk/disks': %i[generic host full_host subnet help],
44
+ permission :download_bootdisk, 'foreman_bootdisk/disks': %i[generic host full_host help],
45
+ 'foreman_bootdisk/subnet_disks': [:subnet],
45
46
  'foreman_bootdisk/api/v2/disks': %i[generic host],
46
47
  'foreman_bootdisk/api/v2/subnet_disks': [:subnet]
47
48
  end
48
49
 
49
- role 'Boot disk access', [:download_bootdisk]
50
+ role 'Boot disk access', [:download_bootdisk], 'Role granting permissions to download bootdisks'
50
51
 
51
52
  add_all_permissions_to_default_roles
52
53
 
53
54
  apipie_documented_controllers ["#{ForemanBootdisk::Engine.root}/app/controllers/foreman_bootdisk/api/v2/*.rb"]
55
+ ApipieDSL.configuration.dsl_classes_matchers += [
56
+ "#{ForemanBootdisk::Engine.root}/app/lib/foreman_bootdisk/scope/*.rb"
57
+ ]
54
58
  provision_method 'bootdisk', N_('Boot disk based')
55
59
  template_labels 'Bootdisk' => N_('Boot disk embedded template')
56
- allowed_template_helpers :bootdisk_chain_url, :bootdisk_raise, :bootdisk_build?
60
+ allowed_template_helpers :bootdisk_chain_url, :bootdisk_raise
61
+
62
+ extend_page "subnets/index" do |cx|
63
+ cx.add_pagelet :subnet_index_action_buttons, name: 'Bootdisk', partial: 'subnets/bootdisk_action_buttons'
64
+ cx.add_pagelet :subnet_index_title_buttons, name: 'Bootdisk', partial: 'subnets/bootdisk_title_buttons'
65
+ end
57
66
  end
58
67
  end
59
68
 
@@ -65,10 +74,11 @@ module ForemanBootdisk
65
74
 
66
75
  config.to_prepare do
67
76
  begin
68
- Host::Managed.send(:prepend, ForemanBootdisk::HostExt)
69
- Host::Managed.send(:include, ForemanBootdisk::Orchestration::Compute) if SETTINGS[:unattended]
70
- HostsHelper.send(:prepend, ForemanBootdisk::HostsHelperExt)
71
- Foreman::Model::Vmware.send(:prepend, ForemanBootdisk::ComputeResources::Vmware) if Foreman::Model::Vmware.available?
77
+ Host::Managed.prepend ForemanBootdisk::HostExt
78
+ Host::Managed.include ForemanBootdisk::Orchestration::Compute if SETTINGS[:unattended]
79
+ HostsHelper.prepend ForemanBootdisk::HostsHelperExt
80
+ SubnetsHelper.prepend ForemanBootdisk::SubnetsHelperExt
81
+ Foreman::Model::Vmware.prepend ForemanBootdisk::ComputeResources::Vmware if Foreman::Model::Vmware.available?
72
82
  rescue StandardError => e
73
83
  Rails.logger.warn "#{ForemanBootdisk::ENGINE_NAME}: skipping engine hook (#{e})"
74
84
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanBootdisk
4
- VERSION = '16.0.0'
4
+ VERSION = '18.0.0'
5
5
  end
@@ -20,9 +20,10 @@ namespace :bootdisk do
20
20
  task host: :environment do
21
21
  User.as_anonymous_admin do
22
22
  host = Host::Base.unscoped.find_by(name: ENV['NAME']) || raise("cannot find host '#{ENV['NAME']}', specify NAME=fqdn")
23
- tmpl = host.bootdisk_template_render
23
+ tmpl_bios = host.bootdisk_template_render
24
+ tmpl_efi = host.generic_efi_template_render
24
25
 
25
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
26
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, grub: tmpl_efi, dir: outputdir) do |image|
26
27
  output = ENV['OUTPUT'] || File.join(outputdir, "#{host.name}.iso")
27
28
  FileUtils.mv image, output
28
29
  puts "Wrote #{output}"
@@ -45,9 +46,9 @@ namespace :bootdisk do
45
46
  desc 'Generate a generic boot disk. OUTPUT=path'
46
47
  task generic: :environment do
47
48
  User.as_anonymous_admin do
48
- tmpl = ForemanBootdisk::Renderer.new.generic_template_render
49
+ tmpl_bios = ForemanBootdisk::Renderer.new.generic_template_render
49
50
 
50
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
51
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, dir: outputdir) do |image|
51
52
  output = ENV['OUTPUT'] || File.join(outputdir, "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso")
52
53
  FileUtils.cp image, output
53
54
  puts "Wrote #{output}"
@@ -60,8 +61,10 @@ namespace :bootdisk do
60
61
  User.as_anonymous_admin do
61
62
  subnet = Subnet.unscoped.find_by(name: ENV['NAME']) || raise("cannot find subnet '#{ENV['NAME']}', specify NAME=subnet")
62
63
  subnet.tftp || raise(::Foreman::Exception.new(N_('TFTP feature not enabled for subnet %s'), subnet.name))
63
- tmpl = ForemanBootdisk::Renderer.new.generic_template_render(subnet)
64
- ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl, dir: outputdir) do |image|
64
+ subnet.httpboot || ForemanBootdisk.logger.warn('HTTPBOOT feature is not enabled for subnet %s, UEFI may not be available for bootdisk' % subnet.name)
65
+ tmpl_bios = ForemanBootdisk::Renderer.new.generic_template_render(subnet)
66
+ tmpl_efi = ForemanBootdisk::Renderer.new.generic_efi_template_render(subnet)
67
+ ForemanBootdisk::ISOGenerator.generate(ipxe: tmpl_bios, grub: tmpl_efi, dir: outputdir) do |image|
65
68
  output = ENV['OUTPUT'] || File.join(outputdir, "bootdisk_subnet_#{subnet.name}.iso")
66
69
  FileUtils.cp image, output
67
70
  puts "Wrote #{output}"
@@ -85,22 +88,5 @@ end
85
88
 
86
89
  Rake::Task[:test].enhance ['test:foreman_bootdisk']
87
90
 
88
- namespace :foreman_bootdisk do
89
- task :rubocop do
90
- begin
91
- require 'rubocop/rake_task'
92
- RuboCop::RakeTask.new(:rubocop_foreman_bootdisk) do |task|
93
- task.patterns = ["#{ForemanBootdisk::Engine.root}/app/**/*.rb",
94
- "#{ForemanBootdisk::Engine.root}/lib/**/*.rb",
95
- "#{ForemanBootdisk::Engine.root}/test/**/*.rb"]
96
- end
97
- rescue StandardError
98
- puts 'Rubocop not loaded.'
99
- end
100
-
101
- Rake::Task['rubocop_foreman_bootdisk'].invoke
102
- end
103
- end
104
-
105
91
  load 'tasks/jenkins.rake'
106
- Rake::Task['jenkins:unit'].enhance ['test:foreman_bootdisk', 'foreman_bootdisk:rubocop'] if Rake::Task.task_defined?(:'jenkins:unit')
92
+ Rake::Task['jenkins:unit'].enhance ['test:foreman_bootdisk'] if Rake::Task.task_defined?(:'jenkins:unit')
@@ -0,0 +1,5 @@
1
+ # Autogenerated!
2
+ _("Remote action:")
3
+ _("Import Puppet classes")
4
+ _("Import facts")
5
+ _("Action with sub plans")
@@ -3,14 +3,14 @@
3
3
  # This file is distributed under the same license as the foreman_bootdisk package.
4
4
  #
5
5
  # Translators:
6
- # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2017
7
- # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
6
+ # Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2017
7
+ # Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2015-2016
8
8
  msgid ""
9
9
  msgstr ""
10
- "Project-Id-Version: foreman_bootdisk 15.1.0\n"
10
+ "Project-Id-Version: foreman_bootdisk 18.0.0\n"
11
11
  "Report-Msgid-Bugs-To: \n"
12
- "PO-Revision-Date: 2019-08-12 08:51+0000\n"
13
- "Last-Translator: Lukáš Zapletal\n"
12
+ "PO-Revision-Date: 2021-04-29 10:23+0000\n"
13
+ "Last-Translator: Transifex Bot <>\n"
14
14
  "Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
15
15
  "\n"
16
16
  "MIME-Version: 1.0\n"
@@ -19,6 +19,9 @@ msgstr ""
19
19
  "Language: ca\n"
20
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
21
 
22
+ msgid "* - These bootdisk types were disabled, you can enable them in Administer - Settings."
23
+ msgstr ""
24
+
22
25
  msgid "A variant of the per-host image which contains the OS bootloader embedded inside the disk. This may be useful if chainloading fails on certain hardware, but has the downside that the image must be regenerated for any change in the OS, bootloader or PXELinux templates."
23
26
  msgstr ""
24
27
 
@@ -28,6 +31,9 @@ msgstr ""
28
31
  msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
29
32
  msgstr ""
30
33
 
34
+ msgid "Allowed bootdisk types"
35
+ msgstr ""
36
+
31
37
  msgid "Attach ISO image to CDROM drive for %s"
32
38
  msgstr ""
33
39
 
@@ -37,6 +43,9 @@ msgstr "Enrere"
37
43
  msgid "Boot disk"
38
44
  msgstr "Disc d'arrencada"
39
45
 
46
+ msgid "Boot disk Help"
47
+ msgstr ""
48
+
40
49
  msgid "Boot disk based"
41
50
  msgstr ""
42
51
 
@@ -55,6 +64,12 @@ msgstr ""
55
64
  msgid "Command to generate ISO image, use genisoimage or mkisofs"
56
65
  msgstr "L'ordre per generar la imatge ISO, utilitzeu genisoimage o mkisofs"
57
66
 
67
+ msgid "Creating new image failed, install truncate utility"
68
+ msgstr ""
69
+
70
+ msgid "Detach ISO image from CDROM drive for %s"
71
+ msgstr ""
72
+
58
73
  msgid "Download generic image"
59
74
  msgstr "Baixa la imatge genèrica"
60
75
 
@@ -64,9 +79,21 @@ msgstr "Baixa la imatge d'amfitrió"
64
79
  msgid "Download subnet generic image"
65
80
  msgstr "Baixa la imatge genèrica de subxarxa"
66
81
 
82
+ msgid "Ensure %{file} is readable (or update \"Grub2 directory\" setting)"
83
+ msgstr ""
84
+
67
85
  msgid "Failed to attach ISO image to CDROM drive of instance %{name}: %{message}"
68
86
  msgstr ""
69
87
 
88
+ msgid "Failed to create a directory within the ESP image"
89
+ msgstr ""
90
+
91
+ msgid "Failed to detach ISO image from CDROM drive of instance %{name}: %{message}"
92
+ msgstr ""
93
+
94
+ msgid "Failed to format the ESP image via mkfs.msdos"
95
+ msgstr ""
96
+
70
97
  msgid "Failed to generate ISO image for instance %{name}: %{message}"
71
98
  msgstr ""
72
99
 
@@ -85,17 +112,26 @@ msgstr "Imatge completa d'amfitrió"
85
112
  msgid "Generating ISO image for %s"
86
113
  msgstr ""
87
114
 
115
+ msgid "Generic Grub2 EFI image template"
116
+ msgstr ""
117
+
88
118
  msgid "Generic image"
89
119
  msgstr "Imatge genèrica"
90
120
 
91
121
  msgid "Generic image template"
92
122
  msgstr ""
93
123
 
124
+ msgid "Generic images"
125
+ msgstr ""
126
+
94
127
  msgid "Generic images are a reusable disk image that works for any host registered in Foreman. It requires a basic DHCP and DNS service to function and contact the server, but does not require DHCP reservations or static IP addresses."
95
128
  msgstr ""
96
129
 
97
- msgid "Help"
98
- msgstr "Ajuda"
130
+ msgid "Grub2 directory"
131
+ msgstr ""
132
+
133
+ msgid "Grub2 template to use for generic EFI host boot disks"
134
+ msgstr ""
99
135
 
100
136
  msgid "Host '%s' image"
101
137
  msgstr ""
@@ -121,16 +157,25 @@ msgstr "Imatge d'amfitrió"
121
157
  msgid "Host image template"
122
158
  msgstr ""
123
159
 
160
+ msgid "Host images"
161
+ msgstr ""
162
+
163
+ msgid "Host is not in build mode"
164
+ msgstr ""
165
+
124
166
  msgid "Host is not in build mode, so the template cannot be rendered"
125
167
  msgstr ""
126
168
 
169
+ msgid "Host is not in build mode."
170
+ msgstr ""
171
+
127
172
  msgid "ISO build failed"
128
173
  msgstr "No s'ha pogut construir l'ISO"
129
174
 
130
175
  msgid "ISO generation command"
131
176
  msgstr ""
132
177
 
133
- msgid "ISO hybrid conversion failed"
178
+ msgid "ISO hybrid conversion failed: %s"
134
179
  msgstr ""
135
180
 
136
181
  msgid "ISOLINUX directory"
@@ -148,9 +193,15 @@ msgstr ""
148
193
  msgid "Installation media files will be cached for full host images"
149
194
  msgstr "Els fitxers dels mitjans d'instal·lació s'emmagatzemaran en memòria cau per a les imatges completes dels amfitrions"
150
195
 
196
+ msgid "List of allowed bootdisk types, remove type to disable it"
197
+ msgstr ""
198
+
151
199
  msgid "Once chainloaded, the OS bootloader and installer are downloaded directly from the installation media configured in Foreman, and the provisioning script (kickstart/preseed) is downloaded from Foreman."
152
200
  msgstr ""
153
201
 
202
+ msgid "Path to directory containing grubx64.efi and shimx64.efi"
203
+ msgstr ""
204
+
154
205
  msgid "Path to directory containing iPXE images"
155
206
  msgstr "El camí al directori que conté les imatges iPXE"
156
207
 
@@ -184,34 +235,46 @@ msgstr ""
184
235
  msgid "Subnet boot disks"
185
236
  msgstr "Discs d'arrencada de subxarxa"
186
237
 
238
+ msgid "Subnet generic image"
239
+ msgstr ""
240
+
187
241
  msgid "Subnet image"
188
242
  msgstr "Imatge de subxarxa"
189
243
 
190
244
  msgid "Subnet images are similar to generic images, but chain-loading is done via the TFTP Smart Proxy assigned to the Subnet of the host. The smart proxy must have the \"Templates\" module enabled and configured."
191
245
  msgstr ""
192
246
 
193
- msgid "Subnet is not assigned to the host %s"
194
- msgstr "La subxarxa no està assignada a l'amfitrió %s"
195
-
196
247
  msgid "TFTP feature not enabled for subnet %s"
197
248
  msgstr "La funcionalitat TFTP no està habilitada per a la subxarxa %s"
198
249
 
199
250
  msgid "The OS install continues using the installation media configured in Foreman, and it will typically configure static networking, depending on how the OS iPXE template is configured."
200
251
  msgstr ""
201
252
 
253
+ msgid "These images are more generic than previous images. You can find them at subnet index page."
254
+ msgstr ""
255
+
256
+ msgid "These images are used for host. You can find them at host detail page."
257
+ msgstr ""
258
+
202
259
  msgid "This image is generic for all hosts with a provisioning NIC on that subnet."
203
260
  msgstr ""
204
261
 
262
+ msgid "This type of bootdisk is not allowed. Please contact administrator."
263
+ msgstr ""
264
+
205
265
  msgid "True for full, false for basic reusable image"
206
266
  msgstr ""
207
267
 
208
268
  msgid "Unable to find template specified by %s setting"
209
269
  msgstr "No es pot trobar la plantilla especificada per l'ajust %s"
210
270
 
211
- msgid "Unable to generate disk PXELinux template: %s"
271
+ msgid "Unable to generate disk %{kind} template: %{error}"
272
+ msgstr ""
273
+
274
+ msgid "Unable to generate disk template, %{kind} template not found."
212
275
  msgstr ""
213
276
 
214
- msgid "Unable to generate disk template, PXELinux template not found."
277
+ msgid "Unable to mcopy %{file}"
215
278
  msgstr ""
216
279
 
217
280
  msgid "Upload ISO image to datastore for %s"