foreman_salt 13.1.0 → 13.2.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/app/controllers/foreman_salt/api/v2/jobs_controller.rb +3 -0
- data/app/controllers/foreman_salt/minions_controller.rb +1 -0
- data/db/seeds.d/75-salt_seeds.rb +0 -11
- data/db/seeds.d/76-job_templates.rb +2 -2
- data/lib/foreman_salt/plugin.rb +5 -0
- data/lib/foreman_salt/version.rb +1 -1
- data/test/functional/minions_controller_test.rb +51 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01e9df6381c6f711af6e6a24f692bbb6241d073f67e9914087982e4ea5f97301
|
4
|
+
data.tar.gz: 9c041d7bacf1da063ed09dfc087267541ef678b5eeda256fcf69fe258e37e3f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 859ca388dcebfc6614017feacbf20ebf52c4b1e3dbc8191d5378af6ec1dc97a40a52eba6897bdb858860bdc7315724eecdbb4478980c396cd5775122721a45b0
|
7
|
+
data.tar.gz: b3ad5e94db738522e58df0fdec82fea191f6b4518a33c818af79a2c60df2784b37f0c37dfff5224de57fe686ada2fce0ad6ffe088fed376414a4b920d473b4e9
|
@@ -7,6 +7,9 @@ module ForemanSalt
|
|
7
7
|
include ::Foreman::Controller::SmartProxyAuth
|
8
8
|
add_smart_proxy_filters :upload, :features => 'Salt'
|
9
9
|
|
10
|
+
include ::Foreman::Controller::FilterParameters
|
11
|
+
filter_parameters :job
|
12
|
+
|
10
13
|
def_param_group :job do
|
11
14
|
param :job, Hash, :required => true, :action_aware => true do
|
12
15
|
param :job_id, Integer, :required => true, :desc => N_('JID')
|
@@ -12,6 +12,7 @@ module ForemanSalt
|
|
12
12
|
enc['classes'] = @minion.salt_modules_for_enc
|
13
13
|
|
14
14
|
pillars = @minion.info['parameters']
|
15
|
+
pillars['saltenv'] = env
|
15
16
|
pillars.merge!(@minion.salt_params)
|
16
17
|
|
17
18
|
enc['parameters'] = Setting[:salt_namespace_pillars] ? { 'foreman' => pillars } : pillars
|
data/db/seeds.d/75-salt_seeds.rb
CHANGED
@@ -1,13 +1,2 @@
|
|
1
1
|
# Create feature for Smart Proxy
|
2
2
|
Feature.where(:name => 'Salt').first_or_create
|
3
|
-
|
4
|
-
# Add new viewing permissions to Viewer role
|
5
|
-
viewer = Role.find_by_name('Viewer')
|
6
|
-
|
7
|
-
if viewer
|
8
|
-
Permission.where(:name => [:view_smart_proxies_salt_keys, :view_smart_proxies_salt_autosign, :view_salt_modules]).each do |permission|
|
9
|
-
viewer.ignore_locking do
|
10
|
-
viewer.add_permissions!([permission.name]) unless viewer.permissions.include? permission
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -22,8 +22,8 @@ if ForemanSalt.with_remote_execution?
|
|
22
22
|
:default => true,
|
23
23
|
:locked => true,
|
24
24
|
:update => sync)
|
25
|
-
template.organizations = organizations if
|
26
|
-
template.locations = locations if
|
25
|
+
template.organizations = organizations if template.present?
|
26
|
+
template.locations = locations if template.present?
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/lib/foreman_salt/plugin.rb
CHANGED
@@ -165,6 +165,11 @@ Foreman::Plugin.register :foreman_salt do
|
|
165
165
|
:create_salt_variables, :view_salt_variables,
|
166
166
|
:edit_salt_variables, :destroy_salt_variables]
|
167
167
|
|
168
|
+
role 'Salt viewer', [:view_smart_proxies_salt_keys,
|
169
|
+
:view_smart_proxies_salt_autosign,
|
170
|
+
:view_salt_variables,
|
171
|
+
:view_salt_environments,
|
172
|
+
:view_salt_modules]
|
168
173
|
|
169
174
|
# Parameter filters
|
170
175
|
parameter_filter Hostgroup,
|
data/lib/foreman_salt/version.rb
CHANGED
@@ -11,7 +11,9 @@ module ForemanSalt
|
|
11
11
|
@proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
|
12
12
|
Resolv.any_instance.stubs(:getnames).returns([@proxy.to_s])
|
13
13
|
|
14
|
+
@hostgroup = FactoryBot.create(:hostgroup)
|
14
15
|
@host = FactoryBot.create(:host, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
|
16
|
+
@host2 = FactoryBot.create(:host, :hostgroup => @hostgroup, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
|
15
17
|
FactoryBot.create(:host_parameter, name: "parameter1", value: "different", host: @host)
|
16
18
|
end
|
17
19
|
|
@@ -34,39 +36,39 @@ module ForemanSalt
|
|
34
36
|
end
|
35
37
|
|
36
38
|
test 'salt variable is available' do
|
37
|
-
|
38
|
-
|
39
|
-
@host.salt_modules <<
|
39
|
+
var = FactoryBot.create(:salt_variable, override: true)
|
40
|
+
var.salt_module.salt_environments << @host.salt_environment
|
41
|
+
@host.salt_modules << var.salt_module
|
40
42
|
|
41
43
|
get :node, params: { :id => @host, :format => 'yml' }
|
42
44
|
assert_response :success
|
43
45
|
|
44
46
|
res = YAML.safe_load(@response.body)
|
45
|
-
assert_equal res['parameters'][
|
47
|
+
assert_equal res['parameters'][var.key], var.value
|
46
48
|
end
|
47
49
|
|
48
50
|
test 'salt variable overrides host parameter' do
|
49
|
-
|
50
|
-
|
51
|
-
@host.salt_modules <<
|
51
|
+
var = FactoryBot.create(:salt_variable, key: 'parameter1', override: true)
|
52
|
+
var.salt_module.salt_environments << @host.salt_environment
|
53
|
+
@host.salt_modules << var.salt_module
|
52
54
|
|
53
55
|
get :node, params: { :id => @host, :format => 'yml' }
|
54
56
|
assert_response :success
|
55
57
|
|
56
58
|
res = YAML.safe_load(@response.body)
|
57
|
-
assert_equal res['parameters']['parameter1'],
|
59
|
+
assert_equal res['parameters']['parameter1'], var.value
|
58
60
|
end
|
59
61
|
|
60
|
-
test 'salt variable matching host' do
|
61
|
-
|
62
|
+
test 'salt variable matching host with host specific value' do
|
63
|
+
var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
|
62
64
|
# rubocop:disable Lint/UselessAssignment
|
63
|
-
value1 = LookupValue.create(:lookup_key =>
|
64
|
-
value2 = LookupValue.create(:lookup_key =>
|
65
|
-
value3 = LookupValue.create(:lookup_key =>
|
65
|
+
value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
|
66
|
+
value2 = LookupValue.create(:lookup_key => var, :match => "fqdn=#{@host.fqdn}", :value => "myval")
|
67
|
+
value3 = LookupValue.create(:lookup_key => var, :match => "hostgroup=Unusual", :value => "bbbb")
|
66
68
|
# rubocop:enable Lint/UselessAssignment
|
67
69
|
|
68
|
-
|
69
|
-
@host.salt_modules <<
|
70
|
+
var.salt_module.salt_environments << @host.salt_environment
|
71
|
+
@host.salt_modules << var.salt_module
|
70
72
|
|
71
73
|
get :node, params: { :id => @host, :format => 'yml' }
|
72
74
|
assert_response :success
|
@@ -74,5 +76,39 @@ module ForemanSalt
|
|
74
76
|
res = YAML.safe_load(@response.body)
|
75
77
|
assert_equal res['parameters']['parameter1'], value2.value
|
76
78
|
end
|
79
|
+
|
80
|
+
test 'salt variable matching host with hostgroup specific value' do
|
81
|
+
var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
|
82
|
+
# rubocop:disable Lint/UselessAssignment
|
83
|
+
value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
|
84
|
+
value2 = LookupValue.create(:lookup_key => var, :match => @hostgroup.lookup_value_matcher, :value => "bbbb")
|
85
|
+
# rubocop:enable Lint/UselessAssignment
|
86
|
+
|
87
|
+
var.salt_module.salt_environments << @host2.salt_environment
|
88
|
+
@host2.salt_modules << var.salt_module
|
89
|
+
|
90
|
+
get :node, params: { :id => @host2, :format => 'yml' }
|
91
|
+
assert_response :success
|
92
|
+
|
93
|
+
res = YAML.safe_load(@response.body)
|
94
|
+
assert_equal res['parameters']['parameter1'], value2.value
|
95
|
+
end
|
96
|
+
|
97
|
+
test 'salt variable matching host with default value' do
|
98
|
+
var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
|
99
|
+
# rubocop:disable Lint/UselessAssignment
|
100
|
+
value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
|
101
|
+
value2 = LookupValue.create(:lookup_key => var, :match => "fqdn=#{@host.fqdn}", :value => "myval")
|
102
|
+
value3 = LookupValue.create(:lookup_key => var, :match => "hostgroup=Unusual", :value => "bbbb")
|
103
|
+
# rubocop:enable Lint/UselessAssignment
|
104
|
+
|
105
|
+
var.salt_module.salt_environments << @host2.salt_environment
|
106
|
+
@host2.salt_modules << var.salt_module
|
107
|
+
get :node, params: { :id => @host2, :format => 'yml' }
|
108
|
+
assert_response :success
|
109
|
+
|
110
|
+
res = YAML.safe_load(@response.body)
|
111
|
+
assert_equal res['parameters']['parameter1'], var.value
|
112
|
+
end
|
77
113
|
end
|
78
114
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_salt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Benjamin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deface
|