foreman_bootdisk 9.0.0 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +7 -0
  3. data/README.md +8 -1
  4. data/app/controllers/concerns/foreman_bootdisk/unattended_controller_ext.rb +2 -8
  5. data/app/controllers/foreman_bootdisk/api/v2/disks_controller.rb +9 -5
  6. data/app/controllers/foreman_bootdisk/api/v2/subnet_disks_controller.rb +2 -2
  7. data/app/controllers/foreman_bootdisk/disks_controller.rb +9 -5
  8. data/app/helpers/concerns/foreman_bootdisk/hosts_helper_ext.rb +2 -8
  9. data/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb +5 -11
  10. data/app/models/concerns/foreman_bootdisk/host_ext.rb +4 -11
  11. data/db/migrate/20171009225200_remove_duplicate_bootdisk_templates.rb +9 -0
  12. data/db/seeds.d/50-bootdisk_templates.rb +4 -4
  13. data/lib/foreman_bootdisk/engine.rb +7 -5
  14. data/lib/foreman_bootdisk/version.rb +1 -1
  15. data/locale/ca/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  16. data/locale/ca/foreman_bootdisk.po +5 -2
  17. data/locale/de/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  18. data/locale/de/foreman_bootdisk.po +20 -17
  19. data/locale/en/foreman_bootdisk.po +3 -0
  20. data/locale/en_GB/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  21. data/locale/en_GB/foreman_bootdisk.po +17 -14
  22. data/locale/es/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  23. data/locale/es/foreman_bootdisk.po +14 -11
  24. data/locale/foreman_bootdisk.pot +18 -12
  25. data/locale/fr/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  26. data/locale/fr/foreman_bootdisk.po +17 -14
  27. data/locale/it/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  28. data/locale/it/foreman_bootdisk.po +4 -1
  29. data/locale/ja/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  30. data/locale/ja/foreman_bootdisk.po +32 -29
  31. data/locale/ko/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  32. data/locale/ko/foreman_bootdisk.po +15 -12
  33. data/locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  34. data/locale/pt_BR/foreman_bootdisk.po +23 -19
  35. data/locale/ru/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  36. data/locale/ru/foreman_bootdisk.po +17 -13
  37. data/locale/sv_SE/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  38. data/locale/sv_SE/foreman_bootdisk.po +4 -1
  39. data/locale/zh_CN/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  40. data/locale/zh_CN/foreman_bootdisk.po +16 -13
  41. data/locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo +0 -0
  42. data/locale/zh_TW/foreman_bootdisk.po +15 -12
  43. data/test/functional/foreman_bootdisk/api/v2/disks_controller_test.rb +9 -4
  44. data/test/functional/foreman_bootdisk/disks_controller_test.rb +4 -4
  45. data/test/test_plugin_helper.rb +5 -4
  46. data/test/unit/concerns/compute_resources/vmware_test.rb +6 -4
  47. data/test/unit/concerns/host_test.rb +11 -11
  48. data/test/unit/concerns/orchestration/compute_test.rb +3 -3
  49. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 51edea5185dd0ebc1d65265ee3829f0467865488
4
- data.tar.gz: 437a6db3410aaa989e7d3567df89dc29b759119a
3
+ metadata.gz: 22c86a63777cd84947eaaa64505cd6ab37910773
4
+ data.tar.gz: 6095c49c84e7c98a4addd7426e280ae33b6ed47a
5
5
  SHA512:
