test-kitchen 3.0.0 → 3.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|