foreman_bootdisk 16.1.0 → 18.1.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 +5 -0
  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 +9 -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 +12 -2
  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 +74 -11
  37. data/locale/de/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  38. data/locale/de/foreman_bootdisk.po +81 -17
  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 +75 -12
  43. data/locale/es/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  44. data/locale/es/foreman_bootdisk.po +88 -24
  45. data/locale/foreman_bootdisk.pot +167 -74
  46. data/locale/fr/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  47. data/locale/fr/foreman_bootdisk.po +96 -32
  48. data/locale/it/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  49. data/locale/it/foreman_bootdisk.po +75 -12
  50. data/locale/ja/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  51. data/locale/ja/foreman_bootdisk.po +86 -22
  52. data/locale/ko/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  53. data/locale/ko/foreman_bootdisk.po +75 -12
  54. data/locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  55. data/locale/pt_BR/foreman_bootdisk.po +96 -33
  56. data/locale/ru/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  57. data/locale/ru/foreman_bootdisk.po +75 -12
  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 +129 -66
  62. data/locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  63. data/locale/zh_TW/foreman_bootdisk.po +75 -12
  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 +1 -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 -36
@@ -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,10 +38,11 @@ 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
@@ -51,9 +52,17 @@ module ForemanBootdisk
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
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
 
@@ -68,6 +77,7 @@ module ForemanBootdisk
68
77
  Host::Managed.prepend ForemanBootdisk::HostExt
69
78
  Host::Managed.include ForemanBootdisk::Orchestration::Compute if SETTINGS[:unattended]
70
79
  HostsHelper.prepend ForemanBootdisk::HostsHelperExt
80
+ SubnetsHelper.prepend ForemanBootdisk::SubnetsHelperExt
71
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})"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanBootdisk
4
- VERSION = '16.1.0'
4
+ VERSION = '18.1.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")
@@ -7,10 +7,10 @@
7
7
  # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
8
8
  msgid ""
9
9
  msgstr ""
10
- "Project-Id-Version: foreman_bootdisk 16.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-10-22 20:06+0000\n"
13
- "Last-Translator: Lukáš Zapletal\n"
12
+ "PO-Revision-Date: 2021-09-24 07:25+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"
@@ -6,16 +6,17 @@
6
6
  # Christina Gurski <Gurski_christina@yahoo.de>, 2015
7
7
  # Ettore Atalan <atalanttore@googlemail.com>, 2014,2016
8
8
  # Martin Zimmermann <martin.zimmermann@gmx.com>, 2018
9
+ # Patrick Dolinic, 2021
9
10
  # Paul Puschmann, 2014
10
11
  # abf90805572190d649c59f7a021d76cb, 2014
11
- # simon11 <simon.stieger.98@live.de>, 2014
12
- # simon11 <simon.stieger.98@live.de>, 2014
12
+ # simon11 <transifex@stieger.co>, 2014
13
+ # simon11 <transifex@stieger.co>, 2014
13
14
  msgid ""
14
15
  msgstr ""
15
- "Project-Id-Version: foreman_bootdisk 16.1.0\n"
16
+ "Project-Id-Version: foreman_bootdisk 18.0.0\n"
16
17
  "Report-Msgid-Bugs-To: \n"
17
- "PO-Revision-Date: 2019-10-22 20:06+0000\n"
18
- "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>\n"
18
+ "PO-Revision-Date: 2021-10-14 23:10+0000\n"
19
+ "Last-Translator: Patrick Dolinic\n"
19
20
  "Language-Team: German (http://www.transifex.com/foreman/foreman/language/de/)\n"
20
21
  "MIME-Version: 1.0\n"
21
22
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,6 +24,9 @@ msgstr ""
23
24
  "Language: de\n"
24
25
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
25
26
 
27
+ msgid "* - These bootdisk types were disabled, you can enable them in Administer - Settings."
28
+ msgstr "* - Diese Bootdisk-Typen wurden deaktiviert, Sie können sie unter Verwalten - Einstellungen aktivieren."
29
+
26
30
  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."
