foreman_discovery 21.0.5 → 22.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7592ef5cdb3aad271a4373a96f6ee8b2de79352e680147446cebd8bbd9ae2eaa
4
- data.tar.gz: 253b54da9acc15a1401fabfb2c580791667fcc8c43af0b6bb42c16d08f2eada6
3
+ metadata.gz: 88ecd56a2e51a5e9f79ad75f9b3214dbd639bd7dccef4fad054b02ed930047ea
4
+ data.tar.gz: 6ff4fafc798c38ef7097fcef16b777966ba9154ca1f13af52d62b47c2ef6eea5
5
5
  SHA512:
6
- metadata.gz: 302323e8daf18ad7bdd4f65b9e45c89477bd72ab47f7be2e0a03f0d9f2078c65734451bf84367b444c89ee1a0820565308437d35f1c7388697e136a4089f397f
7
- data.tar.gz: d0751ab0c44157694df0ba32584eef59fc489659e3bfac49a84da40f0c57a21cbfdc14407cc4c275afb5f6de727a48add6d45e963cd65d547f12d6cfcca554e7
6
+ metadata.gz: 7d28310f1bc924f34c60cbe5f0998ad567a61b3ef244503a7247204ef6ffd784e241243bb0b3b4e3f86ff2d619d89961469716966e0e9fa4d851a88010eb19e0
7
+ data.tar.gz: 5194001c735a6edbee4a50fb5fe5eb4e9f18d19a74317c4bd15dae1d32f74a35d49d4136c0acfc9df45e4dc7f12671a15fe60b9bd8efde3aefeca4174ba29bff
@@ -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 '>= 3.2'
46
+ requires_foreman '>= 3.3'
47
47
 
48
48
  # settings
49
49
  settings do
@@ -337,8 +337,6 @@ module ForemanDiscovery
337
337
  # add dashboard widget
338
338
  widget 'discovery_widget', :name=>N_('Discovered Hosts'), :sizex => 6, :sizey =>1
339
339
 
340
- template_labels 'kexec' => N_('Discovery Kexec template')
341
-
342
340
  # apipie API documentation
343
341
  # Only available in 1.8, otherwise it has to be in the initializer below
344
342
  apipie_documented_controllers ["#{ForemanDiscovery::Engine.root}/app/controllers/api/v2/*.rb"]
@@ -1,3 +1,3 @@
1
1
  module ForemanDiscovery
2
- VERSION = "21.0.5"
2
+ VERSION = "22.0.2"
3
3
  end
@@ -303,6 +303,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
303
303
  Host::Managed.any_instance.stubs(:queue_puppetca_create).returns(true)
304
304
  Host::Managed.any_instance.stubs(:queue_puppetca_certname_reset).returns(true)
305
305
  Host::Managed.any_instance.stubs(:queue_puppetca_autosign_destroy).returns(true)
