test-kitchen 3.0.0 → 3.2.1
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/provisioner/chef_base.rb +32 -15
- data/lib/kitchen/transport/ssh.rb +5 -3
- data/lib/kitchen/transport/winrm.rb +21 -8
- data/lib/kitchen/version.rb +1 -1
- data/test-kitchen.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d13b33db25f75d1d7f7a89d6da2a7eb2e78da9a8c7416ed6cf7a8d72e2e690a2
|
4
|
+
data.tar.gz: bb0352e0588277a0cff8d03364e09608cbd4f68218824a041d26d2f7c3c74a4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d6cd7cdfff82e128a602f8eab578834168051940aadb50fdee9988f45ae9baa1b20053dc8580e69ce70ad160edb4d46e8bdf458cf36245a4dff97d13f128175
|
7
|
+
data.tar.gz: f05de5e3be22a367cdafb162e70651fcf9b9f881d8948654988c93648f650619ef63b2b2cf70d55b0818e94f057695c06465cf59f5a9168aa085ebb4710aa1f3
|
data/Gemfile
CHANGED
@@ -69,7 +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
|
+
ohai/**/* compliance/**/*
|
73
73
|
).join(",")
|
74
74
|
# to ease upgrades, allow the user to turn deprecation warnings into errors
|
75
75
|
default_config :deprecations_as_errors, false
|
@@ -681,25 +681,42 @@ module Kitchen
|
|
681
681
|
chef_cmds(base_cmd).join(separator)
|
682
682
|
end
|
683
683
|
|
684
|
-
# Gives an array of
|
684
|
+
# Gives an array of commands
|
685
685
|
# @api private
|
686
686
|
def chef_cmds(base_cmd)
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
if config[:enforce_idempotency]
|
695
|
-
idempotent_cmd = prefix_command(wrap_shell_code(
|
696
|
-
[base_cmd, *chef_args("client_no_updated_resources.rb"), last_exit_code].join(" ")
|
697
|
-
.tap { |str| str.insert(0, reload_ps1_path) if windows_os? }
|
698
|
-
))
|
699
|
-
cmds[-1] = idempotent_cmd
|
687
|
+
cmds = []
|
688
|
+
num_converges = config[:multiple_converge].to_i
|
689
|
+
idempotency = config[:enforce_idempotency]
|
690
|
+
|
691
|
+
# Execute Chef Client n-1 times, without exiting
|
692
|
+
(num_converges - 1).times do
|
693
|
+
cmds << wrapped_chef_cmd(base_cmd, config_filename)
|
700
694
|
end
|
695
|
+
|
696
|
+
# Append another execution with Windows specific Exit code helper or (for
|
697
|
+
# idempotency check) a specific config file which assures no changed resources.
|
698
|
+
cmds << unless idempotency
|
699
|
+
wrapped_chef_cmd(base_cmd, config_filename, append: last_exit_code)
|
700
|
+
else
|
701
|
+
wrapped_chef_cmd(base_cmd, "client_no_updated_resources.rb", append: last_exit_code)
|
702
|
+
end
|
701
703
|
cmds
|
702
704
|
end
|
705
|
+
|
706
|
+
# Concatenate all arguments and wrap it with shell-specifics
|
707
|
+
# @api private
|
708
|
+
def wrapped_chef_cmd(base_cmd, configfile, append: "")
|
709
|
+
args = []
|
710
|
+
|
711
|
+
args << base_cmd
|
712
|
+
args << chef_args(configfile)
|
713
|
+
args << append
|
714
|
+
|
715
|
+
shell_cmd = args.flatten.join(" ")
|
716
|
+
shell_cmd = shell_cmd.prepend(reload_ps1_path) if windows_os?
|
717
|
+
|
718
|
+
prefix_command(wrap_shell_code(shell_cmd))
|
719
|
+
end
|
703
720
|
end
|
704
721
|
end
|
705
722
|
end
|
@@ -176,9 +176,11 @@ module Kitchen
|
|
176
176
|
Array(locals).map do |local|
|
177
177
|
opts = File.directory?(local) ? { recursive: true } : {}
|
178
178
|
|
179
|
-
waits.push
|
180
|
-
|
181
|
-
|
179
|
+
waits.push(
|
180
|
+
session.scp.upload(local, remote, opts) do |_ch, name, sent, total|
|
181
|
+
logger.debug("Async Uploaded #{name} (#{total} bytes)") if sent == total
|
182
|
+
end
|
183
|
+
)
|
182
184
|
waits.shift.wait while waits.length >= max_ssh_sessions
|
183
185
|
end
|
184
186
|
waits.each(&:wait)
|
@@ -439,18 +439,31 @@ module Kitchen
|
|
439
439
|
elevated_username: data[:elevated_username] || data[:username],
|
440
440
|
elevated_password: elevated_password,
|
441
441
|
}
|
442
|
-
opts.merge!(additional_transport_args(opts[:transport]))
|
442
|
+
opts.merge!(additional_transport_args(data, opts[:transport]))
|
443
|
+
if opts[:transport].to_sym == :ssl && opts.key?(:client_cert) && opts.key?(:client_key)
|
444
|
+
opts.delete(:user)
|
445
|
+
opts.delete(:password)
|
446
|
+
end
|
443
447
|
opts
|
444
448
|
end
|
445
449
|
|
446
|
-
def additional_transport_args(transport_type)
|
450
|
+
def additional_transport_args(data, transport_type)
|
451
|
+
opts = {
|
452
|
+
disable_sspi: false,
|
453
|
+
basic_auth_only: false,
|
454
|
+
}
|
455
|
+
|
447
456
|
case transport_type.to_sym
|
448
|
-
when :ssl
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
457
|
+
when :ssl
|
458
|
+
if data.key?(:client_cert) && data.key?(:client_key)
|
459
|
+
opts[:client_cert] = data[:client_cert]
|
460
|
+
opts[:client_key] = data[:client_key]
|
461
|
+
end
|
462
|
+
opts[:no_ssl_peer_verification] = data.key?(:no_ssl_peer_verification) ? data[:no_ssl_peer_verification] : true
|
463
|
+
opts
|
464
|
+
when :negotiate
|
465
|
+
opts[:no_ssl_peer_verification] = true
|
466
|
+
opts
|
454
467
|
when :plaintext
|
455
468
|
{
|
456
469
|
disable_sspi: true,
|
data/lib/kitchen/version.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 = ">= 2.
|
23
|
+
gem.required_ruby_version = ">= 2.6"
|
24
24
|
|
25
25
|
gem.add_dependency "mixlib-shellout", ">= 1.2", "< 4.0"
|
26
26
|
gem.add_dependency "net-scp", ">= 1.1", "< 4.0" # pinning until we can confirm 4+ works
|
@@ -46,7 +46,7 @@ Gem::Specification.new do |gem|
|
|
46
46
|
gem.add_development_dependency "fakefs", "~> 1.0"
|
47
47
|
gem.add_development_dependency "minitest", "~> 5.3", "< 5.15"
|
48
48
|
gem.add_development_dependency "mocha", "~> 1.1"
|
49
|
-
gem.add_development_dependency "cucumber", ">= 2.1", "<
|
49
|
+
gem.add_development_dependency "cucumber", ">= 2.1", "< 8.0"
|
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: 3.
|
4
|
+
version: 3.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fletcher Nichol
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -347,7 +347,7 @@ dependencies:
|
|
347
347
|
version: '2.1'
|
348
348
|
- - "<"
|
349
349
|
- !ruby/object:Gem::Version
|
350
|
-
version: '
|
350
|
+
version: '8.0'
|
351
351
|
type: :development
|
352
352
|
prerelease: false
|
353
353
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -357,7 +357,7 @@ dependencies:
|
|
357
357
|
version: '2.1'
|
358
358
|
- - "<"
|
359
359
|
- !ruby/object:Gem::Version
|
360
|
-
version: '
|
360
|
+
version: '8.0'
|
361
361
|
- !ruby/object:Gem::Dependency
|
362
362
|
name: countloc
|
363
363
|
requirement: !ruby/object:Gem::Requirement
|
@@ -513,14 +513,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
513
513
|
requirements:
|
514
514
|
- - ">="
|
515
515
|
- !ruby/object:Gem::Version
|
516
|
-
version: '2.
|
516
|
+
version: '2.6'
|
517
517
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
518
518
|
requirements:
|
519
519
|
- - ">="
|
520
520
|
- !ruby/object:Gem::Version
|
521
521
|
version: '0'
|
522
522
|
requirements: []
|
523
|
-
rubygems_version: 3.2.
|
523
|
+
rubygems_version: 3.2.22
|
524
524
|
signing_key:
|
525
525
|
specification_version: 4
|
526
526
|
summary: Test Kitchen is an integration tool for developing and testing infrastructure
|