27
31
  msgstr "Eine Variante des Abbildes pro Host mit im im Medium eingebetteten Betriebssystem-Bootloader. Dies ist hilfreich, falls Chainloading auf einer bestimmten Hardware fehlschlägt, hat jedoch den Nachteil, dass das Abbild bei jeglicher Änderung von Betriebssystem, Bootloader oder PXELinux-Vorlagen neu generiert werden muss."
28
32
 
@@ -32,6 +36,9 @@ msgstr "Aktion mit Unterplänen"
32
36
  msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
33
37
  msgstr "Alle Abbilder können entweder als ISOs oder als Festplattenabbilder verwendet werden und auch mit `dd` auf eine USB-Festplatte geschrieben."
34
38
 
39
+ msgid "Allowed bootdisk types"
40
+ msgstr "Zulässige Bootdisk-Typen"
41
+
35
42
  msgid "Attach ISO image to CDROM drive for %s"
36
43
  msgstr "ISO-Abbild dem CDROM-Laufwerk für %s anhängen"
37
44
 
@@ -41,6 +48,9 @@ msgstr "Zurück"
41
48
  msgid "Boot disk"
42
49
  msgstr "Startmedium"
43
50
 
51
+ msgid "Boot disk Help"
52
+ msgstr "Hilfe zur Bootdiskette"
53
+
44
54
  msgid "Boot disk based"
45
55
  msgstr "Startmedium-basiert"
46
56
 
@@ -59,6 +69,12 @@ msgstr ""
59
69
  msgid "Command to generate ISO image, use genisoimage or mkisofs"
60
70
  msgstr "Kommando zur Erstellung von ISO-Abbildern, verwende genisoimage oder mkisofs"
61
71
 
72
+ msgid "Creating new image failed, install truncate utility"
73
+ msgstr "Das Erstellen eines neuen Images ist fehlgeschlagen. Installieren Sie die Truncate-Utility"
74
+
75
+ msgid "Detach ISO image from CDROM drive for %s"
76
+ msgstr "Trennen Sie das ISO-Image vom CD-ROM-Laufwerk für %s"
77
+
62
78
  msgid "Download generic image"
63
79
  msgstr "Generisches Abbild herunterladen"
64
80
 
@@ -68,9 +84,21 @@ msgstr "Host-Abbild herunterladen"
68
84
  msgid "Download subnet generic image"
69
85
  msgstr "Generisches Abbild von Subnetz herunterladen"
70
86
 
87
+ msgid "Ensure %{file} is readable (or update \"Grub2 directory\" setting)"
88
+ msgstr "Stellen Sie sicher, dass %{file} lesbar ist (oder aktualisieren Sie die Einstellung \"Grub2 directory\")"
89
+
71
90
  msgid "Failed to attach ISO image to CDROM drive of instance %{name}: %{message}"
72
91
  msgstr "Fehler beim Einhängen des ISO-Abbild am CDROM-Laufwerk für Instanz %{name}: %{message}"
73
92
 
93
+ msgid "Failed to create a directory within the ESP image"
94
+ msgstr "Fehler beim Erstellen eines Verzeichnisses im ESP-Image"
95
+
96
+ msgid "Failed to detach ISO image from CDROM drive of instance %{name}: %{message}"
97
+ msgstr "Fehler beim Trennen des ISO-Image vom CD-ROM-Laufwerk der Instanz %{name}: %{message}"
98
+
99
+ msgid "Failed to format the ESP image via mkfs.msdos"
100
+ msgstr "Fehler beim Formatieren des ESP-Image über mkfs.msdos"
101
+
74
102
  msgid "Failed to generate ISO image for instance %{name}: %{message}"
75
103
  msgstr "Fehler beim Erzeugen des ISO-Abbild für Instanz %{name}: %{message}"
76
104
 
@@ -89,17 +117,26 @@ msgstr "Vollständiges Host-Abbild"
89
117
  msgid "Generating ISO image for %s"
90
118
  msgstr "ISO-Abbild für %s wird erzeugt"
