foreman_discovery 16.1.2 → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/discovered_hosts_controller.rb +5 -3
  3. data/app/models/host/discovered.rb +10 -14
  4. data/app/models/setting/discovered.rb +3 -1
  5. data/app/services/foreman_discovery/host_fact_importer.rb +10 -0
  6. data/app/views/discovered_hosts/_discovered_host_modal.html.erb +0 -2
  7. data/app/views/foreman_discovery/debian_kexec.erb +2 -1
  8. data/app/views/foreman_discovery/redhat_kexec.erb +2 -1
  9. data/extra/discover-host +14 -8
  10. data/lib/foreman_discovery/engine.rb +1 -1
  11. data/lib/foreman_discovery/version.rb +1 -1
  12. data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
  13. data/locale/ca/foreman_discovery.po +4 -1
  14. data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
  15. data/locale/de/foreman_discovery.po +4 -1
  16. data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
  17. data/locale/en/foreman_discovery.po +4 -1
  18. data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
  19. data/locale/en_GB/foreman_discovery.po +4 -1
  20. data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
  21. data/locale/es/foreman_discovery.po +4 -1
  22. data/locale/foreman_discovery.pot +77 -73
  23. data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
  24. data/locale/fr/foreman_discovery.po +4 -1
  25. data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
  26. data/locale/gl/foreman_discovery.po +4 -1
  27. data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
  28. data/locale/it/foreman_discovery.po +4 -1
  29. data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
  30. data/locale/ja/foreman_discovery.po +4 -1
  31. data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
  32. data/locale/ko/foreman_discovery.po +4 -1
  33. data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
  34. data/locale/pt_BR/foreman_discovery.po +4 -1
  35. data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
  36. data/locale/ru/foreman_discovery.po +4 -1
  37. data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
  38. data/locale/sv_SE/foreman_discovery.po +4 -1
  39. data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
  40. data/locale/zh_CN/foreman_discovery.po +4 -1
  41. data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
  42. data/locale/zh_TW/foreman_discovery.po +4 -1
  43. data/test/facts/only-ipv6.json +205 -0
  44. data/test/facts/skylake-ipv6.json +223 -0
  45. data/test/functional/api/v2/settings_controller_test.rb +2 -2
  46. data/test/unit/host_discovered_test.rb +0 -16
  47. metadata +7 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef6a4731f46b5f34f372a87f8da770e0510504664852ef61253677bb587c8842
4
- data.tar.gz: 75715ed1dae928289c3189443f8f290c6fa95a681678610c0aca980b18825aa1
3
+ metadata.gz: accf12de8ae1253e5023ba98c65da7c3af14aa8da4691fe67dd7f18bc5717518
4
+ data.tar.gz: 0dd4c83a875917ccf3933679a31a747d8f559e5195415fab619cc0220bcd97c4
5
5
  SHA512:
6
- metadata.gz: 5882e04be01b4d3f213acf4b751a0a4784436cd97558ab1e9448f8976e89f86db047c986923da5d62f72757c86430790590c942f0579ba62224f7ce458ef9c9d
7
- data.tar.gz: 154d39a5d013b431ce6367d5a0f87e06521df092c36a4d95da0114062f4aef569ddd80600ac077db7639b9628739056e66d619de7604e026e45f57406a069c3c
6
+ metadata.gz: a8fd61670a325106898043ab9533f7512835394a6141139580436e9c8fdd0027ff0aee02c0a53f6d92b5b4535d5bcbcabfb1cd91ddc0fd85ce8a0a54d2cde27e
7
+ data.tar.gz: 90263e8535e3d338ee335a280ff89dafd188d7e92c8f7becb340bc6ede0884bbf4ee915ad158de546c84058240c7338d1d4a736f3124e8c6c57f935862073f83
@@ -199,15 +199,17 @@ class DiscoveredHostsController < ::ApplicationController
199
199
 
200
200
  def setup_host_class_variables
201
201
  if @host.hostgroup
202
+ subnet = @host.hostgroup.subnet || @host.subnet
203
+ subnet6 = @host.hostgroup.subnet6 || @host.subnet6
202
204
  @architecture = @host.hostgroup.architecture
203
205
  @operatingsystem = @host.hostgroup.operatingsystem
204
206
  @environment = @host.hostgroup.environment
205
207
  @domain = @host.hostgroup.domain
206
- @subnet = @host.hostgroup.subnet
208
+ @subnet = subnet
209
+ @subnet6 = subnet6
207
210
  @compute_profile = @host.hostgroup.compute_profile
