foreman_discovery 16.1.0 → 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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/discovered_hosts_controller.rb +5 -3
  3. data/app/models/host/discovered.rb +22 -26
  4. data/app/models/host/managed_extensions.rb +2 -2
  5. data/app/models/setting/discovered.rb +3 -1
  6. data/app/services/foreman_discovery/host_converter.rb +14 -6
  7. data/app/services/foreman_discovery/host_fact_importer.rb +10 -0
  8. data/app/services/foreman_discovery/node_api/node_resource.rb +1 -0
  9. data/app/views/discovered_hosts/_discovered_host_modal.html.erb +0 -2
  10. data/app/views/foreman_discovery/debian_kexec.erb +2 -1
  11. data/app/views/foreman_discovery/redhat_kexec.erb +2 -1
  12. data/extra/discover-host +14 -8
  13. data/lib/foreman_discovery/engine.rb +1 -1
  14. data/lib/foreman_discovery/version.rb +1 -1
  15. data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
  16. data/locale/ca/foreman_discovery.edit.po +146 -216
  17. data/locale/ca/foreman_discovery.po +4 -1
  18. data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
  19. data/locale/de/foreman_discovery.edit.po +144 -215
  20. data/locale/de/foreman_discovery.po +4 -1
  21. data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
  22. data/locale/en/foreman_discovery.edit.po +76 -72
  23. data/locale/en/foreman_discovery.po +4 -1
  24. data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
  25. data/locale/en_GB/foreman_discovery.edit.po +146 -216
  26. data/locale/en_GB/foreman_discovery.po +4 -1
  27. data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
  28. data/locale/es/foreman_discovery.edit.po +146 -216
  29. data/locale/es/foreman_discovery.po +4 -1
  30. data/locale/foreman_discovery.pot +77 -73
  31. data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
  32. data/locale/fr/foreman_discovery.edit.po +144 -215
  33. data/locale/fr/foreman_discovery.po +4 -1
  34. data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
  35. data/locale/gl/foreman_discovery.edit.po +146 -216
  36. data/locale/gl/foreman_discovery.po +4 -1
  37. data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
  38. data/locale/it/foreman_discovery.edit.po +146 -216
  39. data/locale/it/foreman_discovery.po +4 -1
  40. data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
  41. data/locale/ja/foreman_discovery.edit.po +149 -216
  42. data/locale/ja/foreman_discovery.po +4 -1
  43. data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
  44. data/locale/ko/foreman_discovery.edit.po +147 -215
  45. data/locale/ko/foreman_discovery.po +4 -1
  46. data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
  47. data/locale/pt_BR/foreman_discovery.edit.po +146 -216
  48. data/locale/pt_BR/foreman_discovery.po +4 -1
  49. data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
  50. data/locale/ru/foreman_discovery.edit.po +149 -219
  51. data/locale/ru/foreman_discovery.po +4 -1
  52. data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
  53. data/locale/sv_SE/foreman_discovery.edit.po +146 -216
  54. data/locale/sv_SE/foreman_discovery.po +4 -1
  55. data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
  56. data/locale/zh_CN/foreman_discovery.edit.po +149 -216
  57. data/locale/zh_CN/foreman_discovery.po +4 -1
  58. data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
  59. data/locale/zh_TW/foreman_discovery.edit.po +149 -216
  60. data/locale/zh_TW/foreman_discovery.po +4 -1
  61. data/test/facts/only-ipv6.json +205 -0
  62. data/test/facts/skylake-ipv6.json +223 -0
  63. data/test/functional/api/v2/settings_controller_test.rb +2 -2
  64. data/test/functional/discovered_hosts_controller_test.rb +17 -8
  65. data/test/unit/discovered_extensions_test.rb +1 -0
  66. data/test/unit/host_discovered_test.rb +0 -16
  67. data/test/unit/managed_extensions_test.rb +1 -0
  68. metadata +33 -28
@@ -8,7 +8,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
8
8
  setup do
9
9
  assert discovered_notification_blueprint
10
10
  @request.env['HTTP_REFERER'] = '/discovery_rules'
11
- FactoryBot.create(:subnet, :network => "192.168.100.1", :mask => "255.255.255.0", :locations => [location_one], :organizations => [organization_one])
11
+ FactoryBot.create(:subnet, :dhcp, :network => "192.168.100.1", :mask => "255.255.255.0", :locations => [location_one], :organizations => [organization_one])
12
12
  @facts = {
13
13
  "interfaces" => "lo,eth0",
14
14
  "ipaddress" => "192.168.100.42",
@@ -115,7 +115,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
115
115
  } }, session: set_session_user_default_manager
