foreman_puppet 6.0.0 → 6.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e59cf0e5991e1889b33b6691d0e537b98e5860f0a959e662352c11d0d9405a8e
4
- data.tar.gz: 17341daec79f8ebb38287fd5fd32bbd079630d79abcc72a662bdc54b80eadd51
3
+ metadata.gz: 68939e16cae1564207cb39add5c7fec7cac4e94c8ebf118dc61621197907a745
4
+ data.tar.gz: 5058a3df645b3c30aa9d0845b47c7a07286fa1c87aa261b582a6153e1533965b
5
5
  SHA512:
6
- metadata.gz: 17db46ed6f8e0274e9a14fe7cc40de45878fedac0bc5284356706b6e66b18da587fd41454116fe8a69cb3c4fc39f88b770e3878407d08987154aa5c93b1c81b9
7
- data.tar.gz: 28a410202cea50308d6b963b24f44c27c3e190536551a4ebaf1b7dcd68ca75dc103354e7e26a0a22caf0b58f4dbada0b0aa111f8abc0390a17da526f4ad22cf4
6
+ metadata.gz: d03b3cf704fb1c44d598f2cdd07f0eb4a42bcbd5f588083b8c47ae8ac91f3c60ed809104321f4942f2adfa4601126883dc973cb9181bcd469136f94c1ccdc748
7
+ data.tar.gz: 10dceada6b636553d2b29ca4e7e76965e6235ba3227765e0a71ea1144d86d09e332ae2aab22c22d3554f81cef933c50a8d2979d818234ff261588b3cdd8736cd
data/README.md CHANGED
@@ -33,7 +33,8 @@ Some features will remain in core:
33
33
 
34
34
  |Foreman version|Plugin version|Notes |
35
35
  |---------------|--------------|------------------------------------------|
36
- | >= 3.5 | ~> 5.0 | Required |
36
+ | >= 3.7 | ~> 6.0 | Required |
37
+ | ~> 3.5, 3.6 | ~> 5.0 | Required |
37
38
  | ~> 3.4 | ~> 4.1 | Required |
38
39
  | ~> 3.3 | ~> 4.0 | Required |
39
40
  | ~> 3.2 | ~> 3.0 | Required |
@@ -51,7 +52,7 @@ You can manually install this plugin using:
51
52
 
