foreman_discovery 16.1.2 → 16.2.0

Sign up to get free protection for your applications and to get access to all the features.
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