test-kitchen 2.3.3 → 2.5.2
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/Gemfile +1 -1
- data/lib/kitchen.rb +30 -30
- data/lib/kitchen/cli.rb +2 -2
- data/lib/kitchen/command/action.rb +3 -3
- data/lib/kitchen/command/console.rb +1 -1
- data/lib/kitchen/command/diagnose.rb +2 -2
- data/lib/kitchen/command/doctor.rb +1 -1
- data/lib/kitchen/command/exec.rb +1 -1
- data/lib/kitchen/command/list.rb +1 -1
- data/lib/kitchen/command/login.rb +1 -1
- data/lib/kitchen/command/package.rb +1 -1
- data/lib/kitchen/command/sink.rb +1 -1
- data/lib/kitchen/command/test.rb +3 -3
- data/lib/kitchen/configurable.rb +7 -1
- data/lib/kitchen/data_munger.rb +1 -1
- data/lib/kitchen/diagnostic.rb +2 -2
- data/lib/kitchen/driver.rb +1 -1
- data/lib/kitchen/driver/base.rb +5 -5
- data/lib/kitchen/driver/dummy.rb +1 -1
- data/lib/kitchen/driver/exec.rb +4 -4
- data/lib/kitchen/driver/proxy.rb +2 -2
- data/lib/kitchen/driver/ssh_base.rb +1 -1
- data/lib/kitchen/generator/init.rb +2 -2
- data/lib/kitchen/lifecycle_hooks.rb +2 -2
- data/lib/kitchen/loader/yaml.rb +1 -1
- data/lib/kitchen/plugin.rb +2 -2
- data/lib/kitchen/provisioner.rb +1 -1
- data/lib/kitchen/provisioner/base.rb +3 -3
- data/lib/kitchen/provisioner/chef/berkshelf.rb +2 -2
- data/lib/kitchen/provisioner/chef/policyfile.rb +13 -6
- data/lib/kitchen/provisioner/chef_apply.rb +1 -1
- data/lib/kitchen/provisioner/chef_base.rb +14 -13
- data/lib/kitchen/provisioner/chef_solo.rb +1 -1
- data/lib/kitchen/provisioner/chef_zero.rb +1 -1
- data/lib/kitchen/provisioner/dummy.rb +1 -1
- data/lib/kitchen/provisioner/shell.rb +8 -4
- data/lib/kitchen/rake_tasks.rb +1 -1
- data/lib/kitchen/ssh.rb +2 -2
- data/lib/kitchen/thor_tasks.rb +1 -1
- data/lib/kitchen/transport.rb +1 -1
- data/lib/kitchen/transport/base.rb +5 -5
- data/lib/kitchen/transport/dummy.rb +1 -1
- data/lib/kitchen/transport/exec.rb +3 -3
- data/lib/kitchen/transport/ssh.rb +1 -1
- data/lib/kitchen/transport/winrm.rb +1 -1
- data/lib/kitchen/util.rb +1 -1
- data/lib/kitchen/verifier.rb +1 -1
- data/lib/kitchen/verifier/base.rb +10 -3
- data/lib/kitchen/verifier/busser.rb +1 -1
- data/lib/kitchen/verifier/dummy.rb +1 -1
- data/lib/kitchen/verifier/shell.rb +1 -1
- data/lib/kitchen/version.rb +1 -1
- data/support/chef_base_install_command.ps1 +3 -3
- data/support/chef_base_install_command.sh +2 -2
- data/templates/init/chefignore.erb +1 -0
- data/test-kitchen.gemspec +7 -7
- metadata +36 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f64adcadcfffbb97c3c6cf5a53c70b592f913fa047a8d0eeb0005cd9465c3ba0
|
4
|
+
data.tar.gz: d94b2819e5f73b83beba6016b036d99c1cd02f81dd6c9596b1d46f146311f618
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f1988e66f7e15097d664e414579f9b2520ebea535bdfdc80ab159cfb2306c1a783559750d579390436b104aca0e8af2ee8d1f160a1119accc5c15dfae97e068
|
7
|
+
data.tar.gz: d8c9cd609f9257f934c7e2070b6b1fe95093295d0dfd99d205fdc93575892732b543a893753006184a0b66bf4811fe0f87981229e45966004504b9677ff64358
|
data/Gemfile
CHANGED
data/lib/kitchen.rb
CHANGED
@@ -19,36 +19,36 @@
|
|
19
19
|
require "pathname"
|
20
20
|
require "thread"
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
22
|
+
require_relative "kitchen/errors"
|
23
|
+
require_relative "kitchen/logger"
|
24
|
+
require_relative "kitchen/logging"
|
25
|
+
require_relative "kitchen/shell_out"
|
26
|
+
require_relative "kitchen/configurable"
|
27
|
+
require_relative "kitchen/util"
|
28
|
+
|
29
|
+
require_relative "kitchen/provisioner"
|
30
|
+
require_relative "kitchen/provisioner/base"
|
31
|
+
require_relative "kitchen/color"
|
32
|
+
require_relative "kitchen/collection"
|
33
|
+
require_relative "kitchen/config"
|
34
|
+
require_relative "kitchen/data_munger"
|
35
|
+
require_relative "kitchen/driver"
|
36
|
+
require_relative "kitchen/driver/base"
|
37
|
+
require_relative "kitchen/driver/ssh_base"
|
38
|
+
require_relative "kitchen/driver/proxy"
|
39
|
+
require_relative "kitchen/instance"
|
40
|
+
require_relative "kitchen/lifecycle_hooks"
|
41
|
+
require_relative "kitchen/transport"
|
42
|
+
require_relative "kitchen/transport/base"
|
43
|
+
require_relative "kitchen/loader/yaml"
|
44
|
+
require_relative "kitchen/metadata_chopper"
|
45
|
+
require_relative "kitchen/platform"
|
46
|
+
require_relative "kitchen/state_file"
|
47
|
+
require_relative "kitchen/ssh"
|
48
|
+
require_relative "kitchen/suite"
|
49
|
+
require_relative "kitchen/verifier"
|
50
|
+
require_relative "kitchen/verifier/base"
|
51
|
+
require_relative "kitchen/version"
|
52
52
|
|
53
53
|
# Test Kitchen base module.
|
54
54
|
#
|
data/lib/kitchen/cli.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "../command"
|
20
20
|
|
21
21
|
require "benchmark"
|
22
22
|
|
@@ -30,12 +30,12 @@ module Kitchen
|
|
30
30
|
|
31
31
|
# Invoke the command.
|
32
32
|
def call
|
33
|
-
banner "Starting Kitchen (v#{Kitchen::VERSION})"
|
33
|
+
banner "Starting Test Kitchen (v#{Kitchen::VERSION})"
|
34
34
|
elapsed = Benchmark.measure do
|
35
35
|
results = parse_subcommand(args.first)
|
36
36
|
run_action(action, results)
|
37
37
|
end
|
38
|
-
banner "Kitchen is finished. #{Util.duration(elapsed.real)}"
|
38
|
+
banner "Test Kitchen is finished. #{Util.duration(elapsed.real)}"
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -16,8 +16,8 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "../command"
|
20
|
+
require_relative "../diagnostic"
|
21
21
|
|
22
22
|
require "yaml"
|
23
23
|
|
data/lib/kitchen/command/exec.rb
CHANGED
data/lib/kitchen/command/list.rb
CHANGED
data/lib/kitchen/command/sink.rb
CHANGED
data/lib/kitchen/command/test.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "../command"
|
20
20
|
|
21
21
|
require "benchmark"
|
22
22
|
|
@@ -34,14 +34,14 @@ module Kitchen
|
|
34
34
|
raise ArgumentError, "Destroy mode must be passing, always, or never."
|
35
35
|
end
|
36
36
|
|
37
|
-
banner "Starting Kitchen (v#{Kitchen::VERSION})"
|
37
|
+
banner "Starting Test Kitchen (v#{Kitchen::VERSION})"
|
38
38
|
elapsed = Benchmark.measure do
|
39
39
|
destroy_mode = options[:destroy].to_sym
|
40
40
|
results = parse_subcommand(args.join("|"))
|
41
41
|
|
42
42
|
run_action(:test, results, destroy_mode)
|
43
43
|
end
|
44
|
-
banner "Kitchen is finished. #{Util.duration(elapsed.real)}"
|
44
|
+
banner "Test Kitchen is finished. #{Util.duration(elapsed.real)}"
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
data/lib/kitchen/configurable.rb
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
require "thor/util"
|
20
20
|
|
21
|
-
|
21
|
+
require_relative "lazy_hash"
|
22
22
|
|
23
23
|
module Kitchen
|
24
24
|
# A mixin for providing configuration-related behavior such as default
|
@@ -349,6 +349,12 @@ module Kitchen
|
|
349
349
|
code_parts = resolve_proxy_settings_from_config
|
350
350
|
code_parts << shell_env_var("TEST_KITCHEN", 1)
|
351
351
|
code_parts << shell_env_var("CI", ENV["CI"]) if ENV["CI"]
|
352
|
+
code_parts << shell_env_var("CHEF_LICENSE", ENV["CHEF_LICENSE"]) if ENV["CHEF_LICENSE"]
|
353
|
+
ENV.select { |key, value| key.start_with?("TKENV_") }.each do |key, value|
|
354
|
+
env_var_name = "#{key}".sub!("TKENV_", "")
|
355
|
+
code_parts << shell_env_var(env_var_name, value)
|
356
|
+
end
|
357
|
+
|
352
358
|
code_parts << code
|
353
359
|
code_parts.join("\n")
|
354
360
|
end
|
data/lib/kitchen/data_munger.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "../vendor/hash_recursive_merge"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
# Class to handle recursive merging of configuration between platforms,
|
data/lib/kitchen/diagnostic.rb
CHANGED
@@ -16,8 +16,8 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "util"
|
20
|
+
require_relative "version"
|
21
21
|
|
22
22
|
module Kitchen
|
23
23
|
# Combines and compiles diagnostic information about a Test Kitchen
|
data/lib/kitchen/driver.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "plugin"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
# A driver is responsible for carrying out the lifecycle activities of an
|
data/lib/kitchen/driver/base.rb
CHANGED
@@ -16,11 +16,11 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
require_relative "../configurable"
|
20
|
+
require_relative "../errors"
|
21
|
+
require_relative "../lazy_hash"
|
22
|
+
require_relative "../logging"
|
23
|
+
require_relative "../shell_out"
|
24
24
|
|
25
25
|
module Kitchen
|
26
26
|
module Driver
|
data/lib/kitchen/driver/dummy.rb
CHANGED
data/lib/kitchen/driver/exec.rb
CHANGED
@@ -13,10 +13,10 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
#
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
require_relative "base"
|
17
|
+
require_relative "../shell_out"
|
18
|
+
require_relative "../transport/exec"
|
19
|
+
require_relative "../version"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
module Driver
|
data/lib/kitchen/driver/proxy.rb
CHANGED
@@ -136,7 +136,7 @@ module Kitchen
|
|
136
136
|
rakedoc = <<-RAKE.gsub(/^ {10}/, "")
|
137
137
|
|
138
138
|
begin
|
139
|
-
|
139
|
+
require_relative '../rake_tasks'
|
140
140
|
Kitchen::RakeTasks.new
|
141
141
|
rescue LoadError
|
142
142
|
puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
|
@@ -154,7 +154,7 @@ module Kitchen
|
|
154
154
|
thordoc = <<-THOR.gsub(/^ {10}/, "")
|
155
155
|
|
156
156
|
begin
|
157
|
-
|
157
|
+
require_relative '../thor_tasks'
|
158
158
|
Kitchen::ThorTasks.new
|
159
159
|
rescue LoadError
|
160
160
|
puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
|
@@ -16,8 +16,8 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "errors"
|
20
|
+
require_relative "shell_out"
|
21
21
|
|
22
22
|
module Kitchen
|
23
23
|
# A helper object used by {Instance} to coordinate lifecycle hook calls from
|
data/lib/kitchen/loader/yaml.rb
CHANGED
data/lib/kitchen/plugin.rb
CHANGED
@@ -17,8 +17,8 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
require_relative "errors"
|
21
|
+
require_relative "util"
|
22
22
|
|
23
23
|
module Kitchen
|
24
24
|
module Plugin
|
data/lib/kitchen/provisioner.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "plugin"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
# A provisioner is responsible for generating the commands necessary to
|
@@ -16,9 +16,9 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
require_relative "../configurable"
|
20
|
+
require_relative "../errors"
|
21
|
+
require_relative "../logging"
|
22
22
|
|
23
23
|
module Kitchen
|
24
24
|
module Provisioner
|
@@ -16,8 +16,8 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "../../errors"
|
20
|
+
require_relative "../../logging"
|
21
21
|
|
22
22
|
module Kitchen
|
23
23
|
module Provisioner
|
@@ -19,9 +19,9 @@
|
|
19
19
|
require "shellwords"
|
20
20
|
require "rbconfig"
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
require_relative "../../errors"
|
23
|
+
require_relative "../../logging"
|
24
|
+
require_relative "../../shell_out"
|
25
25
|
|
26
26
|
module Kitchen
|
27
27
|
module Provisioner
|
@@ -136,13 +136,20 @@ module Kitchen
|
|
136
136
|
# @raise [UserError] if the `chef` command is not in the PATH
|
137
137
|
# @api private
|
138
138
|
def detect_chef_command!(logger)
|
139
|
-
unless ENV["PATH"].split(File::PATH_SEPARATOR).any? do |
|
140
|
-
|
139
|
+
unless ENV["PATH"].split(File::PATH_SEPARATOR).any? do |path|
|
140
|
+
if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
|
141
|
+
# Windows could have different extentions: BAT, EXE or NONE
|
142
|
+
%w{chef chef.exe chef.bat}.each do |bin|
|
143
|
+
File.exist?(File.join(path, bin))
|
144
|
+
end
|
145
|
+
else
|
146
|
+
File.exist?(File.join(path, "chef"))
|
147
|
+
end
|
141
148
|
end
|
142
149
|
logger.fatal("The `chef` executable cannot be found in your " \
|
143
150
|
"PATH. Ensure you have installed ChefDK or Chef Workstation " \
|
144
151
|
"from https://downloads.chef.io and that your PATH " \
|
145
|
-
"setting includes the path to the `chef`
|
152
|
+
"setting includes the path to the `chef` command.")
|
146
153
|
raise UserError,
|
147
154
|
"Could not find the chef executable in your PATH."
|
148
155
|
end
|
@@ -21,10 +21,10 @@ require "pathname"
|
|
21
21
|
require "json"
|
22
22
|
require "cgi"
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
require_relative "chef/policyfile"
|
25
|
+
require_relative "chef/berkshelf"
|
26
|
+
require_relative "chef/common_sandbox"
|
27
|
+
require_relative "../util"
|
28
28
|
require "mixlib/install"
|
29
29
|
require "mixlib/install/script_generator"
|
30
30
|
require "license_acceptance/acceptor"
|
@@ -69,6 +69,7 @@ module Kitchen
|
|
69
69
|
README.* VERSION metadata.{json,rb} attributes.rb recipe.rb
|
70
70
|
attributes/**/* definitions/**/* files/**/* libraries/**/*
|
71
71
|
providers/**/* recipes/**/* resources/**/* templates/**/*
|
72
|
+
ohai/**/*
|
72
73
|
).join(",")
|
73
74
|
# to ease upgrades, allow the user to turn deprecation warnings into errors
|
74
75
|
default_config :deprecations_as_errors, false
|
@@ -153,7 +154,7 @@ module Kitchen
|
|
153
154
|
|
154
155
|
# New Usage #
|
155
156
|
provisioner:
|
156
|
-
product_name: <chef or
|
157
|
+
product_name: <chef or chef-workstation>
|
157
158
|
install_strategy: skip
|
158
159
|
MSG
|
159
160
|
when provisioner[:require_chef_omnibus].to_s.match(/\d/)
|
@@ -166,7 +167,7 @@ module Kitchen
|
|
166
167
|
|
167
168
|
# New Usage #
|
168
169
|
provisioner:
|
169
|
-
product_name: <chef or
|
170
|
+
product_name: <chef or chef-workstation>
|
170
171
|
product_version: #{provisioner[:require_chef_omnibus]}
|
171
172
|
MSG
|
172
173
|
when provisioner[:require_chef_omnibus] == "latest"
|
@@ -179,7 +180,7 @@ module Kitchen
|
|
179
180
|
|
180
181
|
# New Usage #
|
181
182
|
provisioner:
|
182
|
-
product_name: <chef or
|
183
|
+
product_name: <chef or chef-workstation>
|
183
184
|
install_strategy: always
|
184
185
|
MSG
|
185
186
|
end
|
@@ -199,11 +200,11 @@ module Kitchen
|
|
199
200
|
|
200
201
|
# Deprecated Example #
|
201
202
|
provisioner:
|
202
|
-
chef_omnibus_install_options: -P
|
203
|
+
chef_omnibus_install_options: -P chef-workstation -c current
|
203
204
|
|
204
205
|
# New Usage #
|
205
206
|
provisioner:
|
206
|
-
product_name:
|
207
|
+
product_name: chef-workstation
|
207
208
|
channel: current
|
208
209
|
MSG
|
209
210
|
|
@@ -216,7 +217,7 @@ module Kitchen
|
|
216
217
|
|
217
218
|
# New Usage #
|
218
219
|
provisioner:
|
219
|
-
product_name: <chef or
|
220
|
+
product_name: <chef or chef-workstation>
|
220
221
|
download_url: http://direct-download-url
|
221
222
|
MSG
|
222
223
|
|
@@ -225,9 +226,9 @@ module Kitchen
|
|
225
226
|
fully managed by using attribute settings.
|
226
227
|
MSG
|
227
228
|
|
228
|
-
# Reads the local Chef::Config object (if present).
|
229
|
-
# we want to start bring Chef config and
|
230
|
-
# together.
|
229
|
+
# Reads the local Chef::Config object (if present). We do this because
|
230
|
+
# we want to start bring Chef config and Chef Workstation config closer
|
231
|
+
# together. For example, we want to configure proxy settings in 1
|
231
232
|
# location instead of 3 configuration files.
|
232
233
|
#
|
233
234
|
# @param config [Hash] initial provided configuration
|
@@ -18,8 +18,8 @@
|
|
18
18
|
|
19
19
|
require "shellwords"
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
require_relative "base"
|
22
|
+
require_relative "../version"
|
23
23
|
|
24
24
|
module Kitchen
|
25
25
|
module Provisioner
|
@@ -106,13 +106,17 @@ module Kitchen
|
|
106
106
|
|
107
107
|
if config[:arguments] && !config[:arguments].empty?
|
108
108
|
if config[:arguments].is_a?(Array)
|
109
|
-
|
109
|
+
if powershell_shell?
|
110
|
+
script = ([script] + config[:arguments]).join(" ")
|
111
|
+
else
|
112
|
+
script = Shellwords.join([script] + config[:arguments])
|
113
|
+
end
|
110
114
|
else
|
111
115
|
script.concat(" ").concat(config[:arguments].to_s)
|
112
116
|
end
|
113
117
|
end
|
114
118
|
|
115
|
-
code = powershell_shell? ? %{&
|
119
|
+
code = powershell_shell? ? %{& #{script}} : sudo(script)
|
116
120
|
|
117
121
|
prefix_command(wrap_shell_code(code))
|
118
122
|
end
|
data/lib/kitchen/rake_tasks.rb
CHANGED
data/lib/kitchen/ssh.rb
CHANGED
@@ -21,8 +21,8 @@ require "net/ssh"
|
|
21
21
|
require "net/scp"
|
22
22
|
require "socket"
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
require_relative "errors"
|
25
|
+
require_relative "login_command"
|
26
26
|
|
27
27
|
module Kitchen
|
28
28
|
# Wrapped exception for any internally raised SSH-related errors.
|
data/lib/kitchen/thor_tasks.rb
CHANGED
data/lib/kitchen/transport.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "plugin"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
# A transport is responsible for the communication with an instance,
|
@@ -17,11 +17,11 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
require_relative "../configurable"
|
21
|
+
require_relative "../errors"
|
22
|
+
require_relative "../lazy_hash"
|
23
|
+
require_relative "../logging"
|
24
|
+
require_relative "../login_command"
|
25
25
|
|
26
26
|
module Kitchen
|
27
27
|
module Transport
|
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
require "fileutils"
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
require_relative "../shell_out"
|
18
|
+
require_relative "base"
|
19
|
+
require_relative "../version"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
module Transport
|
data/lib/kitchen/util.rb
CHANGED
data/lib/kitchen/verifier.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
19
|
+
require_relative "plugin"
|
20
20
|
|
21
21
|
module Kitchen
|
22
22
|
# A verifier is responsible for running tests post-converge to confirm that
|
@@ -16,9 +16,9 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
require_relative "../errors"
|
20
|
+
require_relative "../configurable"
|
21
|
+
require_relative "../logging"
|
22
22
|
|
23
23
|
module Kitchen
|
24
24
|
module Verifier
|
@@ -75,6 +75,13 @@ module Kitchen
|
|
75
75
|
debug("Transfer complete")
|
76
76
|
conn.execute(prepare_command)
|
77
77
|
conn.execute(run_command)
|
78
|
+
|
79
|
+
info("Downloading files from #{instance.to_str}")
|
80
|
+
config[:downloads].to_h.each do |remotes, local|
|
81
|
+
debug("Downloading #{Array(remotes).join(", ")} to #{local}")
|
82
|
+
conn.download(remotes, local)
|
83
|
+
end
|
84
|
+
debug("Download complete")
|
78
85
|
end
|
79
86
|
rescue Kitchen::Transport::TransportFailed => ex
|
80
87
|
raise ActionFailed, ex.message
|
data/lib/kitchen/version.rb
CHANGED
@@ -44,7 +44,7 @@ Function Download-Chef($md_url, $dst) {
|
|
44
44
|
}
|
45
45
|
|
46
46
|
Function Install-Chef($msi) {
|
47
|
-
Log "Installing Chef package $msi"
|
47
|
+
Log "Installing Chef Infra Client package $msi"
|
48
48
|
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi" -Passthru -Wait
|
49
49
|
|
50
50
|
if ($p.ExitCode -ne 0) { throw "msiexec was not successful. Received exit code $($p.ExitCode)" }
|
@@ -73,11 +73,11 @@ Try {
|
|
73
73
|
$msi = Unresolve-Path $msi
|
74
74
|
|
75
75
|
if (Check-UpdateChef $chef_omnibus_root $version) {
|
76
|
-
Write-Host "-----> Installing Chef package ($pretty_version)`n"
|
76
|
+
Write-Host "-----> Installing Chef Infra Client package ($pretty_version)`n"
|
77
77
|
Download-Chef "$chef_metadata_url" $msi
|
78
78
|
Install-Chef $msi
|
79
79
|
} else {
|
80
|
-
Write-Host "-----> Chef package installation detected ($pretty_version)`n"
|
80
|
+
Write-Host "-----> Chef Infra Client package installation detected ($pretty_version)`n"
|
81
81
|
}
|
82
82
|
Catch {
|
83
83
|
Write-Error ($_ | ft -Property * | out-string) -ErrorAction Continue
|
@@ -206,7 +206,7 @@ unable_to_download() {
|
|
206
206
|
main() {
|
207
207
|
should_update_chef "$chef_omnibus_root" "$version"
|
208
208
|
if test $? -eq 0; then
|
209
|
-
echo "-----> Installing Chef package (${pretty_version})";
|
209
|
+
echo "-----> Installing Chef Infra Client package (${pretty_version})";
|
210
210
|
|
211
211
|
# solaris 10 lacks recent enough credentials, so http url is used
|
212
212
|
platform="`/usr/bin/uname -s 2>/dev/null`";
|
@@ -218,7 +218,7 @@ main() {
|
|
218
218
|
do_download "$chef_omnibus_url" /tmp/install.sh;
|
219
219
|
$sudo_sh /tmp/install.sh $install_flags;
|
220
220
|
else
|
221
|
-
echo "-----> Chef package installation detected (${pretty_version})";
|
221
|
+
echo "-----> Chef Infra Client package installation detected (${pretty_version})";
|
222
222
|
fi
|
223
223
|
}
|
224
224
|
|
data/test-kitchen.gemspec
CHANGED
@@ -24,12 +24,12 @@ Gem::Specification.new do |gem|
|
|
24
24
|
gem.required_ruby_version = ">= 2.3"
|
25
25
|
|
26
26
|
gem.add_dependency "mixlib-shellout", ">= 1.2", "< 4.0"
|
27
|
-
gem.add_dependency "net-scp", ">= 1.1", "<
|
28
|
-
gem.add_dependency "net-ssh", ">= 2.9", "<
|
27
|
+
gem.add_dependency "net-scp", ">= 1.1", "< 4.0" # pinning until we can confirm 4+ works
|
28
|
+
gem.add_dependency "net-ssh", ">= 2.9", "< 7.0" # pinning until we can confirm 7+ works
|
29
29
|
gem.add_dependency "net-ssh-gateway", ">= 1.2", "< 3.0" # pinning until we can confirm 3+ works
|
30
30
|
gem.add_dependency "ed25519", "~> 1.2" # ed25519 ssh key support
|
31
31
|
gem.add_dependency "bcrypt_pbkdf", "~> 1.0" # ed25519 ssh key support
|
32
|
-
gem.add_dependency "thor", "
|
32
|
+
gem.add_dependency "thor", ">= 0.19", "< 2.0"
|
33
33
|
gem.add_dependency "mixlib-install", "~> 3.6"
|
34
34
|
gem.add_dependency "winrm", "~> 2.0"
|
35
35
|
gem.add_dependency "winrm-elevated", "~> 1.0"
|
@@ -42,11 +42,11 @@ Gem::Specification.new do |gem|
|
|
42
42
|
gem.add_development_dependency "bundler"
|
43
43
|
gem.add_development_dependency "rake"
|
44
44
|
|
45
|
-
gem.add_development_dependency "aruba", "~> 0.11"
|
46
|
-
gem.add_development_dependency "fakefs", "~> 0
|
47
|
-
gem.add_development_dependency "minitest", "~> 5.3", "< 5.
|
45
|
+
gem.add_development_dependency "aruba", "~> 0.11", "< 1.0"
|
46
|
+
gem.add_development_dependency "fakefs", "~> 1.0"
|
47
|
+
gem.add_development_dependency "minitest", "~> 5.3", "< 5.12"
|
48
48
|
gem.add_development_dependency "mocha", "~> 1.1"
|
49
|
-
gem.add_development_dependency "cucumber", "
|
49
|
+
gem.add_development_dependency "cucumber", ">= 2.1", "< 4.0" # we just need to validate 4.0 when it comes out
|
50
50
|
gem.add_development_dependency "countloc", "~> 0.4"
|
51
51
|
gem.add_development_dependency "maruku", "~> 0.6"
|
52
52
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-kitchen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '1.1'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '4.0'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '1.1'
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
52
|
+
version: '4.0'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: net-ssh
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '2.9'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '7.0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '2.9'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
72
|
+
version: '7.0'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: net-ssh-gateway
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,16 +122,22 @@ dependencies:
|
|
122
122
|
name: thor
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- - "
|
125
|
+
- - ">="
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0.19'
|
128
|
+
- - "<"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '2.0'
|
128
131
|
type: :runtime
|
129
132
|
prerelease: false
|
130
133
|
version_requirements: !ruby/object:Gem::Requirement
|
131
134
|
requirements:
|
132
|
-
- - "
|
135
|
+
- - ">="
|
133
136
|
- !ruby/object:Gem::Version
|
134
137
|
version: '0.19'
|
138
|
+
- - "<"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '2.0'
|
135
141
|
- !ruby/object:Gem::Dependency
|
136
142
|
name: mixlib-install
|
137
143
|
requirement: !ruby/object:Gem::Requirement
|
@@ -257,6 +263,9 @@ dependencies:
|
|
257
263
|
- - "~>"
|
258
264
|
- !ruby/object:Gem::Version
|
259
265
|
version: '0.11'
|
266
|
+
- - "<"
|
267
|
+
- !ruby/object:Gem::Version
|
268
|
+
version: '1.0'
|
260
269
|
type: :development
|
261
270
|
prerelease: false
|
262
271
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -264,20 +273,23 @@ dependencies:
|
|
264
273
|
- - "~>"
|
265
274
|
- !ruby/object:Gem::Version
|
266
275
|
version: '0.11'
|
276
|
+
- - "<"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '1.0'
|
267
279
|
- !ruby/object:Gem::Dependency
|
268
280
|
name: fakefs
|
269
281
|
requirement: !ruby/object:Gem::Requirement
|
270
282
|
requirements:
|
271
283
|
- - "~>"
|
272
284
|
- !ruby/object:Gem::Version
|
273
|
-
version: '0
|
285
|
+
version: '1.0'
|
274
286
|
type: :development
|
275
287
|
prerelease: false
|
276
288
|
version_requirements: !ruby/object:Gem::Requirement
|
277
289
|
requirements:
|
278
290
|
- - "~>"
|
279
291
|
- !ruby/object:Gem::Version
|
280
|
-
version: '0
|
292
|
+
version: '1.0'
|
281
293
|
- !ruby/object:Gem::Dependency
|
282
294
|
name: minitest
|
283
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -287,7 +299,7 @@ dependencies:
|
|
287
299
|
version: '5.3'
|
288
300
|
- - "<"
|
289
301
|
- !ruby/object:Gem::Version
|
290
|
-
version: '5.
|
302
|
+
version: '5.12'
|
291
303
|
type: :development
|
292
304
|
prerelease: false
|
293
305
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -297,7 +309,7 @@ dependencies:
|
|
297
309
|
version: '5.3'
|
298
310
|
- - "<"
|
299
311
|
- !ruby/object:Gem::Version
|
300
|
-
version: '5.
|
312
|
+
version: '5.12'
|
301
313
|
- !ruby/object:Gem::Dependency
|
302
314
|
name: mocha
|
303
315
|
requirement: !ruby/object:Gem::Requirement
|
@@ -316,16 +328,22 @@ dependencies:
|
|
316
328
|
name: cucumber
|
317
329
|
requirement: !ruby/object:Gem::Requirement
|
318
330
|
requirements:
|
319
|
-
- - "
|
331
|
+
- - ">="
|
320
332
|
- !ruby/object:Gem::Version
|
321
333
|
version: '2.1'
|
334
|
+
- - "<"
|
335
|
+
- !ruby/object:Gem::Version
|
336
|
+
version: '4.0'
|
322
337
|
type: :development
|
323
338
|
prerelease: false
|
324
339
|
version_requirements: !ruby/object:Gem::Requirement
|
325
340
|
requirements:
|
326
|
-
- - "
|
341
|
+
- - ">="
|
327
342
|
- !ruby/object:Gem::Version
|
328
343
|
version: '2.1'
|
344
|
+
- - "<"
|
345
|
+
- !ruby/object:Gem::Version
|
346
|
+
version: '4.0'
|
329
347
|
- !ruby/object:Gem::Dependency
|
330
348
|
name: countloc
|
331
349
|
requirement: !ruby/object:Gem::Requirement
|
@@ -466,7 +484,7 @@ homepage: https://kitchen.ci/
|
|
466
484
|
licenses:
|
467
485
|
- Apache-2.0
|
468
486
|
metadata: {}
|
469
|
-
post_install_message:
|
487
|
+
post_install_message:
|
470
488
|
rdoc_options: []
|
471
489
|
require_paths:
|
472
490
|
- lib
|
@@ -481,8 +499,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
481
499
|
- !ruby/object:Gem::Version
|
482
500
|
version: '0'
|
483
501
|
requirements: []
|
484
|
-
rubygems_version: 3.
|
485
|
-
signing_key:
|
502
|
+
rubygems_version: 3.1.2
|
503
|
+
signing_key:
|
486
504
|
specification_version: 4
|
487
505
|
summary: Test Kitchen is an integration tool for developing and testing infrastructure
|
488
506
|
code and software on isolated target platforms.
|