kitchen-salt 0.6.3 → 0.6.4
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/lib/kitchen/provisioner/formula-fetch.sh +3 -3
- data/lib/kitchen/provisioner/install.erb +6 -1
- data/lib/kitchen/provisioner/install_win.erb +2 -1
- data/lib/kitchen/provisioner/minion.erb +1 -1
- data/lib/kitchen/provisioner/salt_solo.rb +33 -12
- data/lib/kitchen/verifier/nox.rb +74 -26
- data/lib/kitchen-salt/states.rb +7 -1
- data/lib/kitchen-salt/util.rb +0 -1
- data/lib/kitchen-salt/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f264baa2768e6d4a343d428d316da1fa467f365e012804d0184927bdf441efc3
|
|
4
|
+
data.tar.gz: 8a9608d00cdd30471567e3de85073515d8aab496610f6b7867bcb520f888bb85
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8ca9f7b27528e62f990a791083606c657a070a856063eef2cc632dfc82ce0c00d0a2a87fd3d46b36b687b165b39f28daafe023e521c5920b4afa79972cac8448
|
|
7
|
+
data.tar.gz: 3c9ea1fbd395c1ee5dc4df1f6899ff980e29477e2ffab63f8395745350834eed1db09d83f566356f5e071df097f1e102884634c3b7df2619cd5ef547e210d136
|
|
@@ -42,15 +42,15 @@ function fetchGitFormula() {
|
|
|
42
42
|
if ! [[ "${FETCHED[*]}" =~ $name ]]; then # dependency not yet fetched
|
|
43
43
|
echo "Fetching: $name"
|
|
44
44
|
if test -e "$GIT_FORMULAS_PATH/$name"; then
|
|
45
|
-
pushd "$GIT_FORMULAS_PATH/$name" &>/dev/null
|
|
45
|
+
pushd "$GIT_FORMULAS_PATH/$name" &>/dev/null || exit
|
|
46
46
|
test ! -e .git || git pull -r
|
|
47
|
-
popd &>/dev/null
|
|
47
|
+
popd &>/dev/null || exit
|
|
48
48
|
else
|
|
49
49
|
echo "git clone $source $GIT_FORMULAS_PATH/$name -b $branch"
|
|
50
50
|
git clone "$source" "$GIT_FORMULAS_PATH/$name" -b "$branch"
|
|
51
51
|
fi
|
|
52
52
|
# install dependencies
|
|
53
|
-
FETCHED+=($name)
|
|
53
|
+
FETCHED+=("$name")
|
|
54
54
|
if [ -e "$GIT_FORMULAS_PATH/$name/metadata.yml" ]; then
|
|
55
55
|
fetchDependencies "$GIT_FORMULAS_PATH/$name/metadata.yml"
|
|
56
56
|
fi
|
|
@@ -40,7 +40,12 @@ then
|
|
|
40
40
|
elif [ -z "${SALT_VERSION}" -a "#{salt_install}" = "pip" ]
|
|
41
41
|
then
|
|
42
42
|
echo "Make sure setuptools and pip are new enough"
|
|
43
|
-
|
|
43
|
+
export REQUIREMENTS_FILE=$(mktemp)
|
|
44
|
+
echo "setuptools >=30,<54.* ; python_version < '3.6'" > $REQUIREMENTS_FILE
|
|
45
|
+
echo "setuptools >=30,!=50.*,!=51.*,!=52.*; python_version >= '3.6'" > $REQUIREMENTS_FILE
|
|
46
|
+
echo "pip >=9,<21.0.0 ; python_version < '3.6'" >> $REQUIREMENTS_FILE
|
|
47
|
+
echo "pip >=9 ; python_version >= '3.6'" >> $REQUIREMENTS_FILE
|
|
48
|
+
#{sudo(salt_pip_bin)} install -r $REQUIREMENTS_FILE
|
|
44
49
|
echo #{sudo(salt_pip_bin)} #{salt_pip_install_command} #{salt_pip_pkg}
|
|
45
50
|
#{sudo(salt_pip_bin)} #{salt_pip_install_command} #{salt_pip_pkg}
|
|
46
51
|
elif [ -z "${SALT_VERSION}" -a "#{salt_install}" = "apt" ]
|
|
@@ -5,7 +5,7 @@ salt_version = config[:salt_version]
|
|
|
5
5
|
bootstrap_options = config[:salt_bootstrap_options] % [salt_version]
|
|
6
6
|
|
|
7
7
|
<<-POWERSHELL
|
|
8
|
-
if (
|
|
8
|
+
if (Get-Command #{salt_call}) {
|
|
9
9
|
$installed_version = $(#{salt_call} --version).split(' ')[1]
|
|
10
10
|
}
|
|
11
11
|
if (-Not $(Test-Path c:\\temp)) {
|
|
@@ -15,6 +15,7 @@ if (-Not $installed_version -And "#{salt_install}" -eq "bootstrap") {
|
|
|
15
15
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
16
16
|
(New-Object net.webclient).DownloadFile("#{salt_url}", "c:\\temp\\salt_bootstrap.ps1")
|
|
17
17
|
#{sudo('powershell')} c:\\temp\\salt_bootstrap.ps1 #{bootstrap_options}
|
|
18
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
|
18
19
|
}
|
|
19
20
|
$FULL_SALT_VERSION = $(#{salt_call} --version).split(' ')[1]
|
|
20
21
|
if ($FULL_SALT_VERSION) {
|
|
@@ -9,7 +9,7 @@ file_roots:
|
|
|
9
9
|
- <%= os_join(config[:root_path], config[:salt_spm_root], 'salt') %>
|
|
10
10
|
|
|
11
11
|
pillar_roots:
|
|
12
|
-
<%= config[:salt_env] %>:
|
|
12
|
+
<%= config[:pillar_env] || config[:salt_env] %>:
|
|
13
13
|
- <%= os_join(config[:root_path], config[:salt_pillar_root]) %>
|
|
14
14
|
- <%= os_join(config[:root_path], config[:salt_spm_root], 'pillar') %>
|
|
15
15
|
|
|
@@ -47,18 +47,19 @@ module Kitchen
|
|
|
47
47
|
is_file_root: false,
|
|
48
48
|
local_salt_root: nil,
|
|
49
49
|
omnibus_cachier: false,
|
|
50
|
+
pillar_env: nil,
|
|
50
51
|
pillars_from_directories: [],
|
|
51
52
|
pip_bin: 'pip',
|
|
52
53
|
pip_editable: false,
|
|
53
54
|
pip_extra_index_url: [],
|
|
54
|
-
pip_index_url: 'https://pypi.
|
|
55
|
+
pip_index_url: 'https://pypi.org/simple/',
|
|
55
56
|
pip_pkg: 'salt==%s',
|
|
56
57
|
remote_states: nil,
|
|
57
58
|
require_chef: true,
|
|
58
|
-
salt_apt_repo_key: 'https://repo.
|
|
59
|
-
salt_apt_repo: 'https://repo.
|
|
59
|
+
salt_apt_repo_key: 'https://repo.saltproject.io/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub',
|
|
60
|
+
salt_apt_repo: 'https://repo.saltproject.io/apt/ubuntu/16.04/amd64',
|
|
60
61
|
salt_bootstrap_options: '',
|
|
61
|
-
salt_bootstrap_url: 'https://bootstrap.
|
|
62
|
+
salt_bootstrap_url: 'https://bootstrap.saltproject.io',
|
|
62
63
|
salt_config: '/etc/salt',
|
|
63
64
|
salt_copy_filter: [],
|
|
64
65
|
salt_env: 'base',
|
|
@@ -76,10 +77,10 @@ module Kitchen
|
|
|
76
77
|
salt_spm_root: '/srv/spm',
|
|
77
78
|
salt_state_top: '/srv/salt/top.sls',
|
|
78
79
|
salt_version: 'latest',
|
|
79
|
-
salt_yum_repo_key: 'https://repo.
|
|
80
|
-
salt_yum_repo_latest: 'https://repo.
|
|
81
|
-
salt_yum_repo: 'https://repo.
|
|
82
|
-
salt_yum_rpm_key: 'https://repo.
|
|
80
|
+
salt_yum_repo_key: 'https://repo.saltproject.io/yum/redhat/$releasever/$basearch/archive/%s/SALTSTACK-GPG-KEY.pub',
|
|
81
|
+
salt_yum_repo_latest: 'https://repo.saltproject.io/yum/redhat/salt-repo-latest-2.el7.noarch.rpm',
|
|
82
|
+
salt_yum_repo: 'https://repo.saltproject.io/yum/redhat/$releasever/$basearch/archive/%s',
|
|
83
|
+
salt_yum_rpm_key: 'https://repo.saltproject.io/yum/redhat/7/x86_64/archive/%s/SALTSTACK-GPG-KEY.pub',
|
|
83
84
|
state_collection: false,
|
|
84
85
|
state_top_from_file: false,
|
|
85
86
|
state_top: {},
|
|
@@ -90,7 +91,7 @@ module Kitchen
|
|
|
90
91
|
|
|
91
92
|
WIN_DEFAULT_CONFIG = {
|
|
92
93
|
chef_bootstrap_url: 'https://omnitruck.chef.io/install.ps1',
|
|
93
|
-
salt_bootstrap_url: 'https://
|
|
94
|
+
salt_bootstrap_url: 'https://winbootstrap.saltproject.io/develop'
|
|
94
95
|
}.freeze
|
|
95
96
|
|
|
96
97
|
# salt-call version that supports the undocumented --retcode-passthrough command
|
|
@@ -139,8 +140,13 @@ module Kitchen
|
|
|
139
140
|
# if salt_verison is set, bootstrap is being used & bootstrap_options is empty,
|
|
140
141
|
# set the bootstrap_options string to git install the requested version
|
|
141
142
|
if (salt_version != 'latest') && (config[:salt_install] == 'bootstrap') && config[:salt_bootstrap_options].empty?
|
|
142
|
-
|
|
143
|
-
|
|
143
|
+
if windows_os?
|
|
144
|
+
debug("Using bootstrap to install #{salt_version}")
|
|
145
|
+
config[:salt_bootstrap_options] = "-version #{salt_version}"
|
|
146
|
+
else
|
|
147
|
+
debug("Using bootstrap git to install #{salt_version}")
|
|
148
|
+
config[:salt_bootstrap_options] = "-P git v#{salt_version}"
|
|
149
|
+
end
|
|
144
150
|
end
|
|
145
151
|
|
|
146
152
|
install_template = if windows_os?
|
|
@@ -276,7 +282,15 @@ module Kitchen
|
|
|
276
282
|
if config[:pre_salt_command]
|
|
277
283
|
cmd << "#{config[:pre_salt_command]} && "
|
|
278
284
|
end
|
|
279
|
-
cmd << sudo("#{salt_call}
|
|
285
|
+
cmd << sudo("#{salt_call}")
|
|
286
|
+
state_output = config[:salt_minion_extra_config][:state_output]
|
|
287
|
+
if state_output
|
|
288
|
+
cmd << " --state-output=#{state_output}"
|
|
289
|
+
else
|
|
290
|
+
cmd << " --state-output=changes"
|
|
291
|
+
end
|
|
292
|
+
cmd << " --config-dir=#{os_join(config[:root_path], salt_config_path)}"
|
|
293
|
+
cmd << " state.highstate"
|
|
280
294
|
cmd << " --log-level=#{config[:log_level]}" if config[:log_level]
|
|
281
295
|
cmd << " --id=#{config[:salt_minion_id]}" if config[:salt_minion_id]
|
|
282
296
|
cmd << " test=#{config[:dry_run]}" if config[:dry_run]
|
|
@@ -413,6 +427,13 @@ module Kitchen
|
|
|
413
427
|
end
|
|
414
428
|
|
|
415
429
|
def prepare_dependencies
|
|
430
|
+
# Dependency scripts are bash scripts only
|
|
431
|
+
# Copying them clobbers the kitchen temp directory
|
|
432
|
+
# with a file named `kitchen`. If adding Windows
|
|
433
|
+
# support for dependencies, relocate into a
|
|
434
|
+
# sub-directory
|
|
435
|
+
return if windows_os?
|
|
436
|
+
|
|
416
437
|
# upload scripts
|
|
417
438
|
sandbox_scripts_path = File.join(sandbox_path, config[:salt_config], 'scripts')
|
|
418
439
|
info("Preparing scripts into #{config[:salt_config]}/scripts")
|
data/lib/kitchen/verifier/nox.rb
CHANGED
|
@@ -15,28 +15,27 @@ module Kitchen
|
|
|
15
15
|
default_config :tests, []
|
|
16
16
|
default_config :save, {}
|
|
17
17
|
default_config :windows, nil
|
|
18
|
+
default_config :windows do |verifier|
|
|
19
|
+
verifier.windows_os? ? true : false
|
|
20
|
+
end
|
|
18
21
|
default_config :verbose, false
|
|
19
22
|
default_config :run_destructive, false
|
|
20
23
|
default_config :runtests, false
|
|
21
24
|
default_config :coverage, false
|
|
22
25
|
default_config :junitxml, false
|
|
23
26
|
default_config :from_filenames, []
|
|
27
|
+
default_config :from_filenames_basename, "changed-files-list.txt"
|
|
28
|
+
default_config :from_filenames_path, false
|
|
24
29
|
default_config :enable_filenames, false
|
|
25
30
|
default_config :passthrough_opts, []
|
|
26
31
|
default_config :output_columns, 120
|
|
27
32
|
default_config :sysinfo, true
|
|
28
33
|
default_config :sys_stats, false
|
|
29
34
|
default_config :environment_vars, {}
|
|
35
|
+
default_config :zip_windows_artifacts, false
|
|
30
36
|
|
|
31
37
|
def call(state)
|
|
32
|
-
|
|
33
|
-
# Since windows is not set, lets try and guess since kitchen actually knows this infomation
|
|
34
|
-
if instance.platform.os_type == 'windows'
|
|
35
|
-
config[:windows] = true
|
|
36
|
-
else
|
|
37
|
-
config[:windows] = false
|
|
38
|
-
end
|
|
39
|
-
end
|
|
38
|
+
create_sandbox
|
|
40
39
|
debug("Detected platform for instance #{instance.name}: #{instance.platform.os_type}. Config's windows setting value: #{config[:windows]}")
|
|
41
40
|
if (ENV['ONLY_DOWNLOAD_ARTEFACTS'] || '') == '1'
|
|
42
41
|
only_download_artefacts = true
|
|
@@ -57,16 +56,32 @@ module Kitchen
|
|
|
57
56
|
info("[#{name}] Only downloading artefacts from instance #{instance.name} with state=#{state}")
|
|
58
57
|
else
|
|
59
58
|
info("[#{name}] Verify on instance #{instance.name} with state=#{state}")
|
|
59
|
+
if ENV['NOX_ENABLE_FROM_FILENAMES']
|
|
60
|
+
config[:enable_filenames] = true
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
if config[:enable_filenames] and ENV['CHANGE_TARGET'] and ENV['BRANCH_NAME'] and ENV['FORCE_FULL'] != 'true'
|
|
64
|
+
require 'git'
|
|
65
|
+
repo = Git.open(Dir.pwd)
|
|
66
|
+
config[:from_filenames] = repo.diff("origin/#{ENV['CHANGE_TARGET']}",
|
|
67
|
+
"origin/#{ENV['BRANCH_NAME']}").name_status.keys.select{|file| file.end_with?('.py')}
|
|
68
|
+
debug("Populating `from_filenames` with: #{config[:from_filenames]}")
|
|
69
|
+
if config[:windows] && config[:from_filenames].any?
|
|
70
|
+
# On windows, if the changed files list is too big, it will error.
|
|
71
|
+
# Let's then pass an absolute path to a text file which contains the list of changed
|
|
72
|
+
# files, one per line.
|
|
73
|
+
config[:from_filenames_path] = File.join(sandbox_path, config[:from_filenames_basename])
|
|
74
|
+
from_filenames_contents = "#{config[:from_filenames].join('\n')}"
|
|
75
|
+
File.open(config[:from_filenames_path], "w") { |f| f.write from_filenames_contents }
|
|
76
|
+
info("Created #{config[:from_filenames_path]} with contents:\n#{from_filenames_contents}")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
60
79
|
end
|
|
61
80
|
root_path = (config[:windows] ? '%TEMP%\\kitchen' : '/tmp/kitchen')
|
|
62
81
|
if ENV['KITCHEN_TESTS']
|
|
63
82
|
ENV['KITCHEN_TESTS'].split(' ').each{|test| config[:tests].push(test)}
|
|
64
83
|
end
|
|
65
84
|
|
|
66
|
-
if ENV['NOX_ENABLE_FROM_FILENAMES']
|
|
67
|
-
config[:enable_filenames] = true
|
|
68
|
-
end
|
|
69
|
-
|
|
70
85
|
if ENV['NOX_PASSTHROUGH_OPTS']
|
|
71
86
|
ENV['NOX_PASSTHROUGH_OPTS'].split(' ').each{|opt| config[:passthrough_opts].push(opt)}
|
|
72
87
|
end
|
|
@@ -107,13 +122,6 @@ module Kitchen
|
|
|
107
122
|
sys_stats = ''
|
|
108
123
|
end
|
|
109
124
|
|
|
110
|
-
if config[:enable_filenames] and ENV['CHANGE_TARGET'] and ENV['BRANCH_NAME'] and ENV['FORCE_FULL'] != 'true'
|
|
111
|
-
require 'git'
|
|
112
|
-
repo = Git.open(Dir.pwd)
|
|
113
|
-
config[:from_filenames] = repo.diff("origin/#{ENV['CHANGE_TARGET']}",
|
|
114
|
-
"origin/#{ENV['BRANCH_NAME']}").name_status.keys.select{|file| file.end_with?('.py')}
|
|
115
|
-
end
|
|
116
|
-
|
|
117
125
|
if config[:junitxml]
|
|
118
126
|
junitxml = File.join(root_path, config[:testingdir], 'artifacts', 'xml-unittests-output')
|
|
119
127
|
if noxenv.include? "pytest"
|
|
@@ -136,6 +144,7 @@ module Kitchen
|
|
|
136
144
|
command = [
|
|
137
145
|
'nox',
|
|
138
146
|
"-f #{File.join(root_path, config[:testingdir], 'noxfile.py')}",
|
|
147
|
+
(config[:windows] ? "--envdir=C:\\Windows\\Temp\\nox" : ""),
|
|
139
148
|
(config[:windows] ? "-e #{noxenv}" : "-e '#{noxenv}'"),
|
|
140
149
|
'--',
|
|
141
150
|
"--output-columns=#{config[:output_columns]}",
|
|
@@ -149,11 +158,19 @@ module Kitchen
|
|
|
149
158
|
|
|
150
159
|
if tests.nil? || tests.empty?
|
|
151
160
|
# If we're not targetting specific tests...
|
|
152
|
-
extra_command = [
|
|
153
|
-
|
|
154
|
-
(
|
|
155
|
-
|
|
156
|
-
|
|
161
|
+
extra_command = []
|
|
162
|
+
if config[:windows]
|
|
163
|
+
extra_command.push("--names-file=#{root_path}\\testing\\tests\\whitelist.txt")
|
|
164
|
+
if config[:from_filenames_path]
|
|
165
|
+
# Add the required command flag for the tests runner
|
|
166
|
+
extra_command.push("--from-filenames=#{root_path}\\testing\\#{config[:from_filenames_basename]}")
|
|
167
|
+
end
|
|
168
|
+
else
|
|
169
|
+
if config[:from_filenames].any?
|
|
170
|
+
extra_command.push("--from-filenames=#{config[:from_filenames].join(',')}")
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
command = "#{command} #{extra_command.join(' ')}"
|
|
157
174
|
else
|
|
158
175
|
command = "#{command} #{tests}"
|
|
159
176
|
end
|
|
@@ -166,6 +183,9 @@ module Kitchen
|
|
|
166
183
|
# the one from config
|
|
167
184
|
environment_vars.merge!(config[:environment_vars])
|
|
168
185
|
|
|
186
|
+
# Strip trailing whitespace
|
|
187
|
+
command = command.rstrip
|
|
188
|
+
|
|
169
189
|
if config[:windows]
|
|
170
190
|
command = "cmd.exe /c --% \"#{command}\" 2>&1"
|
|
171
191
|
end
|
|
@@ -193,13 +213,31 @@ module Kitchen
|
|
|
193
213
|
end
|
|
194
214
|
end
|
|
195
215
|
if not only_download_artefacts
|
|
216
|
+
if config[:from_filenames_path]
|
|
217
|
+
upload_file_path = "$env:KitchenTestingDir\\#{config[:from_filenames_basename]}"
|
|
218
|
+
info("Uploading #{config[:from_filenames_path]} to #{upload_file_path} on #{instance.to_str}")
|
|
219
|
+
conn.upload(config[:from_filenames_path], "#{upload_file_path}")
|
|
220
|
+
end
|
|
196
221
|
info("Running Command: #{command}")
|
|
197
222
|
conn.execute(sudo(command))
|
|
198
223
|
end
|
|
199
224
|
ensure
|
|
200
225
|
if not dont_download_artefacts
|
|
201
226
|
save.each do |remote, local|
|
|
202
|
-
|
|
227
|
+
if config[:windows]
|
|
228
|
+
if config[:zip_windows_artifacts]
|
|
229
|
+
begin
|
|
230
|
+
conn.execute("7z.exe a #{remote}artifacts.zip #{remote}")
|
|
231
|
+
rescue => e
|
|
232
|
+
begin
|
|
233
|
+
info("7z.exe failed, attempting zip with powershell Compress-Archive")
|
|
234
|
+
conn.execute("powershell Compress-Archive #{remote} #{remote}artifacts.zip -Force")
|
|
235
|
+
rescue => e2
|
|
236
|
+
error("Failed to create zip: #{e2}")
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
else
|
|
203
241
|
begin
|
|
204
242
|
conn.execute(sudo("chmod -R +r #{remote}"))
|
|
205
243
|
rescue => e
|
|
@@ -208,7 +246,15 @@ module Kitchen
|
|
|
208
246
|
end
|
|
209
247
|
begin
|
|
210
248
|
info("Copying #{remote} to #{local}")
|
|
211
|
-
|
|
249
|
+
if config[:windows]
|
|
250
|
+
if config[:zip_windows_artifacts]
|
|
251
|
+
conn.download(remote + "artifacts.zip", local + "/artifacts.zip")
|
|
252
|
+
system('unzip -o artifacts.zip')
|
|
253
|
+
system('rm artifacts.zip')
|
|
254
|
+
end
|
|
255
|
+
else
|
|
256
|
+
conn.download(remote, local)
|
|
257
|
+
end
|
|
212
258
|
rescue => e
|
|
213
259
|
error("Failed to copy #{remote} to #{local} :: #{e}")
|
|
214
260
|
end
|
|
@@ -221,6 +267,8 @@ module Kitchen
|
|
|
221
267
|
else
|
|
222
268
|
debug("[#{name}] Verify completed.")
|
|
223
269
|
end
|
|
270
|
+
ensure
|
|
271
|
+
cleanup_sandbox
|
|
224
272
|
end
|
|
225
273
|
end
|
|
226
274
|
end
|
data/lib/kitchen-salt/states.rb
CHANGED
|
@@ -20,6 +20,9 @@ module Kitchen
|
|
|
20
20
|
# load a top.sls from disk
|
|
21
21
|
if config[:local_salt_root].nil?
|
|
22
22
|
top_file = 'top.sls'
|
|
23
|
+
unless config[:state_collection].nil?
|
|
24
|
+
top_file = File.join(config[:state_collection], top_file)
|
|
25
|
+
end
|
|
23
26
|
else
|
|
24
27
|
top_file = File.join(config[:local_salt_root], 'salt/top.sls')
|
|
25
28
|
end
|
|
@@ -77,7 +80,7 @@ module Kitchen
|
|
|
77
80
|
cp_r_with_filter(File.join(path, formula), formula_dir, config[:salt_copy_filter])
|
|
78
81
|
|
|
79
82
|
# copy across the _modules etc directories for python implementation
|
|
80
|
-
%w(_modules _states _grains _renderers _returners).each do |extrapath|
|
|
83
|
+
%w(_modules _states _grains _renderers _returners _runners _utils).each do |extrapath|
|
|
81
84
|
prepare_formula_dir(path, extrapath)
|
|
82
85
|
end
|
|
83
86
|
end
|
|
@@ -96,6 +99,9 @@ module Kitchen
|
|
|
96
99
|
|
|
97
100
|
if config[:local_salt_root].nil?
|
|
98
101
|
states_location = config[:kitchen_root]
|
|
102
|
+
unless config[:state_collection].nil?
|
|
103
|
+
states_location = File.join(states_location, config[:state_collection])
|
|
104
|
+
end
|
|
99
105
|
else
|
|
100
106
|
states_location = File.join(config[:local_salt_root], 'salt')
|
|
101
107
|
end
|
data/lib/kitchen-salt/util.rb
CHANGED
data/lib/kitchen-salt/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-salt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- SaltStack Inc
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-01-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: hashie
|
|
@@ -166,7 +166,7 @@ homepage: https://github.com/saltstack/kitchen-salt
|
|
|
166
166
|
licenses:
|
|
167
167
|
- Apache-2.0
|
|
168
168
|
metadata: {}
|
|
169
|
-
post_install_message:
|
|
169
|
+
post_install_message:
|
|
170
170
|
rdoc_options: []
|
|
171
171
|
require_paths:
|
|
172
172
|
- lib
|
|
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
182
182
|
version: '0'
|
|
183
183
|
requirements: []
|
|
184
184
|
rubygems_version: 3.0.3
|
|
185
|
-
signing_key:
|
|
185
|
+
signing_key:
|
|
186
186
|
specification_version: 4
|
|
187
187
|
summary: salt provisioner for test-kitchen
|
|
188
188
|
test_files: []
|