208
211
  @realm = @host.hostgroup.realm
209
- @host.interfaces.first.assign_attributes(subnet: @subnet,
210
- domain: @domain)
212
+ @host.interfaces.first.assign_attributes(subnet: subnet, subnet6: subnet6, domain: @domain)
211
213
  @host.environment = @environment
212
214
  end
213
215
  end
@@ -44,9 +44,13 @@ class Host::Discovered < ::Host::Base
44
44
 
45
45
  # Discovery import workflow:
46
46
  # discovered#import_host ->
47
- # discovered#import_facts -> base#import_facts -> base#parse_facts ->
48
- # discovered#populate_fields_from_facts -> base#populate_fields_from_facts -> base#set_interfaces
49
- # discovered#populate_discovery_fields_from_facts
47
+ # ForemanDiscovery::HostFactImporter#import_facts ->
48
+ # ::HostFactImporter#import_facts ->
49
+ # ::HostFactImporter#parse_facts ->
50
+ # discovered#populate_fields_from_facts ->
51
+ # base#populate_fields_from_facts ->
52
+ # base#set_interfaces ->
53
+ # discovered#populate_discovery_fields_from_facts
50
54
  def self.import_host facts
51
55
  raise(::Foreman::Exception.new(N_("Invalid facts, must be a Hash"))) unless facts.is_a?(Hash) || facts.is_a?(ActionController::Parameters)
52
56
 
@@ -92,19 +96,11 @@ class Host::Discovered < ::Host::Base
92
96
 
93
97
  # and save (interfaces are created via puppet parser extension)
94
98
  host.save(:validate => false) if host.new_record?
95
- raise ::Foreman::Exception.new(N_("Facts could not be imported")) unless host.import_facts(facts)
99
+ importer = ForemanDiscovery::HostFactImporter.new(host)
100
+ raise ::Foreman::Exception.new(N_("Facts could not be imported")) unless importer.import_facts(facts)
96
101
  host
97
102
  end
98
103
 
99
- def import_facts(facts)
100
- # Discovered Hosts won't report in via puppet, so we can use that field to
101
- # record the last time it sent facts...
102
- self.last_report = Time.now
103
- # Set the correct facts type for new foreman facts importing code.
104
- facts[:_type] = :foreman_discovery
105
- super(facts)
106
- end
107
-
108
104
  def setup_clone
109
105
  # Nic::Managed needs this method but Discovered hosts shouldn't
110
106
  # be doing orchestration anyway...
@@ -144,7 +140,7 @@ class Host::Discovered < ::Host::Base
144
140
  def refresh_facts
145
141
  facts = ::ForemanDiscovery::NodeAPI::Inventory.new(:url => proxy_url(self.ip)).facter
146
142
  self.class.import_host facts
147
- import_facts facts
143
+ ::ForemanDiscovery::HostFactImporter.new(self).import_facts facts
148
144
  rescue => e
149
145
  ::Foreman::Logging.exception("Unable to get facts from proxy", e)
150
146
  raise ::Foreman::WrappedException.new(e, N_("Could not get facts from proxy %{url}: %{error}"), :url => proxy_url, :error => e)
@@ -8,7 +8,9 @@ class Setting::Discovered < ::Setting
8
8
  BLANK_ATTRS << 'discovery_facts_hardware'
9
9
  BLANK_ATTRS << 'discovery_facts_network'
10
10
  BLANK_ATTRS << 'discovery_facts_ipmi'
11
- BLANK_ATTRS << 'discovery_prefix'
11
+
12
+ STRING_PRESENCE_ATTRS = ['discovery_hostname', 'discovery_prefix']
13
+ validates :value, :presence => true, :if => proc { |s| STRING_PRESENCE_ATTRS.include?(s.name) }
12
14
 
13
15
  def self.default_settings
