foreman_puppet 1.0.0.rc.1 → 1.0.0.rc.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/graphgl/concerns/foreman_puppet/types/interface_attributes_input_extensions.rb +9 -0
- data/app/models/concerns/foreman_puppet/extensions/host.rb +6 -4
- data/app/models/concerns/foreman_puppet/extensions/host_common.rb +17 -0
- data/app/models/concerns/foreman_puppet/extensions/hostgroup.rb +2 -0
- data/app/models/concerns/foreman_puppet/extensions/provisioning_template.rb +1 -1
- data/app/services/foreman_puppet/host_info_providers/config_groups_info.rb +2 -0
- data/app/views/smart_proxies/plugins/_puppet_ca.html.erb +44 -0
- data/db/migrate/20200803113903_migrate_host_type_in_host_config_groups.foreman_puppet.rb +28 -9
- data/db/migrate/20201125113903_migrate_puppetclasses_to_facets.foreman_puppet.rb +13 -1
- data/lib/foreman_puppet/engine.rb +13 -0
- data/lib/foreman_puppet/register.rb +1 -2
- data/lib/foreman_puppet/version.rb +1 -1
- data/test/graphql/mutations/hosts/create_mutation_test.rb +21 -0
- data/test/models/foreman_puppet/provisioning_template_test.rb +7 -0
- data/test/services/foreman_puppet/host_info_providers/config_groups_info_test.rb +35 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37d0dfe755f795957a77e9889c1c958343a3b2b54d38e451e7a119bb8b4db98b
|
4
|
+
data.tar.gz: 2e4e4bad454345c115ec10fa6968409a56dbf2403891bf0711fdaf858225291c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7558294ebc8a1eaca149102ed9d5dcefe10a7ae1fa643bd7836c143de807bec77e3af8fa31df43dcd6b3ec52775ba7b36a6a5a15028413e4f889f479d3295fe
|
7
|
+
data.tar.gz: b40b1472b66dc27f61c634c11cd500d23d61de31d1eb984c7b68184cb626e9fbfa2b2dbd0bba74009cdd2800c7576fae427cef346a4f48b4e4fb59b8b88eeaf0
|
@@ -3,6 +3,8 @@ module ForemanPuppet
|
|
3
3
|
module Host
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
|
+
include ForemanPuppet::Extensions::HostCommon if ForemanPuppet.extracted_from_core?
|
7
|
+
|
6
8
|
included do
|
7
9
|
prepend PrependedMethods
|
8
10
|
|
@@ -82,10 +84,10 @@ module ForemanPuppet
|
|
82
84
|
def available_template_kinds(provisioning = nil)
|
83
85
|
kinds = template_kinds(provisioning)
|
84
86
|
kinds.map do |kind|
|
85
|
-
ProvisioningTemplate.find_template({ kind: kind.name,
|
86
|
-
|
87
|
-
|
88
|
-
|
87
|
+
::ProvisioningTemplate.find_template({ kind: kind.name,
|
88
|
+
operatingsystem_id: operatingsystem_id,
|
89
|
+
hostgroup_id: hostgroup_id,
|
90
|
+
environment_id: puppet&.environment_id })
|
89
91
|
end.compact
|
90
92
|
end
|
91
93
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ForemanPuppet
|
2
|
+
module Extensions
|
3
|
+
module HostCommon
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
def all_puppetclasses(env = environment)
|
7
|
+
return ForemanPuppet::Puppetclass.none unless puppet
|
8
|
+
puppet.all_puppetclasses(env)
|
9
|
+
end
|
10
|
+
|
11
|
+
def puppetclasses
|
12
|
+
return ForemanPuppet::Puppetclass.none unless puppet
|
13
|
+
puppet.puppetclasses
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -46,7 +46,7 @@ module ForemanPuppet
|
|
46
46
|
|
47
47
|
def template_includes
|
48
48
|
includes = super
|
49
|
-
tc_include = includes.detect { |i| i.key?(:template_combinations) }
|
49
|
+
tc_include = includes.detect { |i| i.is_a?(Hash) && i.key?(:template_combinations) }
|
50
50
|
tc_include ||= includes << {}
|
51
51
|
tc_include[:template_combinations] = %i[hostgroup environment]
|
52
52
|
includes
|
@@ -2,6 +2,8 @@ module ForemanPuppet
|
|
2
2
|
module HostInfoProviders
|
3
3
|
class ConfigGroupsInfo < HostInfo::Provider
|
4
4
|
def host_info
|
5
|
+
return {} unless host.puppet
|
6
|
+
|
5
7
|
config_groups = (host.puppet.config_groups + host.puppet.parent_config_groups).uniq.map(&:name)
|
6
8
|
{ 'parameters' => { 'foreman_config_groups' => config_groups } }
|
7
9
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<ul id="proxy-puppetca-tab" class="nav nav-tabs nav-tabs-pf">
|
2
|
+
<li class="active"><a href="#ca_general" data-toggle="tab"><%= _("General") %></a></li>
|
3
|
+
<% if authorized_for(:permission => :view_smart_proxies_puppetca, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
4
|
+
<li><a href="#certificates" data-toggle="tab"><%= _("Certificates") %></a></li>
|
5
|
+
<% end %>
|
6
|
+
<% if authorized_for(:permission => :view_smart_proxies_autosign, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
7
|
+
<li><a href="#autosign" data-toggle="tab"><%= _("Autosign entries") %></a></li>
|
8
|
+
<% end %>
|
9
|
+
</ul>
|
10
|
+
<div id="proxy-puppetca-tab-content" class="tab-content">
|
11
|
+
<div class="tab-pane active in" id="ca_general">
|
12
|
+
<div class="row">
|
13
|
+
<div class="col-md-6">
|
14
|
+
<%= show_feature_version('puppetca') %>
|
15
|
+
<div class="row">
|
16
|
+
<div class="col-md-4"><strong><%= _('Hosts managed:') %></strong></div>
|
17
|
+
<div class="col-md-8">
|
18
|
+
<%= link_to Host::Managed.where(:puppet_ca_proxy_id => @smart_proxy.id).count, hosts_path(:search => "puppet_ca = \"#{@smart_proxy.name}\"") %>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<div class="container-fluid container-cards-pf">
|
24
|
+
<div class="row row-cards-pf">
|
25
|
+
<% if authorized_for(:permission => :view_smart_proxies_puppetca, :auth_object => @smart_proxy) %>
|
26
|
+
<span data-ajax-url="<%= counts_smart_proxy_puppetca_path(:smart_proxy_id => @smart_proxy) %>"><%= spinner%></span>
|
27
|
+
<span data-ajax-url="<%= expiry_smart_proxy_puppetca_path(:smart_proxy_id => @smart_proxy) %>"><%= spinner%></span>
|
28
|
+
<% end %>
|
29
|
+
<% if authorized_for(:permission => :view_smart_proxies_autosign, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
30
|
+
<span data-ajax-url="<%= counts_smart_proxy_autosign_path(:smart_proxy_id => @smart_proxy) %>"><%= spinner%></span>
|
31
|
+
<% end %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<% if authorized_for(:permission => :view_smart_proxies_puppetca, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
36
|
+
<div class="tab-pane" id="certificates" data-ajax-url="<%= smart_proxy_puppetca_index_path(:smart_proxy_id => @smart_proxy) %>" data-on-complete="certTable"><%= spinner %></div>
|
37
|
+
<% end %>
|
38
|
+
<% if authorized_for(:permission => :view_smart_proxies_autosign, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
39
|
+
<div class="tab-pane" id="autosign" data-ajax-url="<%= smart_proxy_autosign_index_path(:smart_proxy_id => @smart_proxy) %>" data-on-complete="tfm.tools.activateDatatables"><%= spinner %></div>
|
40
|
+
<% if authorized_for(:permission => :create_smart_proxies_autosign, :auth_object => @smart_proxy, :authorizer => authorizer) %>
|
41
|
+
<div data-ajax-url=<%= new_smart_proxy_autosign_path(:smart_proxy_id => @smart_proxy) %>></div>
|
42
|
+
<% end %>
|
43
|
+
<% end %>
|
44
|
+
</div>
|
@@ -1,34 +1,53 @@
|
|
1
1
|
class MigrateHostTypeInHostConfigGroups < ActiveRecord::Migration[6.0]
|
2
2
|
class FakeHostConfigGroup < ::ApplicationRecord
|
3
3
|
self.table_name = 'host_config_groups'
|
4
|
+
|
5
|
+
scope :for_host, -> { where(host_type: %w[Host::Base Host::Managed]) }
|
6
|
+
scope :for_hostgroup, -> { where(host_type: 'Hostgroup') }
|
7
|
+
scope :for_host_facet, -> { where(host_type: 'ForemanPuppet::HostPuppetFacet') }
|
8
|
+
scope :for_hostgroup_facet, -> { where(host_type: 'ForemanPuppet::HostgroupPuppetFacet') }
|
9
|
+
end
|
10
|
+
|
11
|
+
class FakeConfigGroup < ::ApplicationRecord
|
12
|
+
self.table_name = 'config_groups'
|
4
13
|
end
|
5
14
|
|
6
15
|
def up
|
7
|
-
host_config_group_ids = FakeHostConfigGroup.
|
16
|
+
host_config_group_ids = FakeHostConfigGroup.for_host.pluck(:host_id).uniq
|
8
17
|
host_config_group_ids.each do |host_id|
|
9
18
|
host_facet_id = ForemanPuppet::HostPuppetFacet.where(host_id: host_id).pick(:id)
|
10
|
-
FakeHostConfigGroup.where(
|
11
|
-
|
19
|
+
host_groups = FakeHostConfigGroup.for_host.where(host_id: host_id)
|
20
|
+
if host_facet_id
|
21
|
+
host_groups.update_all(host_type: 'ForemanPuppet::HostPuppetFacet', host_id: host_facet_id)
|
22
|
+
else
|
23
|
+
deleted_groups = FakeConfigGroup.where(id: host_groups.pluck(:config_group_id)).pluck(:name)
|
24
|
+
say "deleting groups #{deleted_groups.join(', ')} from Host (id=#{host_id}) because it has no environment"
|
25
|
+
host_groups.delete_all
|
26
|
+
end
|
12
27
|
end
|
13
|
-
hostgroup_config_group_ids = FakeHostConfigGroup.
|
28
|
+
hostgroup_config_group_ids = FakeHostConfigGroup.for_hostgroup.pluck(:host_id).uniq
|
14
29
|
hostgroup_config_group_ids.each do |hostgroup_id|
|
15
30
|
hostgroup_facet_id = ForemanPuppet::HostgroupPuppetFacet.where(hostgroup_id: hostgroup_id).pick(:id)
|
16
|
-
|
31
|
+
hostgroup_facet_id ||= ForemanPuppet::HostgroupPuppetFacet.create!(hostgroup: Hostgroup.unscoped.find(hostgroup_id)).id
|
32
|
+
FakeHostConfigGroup.for_hostgroup
|
33
|
+
.where(host_id: hostgroup_id)
|
17
34
|
.update_all(host_type: 'ForemanPuppet::HostgroupPuppetFacet', host_id: hostgroup_facet_id)
|
18
35
|
end
|
19
36
|
end
|
20
37
|
|
21
38
|
def down
|
22
|
-
host_config_group_ids = FakeHostConfigGroup.
|
39
|
+
host_config_group_ids = FakeHostConfigGroup.for_host_facet.pluck(:host_id).uniq
|
23
40
|
host_facet_ids = ForemanPuppet::HostPuppetFacet.where(id: host_config_group_ids).pluck(:id, :host_id).to_h
|
24
41
|
host_config_group_ids.each do |host_puppet_facet_id|
|
25
|
-
FakeHostConfigGroup.
|
42
|
+
FakeHostConfigGroup.for_host_facet
|
43
|
+
.where(host_id: host_puppet_facet_id)
|
26
44
|
.update_all(host_type: 'Host::Managed', host_id: host_facet_ids[host_puppet_facet_id])
|
27
45
|
end
|
28
|
-
hostgroup_config_group_ids = FakeHostConfigGroup.
|
46
|
+
hostgroup_config_group_ids = FakeHostConfigGroup.for_hostgroup_facet.pluck(:host_id).uniq
|
29
47
|
hostgroup_facet_ids = ForemanPuppet::HostgroupPuppetFacet.where(id: hostgroup_config_group_ids).pluck(:id, :hostgroup_id).to_h
|
30
48
|
hostgroup_config_group_ids.each do |hostgroup_facet_id|
|
31
|
-
FakeHostConfigGroup.
|
49
|
+
FakeHostConfigGroup.for_hostgroup_facet
|
50
|
+
.where(host_id: hostgroup_facet_id)
|
32
51
|
.update_all(host_type: 'Hostgroup', host_id: hostgroup_facet_ids[hostgroup_facet_id])
|
33
52
|
end
|
34
53
|
end
|
@@ -7,6 +7,10 @@ class MigratePuppetclassesToFacets < ActiveRecord::Migration[6.0]
|
|
7
7
|
self.table_name = 'hostgroup_classes'
|
8
8
|
end
|
9
9
|
|
10
|
+
class FakePuppetclass < ApplicationRecord
|
11
|
+
self.table_name = 'puppetclasses'
|
12
|
+
end
|
13
|
+
|
10
14
|
def up
|
11
15
|
add_reference :host_classes, :host_puppet_facet, foreign_key: true, index: true
|
12
16
|
add_reference :hostgroup_classes, :hostgroup_puppet_facet, foreign_key: true, index: true
|
@@ -14,11 +18,19 @@ class MigratePuppetclassesToFacets < ActiveRecord::Migration[6.0]
|
|
14
18
|
host_ids = FakeHostClass.all.pluck(:host_id).uniq
|
15
19
|
host_ids.each do |host_id|
|
16
20
|
host_facet = ForemanPuppet::HostPuppetFacet.find_by(host_id: host_id)
|
17
|
-
ForemanPuppet::HostClass.where(host_id: host_id)
|
21
|
+
host_classes = ForemanPuppet::HostClass.where(host_id: host_id)
|
22
|
+
if host_facet
|
23
|
+
host_classes.update_all(host_puppet_facet_id: host_facet.id)
|
24
|
+
else
|
25
|
+
deleted_classes = FakePuppetclass.where(id: host_classes.pluck(:puppetclass_id)).pluck(:name)
|
26
|
+
say "deleting classes #{deleted_classes.join(', ')} from Host (id=#{host_id}) because it has no environment"
|
27
|
+
host_classes.delete_all
|
28
|
+
end
|
18
29
|
end
|
19
30
|
hostgroup_ids = FakeHostgroupClass.all.pluck(:hostgroup_id).uniq
|
20
31
|
hostgroup_ids.each do |hostgroup_id|
|
21
32
|
hostgroup_facet = ForemanPuppet::HostgroupPuppetFacet.find_by(hostgroup_id: hostgroup_id)
|
33
|
+
hostgroup_facet ||= ForemanPuppet::HostgroupPuppetFacet.create(hostgroup: Hostgroup.unscoped.find(hostgroup_id))
|
22
34
|
ForemanPuppet::HostgroupClass.where(hostgroup_id: hostgroup_id).update_all(hostgroup_puppet_facet_id: hostgroup_facet.id)
|
23
35
|
end
|
24
36
|
|
@@ -15,7 +15,18 @@ module ForemanPuppet
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
module RelayClassicMutationClassMethodPath
|
19
|
+
# rubocop:disable Metrics/ParameterLists
|
20
|
+
def argument(name, type, *rest, loads: nil, **kwargs, &block)
|
21
|
+
# rubocop:enable Metrics/ParameterLists
|
22
|
+
return if [::Types::Environment, ::Types::Puppetclass].include?(loads)
|
23
|
+
|
24
|
+
super
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
18
28
|
GraphQL::Types::Relay::BaseObject.extend(BaseObjectClassMethodPath)
|
29
|
+
GraphQL::Schema::RelayClassicMutation.extend(RelayClassicMutationClassMethodPath)
|
19
30
|
end
|
20
31
|
end
|
21
32
|
|
@@ -97,6 +108,8 @@ module ForemanPuppet
|
|
97
108
|
::Types::Hostgroup.include(ForemanPuppet::Types::HostgroupExtensions)
|
98
109
|
::Types::Location.include(ForemanPuppet::Types::LocationExtensions)
|
99
110
|
::Types::Organization.include(ForemanPuppet::Types::OrganizationExtensions)
|
111
|
+
::Types::InterfaceAttributesInput.include(ForemanPuppet::Types::InterfaceAttributesInputExtensions)
|
112
|
+
|
100
113
|
::Mutations::Hosts::Create.include(ForemanPuppet::Mutations::Hosts::CreateExtensions)
|
101
114
|
rescue StandardError => e
|
102
115
|
Rails.logger.warn "ForemanPuppet: skipping engine hook (#{e})\n#{e.backtrace.join("\n")}"
|
@@ -170,8 +170,7 @@ Foreman::Plugin.register :foreman_puppet do
|
|
170
170
|
# extend_model ForemanPuppet::Extensions::Host
|
171
171
|
api_view list: 'foreman_puppet/api/v2/host_puppet_facets/base',
|
172
172
|
single: 'foreman_puppet/api/v2/host_puppet_facets/host_single'
|
173
|
-
template_compatibility_properties :environment, :environment_id, :environment_name
|
174
|
-
:puppetclasses, :all_puppetclasses
|
173
|
+
template_compatibility_properties :environment, :environment_id, :environment_name
|
175
174
|
set_dependent_action :destroy
|
176
175
|
end
|
177
176
|
configure_hostgroup(ForemanPuppet::HostgroupPuppetFacet) do
|
@@ -17,6 +17,16 @@ module ForemanPuppet
|
|
17
17
|
name: hostname,
|
18
18
|
environmentId: environment_id,
|
19
19
|
puppetclassIds: [puppetclass_id],
|
20
|
+
interfacesAttributes: [
|
21
|
+
{
|
22
|
+
type: 'bond',
|
23
|
+
attachedTo: %w[eth0 eth1],
|
24
|
+
identifier: 'bond0',
|
25
|
+
primary: true,
|
26
|
+
provision: true,
|
27
|
+
managed: true,
|
28
|
+
},
|
29
|
+
],
|
20
30
|
}
|
21
31
|
end
|
22
32
|
let(:context_user) { FactoryBot.create(:user, :admin, locations: [tax_location], organizations: [organization]) }
|
@@ -28,11 +38,13 @@ module ForemanPuppet
|
|
28
38
|
$name: String!,
|
29
39
|
$environmentId: ID,
|
30
40
|
$puppetclassIds: [ID!],
|
41
|
+
$interfacesAttributes: [InterfaceAttributesInput!]
|
31
42
|
) {
|
32
43
|
createHost(input: {
|
33
44
|
name: $name,
|
34
45
|
environmentId: $environmentId,
|
35
46
|
puppetclassIds: $puppetclassIds,
|
47
|
+
interfacesAttributes: $interfacesAttributes,
|
36
48
|
}) {
|
37
49
|
host {
|
38
50
|
id
|
@@ -57,6 +69,15 @@ module ForemanPuppet
|
|
57
69
|
assert_equal environment.id, host.puppet.environment_id
|
58
70
|
assert_equal [puppetclass.id], host.puppet.puppetclasses.pluck(:id)
|
59
71
|
|
72
|
+
assert_equal 1, host.interfaces.count
|
73
|
+
interface = host.interfaces.first
|
74
|
+
assert_equal 'Nic::Bond', interface.type
|
75
|
+
assert_equal 'eth0, eth1', interface.attached_to
|
76
|
+
assert_equal 'bond0', interface.identifier
|
77
|
+
assert interface.primary
|
78
|
+
assert interface.provision
|
79
|
+
assert interface.managed
|
80
|
+
|
60
81
|
assert_not_nil data
|
61
82
|
end
|
62
83
|
end
|
@@ -37,6 +37,13 @@ module ForemanPuppet
|
|
37
37
|
assert_equal [], tmplt.template_combinations
|
38
38
|
end
|
39
39
|
|
40
|
+
test '#template_includes adds environment include' do
|
41
|
+
includes = ProvisioningTemplate.template_includes
|
42
|
+
tc_include = includes.detect { |i| i.is_a?(Hash) && i.key?(:template_combinations) }
|
43
|
+
assert tc_include
|
44
|
+
assert_includes tc_include[:template_combinations], :environment
|
45
|
+
end
|
46
|
+
|
40
47
|
describe '#find_template by template_combinations' do
|
41
48
|
setup do
|
42
49
|
@arch = FactoryBot.create(:architecture)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'test_puppet_helper'
|
2
|
+
|
3
|
+
module ForemanPuppet
|
4
|
+
class ConfigGroupInfoTest < ActiveSupport::TestCase
|
5
|
+
let(:cg_info) { HostInfoProviders::ConfigGroupsInfo.new(host) }
|
6
|
+
|
7
|
+
context 'with Puppet Host' do
|
8
|
+
let(:config_group) { FactoryBot.create(:config_group) }
|
9
|
+
let(:host) do
|
10
|
+
FactoryBot.build(:host, :with_puppet_enc,
|
11
|
+
location: taxonomies(:location1),
|
12
|
+
organization: taxonomies(:organization1),
|
13
|
+
operatingsystem: operatingsystems(:redhat),
|
14
|
+
config_groups: [config_group])
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'adds config_groups to host parameters' do
|
18
|
+
assert_equal([config_group.name], cg_info.host_info['parameters']['foreman_config_groups'])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'without Puppet' do
|
23
|
+
let(:host) do
|
24
|
+
FactoryBot.build(:host,
|
25
|
+
location: taxonomies(:location1),
|
26
|
+
organization: taxonomies(:organization1),
|
27
|
+
operatingsystem: operatingsystems(:redhat))
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'does not fail without puppet facet' do
|
31
|
+
assert_equal({}, cg_info.host_info)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
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: 1.0.0.rc.
|
4
|
+
version: 1.0.0.rc.2
|
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: 2021-
|
12
|
+
date: 2021-08-16 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Allow assigning Puppet environmets and classes to the Foreman Hosts.
|
15
15
|
email:
|
@@ -56,6 +56,7 @@ files:
|
|
56
56
|
- app/graphgl/concerns/foreman_puppet/mutations/hosts/create_extensions.rb
|
57
57
|
- app/graphgl/concerns/foreman_puppet/types/host_extensions.rb
|
58
58
|
- app/graphgl/concerns/foreman_puppet/types/hostgroup_extensions.rb
|
59
|
+
- app/graphgl/concerns/foreman_puppet/types/interface_attributes_input_extensions.rb
|
59
60
|
- app/graphgl/concerns/foreman_puppet/types/location_extensions.rb
|
60
61
|
- app/graphgl/concerns/foreman_puppet/types/organization_extensions.rb
|
61
62
|
- app/graphgl/foreman_puppet/types/environment.rb
|
@@ -70,6 +71,7 @@ files:
|
|
70
71
|
- app/helpers/foreman_puppet/puppetclasses_helper.rb
|
71
72
|
- app/helpers/foreman_puppet/template_combinations_helper.rb
|
72
73
|
- app/models/concerns/foreman_puppet/extensions/host.rb
|
74
|
+
- app/models/concerns/foreman_puppet/extensions/host_common.rb
|
73
75
|
- app/models/concerns/foreman_puppet/extensions/hostgroup.rb
|
74
76
|
- app/models/concerns/foreman_puppet/extensions/nic_managed.rb
|
75
77
|
- app/models/concerns/foreman_puppet/extensions/operatingsystem.rb
|
@@ -169,6 +171,7 @@ files:
|
|
169
171
|
- app/views/provisioning_templates/_combination.html.erb
|
170
172
|
- app/views/provisioning_templates/_combinations.html.erb
|
171
173
|
- app/views/smart_proxies/plugins/_puppet.html.erb
|
174
|
+
- app/views/smart_proxies/plugins/_puppet_ca.html.erb
|
172
175
|
- config/api_routes.rb
|
173
176
|
- config/initializers/api_reroute.rb
|
174
177
|
- config/routes.rb
|
@@ -260,6 +263,7 @@ files:
|
|
260
263
|
- test/models/foreman_puppet/report_test.rb
|
261
264
|
- test/models/foreman_puppet/smart_proxy_test.rb
|
262
265
|
- test/models/foreman_puppet/user_test.rb
|
266
|
+
- test/services/foreman_puppet/host_info_providers/config_groups_info_test.rb
|
263
267
|
- test/services/foreman_puppet/host_info_providers/puppet_info_test.rb
|
264
268
|
- test/services/foreman_puppet/input_type/puppet_parameter_input_test.rb
|
265
269
|
- test/test_puppet_helper.rb
|
@@ -312,6 +316,7 @@ signing_key:
|
|
312
316
|
specification_version: 4
|
313
317
|
summary: Adds puppet ENC features
|
314
318
|
test_files:
|
319
|
+
- test/services/foreman_puppet/host_info_providers/config_groups_info_test.rb
|
315
320
|
- test/services/foreman_puppet/host_info_providers/puppet_info_test.rb
|
316
321
|
- test/services/foreman_puppet/input_type/puppet_parameter_input_test.rb
|
317
322
|
- test/integration/foreman_puppet/smartclass_parameter_js_test.rb
|