91
119
 
120
+ msgid "Generic Grub2 EFI image template"
121
+ msgstr "Generische Grub2-EFI-Image-Vorlage"
122
+
92
123
  msgid "Generic image"
93
124
  msgstr "Generisches Abbild"
94
125
 
95
126
  msgid "Generic image template"
96
127
  msgstr "Generische Abbildvorlage"
97
128
 
129
+ msgid "Generic images"
130
+ msgstr "Generische Images"
131
+
98
132
  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."
99
133
  msgstr "Generische Abbilder sind wiederverwendbare Festplattenabbilder die für beliebige in Foreman registrierte Hosts funktionieren. Sie erfordern einen einfachen DHCP- und DNS-Service, um zu funktionieren und den Server zu kontaktieren. Jedoch benötigen sie keinerlei DHCP-Reservierungen oder statische IP-Adressen."
100
134
 
101
- msgid "Help"
102
- msgstr "Hilfe"
135
+ msgid "Grub2 directory"
136
+ msgstr "Grub2-Verzeichnis"
137
+
138
+ msgid "Grub2 template to use for generic EFI host boot disks"
139
+ msgstr "Grub2-Vorlage zur Verwendung für generische EFI-Host-Bootlaufwerke"
103
140
 
104
141
  msgid "Host '%s' image"
105
142
  msgstr "Host '%s'-Abbild"
@@ -108,7 +145,7 @@ msgid "Host bootdisk does not work with static IPv6"
108
145
  msgstr ""
109
146
 
110
147
  msgid "Host has no IPv4 or IPv6 address defined"
111
- msgstr ""
148
+ msgstr "Host hat keine definierte IPv4- oder IPv6-Adresse"
112
149
 
113
150
  msgid "Host has no domain defined"
114
151
  msgstr "Host hat keine Domäne definiert"
@@ -125,17 +162,26 @@ msgstr "Host-Abbild"
125
162
  msgid "Host image template"
126
163
  msgstr "Host-Abbildvorlage"
127
164
 
165
+ msgid "Host images"
166
+ msgstr "Host-Images"
167
+
168
+ msgid "Host is not in build mode"
169
+ msgstr "Host befindet sich nicht im Build-Modus"
170
+
128
171
  msgid "Host is not in build mode, so the template cannot be rendered"
129
172
  msgstr "Host ist nicht im Buildmodus. Daher kann die Vorlage nicht erstellt werden."
130
173
 
174
+ msgid "Host is not in build mode."
175
+ msgstr "Host befindet sich nicht im Build-Modus."
176
+
131
177
  msgid "ISO build failed"
132
178
  msgstr "ISO-Erstellung fehlgeschlagen"
133
179
 
134
180
  msgid "ISO generation command"
135
181
  msgstr "ISO-Erzeugungsbefehl"
136
182
 
137
- msgid "ISO hybrid conversion failed"
138
- msgstr "ISO hybrid Konvertierung fehlgeschlagen"
183
+ msgid "ISO hybrid conversion failed: %s"
184
+ msgstr "ISO-Hybrid-Konvertierung fehlgeschlagen: %s"
139
185
 
140
186
  msgid "ISOLINUX directory"
141
187
  msgstr "ISOLINUX-Verzeichnis"
@@ -152,9 +198,15 @@ msgstr "Installationsmedien-Dateien Caching"
152
198
  msgid "Installation media files will be cached for full host images"
153
199
  msgstr "Installationsmedien-Dateien werden für vollständige Host-Images zwischengespeichert."
154
200
 
201
+ msgid "List of allowed bootdisk types, remove type to disable it"
202
+ msgstr "Liste der zulässigen Bootdisk-Typen, entfernen Sie den Typ, um ihn zu deaktivieren"
203
+
155
204
  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."
156
205
  msgstr "Sobald sie nacheinander geladen (Chainloading) sind, werden der OS-Bootloader und das OS-Installationsprogramm direkt von den in Foreman konfigurierten Installationsmedien heruntergeladen, und das Bereitstellungsskript (kickstart/preseed) wird von Foreman heruntergeladen."