116
116
  # all inherit buttons are pressed
117
117
  assert_select('button[name=is_overridden_btn]') do |e|
118
- e.attribute("class") =~ /active/
118
+ e.attribute("class").to_s =~ /active/
119
119
  end
120
120
  # particular fields are set
121
121
  assert_select '#host_hostgroup_id [selected]' do |e|
@@ -140,6 +140,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
140
140
 
141
141
  def test_update_inheritance
142
142
  host = discover_host_from_facts(@facts)
143
+ ForemanDiscovery::HostConverter.stubs(:unused_ip_for_subnet).returns(host.ip)
143
144
  hostgroup = setup_hostgroup(host)
144
145
  put :update, params: {
145
146
  commit: 'Update',
@@ -183,10 +184,10 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
183
184
  def test_reboot_failure
184
185
  @request.env["HTTP_REFERER"] = discovered_hosts_url
185
186
  host = discover_host_from_facts(@facts)
186
- ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).twice.returns(false)
187
+ ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).returns(false)
187
188
  post :reboot, params: { :id => host.id }, session: set_session_user_default_manager
188
189
  assert_redirected_to discovered_hosts_url
189
- assert_equal "Failed to reboot host #{host.name}", flash[:error]
190
+ assert_match(/ERF42-4036/, flash[:error])
190
191
  end
191
192
 
192
193
  def test_reboot_error
@@ -195,7 +196,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
195
196
  ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).raises("request failed")
196
197
  post :reboot, params: { :id => host.id }, session: set_session_user_default_manager
197
198
  assert_redirected_to discovered_hosts_url
198
- assert_match(/ERF50-9494/, flash[:error])
199
+ assert_match(/ERF42-4036/, flash[:error])
199
200
  end
200
201
 
201
202
  def test_auto_provision_success
@@ -271,10 +272,10 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
271
272
  def test_multiple_reboot_failure
272
273
  @request.env["HTTP_REFERER"] = discovered_hosts_url
273
274
  host = discover_host_from_facts(@facts)
274
- ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).twice.returns(false)
275
+ ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).returns(false)
275
276
  post :submit_multiple_reboot, params: {:host_ids => host.id}, session: set_session_user(User.current)
276
277
  assert_redirected_to discovered_hosts_url
277
- assert_equal "Errors during reboot: #{host.name}: failed to reboot", flash[:error]
278
+ assert_match(/ERF42-4036/, flash[:error])
278
279
  assert_nil flash[:success]
279
280
  end
280
281
 
@@ -284,12 +285,15 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
284
285
  ::ForemanDiscovery::NodeAPI::PowerService.any_instance.expects(:reboot).raises("request failed")
285
286
  post :submit_multiple_reboot, params: {:host_ids => host.id}, session: set_session_user(User.current)
286
287
  assert_redirected_to discovered_hosts_url
287
- assert_match(/ERF50-9494/, flash[:error])
288
+ assert_match(/ERF42-4036/, flash[:error])
288
289
  assert_nil flash[:success]
289
290
  end
290
291
 
291
292
  def test_no_dns_rebuild_if_dns_pending
292
293
  host = discover_host_from_facts(@facts)
294
+ ForemanDiscovery::HostConverter.stubs(:unused_ip_for_subnet).returns(host.ip)
295
+ Nic::Managed.any_instance.stubs(:dhcp_update_required?).returns(false)
296
+ Net::DHCP::Record.any_instance.stubs(:conflicting?).returns(false)
293
297
  hostgroup = prepare_hostgroup_for_dns_rebuild(host)
294
298
  Nic::Managed.any_instance.expects(:rebuild_dns).never
295
299
  Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
@@ -306,6 +310,9 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
306
310
 
307
311
  def test_dns_rebuild
308
312
  host = prepare_host_for_dns_rebuild
313
+ ForemanDiscovery::HostConverter.stubs(:unused_ip_for_subnet).returns(host.ip)
314
+ Nic::Managed.any_instance.stubs(:dhcp_update_required?).returns(false)
315
+ Net::DHCP::Record.any_instance.stubs(:conflicting?).returns(false)
309
316
  hostgroup = prepare_hostgroup_for_dns_rebuild(host)
310
317
  Nic::Managed.any_instance.expects(:rebuild_dns)
311
318
  Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
@@ -319,6 +326,8 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
319
326
 
