foreman_puppet 6.0.0 → 6.1.0

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