14
16
  [
@@ -0,0 +1,10 @@
1
+ class ForemanDiscovery::HostFactImporter < ::HostFactImporter
2
+ def import_facts(facts)
3
+ # Discovered Hosts won't report in via puppet, so we can use that field to
4
+ # record the last time it sent facts...
5
+ host.last_report = Time.now
6
+ # Set the correct facts type for new foreman facts importing code.
7
+ facts[:_type] = :foreman_discovery
8
+ super(facts)
9
+ end
10
+ end
@@ -17,8 +17,6 @@
17
17
  <% if show_location_tab? %>
18
18
  <%= select_f f, :location_id, Location.my_locations, :id, :to_label, {}, {:size => 'col-md-10'} %>
19
19
  <% end %>
20
-
21
- <div>Changing the Host's Subnet is not possible via Customize Host form, use Create Host or Auto provisioning and set the desired Subnet in the Hostgroup.</div>
22
20
  </div>
23
21
  <div class="modal-footer">
24
22
  <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
@@ -12,9 +12,10 @@ environments. The template must generate JSON format with the following items
12
12
  "kernel", "initram", "append" and "extra". The kexec command is composed in
13
13
  the following way:
14
14
 
15
- kexec --force --reset-vga --append=$append --initrd=$initram $extra $kernel
15
+ kexec --force --debug --append=$append --initrd=$initram $extra $kernel
16
16
 
17
17
  Please read kexec(8) man page for more information about semantics.
18
+ Extra options like --reset-vga can be set via "extra" array.
18
19
  -%>
19
20
  <%
20
21
  mac = @host.facts['discovery_bootif']
@@ -22,9 +22,10 @@ environments. The template must generate JSON format with the following items
22
22
  "kernel", "initram", "append" and "extra". The kexec command is composed in
23
23
  the following way:
24
24
 
25
- kexec --force --reset-vga --append=$append --initrd=$initram $extra $kernel
25
+ kexec --force --debug --append=$append --initrd=$initram $extra $kernel
26
26
 
27
27
  Please read kexec(8) man page for more information about semantics.
28
+ Extra options like --reset-vga can be set via "extra" array.
28
29
  -%>
29
30
  <%
30
31
  mac = @host.facts['discovery_bootif']
@@ -33,7 +33,7 @@ OptionParser.new do |opts|
33
33
  version = v
34
34
  end
35
35
 
36
- opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,subnet,ip,mac (can be used multiple times, default: eth0,122,7,AA:BB:CC:DD:EE:FF") do |v|
36
+ opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,network/prefix,mac,ip (can be used multiple times, default: eth0,192.168.122.0/24") do |v|
37
37
  interfaces << v
38
38
  end
39
39
 
@@ -66,7 +66,7 @@ OptionParser.new do |opts|
66
66
  end
67
67
  end.parse!
68
68
 
69
- interfaces << ["eth0", "122"] if interfaces.empty?
69
+ interfaces << ["eth0", "192.168.122.0/24"] if interfaces.empty?
70
70
  primary ||= interfaces.first.first
71
71
  bootif ||= interfaces.first.first
72
72
  json = JSON.parse(File.read(base))
@@ -76,15 +76,21 @@ json["discovery_version"] = version
76
76
  unless preserve_interfaces
77
77
  json["interfaces"] = interfaces.map{|i| i.first}.join(',')
78
78
  interfaces.each do |iface|
79
- name, subnet, ipo, mac = iface
79
+ name, subnet, mac, explicit_ip = iface
80
80
  mac ||= (["52"] + 5.times.map { '%02x' % rand(0..255) }).join(':')
81
- ipo ||= rand(1..253)
82
- ip = "192.168.#{subnet}.#{ipo}"
83
81
  json["macaddress_#{name}"] = mac
84
- json["ipaddress_#{name}"] = ip
82
+ subnet_woprefix, prefix = subnet.split('/')
83
+ if subnet.include?('.')
84
+ random_ip = IPAddr.new(subnet, Socket::AF_INET) | IPAddr.new(rand(2**prefix.to_i), Socket::AF_INET)
85
+ fact_name = "ipaddress"
86
+ else
87
+ random_ip = IPAddr.new(subnet, Socket::AF_INET6) | IPAddr.new(rand(2**prefix.to_i), Socket::AF_INET6)
88
+ fact_name = "ipaddress6"
89
+ end
90
+ json["#{fact_name}_#{name}"] = explicit_ip ? explicit_ip : random_ip
85
91
  if name == primary
86
- json["macaddress"] = mac
87
- json["ipaddress"] = ip
92
+ json["macaddress"] = json["macaddress_#{name}"]
93
+ json[fact_name] = json["#{fact_name}_#{name}"]
88
94
  end
89
95
  json["discovery_bootif"] = mac if name == bootif
90
96
  end
@@ -43,7 +43,7 @@ module ForemanDiscovery
43
43
 
44
44
  initializer 'foreman_discovery.register_plugin', :before => :finisher_hook do |app|
45
45
  Foreman::Plugin.register :foreman_discovery do
46
- requires_foreman '>= 1.24.0'
46
+ requires_foreman '>= 2.2'
47
47
 
48
48
  # discovered hosts permissions
49
49
  security_block :discovery do
@@ -1,3 +1,3 @@
1
1
  module ForemanDiscovery
2
- VERSION = "16.1.2"
2
+ VERSION = "16.2.0"
3
3
  end
@@ -7,7 +7,7 @@
7
7
  # Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
8
8
  msgid ""
9
9
  msgstr ""
10
- "Project-Id-Version: foreman_discovery 16.0.1\n"
10
+ "Project-Id-Version: foreman_discovery 16.1.0\n"
11
11
  "Report-Msgid-Bugs-To: \n"
12
12
  "PO-Revision-Date: 2020-05-26 17:21+0000\n"
13
13
  "Last-Translator: Transifex Bot <>\n"
@@ -697,6 +697,9 @@ msgstr ""
697
697
  msgid "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
698
698
  msgstr ""
699
699
 
700
+ msgid "Unable to perform %{action} on %{ips}"
701
+ msgstr ""
702
+
700
703
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
701
704
  msgstr ""
702
705
 
@@ -14,7 +14,7 @@
14
14
  # stbenjam <stephen@redhat.com>, 2016
15
15
  msgid ""
16
16
  msgstr ""
17
- "Project-Id-Version: foreman_discovery 16.0.1\n"
17
+ "Project-Id-Version: foreman_discovery 16.1.0\n"
18
18
  "Report-Msgid-Bugs-To: \n"
19
19
  "PO-Revision-Date: 2020-05-26 17:21+0000\n"
20
20
  "Last-Translator: Transifex Bot <>\n"
@@ -703,6 +703,9 @@ msgstr "Keine Entdeckungsregel gefunden, kein Host bereitgestellt (Berechtigunge
703
703
  msgid "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
704
704
  msgstr ""
705
705
 
706
+ msgid "Unable to perform %{action} on %{ips}"
707
+ msgstr ""
708
+
706
709
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
707
710
  msgstr ""
708
711
 
@@ -2,7 +2,7 @@
2
2
  # This file is distributed under the same license as the foreman_discovery package.
3
3
  msgid ""
4
4
  msgstr ""
5
- "Project-Id-Version: foreman_discovery 16.0.1\n"
5
+ "Project-Id-Version: foreman_discovery 16.1.0\n"
6
6
  "Report-Msgid-Bugs-To: foreman-dev@googlegroups.com\n"
7
7
  "PO-Revision-Date: 2015-12-27 01:18+0000\n"
8
8
  "Last-Translator: \n"
@@ -690,6 +690,9 @@ msgstr ""
690
690
  msgid "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
691
691
  msgstr ""
692
692
 
693
+ msgid "Unable to perform %{action} on %{ips}"
694
+ msgstr ""
695
+
693
696
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
694
697
  msgstr ""
695
698
 
@@ -10,7 +10,7 @@
10
10
  # Lukáš Zapletal, 2015
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: foreman_discovery 16.0.1\n"
13
+ "Project-Id-Version: foreman_discovery 16.1.0\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2020-05-26 17:21+0000\n"
16
16
  "Last-Translator: Transifex Bot <>\n"
@@ -700,6 +700,9 @@ msgstr "Unable to find a discovery rule, no host provided (check permissions)"
700
700
  msgid "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
701
701
  msgstr "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
702
702
 
703
+ msgid "Unable to perform %{action} on %{ips}"
704
+ msgstr ""
705
+
703
706
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
704
707
  msgstr ""
705
708
 
@@ -9,7 +9,7 @@
9
9
  # Sergio Ocón-Cárdenas <sergio.ocon@redhat.com>, 2014
10
10
  msgid ""
11
11
  msgstr ""
12
- "Project-Id-Version: foreman_discovery 16.0.1\n"
12
+ "Project-Id-Version: foreman_discovery 16.1.0\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
14
  "PO-Revision-Date: 2020-05-26 17:21+0000\n"
15
15
  "Last-Translator: Transifex Bot <>\n"
@@ -699,6 +699,9 @@ msgstr "No es posible buscar una regla de detección, no se ha aprovisionado un
699
699
  msgid "Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}"
700
700
  msgstr "No se puede encontrar la NIC principal con %{mac} especificada mediante '%{fact}', filtro de NIC: %{filter}"
701
701
 
702
+ msgid "Unable to perform %{action} on %{ips}"
703
+ msgstr ""
704
+
702
705
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
703
706
  msgstr ""
704
707
 
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_discovery 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-05-27 14:11+0200\n"
12
- "PO-Revision-Date: 2020-05-27 14:11+0200\n"
11
+ "POT-Creation-Date: 2020-09-16 15:41+0200\n"
12
+ "PO-Revision-Date: 2020-09-16 15:41+0200\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -273,43 +273,43 @@ msgstr ""
273
273
  msgid "Discovered hosts are provisioning now"
274
274
  msgstr ""
275
275
 
276
- #: ../app/controllers/discovered_hosts_controller.rb:224
276
+ #: ../app/controllers/discovered_hosts_controller.rb:226
277
277
  msgid "Highlights"
278
278
  msgstr ""
279
279
 
280
- #: ../app/controllers/discovered_hosts_controller.rb:224
280
+ #: ../app/controllers/discovered_hosts_controller.rb:226
281
281
  msgid "Storage"
282
282
  msgstr ""
283
283
 
284
- #: ../app/controllers/discovered_hosts_controller.rb:224
284
+ #: ../app/controllers/discovered_hosts_controller.rb:226
285
285
  msgid "Hardware"
286
286
  msgstr ""
287
287
 
288
- #: ../app/controllers/discovered_hosts_controller.rb:224
288
+ #: ../app/controllers/discovered_hosts_controller.rb:226
289
289
  msgid "Network"
290
290
  msgstr ""
291
291
 
292
- #: ../app/controllers/discovered_hosts_controller.rb:224
292
+ #: ../app/controllers/discovered_hosts_controller.rb:226
293
293
  msgid "Software"
294
294
  msgstr ""
295
295
 
296
- #: ../app/controllers/discovered_hosts_controller.rb:224
296
+ #: ../app/controllers/discovered_hosts_controller.rb:226
297
297
  msgid "IPMI"
298
298
  msgstr ""
299
299
 
300
- #: ../app/controllers/discovered_hosts_controller.rb:224
300
+ #: ../app/controllers/discovered_hosts_controller.rb:226
301
301
  msgid "Miscellaneous"
302
302
  msgstr ""
303
303
 
304
- #: ../app/controllers/discovered_hosts_controller.rb:302
304
+ #: ../app/controllers/discovered_hosts_controller.rb:304
305
305
  msgid "No hosts were found with that id or name"
306
306
  msgstr ""
307
307
 
308
- #: ../app/controllers/discovered_hosts_controller.rb:306
308
+ #: ../app/controllers/discovered_hosts_controller.rb:308
309
309
  msgid "No hosts selected"
310
310
  msgstr ""
311
311
 
312
- #: ../app/controllers/discovered_hosts_controller.rb:312
312
+ #: ../app/controllers/discovered_hosts_controller.rb:314
313
313
  msgid "Something went wrong while selecting hosts - %s"
314
314
  msgstr ""
315
315
 
@@ -338,7 +338,7 @@ msgstr ""
338
338
 
339
339
  #: ../app/helpers/discovered_hosts_helper.rb:16
340
340
  #: ../app/helpers/discovered_hosts_helper.rb:30
341
- #: ../app/models/setting/discovered.rb:22
341
+ #: ../app/models/setting/discovered.rb:24
342
342
  #: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:39
343
343
  msgid "Reboot"
344
344
  msgstr ""
@@ -471,39 +471,43 @@ msgstr ""
471
471
  msgid "MAC-based name"
472
472
  msgstr ""
473
473
 
474
- #: ../app/models/host/discovered.rb:51
474
+ #: ../app/models/host/discovered.rb:55
475
475
  msgid "Invalid facts, must be a Hash"
476
476
  msgstr ""
477
477
 
478
- #: ../app/models/host/discovered.rb:56
478
+ #: ../app/models/host/discovered.rb:60
479
479
  msgid ""
480
480
  "Expected discovery_fact '%s' is missing, unable to detect primary interface an"
481
481
  "d set hostname"
482
482
  msgstr ""
483
483
 
484
- #: ../app/models/host/discovered.rb:69
484
+ #: ../app/models/host/discovered.rb:73
485
485
  msgid ""
486
486
  "Invalid facts: hash does not contain a valid value for any of the facts in the"
487
487
  " discovery_hostname setting: %s"
488
488
  msgstr ""
489
489
 
490
- #: ../app/models/host/discovered.rb:95
490
+ #: ../app/models/host/discovered.rb:100
491
491
  msgid "Facts could not be imported"
492
492
  msgstr ""
493
493
 
494
- #: ../app/models/host/discovered.rb:150
494
+ #: ../app/models/host/discovered.rb:146
495
495
  msgid "Could not get facts from proxy %{url}: %{error}"
496
496
  msgstr ""
497
497
 
498
- #: ../app/models/host/discovered.rb:162
498
+ #: ../app/models/host/discovered.rb:160
499
499
  msgid "Unable to perform reboot on %{name} (%{url}): %{msg}"
500
500
  msgstr ""
501
501
 
502
- #: ../app/models/host/discovered.rb:181
502
+ #: ../app/models/host/discovered.rb:164 ../app/models/host/discovered.rb:183
503
+ msgid "Unable to perform %{action} on %{ips}"
504
+ msgstr ""
505
+
506
+ #: ../app/models/host/discovered.rb:179
503
507
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
504
508
  msgstr ""
505
509
 
506
- #: ../app/models/host/discovered.rb:207
510
+ #: ../app/models/host/discovered.rb:203
507
511
  msgid "Invalid hostname: Could not normalize the hostname"
508
512
  msgstr ""
509
513
 
@@ -531,191 +535,191 @@ msgstr ""
531
535
  msgid "Rebuild DNS for %s"
532
536
  msgstr ""
533
537
 
534
- #: ../app/models/setting/discovered.rb:15
538
+ #: ../app/models/setting/discovered.rb:17
535
539
  msgid "The default location to place discovered hosts in"
536
540
  msgstr ""
537
541
 
538
- #: ../app/models/setting/discovered.rb:15
542
+ #: ../app/models/setting/discovered.rb:17
539
543
  msgid "Discovery location"
540
544
  msgstr ""
541
545
 
542
- #: ../app/models/setting/discovered.rb:16
546
+ #: ../app/models/setting/discovered.rb:18
543
547
  msgid "The default organization to place discovered hosts in"
544
548
  msgstr ""
545
549
 
546
- #: ../app/models/setting/discovered.rb:16
550
+ #: ../app/models/setting/discovered.rb:18
547
551
  msgid "Discovery organization"
548
552
  msgstr ""
549
553
 
550
- #: ../app/models/setting/discovered.rb:17
554
+ #: ../app/models/setting/discovered.rb:19
551
555
  msgid "Fact name to use for primary interface detection"
552
556
  msgstr ""
553
557
 
554
- #: ../app/models/setting/discovered.rb:17
558
+ #: ../app/models/setting/discovered.rb:19
555
559
  msgid "Interface fact"
556
560
  msgstr ""
557
561
 
558
- #: ../app/models/setting/discovered.rb:18
562
+ #: ../app/models/setting/discovered.rb:20
559
563
  msgid ""
560
564
  "Automatic bond interface (if another interface is detected on the same VLAN vi"
561
565
  "a LLDP)"
562
566
  msgstr ""
563
567
 
564
- #: ../app/models/setting/discovered.rb:18
568
+ #: ../app/models/setting/discovered.rb:20
565
569
  msgid "Create bond interfaces"
566
570
  msgstr ""
567
571
 
568
- #: ../app/models/setting/discovered.rb:19
572
+ #: ../app/models/setting/discovered.rb:21
569
573
  msgid "Clean all reported facts during provisioning (except discovery facts)"
570
574
  msgstr ""
571
575
 
572
- #: ../app/models/setting/discovered.rb:19
576
+ #: ../app/models/setting/discovered.rb:21
573
577
  msgid "Clean all facts"
574
578
  msgstr ""
575
579
 
576
- #: ../app/models/setting/discovered.rb:20
580
+ #: ../app/models/setting/discovered.rb:22
577
581
  msgid "List of facts to use for the hostname (separated by comma, first wins)"
578
582
  msgstr ""
579
583
 
580
- #: ../app/models/setting/discovered.rb:20
584
+ #: ../app/models/setting/discovered.rb:22
581
585
  msgid "Hostname facts"
582
586
  msgstr ""
583
587
 
584
- #: ../app/models/setting/discovered.rb:21
588
+ #: ../app/models/setting/discovered.rb:23
585
589
  msgid ""
586
590
  "Automatically provision newly discovered hosts, according to the provisioning "
587
591
  "rules"
588
592
  msgstr ""
589
593
 
590
- #: ../app/models/setting/discovered.rb:21
594
+ #: ../app/models/setting/discovered.rb:23
591
595
  msgid "Auto provisioning"
592
596
  msgstr ""
593
597
 
594
- #: ../app/models/setting/discovered.rb:22
598
+ #: ../app/models/setting/discovered.rb:24
595
599
  msgid "Automatically reboot or kexec discovered host during provisioning"
596
600
  msgstr ""
597
601
 
598
- #: ../app/models/setting/discovered.rb:23
602
+ #: ../app/models/setting/discovered.rb:25
599
603
  msgid "The default prefix to use for the host name, must start with a letter"
600
604
  msgstr ""
601
605
 
602
- #: ../app/models/setting/discovered.rb:23
606
+ #: ../app/models/setting/discovered.rb:25
603
607
  msgid "Hostname prefix"
604
608
  msgstr ""
605
609
 
606
- #: ../app/models/setting/discovered.rb:24
610
+ #: ../app/models/setting/discovered.rb:26
607
611
  msgid "Extra facter columns to show in host lists (separate by comma)"
608
612
  msgstr ""
609
613
 
610
- #: ../app/models/setting/discovered.rb:24
614
+ #: ../app/models/setting/discovered.rb:26
611
615
  msgid "Fact columns"
612
616
  msgstr ""
613
617
 
614
- #: ../app/models/setting/discovered.rb:25
618
+ #: ../app/models/setting/discovered.rb:27
615
619
  msgid "Regex to organize facts for highlights section - e.g. ^(abc|cde)$"
616
620
  msgstr ""
617
621
 
618
- #: ../app/models/setting/discovered.rb:25
622
+ #: ../app/models/setting/discovered.rb:27
619
623
  msgid "Highlighted facts"
620
624
  msgstr ""
621
625
 
622
- #: ../app/models/setting/discovered.rb:26
626
+ #: ../app/models/setting/discovered.rb:28
623
627
  msgid "Regex to organize facts for storage section"
624
628
  msgstr ""
625
629
 
626
- #: ../app/models/setting/discovered.rb:26
630
+ #: ../app/models/setting/discovered.rb:28
627
631
  msgid "Storage facts"
628
632
  msgstr ""
629
633
 
630
- #: ../app/models/setting/discovered.rb:27
634
+ #: ../app/models/setting/discovered.rb:29
631
635
  msgid "Regex to organize facts for software section"
632
636
  msgstr ""
633
637
 
634
- #: ../app/models/setting/discovered.rb:27
638
+ #: ../app/models/setting/discovered.rb:29
635
639
  msgid "Software facts"
636
640
  msgstr ""
637
641
 
638
- #: ../app/models/setting/discovered.rb:28
642
+ #: ../app/models/setting/discovered.rb:30
639
643
  msgid "Regex to organize facts for hardware section"
640
644
  msgstr ""
641
645
 
642
- #: ../app/models/setting/discovered.rb:28
646
+ #: ../app/models/setting/discovered.rb:30
643
647
  msgid "Hardware facts"
644
648
  msgstr ""
645
649
 
646
- #: ../app/models/setting/discovered.rb:29
650
+ #: ../app/models/setting/discovered.rb:31
647
651
  msgid "Regex to organize facts for network section"
648
652
  msgstr ""
649
653
 
650
- #: ../app/models/setting/discovered.rb:29
654
+ #: ../app/models/setting/discovered.rb:31
651
655
  msgid "Network facts"
652
656
  msgstr ""
653
657
 
654
- #: ../app/models/setting/discovered.rb:30
658
+ #: ../app/models/setting/discovered.rb:32
655
659
  msgid "Regex to organize facts for ipmi section"
656
660
  msgstr ""
657
661
 
658
- #: ../app/models/setting/discovered.rb:30
662
+ #: ../app/models/setting/discovered.rb:32
659
663
  msgid "IPMI facts"
660
664
  msgstr ""
661
665
 
662
- #: ../app/models/setting/discovered.rb:31
666
+ #: ../app/models/setting/discovered.rb:33
663
667
  msgid ""
664
668
  "Automatically generate PXE configuration to pin a newly discovered host to dis"
665
669
  "covery"
666
670
  msgstr ""
667
671
 
668
- #: ../app/models/setting/discovered.rb:31
672
+ #: ../app/models/setting/discovered.rb:33
669
673
  msgid "Lock PXE"
670
674
  msgstr ""
671
675
 
672
- #: ../app/models/setting/discovered.rb:32
676
+ #: ../app/models/setting/discovered.rb:34
673
677
  msgid "PXELinux template to be used when pinning a host to discovery"
674
678
  msgstr ""
675
679
 
676
- #: ../app/models/setting/discovered.rb:32
680
+ #: ../app/models/setting/discovered.rb:34
677
681
  msgid "Locked PXELinux template name"
678
682
  msgstr ""
679
683
 
680
- #: ../app/models/setting/discovered.rb:33
684
+ #: ../app/models/setting/discovered.rb:35
681
685
  msgid "PXEGrub template to be used when pinning a host to discovery"
682
686
  msgstr ""
683
687
 
684
- #: ../app/models/setting/discovered.rb:33
688
+ #: ../app/models/setting/discovered.rb:35
685
689
  msgid "Locked PXEGrub template name"
686
690
  msgstr ""
687
691
 
688
- #: ../app/models/setting/discovered.rb:34
692
+ #: ../app/models/setting/discovered.rb:36
689
693
  msgid "PXEGrub2 template to be used when pinning a host to discovery"
690
694
  msgstr ""
691
695
 
692
- #: ../app/models/setting/discovered.rb:34
696
+ #: ../app/models/setting/discovered.rb:36
693
697
  msgid "Locked PXEGrub2 template name"
694
698
  msgstr ""
695
699
 
696
- #: ../app/models/setting/discovered.rb:35
700
+ #: ../app/models/setting/discovered.rb:37
697
701
  msgid "Force DNS entries creation when provisioning discovered host"
698
702
  msgstr ""
699
703
 
700
- #: ../app/models/setting/discovered.rb:35
704
+ #: ../app/models/setting/discovered.rb:37
701
705
  msgid "Force DNS"
702
706
  msgstr ""
703
707
 
704
- #: ../app/models/setting/discovered.rb:36
708
+ #: ../app/models/setting/discovered.rb:38
705
709
  msgid ""
706
710
  "Do not allow to discover existing managed host matching MAC of a provisioning "
707
711
  "NIC (errors out early)"
708
712
  msgstr ""
709
713
 
710
- #: ../app/models/setting/discovered.rb:36
714
+ #: ../app/models/setting/discovered.rb:38
711
715
  msgid "Error on existing NIC"
712
716
  msgstr ""
713
717
 
714
- #: ../app/models/setting/discovered.rb:37
718
+ #: ../app/models/setting/discovered.rb:39
715
719
  msgid "Discovery hostname naming pattern"
716
720
  msgstr ""
717
721
 
718
- #: ../app/models/setting/discovered.rb:37
722
+ #: ../app/models/setting/discovered.rb:39
719
723
  msgid "Type of name generator"
720
724
  msgstr ""
721
725
 
@@ -733,15 +737,15 @@ msgid ""
733
737
  "filter}"
734
738
  msgstr ""
735
739
 
736
- #: ../app/services/foreman_discovery/host_converter.rb:39
740
+ #: ../app/services/foreman_discovery/host_converter.rb:47
737
741
  msgid "IPAM must be configured for subnet '%s'"
738
742
  msgstr ""
739
743
 
740
- #: ../app/services/foreman_discovery/node_api/node_resource.rb:75
744
+ #: ../app/services/foreman_discovery/node_api/node_resource.rb:76
741
745
  msgid "Image API returned HTTP/%{code} with '%{body}"
742
746
  msgstr ""
743
747
 
744
- #: ../app/services/foreman_discovery/node_api/node_resource.rb:78
748
+ #: ../app/services/foreman_discovery/node_api/node_resource.rb:79
745
749
  msgid "Image API processing error: %{msg} (HTTP/%{code}, body: %{body})"
746
750
  msgstr ""
747
751
 
@@ -781,11 +785,11 @@ msgstr ""
781
785
  msgid "Memory"
782
786
  msgstr ""
783
787
 
784
- #: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:25
788
+ #: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:23
785
789
  msgid "Customize Host"
786
790
  msgstr ""
787
791
 
788
- #: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:26
792
+ #: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:24
789
793
  msgid "Create Host"
790
794
  msgstr ""
791
795
 
@@ -1101,11 +1105,11 @@ msgid "Remote action:"
1101
1105
  msgstr ""
1102
1106
 
1103
1107
  #: action_names.rb:3
1104
- msgid "Import facts"
1108
+ msgid "Import Puppet classes"
1105
1109
  msgstr ""
1106
1110
 
1107
1111
  #: action_names.rb:4
1108
- msgid "Import Puppet classes"
1112
+ msgid "Import facts"
1109
1113
  msgstr ""
1110
1114
 
1111
1115
  #: action_names.rb:5