320
327
  def test_dns_rebuild_with_auto_provision
321
328
  host = prepare_host_for_dns_rebuild
329
+ ForemanDiscovery::HostConverter.stubs(:unused_ip_for_subnet).returns(host.ip)
330
+ Nic::Managed.any_instance.stubs(:dhcp_update_required?).returns(false)
322
331
  hostgroup = prepare_hostgroup_for_dns_rebuild(host)
323
332
  Nic::Managed.any_instance.expects(:rebuild_dns)
324
333
  Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
@@ -9,6 +9,7 @@ class DiscoveredExtensionsTest < ActiveSupport::TestCase
9
9
  @facts = facts_simple_network100_42
10
10
  @facts_ipv6 = facts_network_2001_db8
11
11
  set_default_settings
12
+ ProxyAPI::DHCP.any_instance.stubs(:record).returns(nil)
12
13
  ::ForemanDiscovery::HostConverter.stubs(:unused_ip_for_host)
13
14
  end
14
15
 
@@ -260,12 +260,6 @@ class HostDiscoveredTest < ActiveSupport::TestCase
260
260
  assert_equal 'teste41f13cc3658', host.name
261
261
  end
262
262
 
263
- test "should create discovered host without prefix" do
264
- Setting[:discovery_prefix] = ''
265
- host = discover_host_from_facts(@facts)
266
- assert_equal 'e41f13cc3658',host.name
267
- end
268
-
269
263
  test "should refresh facts and NICs of an existing discovered host" do
270
264
  host1 = discover_host_from_facts(@facts)
271
265
  assert_equal 'mace41f13cc3658', host1.name
@@ -290,16 +284,6 @@ class HostDiscoveredTest < ActiveSupport::TestCase
290
284
  assert_match(/Invalid facts: hash does not contain a valid value for any of the facts in the discovery_hostname setting:/, exception.message)
291
285
  end
292
286
 
293
- test "should raise when hostname cannot be computed due to normlization and no prefix" do
294
- @facts['invalidhostnamefact'] = '...'
295
- Setting[:discovery_hostname] = 'invalidhostnamefact'
296
- Setting[:discovery_prefix] = ''
297
- exception = assert_raises(::Foreman::Exception) do
298
- discover_host_from_facts(@facts)
299
- end
300
- assert_match(/Invalid hostname: Could not normalize the hostname/, exception.message)
301
- end
302
-
303
287
  test 'discovered host can be searched in multiple taxonomies' do
304
288
  org1 = FactoryBot.create(:organization)
305
289
  org2 = FactoryBot.create(:organization)
@@ -18,6 +18,7 @@ class ManagedExtensionsTest < ActiveSupport::TestCase
18
18
 
19
19
  @host = StubHost.new
20
20
  @host.type = "Host::Discovered"
21
+ @host.stubs(:ip).returns("192.168.1.1")
21
22
  @host.stubs(:old).returns(@host)
22
23
  @facts = {}
23
24
  @host.stubs(:facts).returns(@facts)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_discovery
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.1.0
4
+ version: 16.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditi Puntambekar
@@ -71,7 +71,7 @@ authors:
71
71
  autorequire:
72
72
  bindir: bin
73
73
  cert_chain: []
74
- date: 2020-05-27 00:00:00.000000000 Z
74
+ date: 2020-09-16 00:00:00.000000000 Z
75
75
  dependencies: []
76
76
  description: MaaS Discovery Plugin engine for Foreman
77
77
  email: gsutclif@redhat.com
@@ -106,6 +106,7 @@ files:
106
106
  - app/models/setting/discovered.rb
107
107
  - app/services/foreman_discovery/fact_parser.rb
108
108
  - app/services/foreman_discovery/host_converter.rb
109
+ - app/services/foreman_discovery/host_fact_importer.rb
109
110
  - app/services/foreman_discovery/import_hook.rb
110
111
  - app/services/foreman_discovery/import_hook_service.rb
111
112
  - app/services/foreman_discovery/import_hooks/discovery_attribute.rb
@@ -244,12 +245,14 @@ files:
244
245
  - test/facts/dell_vlan.json
245
246
  - test/facts/facts_with_lldp.json
246
247
  - test/facts/facts_with_lldp_bond_candidate.json
248
+ - test/facts/only-ipv6.json
247
249
  - test/facts/pxeless-vlan.json
248
250
  - test/facts/regular_host.json
249
251
  - test/facts/rhel-dl380-1kdisks.json
250
252
  - test/facts/rhel-r730.json
