foreman_puppet 0.0.2 → 0.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 +4 -4
- data/README.md +61 -7
- data/app/controllers/concerns/foreman_puppet/environments_import.rb +1 -1
- data/app/controllers/concerns/foreman_puppet/extensions/hostgroups_controller_extensions.rb +1 -1
- data/app/controllers/concerns/foreman_puppet/extensions/hosts_controller_extensions.rb +1 -1
- data/app/controllers/concerns/foreman_puppet/extensions/parameters_host.rb +3 -10
- data/app/controllers/concerns/foreman_puppet/parameters/puppetclass_lookup_key.rb +2 -2
- data/app/controllers/foreman_puppet/api/v2/config_groups_controller.rb +4 -0
- data/app/controllers/foreman_puppet/api/v2/environments_controller.rb +4 -0
- data/app/controllers/foreman_puppet/api/v2/host_classes_controller.rb +4 -0
- data/app/controllers/foreman_puppet/api/v2/hostgroup_classes_controller.rb +4 -0
- data/app/controllers/foreman_puppet/config_groups_controller.rb +4 -0
- data/app/controllers/foreman_puppet/puppet_smart_proxies_controller.rb +4 -0
- data/app/controllers/foreman_puppet/puppetclass_lookup_keys_controller.rb +2 -2
- data/app/controllers/foreman_puppet/puppetclasses_controller.rb +3 -2
- data/app/helpers/foreman_puppet/environments_helper.rb +1 -1
- data/app/helpers/foreman_puppet/hosts_helper.rb +15 -0
- data/app/helpers/foreman_puppet/puppetclass_lookup_keys_helper.rb +2 -2
- data/app/models/concerns/foreman_puppet/extensions/host.rb +19 -8
- data/app/models/concerns/foreman_puppet/extensions/hostgroup.rb +5 -5
- data/app/models/concerns/foreman_puppet/extensions/provisioning_template.rb +2 -2
- data/app/models/concerns/foreman_puppet/extensions/report.rb +18 -0
- data/app/models/concerns/foreman_puppet/extensions/template_combination.rb +1 -1
- data/app/models/concerns/foreman_puppet/extensions/user.rb +19 -12
- data/app/models/foreman_puppet/environment_class.rb +1 -1
- data/app/models/foreman_puppet/host_class.rb +1 -1
- data/app/models/foreman_puppet/host_puppet_facet.rb +4 -3
- data/app/models/foreman_puppet/puppetclass.rb +13 -1
- data/app/services/foreman_puppet/puppet_class_importer.rb +14 -14
- data/app/views/foreman_puppet/common/_puppetclasses_or_envs_changed.html.erb +62 -0
- data/app/views/foreman_puppet/environments/index.html.erb +1 -1
- data/app/views/foreman_puppet/environments/welcome.html.erb +1 -1
- data/app/views/foreman_puppet/puppetclasses/_classes.html.erb +1 -1
- data/app/views/foreman_puppet/puppetclasses/_selected_classes.html.erb +1 -1
- data/app/views/foreman_puppet/puppetclasses/index.html.erb +1 -1
- data/app/views/hosts/_form_puppet_enc_tab.html.erb +1 -1
- data/app/views/hosts/select_multiple_environment.html.erb +1 -1
- data/db/migrate/20200803113903_migrate_host_type_in_host_config_groups.foreman_puppet.rb +2 -2
- data/lib/foreman_puppet.rb +2 -2
- data/lib/foreman_puppet/engine.rb +7 -3
- data/lib/foreman_puppet/register.rb +4 -3
- data/lib/foreman_puppet/version.rb +1 -1
- data/locale/Makefile +1 -1
- data/locale/en/LC_MESSAGES/foreman_puppet.mo +0 -0
- data/locale/en/foreman_puppet.po +18 -6
- data/locale/foreman_puppet.pot +19 -3
- data/test/controllers/foreman_puppet/api/v2/environments_controller_test.rb +1 -1
- data/test/controllers/foreman_puppet/api/v2/hosts_controller_test.rb +1 -1
- data/test/controllers/foreman_puppet/api/v2/provisioning_templates_controller_test.rb +32 -0
- data/test/controllers/foreman_puppet/environments_controller_test.rb +1 -1
- data/test/factories/foreman_puppet_factories.rb +3 -0
- data/test/integration/foreman_puppet/puppetclass_js_test.rb +3 -0
- data/test/models/foreman_puppet/host_puppet_facet_test.rb +34 -1
- data/test/models/foreman_puppet/host_test.rb +1 -1
- data/test/models/foreman_puppet/provisioning_template_test.rb +16 -16
- data/test/models/foreman_puppet/report_test.rb +21 -0
- data/test/models/foreman_puppet/user_test.rb +29 -0
- data/test/services/foreman_puppet/host_info_providers/puppet_info_test.rb +159 -161
- data/test/unit/foreman_puppet/puppet_class_importer_test.rb +13 -1
- metadata +48 -42
- data/locale/en/foreman_puppet.edit.po +0 -911
- data/locale/en/foreman_puppet.po.time_stamp +0 -0
data/locale/foreman_puppet.pot
CHANGED
@@ -8,8 +8,8 @@ msgid ""
|
|
8
8
|
msgstr ""
|
9
9
|
"Project-Id-Version: foreman_puppet 1.0.0\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date: 2021-02-
|
12
|
-
"PO-Revision-Date: 2021-02-
|
11
|
+
"POT-Creation-Date: 2021-02-03 18:00+0100\n"
|
12
|
+
"PO-Revision-Date: 2021-02-03 18:00+0100\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15
15
|
"Language: \n"
|
@@ -1071,6 +1071,22 @@ msgstr ""
|
|
1071
1071
|
msgid "Loading parameters..."
|
1072
1072
|
msgstr ""
|
1073
1073
|
|
1074
|
+
#: action_names.rb:2
|
1075
|
+
msgid "Action with sub plans"
|
1076
|
+
msgstr ""
|
1077
|
+
|
1078
|
+
#: action_names.rb:3
|
1079
|
+
msgid "Import facts"
|
1080
|
+
msgstr ""
|
1081
|
+
|
1082
|
+
#: action_names.rb:4
|
1083
|
+
msgid "Import Puppet classes"
|
1084
|
+
msgstr ""
|
1085
|
+
|
1086
|
+
#: action_names.rb:5
|
1087
|
+
msgid "Remote action:"
|
1088
|
+
msgstr ""
|
1089
|
+
|
1074
1090
|
#: gemspec.rb:2
|
1075
|
-
msgid "
|
1091
|
+
msgid "Allow assigning Puppet environmets and classes to the Foreman Hosts."
|
1076
1092
|
msgstr ""
|
@@ -335,7 +335,7 @@ module ForemanPuppet
|
|
335
335
|
# and should result in a disk_tree of {"env1" => ["a", "b", "c"],"env2" => ["a", "b", "c"]}
|
336
336
|
envs = HashWithIndifferentAccess.new(env1: %w[a b c], env2: %w[a b c])
|
337
337
|
pcs = [HashWithIndifferentAccess.new('a' => { 'name' => 'a', 'module' => nil, 'params' => { 'key' => 'special' } })]
|
338
|
-
classes =
|
338
|
+
classes = pcs.map { |k| [k.keys.first, Foreman::ImporterPuppetclass.new(k.values.first)] }.to_h
|
339
339
|
Environment.expects(:puppetEnvs).returns(envs).at_least(0)
|
340
340
|
ProxyAPI::Puppet.any_instance.stubs(:environments).returns(%w[env1 env2])
|
341
341
|
ProxyAPI::Puppet.any_instance.stubs(:classes).returns(classes)
|
@@ -92,7 +92,7 @@ module ForemanPuppet
|
|
92
92
|
assert_response :success
|
93
93
|
response = ActiveSupport::JSON.decode(@response.body)
|
94
94
|
puppet_class = response['data']['classes'].keys
|
95
|
-
assert_equal host.puppetclasses.map(&:name), puppet_class
|
95
|
+
assert_equal host.puppet.puppetclasses.map(&:name), puppet_class
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'test_puppet_helper'
|
2
|
+
|
3
|
+
module ForemanPuppet
|
4
|
+
module Api
|
5
|
+
module V2
|
6
|
+
class ProvisioningTemplatesControllerTest < ActionController::TestCase
|
7
|
+
tests ::Api::V2::ProvisioningTemplatesController
|
8
|
+
|
9
|
+
let(:environment) { FactoryBot.create(:environment) }
|
10
|
+
|
11
|
+
test 'should create provisioning template with template_combinations' do
|
12
|
+
name = RFauxFactory.gen_alpha
|
13
|
+
valid_attrs = {
|
14
|
+
name: name, template: RFauxFactory.gen_alpha, template_kind_id: template_kinds(:ipxe).id,
|
15
|
+
template_combinations_attributes: [
|
16
|
+
{ hostgroup_id: hostgroups(:common).id, environment_id: environment.id },
|
17
|
+
]
|
18
|
+
}
|
19
|
+
post :create, params: { provisioning_template: valid_attrs }
|
20
|
+
assert_response :created
|
21
|
+
response = ActiveSupport::JSON.decode(@response.body)
|
22
|
+
assert response.key?('id')
|
23
|
+
assert response.key?('template_combinations')
|
24
|
+
template_combinations = response['template_combinations']
|
25
|
+
assert_equal 1, template_combinations.length
|
26
|
+
template_combination = TemplateCombination.find(template_combinations[0]['id'])
|
27
|
+
assert_equal response['id'], template_combination.provisioning_template_id
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -215,7 +215,7 @@ module ForemanPuppet
|
|
215
215
|
# and should result in a disk_tree of {"env1" => ["a", "b", "c"],"env2" => ["a", "b", "c"]}
|
216
216
|
envs = HashWithIndifferentAccess.new(env1: %w[a b c], env2: %w[a b c])
|
217
217
|
pcs = [HashWithIndifferentAccess.new('a' => { 'name' => 'a', 'module' => '', 'params' => {} })]
|
218
|
-
classes =
|
218
|
+
classes = pcs.map { |k| [k.keys.first, Foreman::ImporterPuppetclass.new(k.values.first)] }.to_h
|
219
219
|
Environment.expects(:puppetEnvs).returns(envs).at_least(0)
|
220
220
|
ProxyAPI::Puppet.any_instance.stubs(:environments).returns(%w[env1 env2])
|
221
221
|
ProxyAPI::Puppet.any_instance.stubs(:classes).returns(classes)
|
@@ -105,11 +105,14 @@ FactoryBot.define do
|
|
105
105
|
evaluator.parameter_count.times do
|
106
106
|
evaluator.environments.each do |env|
|
107
107
|
FactoryBot.create :puppetclass_lookup_key, override: false, puppetclass: pc, environment: env
|
108
|
+
# for Host#managed validation, once extracted_from_core? we can remove
|
109
|
+
env.reload
|
108
110
|
end
|
109
111
|
end
|
110
112
|
else
|
111
113
|
evaluator.environments.each do |env|
|
112
114
|
FactoryBot.create :environment_class, puppetclass: pc, environment: env unless env.nil?
|
115
|
+
env.reload
|
113
116
|
end
|
114
117
|
end
|
115
118
|
end
|
@@ -14,6 +14,7 @@ module ForemanPuppet
|
|
14
14
|
visit puppetclasses_path
|
15
15
|
click_link 'vim'
|
16
16
|
assert page.has_no_link? 'Common'
|
17
|
+
find(:xpath, "//a[@title='Select All']").hover
|
17
18
|
find(:xpath, "//a[@data-original-title='Select All']").click
|
18
19
|
assert_submit_button(puppetclasses_path)
|
19
20
|
assert page.has_link? 'vim'
|
@@ -24,6 +25,7 @@ module ForemanPuppet
|
|
24
25
|
smart_class_parameter_long = FactoryBot.create(:puppetclass_lookup_key, puppetclass: puppetclass, variable: 'a' * 50)
|
25
26
|
visit edit_puppetclass_path(puppetclass)
|
26
27
|
click_link 'Smart Class Parameter'
|
28
|
+
page.find("#pill_#{smart_class_parameter_long.id}-#{smart_class_parameter_long.key}").hover
|
27
29
|
assert_equal smart_class_parameter_long.key, page.find("#pill_#{smart_class_parameter_long.id}-#{smart_class_parameter_long.key}")['data-original-title']
|
28
30
|
end
|
29
31
|
|
@@ -31,6 +33,7 @@ module ForemanPuppet
|
|
31
33
|
smart_class_parameter_short = FactoryBot.create(:puppetclass_lookup_key, puppetclass: puppetclass, variable: 'a' * 40)
|
32
34
|
visit edit_puppetclass_path(puppetclass)
|
33
35
|
click_link 'Smart Class Parameter'
|
36
|
+
page.find("#pill_#{smart_class_parameter_short.id}-#{smart_class_parameter_short.key}").hover
|
34
37
|
assert_empty page.find("#pill_#{smart_class_parameter_short.id}-#{smart_class_parameter_short.key}")['data-original-title']
|
35
38
|
end
|
36
39
|
end
|
@@ -1,13 +1,46 @@
|
|
1
1
|
require 'test_puppet_helper'
|
2
2
|
|
3
3
|
module ForemanPuppet
|
4
|
-
class
|
4
|
+
class HostPuppetFacetTest < ActiveSupport::TestCase
|
5
5
|
let(:environment) { FactoryBot.create(:environment) }
|
6
6
|
let(:diff_environment) { FactoryBot.create(:environment) }
|
7
7
|
let(:puppetclass_both) { FactoryBot.create(:puppetclass, environments: [environment, diff_environment]) }
|
8
8
|
let(:config_group) { FactoryBot.create(:config_group, :with_puppetclass, class_environments: [environment]) }
|
9
9
|
let(:config_group_diff_env) { FactoryBot.create(:config_group, :with_puppetclass, class_environments: [diff_environment]) }
|
10
10
|
|
11
|
+
describe '.populate_fields_from_facts' do
|
12
|
+
test 'populate environment without any puppet info' do
|
13
|
+
h = FactoryBot.create(:host)
|
14
|
+
parser = stub(environment: environment)
|
15
|
+
HostPuppetFacet.populate_fields_from_facts(h, parser, 'puppet', FactoryBot.create(:puppet_smart_proxy))
|
16
|
+
assert_equal environment, h.puppet.environment
|
17
|
+
end
|
18
|
+
|
19
|
+
test 'changes puppet environment when setting says to do so' do
|
20
|
+
Setting[:update_environment_from_facts] = true
|
21
|
+
h = FactoryBot.create(:host, :with_puppet_enc)
|
22
|
+
parser = stub(environment: environment)
|
23
|
+
HostPuppetFacet.populate_fields_from_facts(h, parser, 'puppet', FactoryBot.create(:puppet_smart_proxy))
|
24
|
+
assert_equal environment, h.puppet.environment
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'keep puppet environment when parser has empty environment' do
|
28
|
+
Setting[:update_environment_from_facts] = true
|
29
|
+
h = FactoryBot.create(:host, :with_puppet_enc)
|
30
|
+
parser = stub(environment: nil)
|
31
|
+
HostPuppetFacet.populate_fields_from_facts(h, parser, 'puppet', FactoryBot.create(:puppet_smart_proxy))
|
32
|
+
assert_not_nil h.puppet.environment
|
33
|
+
end
|
34
|
+
|
35
|
+
test 'do not update puppet environment when setting says not to' do
|
36
|
+
Setting[:update_environment_from_facts] = false
|
37
|
+
h = FactoryBot.create(:host, :with_puppet_enc)
|
38
|
+
parser = stub(environment: environment)
|
39
|
+
HostPuppetFacet.populate_fields_from_facts(h, parser, 'puppet', FactoryBot.create(:puppet_smart_proxy))
|
40
|
+
assert_not_equal environment, h.puppet.environment
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
11
44
|
describe '#classes_in_groups' do
|
12
45
|
test 'classes_in_groups should return the puppetclasses of a config group only if it is in host environment' do
|
13
46
|
host = FactoryBot.create(:host, :with_puppet_enc,
|
@@ -241,7 +241,7 @@ module ForemanPuppet
|
|
241
241
|
|
242
242
|
host.puppet.environment = env_with_other_tax
|
243
243
|
assert_not host.valid?
|
244
|
-
assert_match(/is not assigned/, host.errors[
|
244
|
+
assert_match(/is not assigned/, host.errors['puppet.environment_id'].first)
|
245
245
|
end
|
246
246
|
|
247
247
|
test 'when saving a host, require puppet environment if puppet master is set' do
|
@@ -77,47 +77,47 @@ module ForemanPuppet
|
|
77
77
|
test 'find_template finds a matching template with hg and env' do
|
78
78
|
assert_equal @ct1.name,
|
79
79
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
operatingsystem_id: @os1.id,
|
81
|
+
hostgroup_id: @hg1.id,
|
82
|
+
environment_id: @ev1.id }).name
|
83
83
|
end
|
84
84
|
|
85
85
|
test 'find_template finds a matching template with hg only' do
|
86
86
|
assert_equal @ct2.name,
|
87
87
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
88
|
-
|
89
|
-
|
88
|
+
operatingsystem_id: @os1.id,
|
89
|
+
hostgroup_id: @hg1.id }).name
|
90
90
|
end
|
91
91
|
|
92
92
|
test 'find_template finds a matching template with hg and mismatched env' do
|
93
93
|
assert_equal @ct2.name,
|
94
94
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
operatingsystem_id: @os1.id,
|
96
|
+
hostgroup_id: @hg1.id,
|
97
|
+
environment_id: @ev3.id }).name
|
98
98
|
end
|
99
99
|
|
100
100
|
test 'find_template finds a matching template with env only' do
|
101
101
|
assert_equal @ct3.name,
|
102
102
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
103
|
-
|
104
|
-
|
103
|
+
operatingsystem_id: @os1.id,
|
104
|
+
environment_id: @ev1.id }).name
|
105
105
|
end
|
106
106
|
|
107
107
|
test 'find_template finds a matching template with env and mismatched hg' do
|
108
108
|
assert_equal @ct3.name,
|
109
109
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
110
|
-
|
111
|
-
|
112
|
-
|
110
|
+
operatingsystem_id: @os1.id,
|
111
|
+
hostgroup_id: @hg3.id,
|
112
|
+
environment_id: @ev1.id }).name
|
113
113
|
end
|
114
114
|
|
115
115
|
test 'find_template finds the default template when hg and env do not match' do
|
116
116
|
assert_equal @ctd.name,
|
117
117
|
ProvisioningTemplate.find_template({ kind: @tk.name,
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
operatingsystem_id: @os1.id,
|
119
|
+
hostgroup_id: @hg3.id,
|
120
|
+
environment_id: @ev3.id }).name
|
121
121
|
end
|
122
122
|
end
|
123
123
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_puppet_helper'
|
2
|
+
|
3
|
+
module ForemanPuppet
|
4
|
+
class TestReport < ::Report
|
5
|
+
end
|
6
|
+
|
7
|
+
class ReportTest < ActiveSupport::TestCase
|
8
|
+
test 'Inherited children can search by environment' do
|
9
|
+
assert_nothing_raised do
|
10
|
+
TestReport.search_for('environment = blah')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# to include the environment search
|
15
|
+
test 'Inherited children can search' do
|
16
|
+
assert_nothing_raised do
|
17
|
+
TestReport.search_for('blah')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_puppet_helper'
|
2
|
+
|
3
|
+
module ForemanPuppet
|
4
|
+
class UserTest < ActiveSupport::TestCase
|
5
|
+
describe '#visible_environments' do
|
6
|
+
let(:environment) { FactoryBot.create(:environment) }
|
7
|
+
setup { environment }
|
8
|
+
|
9
|
+
# These will need refactor when the environment fixtures will be gone
|
10
|
+
test 'should show the list of environments visible as admin user' do
|
11
|
+
# Admin user sees all environments - including the ones without taxonomies
|
12
|
+
env_names = %w[production global_puppetmaster testing] + [environment.name]
|
13
|
+
assert_equal env_names.sort, ::User.current.visible_environments.sort
|
14
|
+
end
|
15
|
+
|
16
|
+
test 'should show the list of environments visible as inherited admin user' do
|
17
|
+
::User.current = FactoryBot.create(:user, usergroups: [FactoryBot.create(:usergroup, admin: true)]).reload
|
18
|
+
env_names = %w[production global_puppetmaster testing] + [environment.name]
|
19
|
+
assert_same_elements env_names, ::User.current.visible_environments
|
20
|
+
end
|
21
|
+
|
22
|
+
test 'should show the list of environments visible as non-admin user' do
|
23
|
+
# Non-admin user only sees environments in a taxonomy at least
|
24
|
+
setup_user 'view', 'environments'
|
25
|
+
assert_equal [environment.name], ::User.current.visible_environments
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -37,9 +37,9 @@ module ForemanPuppet
|
|
37
37
|
|
38
38
|
value = as_admin do
|
39
39
|
LookupValue.create! lookup_key_id: puppetclass_lookup_key.id,
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
match: "organization=#{taxonomies(:organization1)},location=#{taxonomies(:location1)}",
|
41
|
+
value: 'test',
|
42
|
+
omit: false
|
43
43
|
end
|
44
44
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
45
45
|
|
@@ -78,19 +78,17 @@ module ForemanPuppet
|
|
78
78
|
host = FactoryBot.build_stubbed(:host, :with_puppet_enc, environment: environment, puppetclasses: [puppetclass])
|
79
79
|
Classification::MatchesGenerator.any_instance.expects(:attr_to_value).with('comment').returns('override')
|
80
80
|
|
81
|
-
|
82
|
-
{
|
83
|
-
lkey.
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
managed: false,
|
89
|
-
},
|
81
|
+
expected = {
|
82
|
+
lkey.id => {
|
83
|
+
lkey.key => {
|
84
|
+
value: 'overridden value',
|
85
|
+
element: 'comment',
|
86
|
+
element_name: 'override',
|
87
|
+
managed: false,
|
90
88
|
},
|
91
89
|
},
|
92
|
-
|
93
|
-
)
|
90
|
+
}
|
91
|
+
assert_equal(expected, Classification::ValuesHashQuery.values_hash(host, LookupKey.where(id: [lkey])).raw)
|
94
92
|
|
95
93
|
Classification::MatchesGenerator.any_instance.unstub(:attr_to_value)
|
96
94
|
end
|
@@ -108,9 +106,9 @@ module ForemanPuppet
|
|
108
106
|
puppetclass: puppetclass, path: "location\ncomment")
|
109
107
|
as_admin do
|
110
108
|
LookupValue.create! lookup_key_id: lkey.id,
|
111
|
-
|
112
|
-
|
113
|
-
|
109
|
+
match: "location=#{taxonomies(:location1)}",
|
110
|
+
value: 'test',
|
111
|
+
omit: true
|
114
112
|
end
|
115
113
|
|
116
114
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
@@ -124,9 +122,9 @@ module ForemanPuppet
|
|
124
122
|
path: "location\ncomment")
|
125
123
|
lvalue = as_admin do
|
126
124
|
LookupValue.create! lookup_key_id: lkey.id,
|
127
|
-
|
128
|
-
|
129
|
-
|
125
|
+
match: "location=#{taxonomies(:location1)}",
|
126
|
+
value: 'test',
|
127
|
+
omit: false
|
130
128
|
end
|
131
129
|
|
132
130
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
@@ -142,22 +140,22 @@ module ForemanPuppet
|
|
142
140
|
|
143
141
|
as_admin do
|
144
142
|
LookupValue.create! lookup_key_id: key.id,
|
145
|
-
|
146
|
-
|
147
|
-
|
143
|
+
match: "location=#{taxonomies(:location1)}",
|
144
|
+
value: { example: { a: 'test' } },
|
145
|
+
omit: true
|
148
146
|
end
|
149
147
|
as_admin do
|
150
148
|
LookupValue.create! lookup_key_id: key.id,
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
match: "organization=#{taxonomies(:organization1)}",
|
150
|
+
value: { example: { b: 'test2' } },
|
151
|
+
omit: true
|
154
152
|
end
|
155
153
|
|
156
154
|
as_admin do
|
157
155
|
LookupValue.create! lookup_key_id: key.id,
|
158
|
-
|
159
|
-
|
160
|
-
|
156
|
+
match: "os=#{operatingsystems(:redhat)}",
|
157
|
+
value: { example: { a: 'test3' } },
|
158
|
+
omit: true
|
161
159
|
end
|
162
160
|
|
163
161
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
@@ -184,13 +182,13 @@ module ForemanPuppet
|
|
184
182
|
|
185
183
|
as_admin do
|
186
184
|
LookupValue.create! lookup_key_id: key.id,
|
187
|
-
|
188
|
-
|
189
|
-
|
185
|
+
match: "hostgroup=#{parent_hostgroup}",
|
186
|
+
value: ['parent'],
|
187
|
+
omit: false
|
190
188
|
LookupValue.create! lookup_key_id: key.id,
|
191
|
-
|
192
|
-
|
193
|
-
|
189
|
+
match: "organization=#{taxonomies(:organization1)}",
|
190
|
+
value: ['org'],
|
191
|
+
omit: false
|
194
192
|
end
|
195
193
|
|
196
194
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -218,13 +216,13 @@ module ForemanPuppet
|
|
218
216
|
|
219
217
|
as_admin do
|
220
218
|
LookupValue.create! lookup_key_id: key.id,
|
221
|
-
|
222
|
-
|
223
|
-
|
219
|
+
match: "organization=#{parent_org}",
|
220
|
+
value: ['parent'],
|
221
|
+
omit: false
|
224
222
|
LookupValue.create! lookup_key_id: key.id,
|
225
|
-
|
226
|
-
|
227
|
-
|
223
|
+
match: "location=#{taxonomies(:location1)}",
|
224
|
+
value: ['loc'],
|
225
|
+
omit: false
|
228
226
|
end
|
229
227
|
|
230
228
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -252,13 +250,13 @@ module ForemanPuppet
|
|
252
250
|
|
253
251
|
as_admin do
|
254
252
|
LookupValue.create! lookup_key_id: key.id,
|
255
|
-
|
256
|
-
|
257
|
-
|
253
|
+
match: "location=#{parent_loc}",
|
254
|
+
value: ['parent'],
|
255
|
+
omit: false
|
258
256
|
LookupValue.create! lookup_key_id: key.id,
|
259
|
-
|
260
|
-
|
261
|
-
|
257
|
+
match: "organization=#{taxonomies(:organization1)}",
|
258
|
+
value: ['org'],
|
259
|
+
omit: false
|
262
260
|
end
|
263
261
|
|
264
262
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -285,17 +283,17 @@ module ForemanPuppet
|
|
285
283
|
|
286
284
|
as_admin do
|
287
285
|
LookupValue.create! lookup_key_id: key.id,
|
288
|
-
|
289
|
-
|
290
|
-
|
286
|
+
match: "hostgroup=#{parent_hostgroup}",
|
287
|
+
value: ['parent'],
|
288
|
+
omit: false
|
291
289
|
LookupValue.create! lookup_key_id: key.id,
|
292
|
-
|
293
|
-
|
294
|
-
|
290
|
+
match: "hostgroup=#{child_hostgroup}",
|
291
|
+
value: ['child'],
|
292
|
+
omit: false
|
295
293
|
LookupValue.create! lookup_key_id: key.id,
|
296
|
-
|
297
|
-
|
298
|
-
|
294
|
+
match: "organization=#{taxonomies(:organization1)}",
|
295
|
+
value: ['org'],
|
296
|
+
omit: false
|
299
297
|
end
|
300
298
|
|
301
299
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -323,17 +321,17 @@ module ForemanPuppet
|
|
323
321
|
|
324
322
|
as_admin do
|
325
323
|
LookupValue.create! lookup_key_id: key.id,
|
326
|
-
|
327
|
-
|
328
|
-
|
324
|
+
match: "organization=#{parent_org}",
|
325
|
+
value: ['parent'],
|
326
|
+
omit: false
|
329
327
|
LookupValue.create! lookup_key_id: key.id,
|
330
|
-
|
331
|
-
|
332
|
-
|
328
|
+
match: "organization=#{child_org}",
|
329
|
+
value: ['child'],
|
330
|
+
omit: false
|
333
331
|
LookupValue.create! lookup_key_id: key.id,
|
334
|
-
|
335
|
-
|
336
|
-
|
332
|
+
match: "location=#{taxonomies(:location1)}",
|
333
|
+
value: ['loc'],
|
334
|
+
omit: false
|
337
335
|
end
|
338
336
|
|
339
337
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -361,17 +359,17 @@ module ForemanPuppet
|
|
361
359
|
|
362
360
|
as_admin do
|
363
361
|
LookupValue.create! lookup_key_id: key.id,
|
364
|
-
|
365
|
-
|
366
|
-
|
362
|
+
match: "location=#{parent_loc}",
|
363
|
+
value: ['parent'],
|
364
|
+
omit: false
|
367
365
|
LookupValue.create! lookup_key_id: key.id,
|
368
|
-
|
369
|
-
|
370
|
-
|
366
|
+
match: "location=#{child_loc}",
|
367
|
+
value: ['child'],
|
368
|
+
omit: false
|
371
369
|
LookupValue.create! lookup_key_id: key.id,
|
372
|
-
|
373
|
-
|
374
|
-
|
370
|
+
match: "organization=#{taxonomies(:organization1)}",
|
371
|
+
value: ['org'],
|
372
|
+
omit: false
|
375
373
|
end
|
376
374
|
|
377
375
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -398,17 +396,17 @@ module ForemanPuppet
|
|
398
396
|
|
399
397
|
value2 = as_admin do
|
400
398
|
LookupValue.create! lookup_key_id: key.id,
|
401
|
-
|
402
|
-
|
403
|
-
|
399
|
+
match: "hostgroup=#{parent_hostgroup}",
|
400
|
+
value: 'parent',
|
401
|
+
omit: false
|
404
402
|
LookupValue.create! lookup_key_id: key.id,
|
405
|
-
|
406
|
-
|
407
|
-
|
403
|
+
match: "hostgroup=#{child_hostgroup}",
|
404
|
+
value: 'child',
|
405
|
+
omit: false
|
408
406
|
LookupValue.create! lookup_key_id: key.id,
|
409
|
-
|
410
|
-
|
411
|
-
|
407
|
+
match: "organization=#{taxonomies(:organization1)}",
|
408
|
+
value: 'org',
|
409
|
+
omit: false
|
412
410
|
end
|
413
411
|
|
414
412
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -434,17 +432,17 @@ module ForemanPuppet
|
|
434
432
|
|
435
433
|
value2 = as_admin do
|
436
434
|
LookupValue.create! lookup_key_id: key.id,
|
437
|
-
|
438
|
-
|
439
|
-
|
435
|
+
match: "organization=#{parent_org}",
|
436
|
+
value: 'parent',
|
437
|
+
omit: false
|
440
438
|
LookupValue.create! lookup_key_id: key.id,
|
441
|
-
|
442
|
-
|
443
|
-
|
439
|
+
match: "organization=#{child_org}",
|
440
|
+
value: 'child',
|
441
|
+
omit: false
|
444
442
|
LookupValue.create! lookup_key_id: key.id,
|
445
|
-
|
446
|
-
|
447
|
-
|
443
|
+
match: "location=#{taxonomies(:location1)}",
|
444
|
+
value: 'loc',
|
445
|
+
omit: false
|
448
446
|
end
|
449
447
|
|
450
448
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -470,17 +468,17 @@ module ForemanPuppet
|
|
470
468
|
|
471
469
|
value2 = as_admin do
|
472
470
|
LookupValue.create! lookup_key_id: key.id,
|
473
|
-
|
474
|
-
|
475
|
-
|
471
|
+
match: "location=#{parent_loc}",
|
472
|
+
value: 'parent',
|
473
|
+
omit: false
|
476
474
|
LookupValue.create! lookup_key_id: key.id,
|
477
|
-
|
478
|
-
|
479
|
-
|
475
|
+
match: "location=#{child_loc}",
|
476
|
+
value: 'child',
|
477
|
+
omit: false
|
480
478
|
LookupValue.create! lookup_key_id: key.id,
|
481
|
-
|
482
|
-
|
483
|
-
|
479
|
+
match: "organization=#{taxonomies(:organization1)}",
|
480
|
+
value: 'org',
|
481
|
+
omit: false
|
484
482
|
end
|
485
483
|
|
486
484
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -506,17 +504,17 @@ module ForemanPuppet
|
|
506
504
|
|
507
505
|
value2 = as_admin do
|
508
506
|
LookupValue.create! lookup_key_id: key.id,
|
509
|
-
|
510
|
-
|
511
|
-
|
507
|
+
match: "hostgroup=#{parent_hostgroup}",
|
508
|
+
value: 'parent',
|
509
|
+
omit: false
|
512
510
|
LookupValue.create! lookup_key_id: key.id,
|
513
|
-
|
514
|
-
|
515
|
-
|
511
|
+
match: "location=#{taxonomies(:location1)}",
|
512
|
+
value: 'loc',
|
513
|
+
omit: true
|
516
514
|
LookupValue.create! lookup_key_id: key.id,
|
517
|
-
|
518
|
-
|
519
|
-
|
515
|
+
match: "hostgroup=#{child_hostgroup}",
|
516
|
+
value: 'child',
|
517
|
+
omit: false
|
520
518
|
end
|
521
519
|
|
522
520
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -544,17 +542,17 @@ module ForemanPuppet
|
|
544
542
|
|
545
543
|
value2 = as_admin do
|
546
544
|
LookupValue.create! lookup_key_id: key.id,
|
547
|
-
|
548
|
-
|
549
|
-
|
545
|
+
match: "organization=#{parent_org}",
|
546
|
+
value: 'parent',
|
547
|
+
omit: false
|
550
548
|
LookupValue.create! lookup_key_id: key.id,
|
551
|
-
|
552
|
-
|
553
|
-
|
549
|
+
match: "location=#{taxonomies(:location1)}",
|
550
|
+
value: 'loc',
|
551
|
+
omit: true
|
554
552
|
LookupValue.create! lookup_key_id: key.id,
|
555
|
-
|
556
|
-
|
557
|
-
|
553
|
+
match: "organization=#{child_org}",
|
554
|
+
value: 'child',
|
555
|
+
omit: false
|
558
556
|
end
|
559
557
|
|
560
558
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -582,17 +580,17 @@ module ForemanPuppet
|
|
582
580
|
|
583
581
|
value2 = as_admin do
|
584
582
|
LookupValue.create! lookup_key_id: key.id,
|
585
|
-
|
586
|
-
|
587
|
-
|
583
|
+
match: "location=#{parent_loc}",
|
584
|
+
value: 'parent',
|
585
|
+
omit: false
|
588
586
|
LookupValue.create! lookup_key_id: key.id,
|
589
|
-
|
590
|
-
|
591
|
-
|
587
|
+
match: "organization=#{taxonomies(:organization1)}",
|
588
|
+
value: 'org',
|
589
|
+
omit: true
|
592
590
|
LookupValue.create! lookup_key_id: key.id,
|
593
|
-
|
594
|
-
|
595
|
-
|
591
|
+
match: "location=#{child_loc}",
|
592
|
+
value: 'child',
|
593
|
+
omit: false
|
596
594
|
end
|
597
595
|
|
598
596
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -608,13 +606,13 @@ module ForemanPuppet
|
|
608
606
|
|
609
607
|
value2 = as_admin do
|
610
608
|
LookupValue.create! lookup_key_id: key.id,
|
611
|
-
|
612
|
-
|
613
|
-
|
609
|
+
match: "location=#{taxonomies(:location1)}",
|
610
|
+
value: 'test_incorrect',
|
611
|
+
omit: false
|
614
612
|
LookupValue.create! lookup_key_id: key.id,
|
615
|
-
|
616
|
-
|
617
|
-
|
613
|
+
match: "organization=#{taxonomies(:organization1)},location=#{taxonomies(:location1)}",
|
614
|
+
value: 'test_correct',
|
615
|
+
omit: false
|
618
616
|
end
|
619
617
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
620
618
|
key.reload
|
@@ -630,15 +628,15 @@ module ForemanPuppet
|
|
630
628
|
|
631
629
|
value = as_admin do
|
632
630
|
LookupValue.create! lookup_key_id: key.id,
|
633
|
-
|
634
|
-
|
635
|
-
|
631
|
+
match: "organization=#{taxonomies(:organization1)},location=#{taxonomies(:location1)}",
|
632
|
+
value: 'test_correct',
|
633
|
+
omit: false
|
636
634
|
end
|
637
635
|
as_admin do
|
638
636
|
LookupValue.create! lookup_key_id: key.id,
|
639
|
-
|
640
|
-
|
641
|
-
|
637
|
+
match: "organization=#{taxonomies(:organization1)}",
|
638
|
+
value: 'test_incorrect',
|
639
|
+
omit: false
|
642
640
|
end
|
643
641
|
enc = HostInfoProviders::PuppetInfo.new(@host).puppetclass_parameters
|
644
642
|
|
@@ -662,22 +660,22 @@ module ForemanPuppet
|
|
662
660
|
|
663
661
|
as_admin do
|
664
662
|
LookupValue.create! lookup_key_id: key.id,
|
665
|
-
|
666
|
-
|
667
|
-
|
663
|
+
match: "hostgroup=#{parent_hostgroup},organization=#{taxonomies(:organization1)}",
|
664
|
+
value: 'parent',
|
665
|
+
omit: false
|
668
666
|
end
|
669
667
|
value2 = as_admin do
|
670
668
|
LookupValue.create! lookup_key_id: key.id,
|
671
|
-
|
672
|
-
|
673
|
-
|
669
|
+
match: "hostgroup=#{child_hostgroup},organization=#{taxonomies(:organization1)}",
|
670
|
+
value: 'child',
|
671
|
+
omit: false
|
674
672
|
end
|
675
673
|
|
676
674
|
as_admin do
|
677
675
|
LookupValue.create! lookup_key_id: key.id,
|
678
|
-
|
679
|
-
|
680
|
-
|
676
|
+
match: "location=#{taxonomies(:location1)}",
|
677
|
+
value: 'loc',
|
678
|
+
omit: false
|
681
679
|
end
|
682
680
|
|
683
681
|
enc = HostInfoProviders::PuppetInfo.new(host).puppetclass_parameters
|
@@ -694,21 +692,21 @@ module ForemanPuppet
|
|
694
692
|
|
695
693
|
as_admin do
|
696
694
|
LookupValue.create! lookup_key_id: key.id,
|
697
|
-
|
698
|
-
|
699
|
-
|
695
|
+
match: "location=#{taxonomies(:location1)}",
|
696
|
+
value: '<%= [2,3] %>',
|
697
|
+
omit: false
|
700
698
|
end
|
701
699
|
as_admin do
|
702
700
|
LookupValue.create! lookup_key_id: key.id,
|
703
|
-
|
704
|
-
|
705
|
-
|
701
|
+
match: "organization=#{taxonomies(:organization1)}",
|
702
|
+
value: '<%= [3,4] %>',
|
703
|
+
omit: false
|
706
704
|
end
|
707
705
|
as_admin do
|
708
706
|
LookupValue.create! lookup_key_id: key.id,
|
709
|
-
|
710
|
-
|
711
|
-
|
707
|
+
match: "os=#{operatingsystems(:redhat)}",
|
708
|
+
value: '<%= [4,5] %>',
|
709
|
+
omit: false
|
712
710
|
end
|
713
711
|
|
714
712
|
key.reload
|
@@ -764,9 +762,9 @@ module ForemanPuppet
|
|
764
762
|
|
765
763
|
as_admin do
|
766
764
|
LookupValue.create! lookup_key_id: key.id,
|
767
|
-
|
768
|
-
|
769
|
-
|
765
|
+
match: "location=#{taxonomies(:location1)}",
|
766
|
+
value: '<%= "c" %>',
|
767
|
+
omit: false
|
770
768
|
end
|
771
769
|
|
772
770
|
key.reload
|