157
206
 
207
+ msgid "Path to directory containing grubx64.efi and shimx64.efi"
208
+ msgstr "Pfad zum Verzeichnis mit grubx64.efi und shimx64.efi"
209
+
158
210
  msgid "Path to directory containing iPXE images"
159
211
  msgstr "Pfad zum Verzeichnis mit iPXE-Abbildern"
160
212
 
@@ -188,35 +240,47 @@ msgstr "Subnetz '%s' generisches Abbild"
188
240
  msgid "Subnet boot disks"
189
241
  msgstr "Subnetz-Startmedien"
190
242
 
243
+ msgid "Subnet generic image"
244
+ msgstr "Generisches Subnetz-Image"
245
+
191
246
  msgid "Subnet image"
192
247
  msgstr "Subnetzabbild"
193
248
 
194
249
  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."
195
250
  msgstr "Subnetz-Abbilder sind generischen Abbildern ähnlich, aber Chainloading erfolgt über den TFTP Smart Proxy, der dem Host-Subnetz zu gewiesen ist. Das \"Vorlagen\"-Modul muss auf dem Smart-Proxy aktiviert und konfiguriert sein."
196
251
 
197
- msgid "Subnet is not assigned to the host %s"
198
- msgstr "Subnetz ist dem Host %s nicht zugewiesen"
199
-
200
252
  msgid "TFTP feature not enabled for subnet %s"
201
253
  msgstr "TFTP-Funktion für Subnetz %s nicht aktiviert"
202
254
 
203
255
  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."
204
256
  msgstr "Die Installation des Betriebssystems wird unter Verwendung eines in Foreman konfigurierten Installationsmediums fortgesetzt und konfiguriert für gewöhnlich eine statische Verbindung in Abhängigkeit davon, wie die Betriebssystem-iPXE-Vorlage konfiguriert ist."
205
257
 
258
+ msgid "These images are more generic than previous images. You can find them at subnet index page."
259
+ msgstr "Diese Images sind allgemeiner als die vorherigen Images. Sie finden sie auf der Subnetz-Indexseite."
260
+
261
+ msgid "These images are used for host. You can find them at host detail page."
262
+ msgstr "Diese Images werden für Host verwendet. Sie finden sie auf der Host-Detailseite."
263
+
206
264
  msgid "This image is generic for all hosts with a provisioning NIC on that subnet."
207
265
  msgstr "Dieses Abbild ist für alle Hosts mit Provisioning-NIC auf diesem Subnetz generisch."
208
266
 
267
+ msgid "This type of bootdisk is not allowed. Please contact administrator."
268
+ msgstr "Dieser Typ von Bootdisk ist nicht zulässig. Bitte wenden Sie sich an den Administrator."
269
+
209
270
  msgid "True for full, false for basic reusable image"
210
271
  msgstr "\"True\" für vollständiges, \"false\" für einfaches wiederverwendbares Image"
211
272
 
212
273
  msgid "Unable to find template specified by %s setting"
213
274
  msgstr "Konnte Vorlage mit der %s-Einstellung nicht finden"
214
275
 
215
- msgid "Unable to generate disk PXELinux template: %s"
216
- msgstr ""
276
+ msgid "Unable to generate disk %{kind} template: %{error}"
277
+ msgstr "Datenträger %{kind}-Vorlage kann nicht generiert werden: %{error}"
217
278
 
218
- msgid "Unable to generate disk template, PXELinux template not found."
219
- msgstr ""
279
+ msgid "Unable to generate disk template, %{kind} template not found."
280
+ msgstr "Datenträgervorlage kann nicht generiert werden, %{kind}-Vorlage nicht gefunden."
281
+
282
+ msgid "Unable to mcopy %{file}"
283
+ msgstr "%{file} kann nicht mcopy werden"
220
284
 
221
285
  msgid "Upload ISO image to datastore for %s"
222
286
  msgstr "ISO-Abbild zum Datenspeicher für %s hochladen"