251
253
  - test/facts/rhel7-vlan.json
252
254
  - test/facts/simple-bond.json
255
+ - test/facts/skylake-ipv6.json
253
256
  - test/facts/suse-vmware.json
254
257
  - test/facts/vmware_local.json
255
258
  - test/functional/api/v2/discovered_hosts_controller_test.rb
@@ -294,47 +297,49 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
297
  - !ruby/object:Gem::Version
295
298
  version: '0'
296
299
  requirements: []
297
- rubygems_version: 3.0.3
300
+ rubygems_version: 3.1.2
298
301
  signing_key:
299
302
  specification_version: 4
300
303
  summary: MaaS Discovery Plugin for Foreman
301
304
  test_files:
302
- - test/functional/foreman_discovery/concerns/hosts_controller_extensions_test.rb
303
- - test/functional/discovered_hosts_controller_test.rb
304
- - test/functional/api/v2/discovered_hosts_controller_test.rb
305
- - test/functional/api/v2/fact_value_extensions_test.rb
306
- - test/functional/api/v2/settings_controller_test.rb
307
- - test/functional/api/v2/discovery_rules_controller_test.rb
308
- - test/functional/discovery_rules_controller_test.rb
309
- - test/integration/discovered_hosts_test.rb
310
- - test/test_plugin_helper.rb
311
- - test/facts/facts_with_lldp.json
312
- - test/facts/dell_vlan.json
305
+ - test/factories/discovery_host_related.rb
306
+ - test/factories/discovery_rule_related.rb
313
307
  - test/facts/bond0-eth0-eth1-active-passive.json
314
- - test/facts/simple-bond.json
315
- - test/facts/rhel-r730.json
308
+ - test/facts/default.json
316
309
  - test/facts/dell_npars.json
310
+ - test/facts/dell_vlan.json
311
+ - test/facts/facts_with_lldp.json
312
+ - test/facts/facts_with_lldp_bond_candidate.json
317
313
  - test/facts/pxeless-vlan.json
318
314
  - test/facts/regular_host.json
319
- - test/facts/facts_with_lldp_bond_candidate.json
320
- - test/facts/rhel7-vlan.json
321
- - test/facts/default.json
322
315
  - test/facts/rhel-dl380-1kdisks.json
316
+ - test/facts/rhel-r730.json
317
+ - test/facts/rhel7-vlan.json
318
+ - test/facts/simple-bond.json
323
319
  - test/facts/suse-vmware.json
324
320
  - test/facts/vmware_local.json
321
+ - test/facts/only-ipv6.json
322
+ - test/facts/skylake-ipv6.json
323
+ - test/functional/api/v2/discovered_hosts_controller_test.rb
324
+ - test/functional/api/v2/discovery_rules_controller_test.rb
325
+ - test/functional/api/v2/fact_value_extensions_test.rb
326
+ - test/functional/api/v2/settings_controller_test.rb
327
+ - test/functional/discovery_rules_controller_test.rb
328
+ - test/functional/foreman_discovery/concerns/hosts_controller_extensions_test.rb
329
+ - test/functional/discovered_hosts_controller_test.rb
330
+ - test/integration/discovered_hosts_test.rb
331
+ - test/models/setting_test.rb
332
+ - test/test_helper_discovery.rb
333
+ - test/test_plugin_helper.rb
334
+ - test/unit/discovered_mailer_test.rb
335
+ - test/unit/discovery_attribute_set_test.rb
325
336
  - test/unit/discovery_rule_test.rb
326
337
  - test/unit/discovery_taxonomy_extensions_test.rb
327
- - test/unit/discovered_mailer_test.rb
328
338
  - test/unit/fact_parser_test.rb
329
- - test/unit/discovered_extensions_test.rb
330
- - test/unit/setting_discovered_test.rb
331
- - test/unit/host_discovered_test.rb
332
339
  - test/unit/lldp_neighbors_test.rb
340
+ - test/unit/setting_discovered_test.rb
333
341
  - test/unit/ui_notifications/destroy_host_test.rb
334
342
  - test/unit/ui_notifications/new_host_test.rb
335
- - test/unit/discovery_attribute_set_test.rb
343
+ - test/unit/host_discovered_test.rb
344
+ - test/unit/discovered_extensions_test.rb
336
345
  - test/unit/managed_extensions_test.rb
337
- - test/models/setting_test.rb
338
- - test/test_helper_discovery.rb
339
- - test/factories/discovery_rule_related.rb
340
- - test/factories/discovery_host_related.rb