foreman_discovery 16.1.0 → 16.2.0

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