test-kitchen 3.5.1 → 3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +15 -4
- data/lib/kitchen/cli.rb +1 -1
- data/lib/kitchen/command/diagnose.rb +1 -1
- data/lib/kitchen/config.rb +8 -8
- data/lib/kitchen/driver/ssh_base.rb +1 -1
- data/lib/kitchen/lifecycle_hook/local.rb +1 -1
- data/lib/kitchen/platform.rb +1 -1
- data/lib/kitchen/platform_filter.rb +1 -1
- data/lib/kitchen/provisioner/chef/common_sandbox.rb +5 -5
- data/lib/kitchen/provisioner/chef_base.rb +4 -3
- data/lib/kitchen/provisioner/chef_target.rb +130 -0
- data/lib/kitchen/transport/ssh.rb +2 -2
- data/lib/kitchen/transport/winrm.rb +3 -3
- data/lib/kitchen/version.rb +1 -1
- data/lib/kitchen.rb +1 -1
- data/test-kitchen.gemspec +1 -12
- metadata +4 -147
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78dcb8180d72d9ce32f3cf860d2dbb90d4c66ba2920cdf03252717bd4674a3f5
|
4
|
+
data.tar.gz: fc68fb60b6fa811425c3079a317946414cfca980198e4e668fbcc0e4c507841a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04e4ddf2b8c612db3a71ef7a7d720c5f586813f8ba3263415d56385f41e90b89663e2c4091fbbd03f60ff4c8922413988df086c71a93fbf7a396f903303b03d9
|
7
|
+
data.tar.gz: 93131c18cdc7889dd9c2e477c598a409ae4d1b47a865fdf4bba6ae54da6b48de59bfc1c7b57015b0dc011a311762e18b13c13955e8e45cc95f852807845d4073
|
data/Gemfile
CHANGED
@@ -1,15 +1,26 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
# Specify your gem"s dependencies in test-kitchen.gemspec
|
4
3
|
gemspec
|
5
4
|
|
5
|
+
group :test do
|
6
|
+
gem "rake"
|
7
|
+
gem "rb-readline"
|
8
|
+
gem "aruba", ">= 0.11", "< 3.0"
|
9
|
+
gem "countloc", "~> 0.4"
|
10
|
+
gem "cucumber", ">= 9.2", "< 10"
|
11
|
+
gem "fakefs", "~> 2.0"
|
12
|
+
gem "maruku", "~> 0.6"
|
13
|
+
gem "minitest", "~> 5.3", "< 6.0"
|
14
|
+
gem "mocha", "~> 2.0"
|
15
|
+
end
|
16
|
+
|
6
17
|
group :integration do
|
7
|
-
gem "
|
18
|
+
gem "chef-cli"
|
8
19
|
gem "kitchen-dokken"
|
9
20
|
gem "kitchen-inspec"
|
10
21
|
gem "kitchen-vagrant"
|
11
22
|
end
|
12
23
|
|
13
24
|
group :chefstyle do
|
14
|
-
gem "chefstyle", "2.2.
|
15
|
-
end
|
25
|
+
gem "chefstyle", "2.2.3"
|
26
|
+
end
|
data/lib/kitchen/cli.rb
CHANGED
data/lib/kitchen/config.rb
CHANGED
@@ -216,11 +216,11 @@ module Kitchen
|
|
216
216
|
/^win/i.match?(platform) ? "winrm" : Transport::DEFAULT_PLUGIN
|
217
217
|
end,
|
218
218
|
},
|
219
|
-
kitchen_root
|
220
|
-
test_base_path
|
221
|
-
log_level
|
222
|
-
log_overwrite
|
223
|
-
debug
|
219
|
+
kitchen_root:,
|
220
|
+
test_base_path:,
|
221
|
+
log_level:,
|
222
|
+
log_overwrite:,
|
223
|
+
debug:,
|
224
224
|
}
|
225
225
|
end
|
226
226
|
|
@@ -250,8 +250,8 @@ module Kitchen
|
|
250
250
|
driver: new_driver(suite, platform),
|
251
251
|
lifecycle_hooks: new_lifecycle_hooks(suite, platform, sf),
|
252
252
|
logger: new_instance_logger(suite, platform, index),
|
253
|
-
suite
|
254
|
-
platform
|
253
|
+
suite:,
|
254
|
+
platform:,
|
255
255
|
provisioner: new_provisioner(suite, platform),
|
256
256
|
transport: new_transport(suite, platform),
|
257
257
|
verifier: new_verifier(suite, platform),
|
@@ -275,7 +275,7 @@ module Kitchen
|
|
275
275
|
color: Color::COLORS[index % Color::COLORS.size].to_sym,
|
276
276
|
logdev: log_location,
|
277
277
|
level: Util.to_logger_level(log_level),
|
278
|
-
log_overwrite
|
278
|
+
log_overwrite:,
|
279
279
|
progname: name,
|
280
280
|
colorize: @colorize
|
281
281
|
)
|
@@ -299,7 +299,7 @@ module Kitchen
|
|
299
299
|
# @param options [Hash] configuration hash (default: `{}`)
|
300
300
|
# @api private
|
301
301
|
def wait_for_sshd(hostname, username = nil, options = {})
|
302
|
-
pseudo_state = { hostname:
|
302
|
+
pseudo_state = { hostname: }
|
303
303
|
pseudo_state[:username] = username if username
|
304
304
|
pseudo_state.merge!(options)
|
305
305
|
|
data/lib/kitchen/platform.rb
CHANGED
@@ -26,7 +26,7 @@ module Kitchen
|
|
26
26
|
# @author Baptiste Courtois <b.courtois@criteo.com>
|
27
27
|
class PlatformFilter
|
28
28
|
# Pattern used to determine whether a filter should be handled as a Regexp
|
29
|
-
REGEXP_LIKE_PATTERN = %r{^/(?<pattern>.*)/(?<options>[ix]*)$}
|
29
|
+
REGEXP_LIKE_PATTERN = %r{^/(?<pattern>.*)/(?<options>[ix]*)$}
|
30
30
|
|
31
31
|
# Converts platform filters into an array of PlatformFilter handling both strings and Regexp.
|
32
32
|
# A string "looks-like" a regexp if it starts by / and end by / + Regexp options i or x
|
@@ -287,9 +287,9 @@ module Kitchen
|
|
287
287
|
def update_dna_for_policyfile
|
288
288
|
policy = Chef::Policyfile.new(
|
289
289
|
policyfile, sandbox_path,
|
290
|
-
logger
|
290
|
+
logger:,
|
291
291
|
always_update: config[:always_update_cookbooks],
|
292
|
-
policy_group
|
292
|
+
policy_group:,
|
293
293
|
license: config[:chef_license]
|
294
294
|
)
|
295
295
|
Kitchen.mutex.synchronize do
|
@@ -297,7 +297,7 @@ module Kitchen
|
|
297
297
|
end
|
298
298
|
policy_name = JSON.parse(IO.read(policy.lockfile))["name"]
|
299
299
|
policy_group = config[:policy_group] || "local"
|
300
|
-
config[:attributes].merge(policy_name
|
300
|
+
config[:attributes].merge(policy_name:, policy_group:)
|
301
301
|
end
|
302
302
|
|
303
303
|
# Performs a Policyfile cookbook resolution inside a common mutex.
|
@@ -307,7 +307,7 @@ module Kitchen
|
|
307
307
|
Kitchen.mutex.synchronize do
|
308
308
|
Chef::Policyfile.new(
|
309
309
|
policyfile, sandbox_path,
|
310
|
-
logger
|
310
|
+
logger:,
|
311
311
|
always_update: config[:always_update_cookbooks],
|
312
312
|
policy_group: config[:policy_group],
|
313
313
|
license: config[:chef_license]
|
@@ -321,7 +321,7 @@ module Kitchen
|
|
321
321
|
def resolve_with_berkshelf
|
322
322
|
Kitchen.mutex.synchronize do
|
323
323
|
Chef::Berkshelf.new(berksfile, tmpbooks_dir,
|
324
|
-
logger
|
324
|
+
logger:,
|
325
325
|
always_update: config[:always_update_cookbooks]).resolve
|
326
326
|
end
|
327
327
|
end
|
@@ -244,6 +244,7 @@ module Kitchen
|
|
244
244
|
end
|
245
245
|
|
246
246
|
def doctor(state)
|
247
|
+
deprecated_config = instance.driver.instance_variable_get(:@deprecated_config)
|
247
248
|
deprecated_config.each do |attr, msg|
|
248
249
|
info("**** #{attr} deprecated\n#{msg}")
|
249
250
|
end
|
@@ -347,7 +348,7 @@ module Kitchen
|
|
347
348
|
omnibus_url: config[:chef_omnibus_url],
|
348
349
|
project: project.nil? ? nil : project[1],
|
349
350
|
install_flags: config[:chef_omnibus_install_options],
|
350
|
-
sudo_command
|
351
|
+
sudo_command:,
|
351
352
|
}.tap do |opts|
|
352
353
|
opts[:root] = config[:chef_omnibus_root] if config.key? :chef_omnibus_root
|
353
354
|
%i{install_msi_url http_proxy https_proxy}.each do |key|
|
@@ -482,10 +483,10 @@ module Kitchen
|
|
482
483
|
super
|
483
484
|
if File.exist?(policyfile)
|
484
485
|
debug("Policyfile found at #{policyfile}, using Policyfile to resolve cookbook dependencies")
|
485
|
-
Chef::Policyfile.load!(logger:
|
486
|
+
Chef::Policyfile.load!(logger:)
|
486
487
|
elsif File.exist?(berksfile)
|
487
488
|
debug("Berksfile found at #{berksfile}, using Berkshelf to resolve cookbook dependencies")
|
488
|
-
Chef::Berkshelf.load!(logger:
|
489
|
+
Chef::Berkshelf.load!(logger:)
|
489
490
|
end
|
490
491
|
end
|
491
492
|
|
@@ -0,0 +1,130 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Thomas Heinen (<thomas.heinen@gmail.com>)
|
3
|
+
#
|
4
|
+
# Copyright (C) 2023, Thomas Heinen
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
|
18
|
+
require_relative "chef_infra"
|
19
|
+
|
20
|
+
module Kitchen
|
21
|
+
module Provisioner
|
22
|
+
# Chef Target provisioner.
|
23
|
+
#
|
24
|
+
# @author Thomas Heinen <thomas.heinen@gmail.com>
|
25
|
+
class ChefTarget < ChefInfra
|
26
|
+
MIN_VERSION_REQUIRED = "19.0.0".freeze
|
27
|
+
class ChefVersionTooLow < UserError; end
|
28
|
+
class ChefClientNotFound < UserError; end
|
29
|
+
class RequireTrainTransport < UserError; end
|
30
|
+
|
31
|
+
default_config :install_strategy, "none"
|
32
|
+
default_config :sudo, true
|
33
|
+
|
34
|
+
def install_command; ""; end
|
35
|
+
def init_command; ""; end
|
36
|
+
def prepare_command; ""; end
|
37
|
+
|
38
|
+
def chef_args(client_rb_filename)
|
39
|
+
# Dummy execution to initialize and test remote connection
|
40
|
+
connection = instance.remote_exec("echo Connection established")
|
41
|
+
|
42
|
+
check_transport(connection)
|
43
|
+
check_local_chef_client
|
44
|
+
|
45
|
+
instance_name = instance.name
|
46
|
+
credentials_file = File.join(kitchen_basepath, ".kitchen", instance_name + ".ini")
|
47
|
+
File.write(credentials_file, connection.credentials_file)
|
48
|
+
|
49
|
+
super.concat([
|
50
|
+
"--target #{instance_name}",
|
51
|
+
"--credentials #{credentials_file}",
|
52
|
+
])
|
53
|
+
end
|
54
|
+
|
55
|
+
def check_transport(connection)
|
56
|
+
debug("Checking for active transport")
|
57
|
+
|
58
|
+
unless connection.respond_to? "train_uri"
|
59
|
+
error("Chef Target Mode provisioner requires a Train-based transport like kitchen-transport-train")
|
60
|
+
raise RequireTrainTransport.new("No Train transport")
|
61
|
+
end
|
62
|
+
|
63
|
+
debug("Kitchen transport responds to train_uri function call, as required")
|
64
|
+
end
|
65
|
+
|
66
|
+
def check_local_chef_client
|
67
|
+
debug("Checking for chef-client version")
|
68
|
+
|
69
|
+
begin
|
70
|
+
client_version = `chef-client -v`.chop.split(":")[-1]
|
71
|
+
rescue Errno::ENOENT => e
|
72
|
+
error("Error determining Chef Infra version: #{e.exception.message}")
|
73
|
+
raise ChefClientNotFound.new("Need chef-client installed locally")
|
74
|
+
end
|
75
|
+
|
76
|
+
minimum_version = Gem::Version.new(MIN_VERSION_REQUIRED)
|
77
|
+
installed_version = Gem::Version.new(client_version)
|
78
|
+
|
79
|
+
if installed_version < minimum_version
|
80
|
+
error("Found Chef Infra version #{installed_version}, but require #{minimum_version} for Target Mode")
|
81
|
+
raise ChefVersionTooLow.new("Need version #{MIN_VERSION_REQUIRED} or higher")
|
82
|
+
end
|
83
|
+
|
84
|
+
debug("Chef Infra found and version constraints match")
|
85
|
+
end
|
86
|
+
|
87
|
+
def kitchen_basepath
|
88
|
+
instance.driver.config[:kitchen_root]
|
89
|
+
end
|
90
|
+
|
91
|
+
def create_sandbox
|
92
|
+
super
|
93
|
+
|
94
|
+
# Change config.rb to point to the local sandbox path, not to /tmp/kitchen
|
95
|
+
config[:root_path] = sandbox_path
|
96
|
+
prepare_config_rb
|
97
|
+
end
|
98
|
+
|
99
|
+
def call(state)
|
100
|
+
remote_connection = instance.transport.connection(state)
|
101
|
+
|
102
|
+
config[:uploads].to_h.each do |locals, remote|
|
103
|
+
debug("Uploading #{Array(locals).join(", ")} to #{remote}")
|
104
|
+
remote_connection.upload(locals.to_s, remote)
|
105
|
+
end
|
106
|
+
|
107
|
+
# no installation
|
108
|
+
create_sandbox
|
109
|
+
# no prepare command
|
110
|
+
|
111
|
+
# Stream output to logger
|
112
|
+
require "open3"
|
113
|
+
Open3.popen2e(run_command) do |_stdin, output, _thread|
|
114
|
+
output.each { |line| logger << line }
|
115
|
+
end
|
116
|
+
|
117
|
+
info("Downloading files from #{instance.to_str}")
|
118
|
+
config[:downloads].to_h.each do |remotes, local|
|
119
|
+
debug("Downloading #{Array(remotes).join(", ")} to #{local}")
|
120
|
+
remote_connection.download(remotes, local)
|
121
|
+
end
|
122
|
+
debug("Download complete")
|
123
|
+
rescue Kitchen::Transport::TransportFailed => ex
|
124
|
+
raise ActionFailed, ex.message
|
125
|
+
ensure
|
126
|
+
cleanup_sandbox
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -225,7 +225,7 @@ module Kitchen
|
|
225
225
|
delay = 3
|
226
226
|
session(
|
227
227
|
retries: max_wait_until_ready / delay,
|
228
|
-
delay
|
228
|
+
delay:,
|
229
229
|
message: "Waiting for SSH service on #{hostname}:#{port}, " \
|
230
230
|
"retrying in #{delay} seconds"
|
231
231
|
)
|
@@ -468,7 +468,7 @@ module Kitchen
|
|
468
468
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
469
469
|
def connection_options(data)
|
470
470
|
opts = {
|
471
|
-
logger
|
471
|
+
logger:,
|
472
472
|
user_known_hosts_file: "/dev/null",
|
473
473
|
hostname: data[:hostname],
|
474
474
|
port: data[:port],
|
@@ -444,8 +444,8 @@ module Kitchen
|
|
444
444
|
opts = {
|
445
445
|
instance_name: instance.name,
|
446
446
|
kitchen_root: data[:kitchen_root],
|
447
|
-
logger
|
448
|
-
endpoint
|
447
|
+
logger:,
|
448
|
+
endpoint:,
|
449
449
|
user: data[:username],
|
450
450
|
password: data[:password],
|
451
451
|
rdp_port: data[:rdp_port],
|
@@ -457,7 +457,7 @@ module Kitchen
|
|
457
457
|
transport: data[:winrm_transport],
|
458
458
|
elevated: data[:elevated],
|
459
459
|
elevated_username: data[:elevated_username] || data[:username],
|
460
|
-
elevated_password
|
460
|
+
elevated_password:,
|
461
461
|
}
|
462
462
|
opts.merge!(additional_transport_args(data, opts[:transport]))
|
463
463
|
if opts[:transport].to_sym == :ssl && opts.key?(:client_cert) && opts.key?(:client_key)
|
data/lib/kitchen/version.rb
CHANGED
data/lib/kitchen.rb
CHANGED
data/test-kitchen.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.executables = %w{kitchen}
|
21
21
|
gem.require_paths = ["lib"]
|
22
22
|
|
23
|
-
gem.required_ruby_version = ">=
|
23
|
+
gem.required_ruby_version = ">= 3.1"
|
24
24
|
|
25
25
|
gem.add_dependency "bcrypt_pbkdf", "~> 1.0" # ed25519 ssh key support
|
26
26
|
gem.add_dependency "chef-utils", ">= 16.4.35"
|
@@ -37,15 +37,4 @@ Gem::Specification.new do |gem|
|
|
37
37
|
# Required to run the Chef provisioner local license check for remote systems
|
38
38
|
# TK is not under Chef EULA
|
39
39
|
gem.add_dependency "license-acceptance", ">= 1.0.11", "< 3.0" # pinning until we can confirm 3+ works
|
40
|
-
|
41
|
-
gem.add_development_dependency "rake"
|
42
|
-
gem.add_development_dependency "rb-readline"
|
43
|
-
|
44
|
-
gem.add_development_dependency "aruba", ">= 0.11", "< 3.0"
|
45
|
-
gem.add_development_dependency "countloc", "~> 0.4"
|
46
|
-
gem.add_development_dependency "cucumber", ">= 2.1", "< 8.0"
|
47
|
-
gem.add_development_dependency "fakefs", "~> 2.0"
|
48
|
-
gem.add_development_dependency "maruku", "~> 0.6"
|
49
|
-
gem.add_development_dependency "minitest", "~> 5.3", "< 5.16"
|
50
|
-
gem.add_development_dependency "mocha", "~> 2.0"
|
51
40
|
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: 3.
|
4
|
+
version: 3.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bcrypt_pbkdf
|
@@ -228,150 +228,6 @@ dependencies:
|
|
228
228
|
- - "<"
|
229
229
|
- !ruby/object:Gem::Version
|
230
230
|
version: '3.0'
|
231
|
-
- !ruby/object:Gem::Dependency
|
232
|
-
name: rake
|
233
|
-
requirement: !ruby/object:Gem::Requirement
|
234
|
-
requirements:
|
235
|
-
- - ">="
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: '0'
|
238
|
-
type: :development
|
239
|
-
prerelease: false
|
240
|
-
version_requirements: !ruby/object:Gem::Requirement
|
241
|
-
requirements:
|
242
|
-
- - ">="
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
version: '0'
|
245
|
-
- !ruby/object:Gem::Dependency
|
246
|
-
name: rb-readline
|
247
|
-
requirement: !ruby/object:Gem::Requirement
|
248
|
-
requirements:
|
249
|
-
- - ">="
|
250
|
-
- !ruby/object:Gem::Version
|
251
|
-
version: '0'
|
252
|
-
type: :development
|
253
|
-
prerelease: false
|
254
|
-
version_requirements: !ruby/object:Gem::Requirement
|
255
|
-
requirements:
|
256
|
-
- - ">="
|
257
|
-
- !ruby/object:Gem::Version
|
258
|
-
version: '0'
|
259
|
-
- !ruby/object:Gem::Dependency
|
260
|
-
name: aruba
|
261
|
-
requirement: !ruby/object:Gem::Requirement
|
262
|
-
requirements:
|
263
|
-
- - ">="
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
version: '0.11'
|
266
|
-
- - "<"
|
267
|
-
- !ruby/object:Gem::Version
|
268
|
-
version: '3.0'
|
269
|
-
type: :development
|
270
|
-
prerelease: false
|
271
|
-
version_requirements: !ruby/object:Gem::Requirement
|
272
|
-
requirements:
|
273
|
-
- - ">="
|
274
|
-
- !ruby/object:Gem::Version
|
275
|
-
version: '0.11'
|
276
|
-
- - "<"
|
277
|
-
- !ruby/object:Gem::Version
|
278
|
-
version: '3.0'
|
279
|
-
- !ruby/object:Gem::Dependency
|
280
|
-
name: countloc
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
282
|
-
requirements:
|
283
|
-
- - "~>"
|
284
|
-
- !ruby/object:Gem::Version
|
285
|
-
version: '0.4'
|
286
|
-
type: :development
|
287
|
-
prerelease: false
|
288
|
-
version_requirements: !ruby/object:Gem::Requirement
|
289
|
-
requirements:
|
290
|
-
- - "~>"
|
291
|
-
- !ruby/object:Gem::Version
|
292
|
-
version: '0.4'
|
293
|
-
- !ruby/object:Gem::Dependency
|
294
|
-
name: cucumber
|
295
|
-
requirement: !ruby/object:Gem::Requirement
|
296
|
-
requirements:
|
297
|
-
- - ">="
|
298
|
-
- !ruby/object:Gem::Version
|
299
|
-
version: '2.1'
|
300
|
-
- - "<"
|
301
|
-
- !ruby/object:Gem::Version
|
302
|
-
version: '8.0'
|
303
|
-
type: :development
|
304
|
-
prerelease: false
|
305
|
-
version_requirements: !ruby/object:Gem::Requirement
|
306
|
-
requirements:
|
307
|
-
- - ">="
|
308
|
-
- !ruby/object:Gem::Version
|
309
|
-
version: '2.1'
|
310
|
-
- - "<"
|
311
|
-
- !ruby/object:Gem::Version
|
312
|
-
version: '8.0'
|
313
|
-
- !ruby/object:Gem::Dependency
|
314
|
-
name: fakefs
|
315
|
-
requirement: !ruby/object:Gem::Requirement
|
316
|
-
requirements:
|
317
|
-
- - "~>"
|
318
|
-
- !ruby/object:Gem::Version
|
319
|
-
version: '2.0'
|
320
|
-
type: :development
|
321
|
-
prerelease: false
|
322
|
-
version_requirements: !ruby/object:Gem::Requirement
|
323
|
-
requirements:
|
324
|
-
- - "~>"
|
325
|
-
- !ruby/object:Gem::Version
|
326
|
-
version: '2.0'
|
327
|
-
- !ruby/object:Gem::Dependency
|
328
|
-
name: maruku
|
329
|
-
requirement: !ruby/object:Gem::Requirement
|
330
|
-
requirements:
|
331
|
-
- - "~>"
|
332
|
-
- !ruby/object:Gem::Version
|
333
|
-
version: '0.6'
|
334
|
-
type: :development
|
335
|
-
prerelease: false
|
336
|
-
version_requirements: !ruby/object:Gem::Requirement
|
337
|
-
requirements:
|
338
|
-
- - "~>"
|
339
|
-
- !ruby/object:Gem::Version
|
340
|
-
version: '0.6'
|
341
|
-
- !ruby/object:Gem::Dependency
|
342
|
-
name: minitest
|
343
|
-
requirement: !ruby/object:Gem::Requirement
|
344
|
-
requirements:
|
345
|
-
- - "~>"
|
346
|
-
- !ruby/object:Gem::Version
|
347
|
-
version: '5.3'
|
348
|
-
- - "<"
|
349
|
-
- !ruby/object:Gem::Version
|
350
|
-
version: '5.16'
|
351
|
-
type: :development
|
352
|
-
prerelease: false
|
353
|
-
version_requirements: !ruby/object:Gem::Requirement
|
354
|
-
requirements:
|
355
|
-
- - "~>"
|
356
|
-
- !ruby/object:Gem::Version
|
357
|
-
version: '5.3'
|
358
|
-
- - "<"
|
359
|
-
- !ruby/object:Gem::Version
|
360
|
-
version: '5.16'
|
361
|
-
- !ruby/object:Gem::Dependency
|
362
|
-
name: mocha
|
363
|
-
requirement: !ruby/object:Gem::Requirement
|
364
|
-
requirements:
|
365
|
-
- - "~>"
|
366
|
-
- !ruby/object:Gem::Version
|
367
|
-
version: '2.0'
|
368
|
-
type: :development
|
369
|
-
prerelease: false
|
370
|
-
version_requirements: !ruby/object:Gem::Requirement
|
371
|
-
requirements:
|
372
|
-
- - "~>"
|
373
|
-
- !ruby/object:Gem::Version
|
374
|
-
version: '2.0'
|
375
231
|
description: Test Kitchen is an integration tool for developing and testing infrastructure
|
376
232
|
code and software on isolated target platforms.
|
377
233
|
email:
|
@@ -438,6 +294,7 @@ files:
|
|
438
294
|
- lib/kitchen/provisioner/chef_base.rb
|
439
295
|
- lib/kitchen/provisioner/chef_infra.rb
|
440
296
|
- lib/kitchen/provisioner/chef_solo.rb
|
297
|
+
- lib/kitchen/provisioner/chef_target.rb
|
441
298
|
- lib/kitchen/provisioner/chef_zero.rb
|
442
299
|
- lib/kitchen/provisioner/dummy.rb
|
443
300
|
- lib/kitchen/provisioner/shell.rb
|
@@ -500,7 +357,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
500
357
|
requirements:
|
501
358
|
- - ">="
|
502
359
|
- !ruby/object:Gem::Version
|
503
|
-
version: '
|
360
|
+
version: '3.1'
|
504
361
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
505
362
|
requirements:
|
506
363
|
- - ">="
|