52
53
  ```sh
53
54
  # On RedHat/CentOS
54
- yum install tfm-rubygem-foreman_puppet
55
+ dnf install rubygem-foreman_puppet
55
56
 
56
57
  # On Debian
57
58
  apt install ruby-foreman-puppet
@@ -77,7 +78,7 @@ Fork and send a Pull Request. Thanks!
77
78
 
78
79
  ## Copyright
79
80
 
80
- Copyright (c) *2022* *The Foreman developers*
81
+ Copyright (c) *2020-2023* *The Foreman developers*
81
82
 
82
83
  This program is free software: you can redistribute it and/or modify
83
84
  it under the terms of the GNU General Public License as published by
@@ -13,8 +13,6 @@ module ForemanPuppet
13
13
  include_in_clone puppet: %i[config_groups host_config_groups host_classes]
14
14
 
15
15
  scoped_search relation: :environment, on: :name, complete_value: true, rename: :environment
16
- scoped_search relation: :puppetclasses, on: :name, complete_value: true, rename: :class, only_explicit: true, operators: ['= ', '~ '],
17
- ext_method: :search_by_deprecated_class
18
16
  scoped_search relation: :puppetclasses, on: :name, complete_value: true, rename: :puppetclass, only_explicit: true, operators: ['= ', '~ '],
19
17
  ext_method: :search_by_puppetclass
20
18
  scoped_search relation: :config_groups, on: :name, complete_value: true, rename: :config_group, only_explicit: true, operators: ['= ', '~ '],
@@ -22,11 +20,6 @@ module ForemanPuppet
22
20
  end
23
21
 
24
22
  class_methods do
25
- def search_by_deprecated_class(key, operator, value)
26
- Foreman::Deprecation.deprecation_warning('3.2', 'search by `class` has been deprecated, please search by `puppetclass` instead')
27
- search_by_puppetclass(key, operator, value)
28
- end
29
-
30
23
  def search_by_puppetclass(_key, operator, value)
31
24
  conditions = sanitize_sql_for_conditions(["puppetclasses.name #{operator} ?", value_to_sql(operator, value)])
32
25
  config_group_ids = ForemanPuppet::ConfigGroup.joins(:puppetclasses).where(conditions).pluck(:id)
@@ -16,7 +16,12 @@ module ForemanPuppet
16
16
 
17
17
  # will need through relation to work properly
18
18
  scoped_search relation: :environment, on: :name, complete_value: true, rename: :environment, only_explicit: true
19
- scoped_search relation: :puppetclasses, on: :name, complete_value: true, rename: :class, only_explicit: true, operators: ['= ', '~ ']
19
+ scoped_search relation: :puppetclasses, on: :name,
20
+ complete_value: true,
21
+ rename: :puppetclass,
22
+ only_explicit: true,
23
+ operators: ['= ', '~ '],
24
+ ext_method: :search_by_puppetclass
20
25
  scoped_search relation: :config_groups, on: :name,
21
26
  complete_value: true,
22
27
  rename: :config_group,
@@ -29,11 +34,22 @@ module ForemanPuppet
29
34
  module PatchedClassMethods
30
35
  def search_by_config_group(_key, operator, value)
31
36
  conditions = sanitize_sql_for_conditions(["config_groups.name #{operator} ?", value_to_sql(operator, value)])
32
- hostgroup_ids = ::Hostgroup.unscoped.with_taxonomy_scope.joins(puppet: :config_groups).where(conditions).map(&:subtree_ids).flatten.uniq
37
+ hostgroup_ids = ::Hostgroup.joins(puppet: :config_groups).where(conditions).map(&:subtree_ids).flatten.uniq
38
+
39
+ conds = 'hostgroups.id < 0'
40
+ conds = "hostgroups.id IN(#{hostgroup_ids.join(',')})" if hostgroup_ids.present?
41
+
42
+ { conditions: conds }
43
+ end
44
+
45
+ def search_by_puppetclass(_key, operator, value)
46
+ conditions = sanitize_sql_for_conditions(["puppetclasses.name #{operator} ?", value_to_sql(operator, value)])
47
+ hostgroup_ids = ::Hostgroup.joins(puppet: :puppetclasses).where(conditions).map(&:subtree_ids)
48
+
49
+ conds = []
50
+ conds << "hostgroups.id IN (#{hostgroup_ids.join(',')})" if hostgroup_ids.present?
33
51
 
34
- opts = 'hostgroups.id < 0'
35
- opts = "hostgroups.id IN(#{hostgroup_ids.join(',')})" if hostgroup_ids.present?
36
- { conditions: opts }
52
+ { conditions: conds.join(' OR ').presence || 'hostgroups.id < 0' }
37
53
  end
38
54
  end
39
55
  end
@@ -17,7 +17,7 @@ module ForemanPuppet
17
17
  validates :name, presence: true, uniqueness: true
18
18
 
19
19
  scoped_search on: :name, complete_value: true
20
- scoped_search relation: :puppetclasses, on: :name, complete_value: true, rename: :class, only_explicit: true, operators: ['= ', '~ ']
20
+ scoped_search relation: :puppetclasses, on: :name, complete_value: true, rename: :puppetclass, only_explicit: true, operators: ['= ', '~ ']
21
21
 
22
22
  default_scope -> { order('config_groups.name') }
23
23
 
@@ -1,4 +1,9 @@
1
- <%= content_tag :li, id: "selected_puppetclass_#{klass.id}", class: [dom_class(klass, 'selected'), cycle('even', 'odd'), ('unavailable' unless klass.environments.include?(obj.environment.present? ? obj.environment : @environment))] do %>
1
+ <%
2
+ id = "selected_puppetclass_#{klass.id}"
3
+ css = [dom_class(klass, 'selected'), cycle('even', 'odd')]
4
+ css << 'unavailable' unless klass.environments.include?(obj.try(:environment).presence || @environment)
5
+ %>
6
+ <%= content_tag :li, id: id, class: css do %>
2
7
  <%= link_to_remove_puppetclass(klass, obj) %>
3
8
  <%= hidden_field_tag "#{resource_type}[puppetclass_ids][]", klass.id %>
4
9
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module ForemanPuppet
2
- VERSION = '6.0.0'.freeze
2
+ VERSION = '6.1.0'.freeze
3
3
  end
data/package.json CHANGED
@@ -9,8 +9,6 @@
9
9
  "test:watch": "tfm-test --plugin --watchAll",
10
10
  "test:current": "tfm-test --plugin --watch",
11
11
  "publish-coverage": "tfm-publish-coverage",
12
- "stories": "tfm-stories --plugin",
13
- "stories:build": "tfm-build-stories --plugin",
14
12
  "create-react-component": "yo react-domain"
15
13
  },
16
14
  "repository": {
@@ -29,7 +27,6 @@
29
27
  "@theforeman/builder": ">= 10.1.0",
30
28
  "@theforeman/eslint-plugin-foreman": ">= 10.1.0",
31
29
  "@theforeman/find-foreman": ">= 10.1.0",
32
- "@theforeman/stories": ">= 10.1.0",
33
30
  "@theforeman/test": ">= 10.1.0",
34
31
  "@theforeman/vendor-dev": ">= 10.1.0",
35
32
  "babel-eslint": "^10.0.3",
@@ -48,23 +48,31 @@ module ForemanPuppet
48
48
  assert_equal results, results2
49
49
  end
50
50
 
51
+ test 'deprecated search by class throws error' do
52
+ exception = assert_raises(Exception) do
53
+ host
54
+ Host.search_for("class = #{host.puppet.puppetclass_names.first}")
55
+ end
56
+ assert_equal("Field 'class' not recognized for searching!", exception.message)
57
+ end
58
+
51
59
  test 'can be found by puppetclass' do
52
60
  host
53
- result = Host.search_for("class = #{host.puppet.puppetclass_names.first}")
61
+ result = Host.search_for("puppetclass = #{host.puppet.puppetclass_names.first}")
54
62
  assert_includes result, host
55
63
  end
56
64
 
57
65
  test 'search by puppetclass returns only host within that puppetclass' do
58
66
  host
59
67
  puppetclass = FactoryBot.create(:puppetclass)
60
- result = Host.search_for("class = #{puppetclass.name}")
68
+ result = Host.search_for("puppetclass = #{puppetclass.name}")
61
69
  assert_not_includes result, host
62
70
  end
63
71
 
64
72
  test 'search hosts by inherited puppetclass from a hostgroup' do
65
73
  hostgroup = FactoryBot.create(:hostgroup, :with_puppet_enc, :with_puppetclass)
66
74
  host_with_hg = FactoryBot.create(:host, hostgroup: hostgroup)
67
- result = Host.search_for("class = #{hostgroup.puppet.puppetclass_names.first}")
75
+ result = Host.search_for("puppetclass = #{hostgroup.puppet.puppetclass_names.first}")
68
76
  assert_includes result, host_with_hg
69
77
  end
70
78
 
@@ -72,7 +80,7 @@ module ForemanPuppet
72
80
  parent_hg = FactoryBot.create(:hostgroup, :with_puppet_enc, :with_puppetclass)
73
81
  hg = FactoryBot.create(:hostgroup, parent: parent_hg)
74
82
  host = FactoryBot.create(:host, hostgroup: hg)
75
- result = Host.search_for("class = #{parent_hg.puppet.puppetclass_names.first}")
83
+ result = Host.search_for("puppetclass = #{parent_hg.puppet.puppetclass_names.first}")
76
84
  assert_equal 1, result.count
77
85
  assert_includes result, host
78
86
  end
@@ -82,7 +90,7 @@ module ForemanPuppet
82
90
  host = FactoryBot.create(:host, :with_puppet_enc, hostgroup: hostgroup, environment: hostgroup.puppet.environment)
83
91
  config_group = FactoryBot.create(:config_group, :with_puppetclass)
84
92
  hostgroup.puppet.config_groups << config_group
85
- result = Host.search_for("class = #{config_group.puppetclass_names.first}")
93
+ result = Host.search_for("puppetclass = #{config_group.puppetclass_names.first}")
86
94
  assert_equal 1, result.count
87
95
  assert_includes result, host
88
96
  end
@@ -82,6 +82,9 @@ export function updatePuppetclasses(element) {
82
82
  export function reloadPuppetclassParams() {
83
83
  const hostId = $('form.hostresource-form').data('id');
84
84
  const url = $('#puppet_klasses_parameters').data('url');
85
+ if (!url) {
86
+ return;
87
+ }
85
88
  let data = window.serializeForm().replace('method=patch', 'method=post');
86
89
  if (url.match('hostgroups')) {
87
90
  data += `&hostgroup_id=${hostId}`;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondřej Ezr
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-06-12 00:00:00.000000000 Z
12
+ date: 2023-09-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Allow assigning Puppet environments and classes to the Foreman Hosts.
15
15
  email:
@@ -436,76 +436,76 @@ required_rubygems_version: !ruby/object:Gem::Requirement
436
436
  - !ruby/object:Gem::Version
437
437
  version: '0'
438
438
  requirements: []
439
- rubygems_version: 3.3.26
439
+ rubygems_version: 3.1.6
440
440
  signing_key:
441
441
  specification_version: 4
442
442
  summary: Add Puppet features to Foreman
443
443
  test_files:
444
444
  - test/controllers/foreman_puppet/api/v2/config_groups_controller_test.rb
445
- - test/controllers/foreman_puppet/api/v2/environments_controller_test.rb
446
445
  - test/controllers/foreman_puppet/api/v2/host_classes_controller_test.rb
447
446
  - test/controllers/foreman_puppet/api/v2/hostgroup_classes_controller_test.rb
448
447
  - test/controllers/foreman_puppet/api/v2/hostgroups_controller_test.rb
449
- - test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb
450
448
  - test/controllers/foreman_puppet/api/v2/lookups_common_controller_test.rb
451
- - test/controllers/foreman_puppet/api/v2/override_values_controller_test.rb
452
449
  - test/controllers/foreman_puppet/api/v2/provisioning_templates_controller_test.rb
453
450
  - test/controllers/foreman_puppet/api/v2/puppetclasses_controller_test.rb
454
- - test/controllers/foreman_puppet/api/v2/smart_class_parameters_controller_test.rb
455
451
  - test/controllers/foreman_puppet/api/v2/smart_proxies_controller_test.rb
456
452
  - test/controllers/foreman_puppet/api/v2/template_combinations_controller_test.rb
453
+ - test/controllers/foreman_puppet/api/v2/environments_controller_test.rb
454
+ - test/controllers/foreman_puppet/api/v2/smart_class_parameters_controller_test.rb
455
+ - test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb
456
+ - test/controllers/foreman_puppet/api/v2/override_values_controller_test.rb
457
457
  - test/controllers/foreman_puppet/config_groups_controller_test.rb
458
- - test/controllers/foreman_puppet/environments_controller_test.rb
459
458
  - test/controllers/foreman_puppet/hostgroups_controller_test.rb
460
- - test/controllers/foreman_puppet/hosts_controller_test.rb
461
459
  - test/controllers/foreman_puppet/puppet_smart_proxies_controller_test.rb
462
460
  - test/controllers/foreman_puppet/puppetclass_lookup_keys_controller_test.rb
463
461
  - test/controllers/foreman_puppet/puppetclasses_controller_test.rb
462
+ - test/controllers/foreman_puppet/environments_controller_test.rb
463
+ - test/controllers/foreman_puppet/hosts_controller_test.rb
464
464
  - test/controllers/provisioning_templates_controller_test.rb
465
465
  - test/factories/foreman_puppet_factories.rb
466
466
  - test/factories/host_puppet_enhancements.rb
467
467
  - test/factories/proxy_puppet_enhancements.rb
468
468
  - test/graphql/mutations/hosts/create_mutation_test.rb
469
- - test/graphql/queries/environment_query_test.rb
470
469
  - test/graphql/queries/environments_query_test.rb
471
470
  - test/graphql/queries/host_puppet_query_test.rb
472
471
  - test/graphql/queries/hostgroup_puppet_query_test.rb
473
472
  - test/graphql/queries/location_query_test.rb
474
473
  - test/graphql/queries/organization_query_test.rb
475
- - test/graphql/queries/puppetclass_query_test.rb
476
474
  - test/graphql/queries/puppetclasses_query_test.rb
475
+ - test/graphql/queries/environment_query_test.rb
476
+ - test/graphql/queries/puppetclass_query_test.rb
477
477
  - test/helpers/foreman_puppet/hosts_and_hostgroups_helper_test.rb
478
- - test/helpers/foreman_puppet/puppetclass_lookup_keys_helper_test.rb
479
478
  - test/helpers/foreman_puppet/puppetclasses_helper_test.rb
479
+ - test/helpers/foreman_puppet/puppetclass_lookup_keys_helper_test.rb
480
480
  - test/integration/foreman_puppet/dashboard_js_test.rb
481
481
  - test/integration/foreman_puppet/environment_js_test.rb
482
- - test/integration/foreman_puppet/host_js_test.rb
483
482
  - test/integration/foreman_puppet/hostgroup_js_test.rb
484
483
  - test/integration/foreman_puppet/puppetclass_js_test.rb
485
484
  - test/integration/foreman_puppet/smartclass_parameter_js_test.rb
486
- - test/integration_puppet_helper.rb
485
+ - test/integration/foreman_puppet/host_js_test.rb
487
486
  - test/models/foreman_puppet/config_group_class_test.rb
488
487
  - test/models/foreman_puppet/config_group_test.rb
489
488
  - test/models/foreman_puppet/environment_test.rb
490
489
  - test/models/foreman_puppet/host_config_group_test.rb
491
- - test/models/foreman_puppet/host_puppet_facet_test.rb
492
- - test/models/foreman_puppet/host_test.rb
493
490
  - test/models/foreman_puppet/hostgroup_puppet_facet_test.rb
494
491
  - test/models/foreman_puppet/hostgroup_test.rb
495
492
  - test/models/foreman_puppet/lookup_value_test.rb
496
- - test/models/foreman_puppet/provisioning_template_test.rb
497
493
  - test/models/foreman_puppet/puppetclass_lookup_key_test.rb
498
- - test/models/foreman_puppet/puppetclass_test.rb
499
494
  - test/models/foreman_puppet/report_test.rb
500
495
  - test/models/foreman_puppet/smart_proxy_test.rb
501
496
  - test/models/foreman_puppet/user_test.rb
502
- - test/services/foreman_puppet/host_counter_test.rb
497
+ - test/models/foreman_puppet/provisioning_template_test.rb
498
+ - test/models/foreman_puppet/puppetclass_test.rb
499
+ - test/models/foreman_puppet/host_puppet_facet_test.rb
500
+ - test/models/foreman_puppet/host_test.rb
503
501
  - test/services/foreman_puppet/host_info_providers/config_groups_info_test.rb
504
502
  - test/services/foreman_puppet/host_info_providers/puppet_info_test.rb
505
503
  - test/services/foreman_puppet/input_type/puppet_parameter_input_test.rb
506
- - test/test_puppet_helper.rb
504
+ - test/services/foreman_puppet/host_counter_test.rb
507
505
  - test/unit/foreman_puppet/access_permissions_test.rb
508
- - test/unit/foreman_puppet/global_id_test.rb
509
506
  - test/unit/foreman_puppet/puppet_class_importer_test.rb
510
507
  - test/unit/foreman_puppet/template_rendering_test.rb
508
+ - test/unit/foreman_puppet/global_id_test.rb
511
509
  - test/unit/foreman_puppet_test.rb
510
+ - test/test_puppet_helper.rb
511
+ - test/integration_puppet_helper.rb