6
- metadata.gz: 8bb01e994002ba62e9752f02905a7176adf153804b1ee07272876b4e520c031a5cc5373e8cf9f296e1c88a8b726cc3315216ece1badc138fad265d2abc116ac5
7
- data.tar.gz: '078ff4c14078cffac0f13c049666c5ac946e906eafc0c647fb0df735900ca54763108c1b0ea09c72c868e7e625ba5ef4645a1c19f9bfc2d979aa8c8d37aa44ed'
6
+ metadata.gz: 06ac35157d5df78c69f34e6cbeb79c89eb0c121341617adbbf504a569b1e9522cec3e540c0b49b3184a8225ede573286bd917e6626f1f00e91786acdbac45406
7
+ data.tar.gz: 4c90bda0e2f90075b3065e9eebb192bae0ea27f87bd95f830a5d21256d3267d481baac3a1e7060ef2bdbcd41f22f72690dc726660fec68476931c0652750f11b
data/CHANGES.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## v10.0.0
4
+ * retry vmware iso boot 10 times before giving up (#19013)
5
+ * fix duplicate template creation during database seeding (#19733)
6
+ * add plugin permissions to core permissions (#17963)
7
+ * Replace alias_method_chain with Module#prepend
8
+ * Replace controller 'filter' callbacks with 'action'
9
+
3
10
  ## v9.0.0
4
11
  * add missing bootdisk helpers for template previews (#17893)
5
12
  * disable boot disk button on non-Intel architectures (#17497)
data/README.md CHANGED
@@ -44,6 +44,7 @@ gPXE images are unsupported due to lack of initrd support.
44
44
  | >= 1.11 | >= 6.1, < 8.0 |
45
45
  | >= 1.12 | ~> 8.0 |
46
46
  | >= 1.13 | ~> 9.0 |
47
+ | >= 1.15 | ~> 10.0 |
47
48
 
48
49
  # Usage
49
50
 
@@ -67,6 +68,10 @@ preconfigured and have a per-host image attached before first boot. This allows
67
68
  a fully automated provisioning of hosts via ISO boot. This feature can be used by
68
69
  selecting the Bootdisk Based provisioning method under the OS tab when creating
69
70
  the host, or by setting provision_method: "bootdisk" using the API.
71
+ Foreman will create an ISO image as part of the orchestration. This image is then
72
+ uploaded to a VMWare datastore and attached to the VM.
73
+ The user you configured during compute resource setup needs the permissions
74
+ `Datastore > Browse Datastore` and `Datastore > Low level file operations`.
70
75
 
71
76
  ## Templates
72
77
 
@@ -121,7 +126,7 @@ TFTP settings are needed.
121
126
  <tr>
122
127
  <td>Full host image</td>
123
128
  <td>No</td>
124
- <td>Yes</td>
129
+ <td>No (*)</td>
125
130
  <td>No</td>
126
131
  <td>Yes</td>
127
132
  <td>Yes</td>
@@ -144,6 +149,8 @@ TFTP settings are needed.
144
149
  </tr>
145
150
  </table>
146
151
 
152
+ (*) - Foreman 1.14 or older do require DHCP
153
+
147
154
  ### Per-host images
148
155
 
149
156
  Using the host and subnet data in Foreman, per-host images can be created with
@@ -1,12 +1,6 @@
1
1
  module ForemanBootdisk::UnattendedControllerExt
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- alias_method_chain :find_host_by_ip_or_mac, :param_mac
6
- end
7
-
8
- def find_host_by_ip_or_mac_with_param_mac
2
+ def find_host_by_ip_or_mac
9
3
  request.env['HTTP_X_RHN_PROVISIONING_MAC_0'] = "unknown #{params['mac']}" unless request.env.has_key?('HTTP_X_RHN_PROVISIONING_MAC_0') || params['mac'].nil?
10
- find_host_by_ip_or_mac_without_param_mac
4
+ super
11
5
  end
12
6
  end
@@ -10,8 +10,8 @@ module ForemanBootdisk
10
10
  api_base_url "/bootdisk/api"
11
11
  end
12
12
 
13
- before_filter :find_resource, :only => :host
14
- skip_after_filter :log_response_body
13
+ before_action :find_resource, :only => :host
14
+ skip_after_action :log_response_body
15
15
 
16
16
  # no-op, but required for apipie documentation
17
17
  api :GET, '', N_('Boot disks')
@@ -21,7 +21,7 @@ module ForemanBootdisk
21
21
  def generic
22
22
  tmpl = ForemanBootdisk::Renderer.new.generic_template_render
23
23
  ForemanBootdisk::ISOGenerator.generate(:ipxe => tmpl) do |iso|
24
- send_data File.read(iso), :filename => "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso"
24
+ send_data read_file(iso), :filename => "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso"
25
25
  end
26
26
  end
27
27
 
@@ -32,18 +32,22 @@ module ForemanBootdisk
32
32
  host = @disk
33
33
  if params[:full]
34
34
  ForemanBootdisk::ISOGenerator.generate_full_host(host) do |iso|
35
- send_data File.read(iso), :filename => "#{host.name}#{ForemanBootdisk::ISOGenerator.token_expiry(host)}.iso"
35
+ send_data read_file(iso), :filename => "#{host.name}#{ForemanBootdisk::ISOGenerator.token_expiry(host)}.iso"
36
36
  end
37
37
  else
38
38
  tmpl = host.bootdisk_template_render
39
39
  ForemanBootdisk::ISOGenerator.generate(:ipxe => tmpl) do |iso|
40
- send_data File.read(iso), :filename => "#{host.name}.iso"
40
+ send_data read_file(iso), :filename => "#{host.name}.iso"
41
41
  end
42
42
  end
43
43
  end
44
44
 
45
45
  private
46
46
 
47
+ def read_file(filename)
48
+ File.read(filename)
49
+ end
50
+
47
51
  def resource_scope
48
52
  Host::Managed.authorized('view_hosts')
49
53
  end
@@ -8,9 +8,9 @@ module ForemanBootdisk::Api::V2
8
8
  api_base_url "/bootdisk/api"
9
9
  end
10
10
 
11
- before_filter :find_resource, :only => :subnet
11
+ before_action :find_resource, :only => :subnet
12
12
 
13
- skip_after_filter :log_response_body
13
+ skip_after_action :log_response_body
14
14
 
15
15
  # no-op, but required for apipie documentation
16
16
  api :GET, '', N_('Subnet boot disks')
@@ -2,7 +2,7 @@ require 'uri'
2
2
 
3
3
  module ForemanBootdisk
4
4
  class DisksController < ::ApplicationController
5
- before_filter :find_resource, :only => %w[host full_host subnet]
5
+ before_action :find_resource, :only => %w[host full_host subnet]
6
6
 
7
7
  def generic
8
8
  begin
@@ -14,7 +14,7 @@ module ForemanBootdisk
14
14
  end
15
15
 
16
16
  ForemanBootdisk::ISOGenerator.generate(:ipxe => tmpl) do |iso|
17
- send_data File.read(iso), :filename => "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso"
17
+ send_data read_file(iso), :filename => "bootdisk_#{URI.parse(Setting[:foreman_url]).host}.iso"
18
18
  end
19
19
  end
20
20
 
@@ -29,14 +29,14 @@ module ForemanBootdisk
29
29
  end
30
30
 
31
31
  ForemanBootdisk::ISOGenerator.generate(:ipxe => tmpl) do |iso|
32
- send_data File.read(iso), :filename => "#{host.name}.iso"
32
+ send_data read_file(iso), :filename => "#{host.name}.iso"
33
33
  end
34
34
  end
35
35
 
36
36
  def full_host
37
37
  host = @disk
38
38
  ForemanBootdisk::ISOGenerator.generate_full_host(host) do |iso|
39
- send_data File.read(iso), :filename => "#{host.name}#{ForemanBootdisk::ISOGenerator.token_expiry(host)}.iso"
39
+ send_data read_file(iso), :filename => "#{host.name}#{ForemanBootdisk::ISOGenerator.token_expiry(host)}.iso"
40
40
  end
41
41
  end
42
42
 
@@ -53,7 +53,7 @@ module ForemanBootdisk
53
53
  end
54
54
 
55
55
  ForemanBootdisk::ISOGenerator.generate(:ipxe => tmpl) do |iso|
56
- send_data File.read(iso), :filename => "bootdisk_subnet_#{subnet.name}.iso"
56
+ send_data read_file(iso), :filename => "bootdisk_subnet_#{subnet.name}.iso"
57
57
  end
58
58
  end
59
59
 
@@ -62,6 +62,10 @@ module ForemanBootdisk
62
62
 
63
63
  private
64
64
 
65
+ def read_file(filename)
66
+ File.read(filename)
67
+ end
68
+
65
69
  def resource_scope(controller = controller_name)
66
70
  Host::Managed.authorized(:view_hosts)
67
71
  end
@@ -1,11 +1,5 @@
1
1
  module ForemanBootdisk::HostsHelperExt
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- alias_method_chain :host_title_actions, :bootdisk
6
- end
7
-
8
- def host_title_actions_with_bootdisk(*args)
2
+ def host_title_actions(*args)
9
3
  if @host.bootdisk_downloadable?
10
4
  title_actions(
11
5
  button_group(
@@ -24,7 +18,7 @@ module ForemanBootdisk::HostsHelperExt
24
18
  bootdisk_button_disabled
25
19
  end
26
20
 
27
- host_title_actions_without_bootdisk(*args)
21
+ super
28
22
  end
29
23
 
30
24
  def bootdisk_button_disabled
@@ -1,22 +1,16 @@
1
1
  module ForemanBootdisk
2
2
  module ComputeResources
3
3
  module Vmware
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- alias_method_chain :capabilities, :bootdisk
8
- alias_method_chain :parse_args, :bootdisk
9
- end
10
-
11
- def capabilities_with_bootdisk
12
- capabilities_without_bootdisk + [:bootdisk]
4
+ def capabilities
5
+ super + [:bootdisk]
13
6
  end
14
7
 
15
- def parse_args_with_bootdisk(args = {})
16
- args = parse_args_without_bootdisk args
8
+ def parse_args(args = {})
9
+ args = super
17
10
  if args[:provision_method] == 'bootdisk'
18
11
  args[:cdroms] = [new_cdrom]
19
12
  args[:boot_order] = ['cdrom', 'disk']
13
+ args[:boot_retry] = 10
20
14
  end
21
15
  args
22
16
  end
@@ -1,13 +1,6 @@
1
1
  require 'uri'
2
2
 
3
3
  module ForemanBootdisk::HostExt
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- alias_method_chain :validate_media?, :bootdisk
8
- alias_method_chain :can_be_built?, :bootdisk
9
- end
10
-
11
4
  def bootdisk_template
12
5
  ProvisioningTemplate.find_by_name(Setting[:bootdisk_host_template]) || raise(::Foreman::Exception.new(N_('Unable to find template specified by %s setting'), 'bootdisk_host_template'))
13
6
  end
@@ -41,11 +34,11 @@ module ForemanBootdisk::HostExt
41
34
  /i.86|x86[_-]64/ =~ architecture.name
42
35
  end
43
36
 
44
- def validate_media_with_bootdisk?
45
- validate_media_without_bootdisk? || (managed && bootdisk_build? && build?)
37
+ def validate_media?
38
+ super || (managed && bootdisk_build? && build?)
46
39
  end
47
40
 
48
- def can_be_built_with_bootdisk?
49
- can_be_built_without_bootdisk? || (managed? and SETTINGS[:unattended] and bootdisk_build? and !build?)
41
+ def can_be_built?
42
+ super || (managed? and SETTINGS[:unattended] and bootdisk_build? and !build?)
50
43
  end
51
44
  end
@@ -0,0 +1,9 @@
1
+ class RemoveDuplicateBootdiskTemplates < ActiveRecord::Migration
2
+ def up
3
+ template_names = ['Boot disk iPXE - host', 'Boot disk iPXE - generic host']
4
+ template_names.each do |template_name|
5
+ duplicate_template_ids = ProvisioningTemplate.unscoped.where(:name => template_name, :locked => true).order(:created_at => :asc).pluck(:id).drop(1)
6
+ ProvisioningTemplate.unscoped.where(:id => duplicate_template_ids).destroy_all if duplicate_template_ids.any?
7
+ end
8
+ end
9
+ end
@@ -1,4 +1,4 @@
1
- kind = TemplateKind.where(:name => 'Bootdisk').first_or_create
1
+ kind = TemplateKind.unscoped.where(:name => 'Bootdisk').first_or_create
2
2
 
3
3
  organizations = Organization.all
4
4
  locations = Location.all
@@ -7,7 +7,7 @@ created = []
7
7
  ProvisioningTemplate.without_auditing do
8
8
  content = File.read(File.join(ForemanBootdisk::Engine.root, 'app', 'views', 'foreman_bootdisk', 'host.erb'))
9
9
  created << 'Boot disk iPXE - host' unless ProvisioningTemplate.find_by_name('Boot disk iPXE - host')
10
- tmpl = ProvisioningTemplate.where(:name => 'Boot disk iPXE - host').first_or_create do |template|
10
+ tmpl = ProvisioningTemplate.unscoped.where(:name => 'Boot disk iPXE - host').first_or_create do |template|
11
11
  template.attributes = {
12
12
  :template_kind_id => kind.id,
13
13
  :snippet => false,
@@ -24,7 +24,7 @@ ProvisioningTemplate.without_auditing do
24
24
 
25
25
  content = File.read(File.join(ForemanBootdisk::Engine.root, 'app', 'views', 'foreman_bootdisk', 'generic_host.erb'))
26
26
  created << 'Boot disk iPXE - generic host' unless ProvisioningTemplate.find_by_name('Boot disk iPXE - generic host')
27
- tmpl = ProvisioningTemplate.where(:name => 'Boot disk iPXE - generic host').first_or_create do |template|
27
+ tmpl = ProvisioningTemplate.unscoped.where(:name => 'Boot disk iPXE - generic host').first_or_create do |template|
28
28
  template.attributes = {
29
29
  :template_kind_id => kind.id,
30
30
  :snippet => false,
@@ -39,7 +39,7 @@ ProvisioningTemplate.without_auditing do
39
39
  tmpl.locked = true
40
40
  tmpl.save!(:validate => false) if tmpl.changes.present?
41
41
 
42
- ProvisioningTemplate.where(:name => created, :default => true).each do |tmpl|
42
+ ProvisioningTemplate.unscoped.where(:name => created, :default => true).each do |tmpl|
43
43
  tmpl.organizations = organizations if SETTINGS[:organizations_enabled]
44
44
  tmpl.locations = locations if SETTINGS[:locations_enabled]
45
45
  end
@@ -48,7 +48,7 @@ module ForemanBootdisk
48
48
 
49
49
  initializer 'foreman_bootdisk.register_plugin', :before => :finisher_hook do |app|
50
50
  Foreman::Plugin.register :foreman_bootdisk do
51
- requires_foreman '>= 1.13'
51
+ requires_foreman '>= 1.15'
52
52
 
53
53
  security_block :bootdisk do |map|
54
54
  permission :download_bootdisk, {:'foreman_bootdisk/disks' => [:generic, :host, :full_host, :subnet, :help],
@@ -58,6 +58,8 @@ module ForemanBootdisk
58
58
 
59
59
  role "Boot disk access", [:download_bootdisk]
60
60
 
61
+ add_all_permissions_to_default_roles
62
+
61
63
  allowed_template_helpers :bootdisk_chain_url, :bootdisk_raise
62
64
  apipie_documented_controllers ["#{ForemanBootdisk::Engine.root}/app/controllers/foreman_bootdisk/api/v2/*.rb"]
63
65
  provision_method 'bootdisk', N_('Boot disk based')
@@ -74,11 +76,11 @@ module ForemanBootdisk
74
76
 
75
77
  config.to_prepare do
76
78
  begin
77
- Host::Managed.send(:include, ForemanBootdisk::HostExt)
79
+ Host::Managed.send(:prepend, ForemanBootdisk::HostExt)
78
80
  Host::Managed.send(:include, ForemanBootdisk::Orchestration::Compute) if SETTINGS[:unattended]
79
- HostsHelper.send(:include, ForemanBootdisk::HostsHelperExt)
80
- UnattendedController.send(:include, ForemanBootdisk::UnattendedControllerExt)
81
- Foreman::Model::Vmware.send(:include, ForemanBootdisk::ComputeResources::Vmware) if Foreman::Model::Vmware.available?
81
+ HostsHelper.send(:prepend, ForemanBootdisk::HostsHelperExt)
82
+ UnattendedController.send(:prepend, ForemanBootdisk::UnattendedControllerExt)
83
+ Foreman::Model::Vmware.send(:prepend, ForemanBootdisk::ComputeResources::Vmware) if Foreman::Model::Vmware.available?
82
84
  rescue => e
83
85
  puts "#{ForemanBootdisk::ENGINE_NAME}: skipping engine hook (#{e.to_s})"
84
86
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanBootdisk
2
- VERSION = '9.0.0'
2
+ VERSION = '10.0.0'
3
3
  end
@@ -3,12 +3,12 @@
3
3
  # This file is distributed under the same license as the foreman_bootdisk package.
4
4
  #
5
5
  # Translators:
6
- # Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2015-2016
6
+ # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Foreman\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: 2016-03-24 09:54+0000\n"
11
+ "PO-Revision-Date: 2017-09-20 00:09+0000\n"
12
12
  "Last-Translator: Lukáš Zapletal\n"
13
13
  "Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
14
14
  "\n"
@@ -36,6 +36,9 @@ msgstr "Disc d'arrencada"
36
36
  msgid "Boot disk based"
37
37
  msgstr ""
38
38
 
39
+ msgid "Boot disk download not available for %s architecture"
40
+ msgstr ""
41
+
39
42
  msgid "Boot disk embedded template"
40
43
  msgstr ""
41
44
 
@@ -11,8 +11,8 @@ msgid ""
11
11
  msgstr ""
12
12
  "Project-Id-Version: Foreman\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
- "PO-Revision-Date: 2016-03-30 17:18+0000\n"
15
- "Last-Translator: Lukáš Zapletal\n"
14
+ "PO-Revision-Date: 2017-09-20 00:09+0000\n"
15
+ "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>\n"
16
16
  "Language-Team: German (http://www.transifex.com/foreman/foreman/language/de/)\n"
17
17
  "MIME-Version: 1.0\n"
18
18
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,13 +21,13 @@ msgstr ""
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
23
  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."
24
- msgstr ""
24
+ 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."
25
25
 
26
26
  msgid "All images are usable as either ISOs or as disk images, including being written to a USB disk with `dd`."
27
27
  msgstr "Alle Abbilder können entweder als ISOs oder als Festplattenabbilder verwendet werden und auch mit `dd` auf eine USB-Festplatte geschrieben."
28
28
 
29
29
  msgid "Attach ISO image to CDROM drive for %s"
30
- msgstr ""
30
+ msgstr "ISO-Abbild dem CDROM-Laufwerk für %s anhängen"
31
31
 
32
32
  msgid "Back"
33
33
  msgstr "Zurück"
@@ -36,6 +36,9 @@ msgid "Boot disk"
36
36
  msgstr "Startmedium"
37
37
 
38
38
  msgid "Boot disk based"
39
+ msgstr "Startmedium-basiert"
40
+
41
+ msgid "Boot disk download not available for %s architecture"
39
42
  msgstr ""
40
43
 
41
44
  msgid "Boot disk embedded template"
@@ -54,7 +57,7 @@ msgid "Download host image"
54
57
  msgstr "Host-Abbild herunterladen"
55
58
 
56
59
  msgid "Download subnet generic image"
57
- msgstr ""
60
+ msgstr "Generisches Abbild von Subnetz herunterladen"
58
61
 
59
62
  msgid "Failed to attach ISO image to CDROM drive of instance %{name}: %{message}"
60
63
  msgstr ""
@@ -63,7 +66,7 @@ msgid "Failed to generate ISO image for instance %{name}: %{message}"
63
66
  msgstr ""
64
67
 
65
68
  msgid "Failed to render boot disk template"
66
- msgstr ""
69
+ msgstr "Fehler beim Rendern der Vorlage für Startmedium"
67
70
 
68
71
  msgid "Failed to upload ISO image for instance %{name}: %{message}"
69
72
  msgstr ""
@@ -75,13 +78,13 @@ msgid "Full host image"
75
78
  msgstr "Vollständiges Host-Abbild"
76
79
 
77
80
  msgid "Generating ISO image for %s"
78
- msgstr ""
81
+ msgstr "ISO-Abbild für %s wird erzeugt"
79
82
 
80
83
  msgid "Generic image"
81
84
  msgstr "Generisches Abbild"
82
85
 
83
86
  msgid "Generic image template"
84
- msgstr ""
87
+ msgstr "Generische Abbildvorlage"
85
88
 
86
89
  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."
87
90
  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."
@@ -108,7 +111,7 @@ msgid "Host image"
108
111
  msgstr "Host-Abbild"
109
112
 
110
113
  msgid "Host image template"
111
- msgstr ""
114
+ msgstr "Host-Abbildvorlage"
112
115
 
113
116
  msgid "Host is not in build mode, so the template cannot be rendered"
114
117
  msgstr "Host ist nicht im Buildmodus. Daher kann die Vorlage nicht erstellt werden."
@@ -117,13 +120,13 @@ msgid "ISO build failed"
117
120
  msgstr "ISO-Erstellung fehlgeschlagen"
118
121
 
119
122
  msgid "ISO generation command"
120
- msgstr ""
123
+ msgstr "ISO-Erzeugungsbefehl"
121
124
 
122
125
  msgid "ISO hybrid conversion failed"
123
126
  msgstr "ISO hybrid Konvertierung fehlgeschlagen"
124
127
 
125
128
  msgid "ISOLINUX directory"
126
- msgstr ""
129
+ msgstr "ISOLINUX-Verzeichnis"
127
130
 
128
131
  msgid "Installation media caching"
129
132
  msgstr ""
@@ -156,7 +159,7 @@ msgid "Plugin for Foreman that creates iPXE-based boot disks to provision hosts
156
159
  msgstr "Plugin für Foreman, welches iPXE-basierte Startmedien erstellt, um Hosts ohne die Notwendigkeit einer PXE-Infrastruktur bereitzustellen."
157
160
 
158
161
  msgid "SYSLINUX directory"
159
- msgstr ""
162
+ msgstr "SYSLINUX-Verzeichnis"
160
163
 
161
164
  msgid "Subnet '%s' generic image"
162
165
  msgstr "Subnetz '%s' generisches Abbild"
@@ -174,10 +177,10 @@ msgid "Subnet image"
174
177
  msgstr "Subnetzabbild"
175
178
 
176
179
  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."
177
- msgstr ""
180
+ 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."
178
181
 
179
182
  msgid "Subnet is not assigned to the host %s"
180
- msgstr ""
183
+ msgstr "Subnetz ist dem Host %s nicht zugewiesen"
181
184
 
182
185
  msgid "TFTP feature not enabled for subnet %s"
183
186
  msgstr "TFTP-Funktion für Subnetz %s nicht aktiviert"
@@ -186,7 +189,7 @@ msgid "The OS install continues using the installation media configured in Forem
186
189
  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."
187
190
 
188
191
  msgid "This image is generic for all hosts with a provisioning NIC on that subnet."
189
- msgstr ""
192
+ msgstr "Dieses Abbild ist für alle Hosts mit Provisioning-NIC auf diesem Subnetz generisch."
190
193
 
191
194
  msgid "True for full, false for basic reusable image"
192
195
  msgstr "\"True\" für vollständiges, \"false\" für einfaches wiederverwendbares Image"
@@ -198,13 +201,13 @@ msgid "Unable to generate disk template: %s"
198
201
  msgstr "Startmedium-Vorlage konnte nicht erzeugt werden: %s"
199
202
 
200
203
  msgid "Upload ISO image to datastore for %s"
201
- msgstr ""
204
+ msgstr "ISO-Abbild zum Datenspeicher für %s hochladen"
202
205
 
203
206
  msgid "Various types of boot disks can be created to provision hosts without the need for PXE services. Boot disks can be attached to the host (physical or virtual) which boots from the disk, contacts Foreman and begins the OS installation."
204
207
  msgstr "Verschiedene Arten von Startmedien können erstellt werden, um Hosts ohne die Notwendigkeit von PXE-Diensten bereitzustellen. Startmedien können mit dem Host (physisch oder virtuell) verbunden werden, der von der Festplatte bootet, Foreman kontaktiert und die OS-Installation beginnt."
205
208
 
206
209
  msgid "iPXE directory"
207
- msgstr ""
210
+ msgstr "iPXE-Verzeichnis"
208
211
 
209
212
  msgid "iPXE template to use for generic host boot disks"
210
213
  msgstr "iPXE Vorlage zur Verwendung für generische Host-Startmedien"