306
+ ProxyAPI::DNS.any_instance.stubs(:set).returns(true)
306
307
  put :update, params: {:commit => "Update", :id => host.id,
307
308
  :host => {
308
309
  :name => 'mytest',
@@ -354,6 +355,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
354
355
  def prepare_hostgroup_for_dns_rebuild(host)
355
356
  hostgroup = setup_hostgroup(host)
356
357
  hostgroup.domain = FactoryBot.create(:domain, :name => 'myorchdomain.net', :dns => FactoryBot.create(:smart_proxy, :features => [FactoryBot.create(:feature, :dns)]))
358
+ hostgroup.save
357
359
  hostgroup
358
360
  end
359
361
  end
@@ -1,6 +1,7 @@
1
1
  <%#
2
2
  kind: kexec
3
3
  name: Discovery Red Hat kexec
4
+ model: ProvisioningTemplate
4
5
  oses:
5
6
  - CentOS 4
6
7
  - CentOS 5
@@ -20,11 +21,14 @@ description: |
20
21
  environments. The template must generate JSON format with the following items
21
22
  "kernel", "initram", "append" and "extra". The kexec command is composed in
22
23
  the following way:
23
-
24
+
24
25
  kexec --force --debug --append=$append --initrd=$initram $extra $kernel
25
-
26
+
26
27
  Please read kexec(8) man page for more information about semantics.
27
28
  Extra options like --reset-vga can be set via "extra" array.
29
+ require:
30
+ - plugin: foreman_discovery
31
+  version: 22.0.0
28
32
  -%>
29
33
  <%
30
34
  mac = @host.facts['discovery_bootif']
@@ -44,13 +48,13 @@ description: |
44
48
  extra << "--kexec-file-syscall" if @host.pxe_loader.include?('SecureBoot')
45
49
  -%>
46
50
  {
47
- "kernel": "<%= @kernel_uri %>",
48
- "initram": "<%= @initrd_uri %>",
51
+ "kernel": "<%= @kernel_uri %>",
52
+ "initram": "<%= @initrd_uri %>",
49
53
  <% if (@host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16) or
50
- (@host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7) -%>
54
+ (@host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7) -%>
51
55
  "append": "inst.ks=<%= foreman_url('provision') + "&static=yes" %> inst.ks.sendmac <%= "ip=#{ip}::#{gw}:#{mask}:::none nameserver=#{dns} ksdevice=bootif BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
52
56
  <% else -%>
53
57
  "append": "inst.ks=<%= foreman_url('provision') + "&static=yes" %> kssendmac nicdelay=5 <%= "ip=#{ip} netmask=#{mask} gateway=#{gw} dns=#{dns} ksdevice=#{mac} BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
54
58
  <% end -%>
55
- "extra": <%= extra %>
56
- }
59
+ "extra": <%= extra %>
60
+ }
@@ -293,22 +293,18 @@ class HostDiscoveredTest < ActiveSupport::TestCase
293
293
  host1 = FactoryBot.create(:host, :type => "Host::Discovered", :organization => org1)
294
294
  host2 = FactoryBot.create(:host, :type => "Host::Discovered", :organization => org2)
295
295
  host3 = FactoryBot.create(:host, :type => "Host::Discovered", :organization => org3)
296
- hosts = nil
297
296
 
298
297
  assert_nil Organization.current
299
- as_user(user_subset) do
300
- hosts = Host::Discovered.all
301
- end
302
- assert_includes hosts, host1
303
- assert_includes hosts, host2
304
- refute_includes hosts, host3
305
298
 
306
- as_user(user_all) do
307
- hosts = Host::Discovered.all
308
- end
309
- assert_includes hosts, host1
310
- assert_includes hosts, host2
311
- assert_includes hosts, host3
299
+ hosts = as_user(user_subset) { Host::Discovered.all }.map(&:name)
300
+ assert_includes hosts, host1.name
301
+ assert_includes hosts, host2.name
302
+ refute_includes hosts, host3.name
303
+
304
+ hosts = as_user(user_all) { Host::Discovered.all }.map(&:name)
305
+ assert_includes hosts, host1.name
306
+ assert_includes hosts, host2.name
307
+ assert_includes hosts, host3.name
312
308
  end
313
309
 
314
310
  test "provisioning a discovered host without saving it doesn't create a token" do
@@ -1,4 +1,5 @@
1
1
  require_relative '../test_plugin_helper'
2
+ require 'test_helper'
2
3
 
3
4
  class ManagedExtensionsTest < ActiveSupport::TestCase
4
5
  class StubHost < ApplicationRecord
@@ -10,7 +11,7 @@ class ManagedExtensionsTest < ActiveSupport::TestCase
10
11
  end
11
12
  end
12
13
 
13
- let(:kexec_template) { FactoryBot.build(:provisioning_template, :template => File.read(File.expand_path(File.join("..", "..", "..", "app", "views", "foreman_discovery", "redhat_kexec.erb"), __FILE__))) }
14
+ let(:kexec_template) { FactoryBot.build(:provisioning_template, :template => File.read(File.expand_path(File.join("..", "..", "static_fixtures", "redhat_kexec.erb"), __FILE__))) }
14
15
 
15
16
  context "stubbed orchestration" do
16
17
  setup do
@@ -12,7 +12,7 @@ const EmptyState = props => {
12
12
  };
13
13
  return (
14
14
  <ForemanEmptyState
15
- header="Foreman Discovery"
15
+ header={__('Foreman Discovery')}
16
16
  description={description}
17
17
  icon="gears"
18
18
  iconType="fa"
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: 21.0.5
4
+ version: 22.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aditi Puntambekar
@@ -76,7 +76,7 @@ authors:
76
76
  autorequire:
77
77
  bindir: bin
78
78
  cert_chain: []
79
- date: 2023-01-16 00:00:00.000000000 Z
79
+ date: 2022-11-03 00:00:00.000000000 Z
80
80
  dependencies: []
81
81
  description: MaaS Discovery Plugin engine for Foreman
82
82
  email: gsutclif@redhat.com
@@ -166,8 +166,6 @@ files:
166
166
  - app/views/discovery_rules/index.html.erb
167
167
  - app/views/discovery_rules/new.html.erb
168
168
  - app/views/discovery_rules/welcome.html.erb
169
- - app/views/foreman_discovery/debian_kexec.erb
170
- - app/views/foreman_discovery/redhat_kexec.erb
171
169
  - config/as_deprecation_whitelist.yaml
172
170
  - config/initializers/discovery_setup.rb
173
171
  - config/routes.rb
@@ -192,7 +190,6 @@ files:
192
190
  - db/migrate/20171222120314_add_constraints_on_discovery_rules_hostgroups.rb
193
191
  - db/migrate/20180412124505_add_priority_score_to_discovery_rules.rb
194
192
  - db/migrate/20221102065954_fix_discovery_settings_category_to_dsl.rb
195
- - db/seeds.d/50_discovery_templates.rb
196
193
  - db/seeds.d/60_discovery_proxy_feature.rb
197
194
  - db/seeds.d/70_discovery_mail_notification.rb
198
195
  - db/seeds.d/80_discovery_ui_notification.rb
@@ -260,6 +257,7 @@ files:
260
257
  - test/functional/discovery_rules_controller_test.rb
261
258
  - test/functional/foreman_discovery/concerns/hosts_controller_extensions_test.rb
262
259
  - test/integration/discovered_hosts_test.rb
260
+ - test/static_fixtures/redhat_kexec.erb
263
261
  - test/test_helper_discovery.rb
264
262
  - test/test_plugin_helper.rb
265
263
  - test/unit/discovered_extensions_test.rb
@@ -317,18 +315,6 @@ signing_key:
317
315
  specification_version: 4
318
316
  summary: MaaS Discovery Plugin for Foreman
319
317
  test_files:
320
- - test/unit/discovered_extensions_test.rb
321
- - test/unit/discovered_mailer_test.rb
322
- - test/unit/discovery_attribute_set_test.rb
323
- - test/unit/discovery_rule_test.rb
324
- - test/unit/discovery_taxonomy_extensions_test.rb
325
- - test/unit/fact_parser_test.rb
326
- - test/unit/fact_to_category_resolver_test.rb
327
- - test/unit/lldp_neighbors_test.rb
328
- - test/unit/ui_notifications/destroy_host_test.rb
329
- - test/unit/ui_notifications/new_host_test.rb
330
- - test/unit/host_discovered_test.rb
331
- - test/unit/managed_extensions_test.rb
332
318
  - test/factories/discovery_host_related.rb
333
319
  - test/factories/discovery_rule_related.rb
334
320
  - test/facts/bond0-eth0-eth1-active-passive.json
@@ -350,9 +336,22 @@ test_files:
350
336
  - test/functional/api/v2/discovered_hosts_controller_test.rb
351
337
  - test/functional/api/v2/discovery_rules_controller_test.rb
352
338
  - test/functional/api/v2/fact_value_extensions_test.rb
353
- - test/functional/discovery_rules_controller_test.rb
354
339
  - test/functional/foreman_discovery/concerns/hosts_controller_extensions_test.rb
340
+ - test/functional/discovery_rules_controller_test.rb
355
341
  - test/functional/discovered_hosts_controller_test.rb
356
342
  - test/integration/discovered_hosts_test.rb
343
+ - test/unit/ui_notifications/destroy_host_test.rb
344
+ - test/unit/ui_notifications/new_host_test.rb
345
+ - test/unit/discovered_mailer_test.rb
346
+ - test/unit/discovery_attribute_set_test.rb
347
+ - test/unit/discovery_rule_test.rb
348
+ - test/unit/discovery_taxonomy_extensions_test.rb
349
+ - test/unit/fact_parser_test.rb
350
+ - test/unit/fact_to_category_resolver_test.rb
351
+ - test/unit/lldp_neighbors_test.rb
352
+ - test/unit/discovered_extensions_test.rb
353
+ - test/unit/host_discovered_test.rb
354
+ - test/unit/managed_extensions_test.rb
357
355
  - test/test_helper_discovery.rb
358
356
  - test/test_plugin_helper.rb
357
+ - test/static_fixtures/redhat_kexec.erb
@@ -1,41 +0,0 @@
1
- <%#
2
- kind: kexec
3
- name: Discovery Debian kexec
4
- oses:
5
- - Debian
6
- - Ubuntu
7
- description: |
8
- This template is used to pass command line options to kexec when reloading
9
- kernel on a discovered host instead of rebooting. This is useful in PXE-less
10
- environments. The template must generate JSON format with the following items
11
- "kernel", "initram", "append" and "extra". The kexec command is composed in
12
- the following way:
13
-
14
- kexec --force --debug --append=$append --initrd=$initram $extra $kernel
15
-
16
- Please read kexec(8) man page for more information about semantics.
17
- Extra options like --reset-vga can be set via "extra" array.
18
- -%>
19
- <%
20
- mac = @host.facts['discovery_bootif']
21
- bootif = host_param("hardware_type", "01") + '-' + mac.gsub(':', '-') if mac
22
- ip_cidr = @host.facts['discovery_ip_cidr']
23
- ip = @host.facts['discovery_ip']
24
- mask = @host.facts['discovery_netmask']
25
- gw = @host.facts['discovery_gateway']
26
- dns = @host.facts['discovery_dns']
27
- options = ["nomodeset", "nokaslr", "auto=true"]
28
- options << @host.facts['append']
29
- options << "domain=#{@host.domain}"
30
- options << 'console-setup/ask_detect=false console-setup/layout=USA console-setup/variant=USA keyboard-configuration/layoutcode=us localechooser/translation/warn-light=true localechooser/translation/warn-severe=true'
31
- options << "locale=#{host_param('lang') || 'en_US'}"
32
- options << "inst.stage2=#{@host.operatingsystem.medium_uri(@host)}" if @host.operatingsystem.name.match(/Atomic/i)
33
- extra = []
34
- extra << "--kexec-file-syscall" if @host.pxe_loader.include?('SecureBoot')
35
- -%>
36
- {
37
- "kernel": "<%= @kernel_uri %>",
38
- "initram": "<%= @initrd_uri %>",
39
- "append": "url=<%= foreman_url('provision') + "&static=yes" %> interface=<%= mac %> netcfg/get_ipaddress=<%= ip %> netcfg/get_netmask=<%= mask %> netcfg/get_gateway=<%= gw %> netcfg/get_nameservers=<%= dns %> netcfg/disable_dhcp=true netcfg/get_hostname=<%= @host.name %> BOOTIF=<%= bootif %> <%= options.compact.join(' ') %>",
40
- "extra": <%= extra %>
41
- }
@@ -1,31 +0,0 @@
1
- organizations = Organization.unscoped.all
2
- locations = Location.unscoped.all
3
-
4
- kind = TemplateKind.unscoped.find_or_create_by(name: 'kexec')
5
- kind.description = N_("Command line options for kexec during PXE-less provisioning.")
6
- kind.save!
7
-
8
- ProvisioningTemplate.without_auditing do
9
- [['redhat_kexec.erb', 'Red Hat'], ['debian_kexec.erb', 'Debian']].each do |tmpl_names|
10
- content = File.read(File.join(ForemanDiscovery::Engine.root, 'app', 'views', 'foreman_discovery', tmpl_names[0]))
11
- tmpl = ProvisioningTemplate.unscoped.where(:name => "Discovery #{tmpl_names[1]} kexec").first_or_create(
12
- :template_kind_id => kind.id,
13
- :snippet => false,
14
- :template => content
15
- )
16
- tmpl.attributes = {
17
- :template => content,
18
- :default => true,
19
- :vendor => "Foreman Discovery",
20
- :locked => true
21
- }
22
- tmpl.template = content
23
- tmpl.organizations = organizations
24
- tmpl.locations = locations
25
-
26
- metadata = Template.parse_metadata(content)
27
- tmpl.description = metadata['description']
28
-
29
- tmpl.save!(:validate => false) if tmpl.changes.present?
30
- end
31
- end