test-kitchen 1.23.2 → 1.23.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +7 -0
- data/.gitmodules +0 -0
- data/.travis.yml +0 -4
- data/CHANGELOG.md +40 -0
- data/MAINTAINERS.md +2 -1
- data/Rakefile +9 -0
- data/docs/CONTRIBUTING.md +8 -0
- data/docs/LICENSE +22 -0
- data/docs/README.md +78 -0
- data/docs/archetypes/default.md +6 -0
- data/docs/config.toml +36 -0
- data/docs/content/docs/_index.md +5 -0
- data/docs/content/docs/drivers/_index.md +27 -0
- data/docs/content/docs/drivers/azurerm.md +44 -0
- data/docs/content/docs/drivers/vagrant.md +39 -0
- data/docs/content/docs/getting-started/00-introduction.md +14 -0
- data/docs/content/docs/getting-started/01-installing.md +64 -0
- data/docs/content/docs/getting-started/02-getting-help.md +59 -0
- data/docs/content/docs/getting-started/03-creating-cookbook.md +46 -0
- data/docs/content/docs/getting-started/04-kitchen-yml.md +56 -0
- data/docs/content/docs/getting-started/05-instances.md +79 -0
- data/docs/content/docs/getting-started/06-writing-recipe.md +21 -0
- data/docs/content/docs/getting-started/07-running-converge.md +134 -0
- data/docs/content/docs/getting-started/08-manually-verifying.md +55 -0
- data/docs/content/docs/getting-started/09-writing-test.md +49 -0
- data/docs/content/docs/getting-started/10-running-verify.md +120 -0
- data/docs/content/docs/getting-started/11-running-test.md +168 -0
- data/docs/content/docs/getting-started/12-adding-platform.md +206 -0
- data/docs/content/docs/getting-started/13-adding-feature.md +30 -0
- data/docs/content/docs/getting-started/14-adding-suite.md +60 -0
- data/docs/content/docs/getting-started/15-adding-test.md +66 -0
- data/docs/content/docs/getting-started/16-adding-recipe.md +53 -0
- data/docs/content/docs/getting-started/17-excluding-platforms.md +101 -0
- data/docs/content/docs/getting-started/18-next-steps.md +23 -0
- data/docs/content/docs/getting-started/_index.md +5 -0
- data/docs/content/docs/provisioners/_index.md +36 -0
- data/docs/content/docs/provisioners/chef.md +69 -0
- data/docs/content/docs/provisioners/shell.md +31 -0
- data/docs/content/docs/reference/_index.md +5 -0
- data/docs/content/docs/reference/configuration.md +53 -0
- data/docs/content/docs/reference/examples.md +97 -0
- data/docs/content/docs/reference/faq.md +58 -0
- data/docs/content/docs/reference/fixtures.md +32 -0
- data/docs/content/docs/reference/glossary.md +34 -0
- data/docs/content/docs/reference/lifecycle-hooks.md +68 -0
- data/docs/content/docs/reference/reboots.md +24 -0
- data/docs/content/docs/verifiers/_index.md +14 -0
- data/docs/content/docs/verifiers/inspec.md +44 -0
- data/docs/content/docs/verifiers/serverspec.md +20 -0
- data/docs/static/images/chef-logo.png +0 -0
- data/docs/static/images/chef-logo.svg +1 -0
- data/docs/static/images/github-banner.png +0 -0
- data/docs/static/images/github-banner.svg +71 -0
- data/docs/static/images/kitchen-logo.png +0 -0
- data/docs/static/images/logo-block.svg +222 -0
- data/docs/static/images/logo.png +0 -0
- data/docs/static/images/logos-group.png +0 -0
- data/docs/static/images/terminal-1.png +0 -0
- data/docs/static/images/terminal-1.svg +589 -0
- data/docs/static/images/terminal-2.png +0 -0
- data/docs/static/images/terminal-2.svg +235 -0
- data/docs/static/images/terminal-3.png +0 -0
- data/docs/static/images/terminal-3.svg +439 -0
- data/docs/static/index.html +59 -0
- data/docs/static/javascripts/all.js +348 -0
- data/docs/static/javascripts/vendor/foundation.min.js +4 -0
- data/docs/static/javascripts/vendor/jquery.min.js +5 -0
- data/docs/static/javascripts/vendor/what-input.js +336 -0
- data/docs/static/stylesheets/site.css +4667 -0
- data/docs/themes/kitchen/layouts/_default/baseof.html +53 -0
- data/docs/themes/kitchen/layouts/_default/list.html +4 -0
- data/docs/themes/kitchen/layouts/_default/redirect.html +10 -0
- data/docs/themes/kitchen/layouts/_default/single.html +6 -0
- data/docs/themes/kitchen/layouts/partials/core/head.html +6 -0
- data/docs/themes/kitchen/layouts/partials/kitchen/footer.html +18 -0
- data/docs/themes/kitchen/layouts/partials/kitchen/head.html +4 -0
- data/docs/themes/kitchen/layouts/partials/kitchen/header.html +26 -0
- data/docs/themes/kitchen/layouts/partials/search-docs.html +3 -0
- data/docs/themes/kitchen/layouts/partials/sidebar.html +33 -0
- data/docs/themes/kitchen/layouts/shortcodes/button.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/codeblock.html +8 -0
- data/docs/themes/kitchen/layouts/shortcodes/cta.html +5 -0
- data/docs/themes/kitchen/layouts/shortcodes/danger.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/example_fqdn.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/info.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/ol-styled.html +3 -0
- data/docs/themes/kitchen/layouts/shortcodes/success.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/tip.html +1 -0
- data/docs/themes/kitchen/layouts/shortcodes/warning.html +1 -0
- data/docs/themes/kitchen/static/css/kitchen.css +10 -0
- data/docs/themes/kitchen/static/css/kitchen.css.map +7 -0
- data/docs/themes/kitchen/static/fonts/Muli-Bold.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/Muli-Regular.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/Muli-SemiBold.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.svg +1104 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff2 +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.svg +372 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff2 +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.eot +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.svg +1896 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.ttf +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff +0 -0
- data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff2 +0 -0
- data/docs/themes/kitchen/static/images/chef-logo-light.svg +36 -0
- data/docs/themes/kitchen/static/images/chef-logo-white.svg +38 -0
- data/docs/themes/kitchen/static/images/chef-logo.svg +37 -0
- data/docs/themes/kitchen/static/images/favicon.ico +0 -0
- data/docs/themes/kitchen/static/js/scripts-all.js +7 -0
- data/docs/themes/kitchen/static/js/source/chef-hugo.js +116 -0
- data/docs/themes/kitchen/static/js/source/omnitruck.js +82 -0
- data/docs/themes/kitchen/static/js/source/segment.js +52 -0
- data/docs/themes/kitchen/static/sass/_buttons.scss +161 -0
- data/docs/themes/kitchen/static/sass/_core.scss +24 -0
- data/docs/themes/kitchen/static/sass/_forms.scss +14 -0
- data/docs/themes/kitchen/static/sass/_mixins.scss +133 -0
- data/docs/themes/kitchen/static/sass/_typography.scss +34 -0
- data/docs/themes/kitchen/static/sass/_variables.scss +82 -0
- data/docs/themes/kitchen/static/sass/kitchen.scss +7 -0
- data/docs/themes/kitchen/static/sass/kitchen/_footer.scss +50 -0
- data/docs/themes/kitchen/static/sass/kitchen/_header.scss +187 -0
- data/docs/themes/kitchen/static/sass/kitchen/_homepage.scss +27 -0
- data/docs/themes/kitchen/static/sass/kitchen/_utility-bar.scss +173 -0
- data/docs/themes/kitchen/static/sass/partials/_alerts.scss +32 -0
- data/docs/themes/kitchen/static/sass/partials/_bg.scss +19 -0
- data/docs/themes/kitchen/static/sass/partials/_blurbs.scss +25 -0
- data/docs/themes/kitchen/static/sass/partials/_callout.scss +15 -0
- data/docs/themes/kitchen/static/sass/partials/_cards.scss +54 -0
- data/docs/themes/kitchen/static/sass/partials/_dropdown.scss +77 -0
- data/docs/themes/kitchen/static/sass/partials/_grid.scss +87 -0
- data/docs/themes/kitchen/static/sass/partials/_padding.scss +73 -0
- data/docs/themes/kitchen/static/sass/partials/_sidebar.scss +71 -0
- data/docs/themes/kitchen/static/sass/partials/_tabs.scss +125 -0
- data/docs/themes/kitchen/static/sass/typography/_chroma.scss +366 -0
- data/docs/themes/kitchen/static/sass/typography/_code.scss +72 -0
- data/docs/themes/kitchen/static/sass/typography/_headers.scss +90 -0
- data/docs/themes/kitchen/static/sass/typography/_links.scss +127 -0
- data/docs/themes/kitchen/static/sass/typography/_lists.scss +155 -0
- data/docs/themes/kitchen/static/sass/typography/_prose.scss +29 -0
- data/docs/themes/kitchen/static/sass/typography/_text.scss +221 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_animated.scss +20 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_bordered-pulled.scss +20 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_core.scss +16 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_fixed-width.scss +6 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_icons.scss +992 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_larger.scss +23 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_list.scss +18 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_mixins.scss +57 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_rotated-flipped.scss +23 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_screen-reader.scss +5 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_stacked.scss +31 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/_variables.scss +1005 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-brands.scss +21 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-regular.scss +22 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-solid.scss +23 -0
- data/docs/themes/kitchen/static/sass/vendor/fontawesome/fontawesome.scss +16 -0
- data/docs/themes/kitchen/theme.toml +8 -0
- data/lib/kitchen/provisioner/chef_base.rb +6 -6
- data/lib/kitchen/transport/ssh.rb +2 -2
- data/lib/kitchen/transport/winrm.rb +32 -9
- data/lib/kitchen/version.rb +1 -1
- data/spec/kitchen/data_munger_spec.rb +13 -13
- data/spec/kitchen/driver/exec_spec.rb +1 -1
- data/spec/kitchen/lifecycle_hooks_spec.rb +6 -6
- data/spec/kitchen/provisioner/chef_base_spec.rb +26 -26
- data/spec/kitchen/transport/winrm_spec.rb +46 -10
- metadata +160 -3
@@ -0,0 +1,21 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
3
|
+
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
4
|
+
*/
|
5
|
+
@import 'variables';
|
6
|
+
|
7
|
+
@font-face {
|
8
|
+
font-family: 'Font Awesome 5 Brands';
|
9
|
+
font-style: normal;
|
10
|
+
font-weight: normal;
|
11
|
+
src: url('#{$fa-font-path}/fa-brands-400.eot');
|
12
|
+
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
13
|
+
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
14
|
+
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
|
15
|
+
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
16
|
+
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
17
|
+
}
|
18
|
+
|
19
|
+
.fab {
|
20
|
+
font-family: 'Font Awesome 5 Brands';
|
21
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
3
|
+
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
4
|
+
*/
|
5
|
+
@import 'variables';
|
6
|
+
|
7
|
+
@font-face {
|
8
|
+
font-family: 'Font Awesome 5 Free';
|
9
|
+
font-style: normal;
|
10
|
+
font-weight: 400;
|
11
|
+
src: url('#{$fa-font-path}/fa-regular-400.eot');
|
12
|
+
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
13
|
+
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
14
|
+
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
|
15
|
+
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
16
|
+
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
17
|
+
}
|
18
|
+
|
19
|
+
.far {
|
20
|
+
font-family: 'Font Awesome 5 Free';
|
21
|
+
font-weight: 400;
|
22
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
3
|
+
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
4
|
+
*/
|
5
|
+
@import 'variables';
|
6
|
+
|
7
|
+
@font-face {
|
8
|
+
font-family: 'Font Awesome 5 Free';
|
9
|
+
font-style: normal;
|
10
|
+
font-weight: 900;
|
11
|
+
src: url('#{$fa-font-path}/fa-solid-900.eot');
|
12
|
+
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
13
|
+
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
14
|
+
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
|
15
|
+
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
16
|
+
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
17
|
+
}
|
18
|
+
|
19
|
+
.fa,
|
20
|
+
.fas {
|
21
|
+
font-family: 'Font Awesome 5 Free';
|
22
|
+
font-weight: 900;
|
23
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
3
|
+
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
4
|
+
*/
|
5
|
+
@import 'variables';
|
6
|
+
@import 'mixins';
|
7
|
+
@import 'core';
|
8
|
+
@import 'larger';
|
9
|
+
@import 'fixed-width';
|
10
|
+
@import 'list';
|
11
|
+
@import 'bordered-pulled';
|
12
|
+
@import 'animated';
|
13
|
+
@import 'rotated-flipped';
|
14
|
+
@import 'stacked';
|
15
|
+
@import 'icons';
|
16
|
+
@import 'screen-reader';
|
@@ -0,0 +1,8 @@
|
|
1
|
+
name = "kitchen"
|
2
|
+
license = "Apache-2"
|
3
|
+
licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE.md"
|
4
|
+
description = "The theme used for KitchenCI"
|
5
|
+
homepage = "http://github.com/chef/chef-hugo-theme"
|
6
|
+
tags = []
|
7
|
+
features = []
|
8
|
+
min_version = "0.38"
|
@@ -62,7 +62,7 @@ module Kitchen
|
|
62
62
|
# backend cookbook downloader on every kitchen run.
|
63
63
|
default_config :always_update_cookbooks, false
|
64
64
|
default_config :cookbook_files_glob, %w(
|
65
|
-
README.* metadata.{json,rb}
|
65
|
+
README.* VERSION metadata.{json,rb} attributes.rb recipe.rb
|
66
66
|
attributes/**/* definitions/**/* files/**/* libraries/**/*
|
67
67
|
providers/**/* recipes/**/* resources/**/* templates/**/*
|
68
68
|
).join(",")
|
@@ -551,7 +551,7 @@ module Kitchen
|
|
551
551
|
# @api private
|
552
552
|
def prepare_config_rb
|
553
553
|
data = default_config_rb.merge(config[config_filename.tr(".", "_").to_sym])
|
554
|
-
data = data.merge(:
|
554
|
+
data = data.merge(named_run_list: config[:named_run_list]) if config[:named_run_list]
|
555
555
|
|
556
556
|
info("Preparing #{config_filename}")
|
557
557
|
debug("Creating #{config_filename} from #{data.inspect}")
|
@@ -615,16 +615,16 @@ module Kitchen
|
|
615
615
|
# @api private
|
616
616
|
def chef_cmds(base_cmd)
|
617
617
|
cmd = prefix_command(wrap_shell_code(
|
618
|
-
[base_cmd, *chef_args(config_filename), last_exit_code].join(" ")
|
619
|
-
tap { |str| str.insert(0, reload_ps1_path) if windows_os? }
|
618
|
+
[base_cmd, *chef_args(config_filename), last_exit_code].join(" ")
|
619
|
+
.tap { |str| str.insert(0, reload_ps1_path) if windows_os? }
|
620
620
|
))
|
621
621
|
|
622
622
|
cmds = [cmd].cycle(config[:multiple_converge].to_i).to_a
|
623
623
|
|
624
624
|
if config[:enforce_idempotency]
|
625
625
|
idempotent_cmd = prefix_command(wrap_shell_code(
|
626
|
-
[base_cmd, *chef_args("client_no_updated_resources.rb"), last_exit_code].join(" ")
|
627
|
-
tap { |str| str.insert(0, reload_ps1_path) if windows_os? }
|
626
|
+
[base_cmd, *chef_args("client_no_updated_resources.rb"), last_exit_code].join(" ")
|
627
|
+
.tap { |str| str.insert(0, reload_ps1_path) if windows_os? }
|
628
628
|
))
|
629
629
|
cmds[-1] = idempotent_cmd
|
630
630
|
end
|
@@ -314,7 +314,7 @@ module Kitchen
|
|
314
314
|
# @api private
|
315
315
|
def establish_connection_via_gateway(opts)
|
316
316
|
retry_connection(opts) do
|
317
|
-
gateway_options = options.merge(:
|
317
|
+
gateway_options = options.merge(port: ssh_gateway_port)
|
318
318
|
Net::SSH::Gateway.new(ssh_gateway,
|
319
319
|
ssh_gateway_username, gateway_options).ssh(hostname, username, options)
|
320
320
|
end
|
@@ -337,7 +337,7 @@ module Kitchen
|
|
337
337
|
end
|
338
338
|
end
|
339
339
|
|
340
|
-
#
|
340
|
+
# Connect to a host executing passed block and properly handling retries.
|
341
341
|
#
|
342
342
|
# @param opts [Hash] retry options
|
343
343
|
# @option opts [Integer] :retries the number of times to retry before
|
@@ -20,8 +20,8 @@
|
|
20
20
|
|
21
21
|
require "rbconfig"
|
22
22
|
require "uri"
|
23
|
-
|
24
23
|
require "kitchen"
|
24
|
+
require "winrm"
|
25
25
|
|
26
26
|
module Kitchen
|
27
27
|
module Transport
|
@@ -46,6 +46,8 @@ module Kitchen
|
|
46
46
|
default_config :rdp_port, 3389
|
47
47
|
default_config :connection_retries, 5
|
48
48
|
default_config :connection_retry_sleep, 1
|
49
|
+
default_config :operation_timeout, 60
|
50
|
+
default_config :receive_timeout, 70
|
49
51
|
default_config :max_wait_until_ready, 600
|
50
52
|
default_config :winrm_transport, :negotiate
|
51
53
|
default_config :scheme do |transport|
|
@@ -160,12 +162,25 @@ module Kitchen
|
|
160
162
|
retry_delay: delay
|
161
163
|
)
|
162
164
|
execute(PING_COMMAND.dup)
|
165
|
+
rescue *RESCUE_EXCEPTIONS_ON_ESTABLISH => e
|
166
|
+
retries ||= connection_retries.to_i
|
167
|
+
raise e if (retries -= 1) < 0
|
168
|
+
logger.debug("[WinRM] PING_COMMAND failed. Retrying...")
|
169
|
+
logger.debug("#{e.class}::#{e.message}")
|
170
|
+
sleep(connection_retry_sleep.to_i)
|
171
|
+
retry
|
163
172
|
end
|
164
173
|
|
165
174
|
private
|
166
175
|
|
167
176
|
PING_COMMAND = "Write-Host '[WinRM] Established\n'".freeze
|
168
177
|
|
178
|
+
RESCUE_EXCEPTIONS_ON_ESTABLISH = [
|
179
|
+
Errno::EACCES, Errno::EALREADY, Errno::EADDRINUSE, Errno::ECONNREFUSED, Errno::ETIMEDOUT,
|
180
|
+
Errno::ECONNRESET, Errno::ENETUNREACH, Errno::EHOSTUNREACH, Errno::EPIPE,
|
181
|
+
OpenSSL::SSL::SSLError, WinRM::WinRMHTTPTransportError
|
182
|
+
].freeze
|
183
|
+
|
169
184
|
# @return [Integer] how many times to retry when failing to execute
|
170
185
|
# a command or transfer files
|
171
186
|
# @api private
|
@@ -237,10 +252,14 @@ module Kitchen
|
|
237
252
|
session = unelevated_session
|
238
253
|
end
|
239
254
|
|
240
|
-
|
241
|
-
|
255
|
+
begin
|
256
|
+
response = session.run(command) do |stdout, _|
|
257
|
+
logger << stdout if stdout
|
258
|
+
end
|
259
|
+
[response.exitcode, response.stderr]
|
260
|
+
ensure
|
261
|
+
close
|
242
262
|
end
|
243
|
-
[response.exitcode, response.stderr]
|
244
263
|
end
|
245
264
|
|
246
265
|
def unelevated_temp_dir
|
@@ -256,13 +275,15 @@ module Kitchen
|
|
256
275
|
# (see Base#init_options)
|
257
276
|
def init_options(options)
|
258
277
|
super
|
259
|
-
@instance_name
|
260
|
-
@kitchen_root
|
261
|
-
@rdp_port
|
278
|
+
@instance_name = @options.delete(:instance_name)
|
279
|
+
@kitchen_root = @options.delete(:kitchen_root)
|
280
|
+
@rdp_port = @options.delete(:rdp_port)
|
262
281
|
@connection_retries = @options.delete(:connection_retries)
|
263
282
|
@connection_retry_sleep = @options.delete(:connection_retry_sleep)
|
264
|
-
@
|
265
|
-
@
|
283
|
+
@operation_timeout = @options.delete(:operation_timeout)
|
284
|
+
@receive_timeout = @options.delete(:receive_timeout)
|
285
|
+
@max_wait_until_ready = @options.delete(:max_wait_until_ready)
|
286
|
+
@elevated = @options.delete(:elevated)
|
266
287
|
end
|
267
288
|
|
268
289
|
# Logs formatted standard error output at the warning level.
|
@@ -407,6 +428,8 @@ module Kitchen
|
|
407
428
|
rdp_port: data[:rdp_port],
|
408
429
|
connection_retries: data[:connection_retries],
|
409
430
|
connection_retry_sleep: data[:connection_retry_sleep],
|
431
|
+
operation_timeout: data[:operation_timeout],
|
432
|
+
receive_timeout: data[:receive_timeout],
|
410
433
|
max_wait_until_ready: data[:max_wait_until_ready],
|
411
434
|
transport: data[:winrm_transport],
|
412
435
|
elevated: data[:elevated],
|
data/lib/kitchen/version.rb
CHANGED
@@ -2695,7 +2695,7 @@ module Kitchen # rubocop:disable Metrics/ModuleLength
|
|
2695
2695
|
DataMunger.new(
|
2696
2696
|
{
|
2697
2697
|
lifecycle: {
|
2698
|
-
pre_create: "echo foo"
|
2698
|
+
pre_create: "echo foo",
|
2699
2699
|
},
|
2700
2700
|
platforms: [{ name: "plat" }],
|
2701
2701
|
suites: [{ name: "sweet" }],
|
@@ -2730,19 +2730,19 @@ module Kitchen # rubocop:disable Metrics/ModuleLength
|
|
2730
2730
|
{
|
2731
2731
|
lifecycle: {
|
2732
2732
|
pre_create: "echo foo",
|
2733
|
-
post_create: "echo post"
|
2733
|
+
post_create: "echo post",
|
2734
2734
|
},
|
2735
2735
|
platforms: [{
|
2736
2736
|
name: "plat",
|
2737
2737
|
lifecycle: {
|
2738
|
-
pre_create: "echo bar"
|
2739
|
-
}
|
2738
|
+
pre_create: "echo bar",
|
2739
|
+
},
|
2740
2740
|
}],
|
2741
2741
|
suites: [{
|
2742
2742
|
name: "sweet",
|
2743
2743
|
lifecycle: {
|
2744
|
-
pre_create: "echo baz"
|
2745
|
-
}
|
2744
|
+
pre_create: "echo baz",
|
2745
|
+
},
|
2746
2746
|
}],
|
2747
2747
|
},
|
2748
2748
|
{}
|
@@ -2756,10 +2756,10 @@ module Kitchen # rubocop:disable Metrics/ModuleLength
|
|
2756
2756
|
DataMunger.new(
|
2757
2757
|
{
|
2758
2758
|
driver: {
|
2759
|
-
pre_create_command: "echo bar"
|
2759
|
+
pre_create_command: "echo bar",
|
2760
2760
|
},
|
2761
2761
|
lifecycle: {
|
2762
|
-
pre_create: "echo foo"
|
2762
|
+
pre_create: "echo foo",
|
2763
2763
|
},
|
2764
2764
|
platforms: [{ name: "plat" }],
|
2765
2765
|
suites: [{ name: "sweet" }],
|
@@ -2774,19 +2774,19 @@ module Kitchen # rubocop:disable Metrics/ModuleLength
|
|
2774
2774
|
DataMunger.new(
|
2775
2775
|
{
|
2776
2776
|
lifecycle: {
|
2777
|
-
pre_create: "echo foo"
|
2777
|
+
pre_create: "echo foo",
|
2778
2778
|
},
|
2779
2779
|
platforms: [{
|
2780
2780
|
name: "plat",
|
2781
2781
|
driver: {
|
2782
|
-
pre_create_command: "echo bar"
|
2783
|
-
}
|
2782
|
+
pre_create_command: "echo bar",
|
2783
|
+
},
|
2784
2784
|
}],
|
2785
2785
|
suites: [{
|
2786
2786
|
name: "sweet",
|
2787
2787
|
driver: {
|
2788
|
-
pre_create_command: "echo baz"
|
2789
|
-
}
|
2788
|
+
pre_create_command: "echo baz",
|
2789
|
+
},
|
2790
2790
|
}],
|
2791
2791
|
},
|
2792
2792
|
{}
|
@@ -26,7 +26,7 @@ describe Kitchen::Driver::Exec do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
let(:instance) do
|
29
|
-
stub(name: "coolbeans", logger: logger, to_str: "instance",
|
29
|
+
stub(name: "coolbeans", logger: logger, to_str: "instance", "transport=": nil)
|
30
30
|
end
|
31
31
|
|
32
32
|
let(:driver) do
|
@@ -44,8 +44,8 @@ describe Kitchen::LifecycleHooks do
|
|
44
44
|
"KITCHEN_SUITE_NAME" => "default",
|
45
45
|
"KITCHEN_PLATFORM_NAME" => "toaster-1.0",
|
46
46
|
"KITCHEN_INSTANCE_HOSTNAME" => "localhost",
|
47
|
-
}
|
48
|
-
}
|
47
|
+
},
|
48
|
+
}.freeze
|
49
49
|
|
50
50
|
it "runs a single local command" do
|
51
51
|
config.update(post_create: ["echo foo"])
|
@@ -77,7 +77,7 @@ describe Kitchen::LifecycleHooks do
|
|
77
77
|
"KITCHEN_SUITE_NAME" => "default",
|
78
78
|
"KITCHEN_PLATFORM_NAME" => "toaster-1.0",
|
79
79
|
"KITCHEN_INSTANCE_HOSTNAME" => "localhost",
|
80
|
-
}
|
80
|
+
},
|
81
81
|
})
|
82
82
|
run_lifecycle_hooks
|
83
83
|
end
|
@@ -93,7 +93,7 @@ describe Kitchen::LifecycleHooks do
|
|
93
93
|
"KITCHEN_SUITE_NAME" => "default",
|
94
94
|
"KITCHEN_PLATFORM_NAME" => "toaster-1.0",
|
95
95
|
"KITCHEN_INSTANCE_HOSTNAME" => "localhost",
|
96
|
-
}
|
96
|
+
},
|
97
97
|
})
|
98
98
|
run_lifecycle_hooks
|
99
99
|
end
|
@@ -107,7 +107,7 @@ describe Kitchen::LifecycleHooks do
|
|
107
107
|
"KITCHEN_SUITE_NAME" => "default",
|
108
108
|
"KITCHEN_PLATFORM_NAME" => "toaster-1.0",
|
109
109
|
"KITCHEN_INSTANCE_HOSTNAME" => "localhost",
|
110
|
-
}
|
110
|
+
},
|
111
111
|
})
|
112
112
|
run_lifecycle_hooks
|
113
113
|
end
|
@@ -121,7 +121,7 @@ describe Kitchen::LifecycleHooks do
|
|
121
121
|
"KITCHEN_SUITE_NAME" => "default",
|
122
122
|
"KITCHEN_PLATFORM_NAME" => "toaster-1.0",
|
123
123
|
"KITCHEN_INSTANCE_HOSTNAME" => "localhost",
|
124
|
-
}
|
124
|
+
},
|
125
125
|
})
|
126
126
|
run_lifecycle_hooks
|
127
127
|
end
|
@@ -103,8 +103,8 @@ describe Kitchen::Provisioner::ChefBase do
|
|
103
103
|
provisioner[:log_file].must_be_nil
|
104
104
|
end
|
105
105
|
|
106
|
-
it ":cookbook_files_glob includes
|
107
|
-
provisioner[:cookbook_files_glob].must_match %r{,
|
106
|
+
it ":cookbook_files_glob includes a metadata file" do
|
107
|
+
provisioner[:cookbook_files_glob].must_match %r{,metadata.\{json,rb\}}
|
108
108
|
end
|
109
109
|
|
110
110
|
it ":data_path uses calculate_path and is expanded" do
|
@@ -1077,17 +1077,17 @@ describe Kitchen::Provisioner::ChefBase do
|
|
1077
1077
|
describe "with the default name `Policyfile.rb`" do
|
1078
1078
|
before do
|
1079
1079
|
File.open("#{kitchen_root}/Policyfile.rb", "wb") do |file|
|
1080
|
-
file.write(
|
1081
|
-
name 'wat'
|
1082
|
-
run_list 'wat'
|
1083
|
-
cookbook 'wat'
|
1080
|
+
file.write(<<~POLICYFILE)
|
1081
|
+
name 'wat'
|
1082
|
+
run_list 'wat'
|
1083
|
+
cookbook 'wat'
|
1084
1084
|
POLICYFILE
|
1085
1085
|
end
|
1086
1086
|
File.open("#{kitchen_root}/Policyfile.lock.json", "wb") do |file|
|
1087
|
-
file.write(
|
1088
|
-
{
|
1089
|
-
|
1090
|
-
}
|
1087
|
+
file.write(<<~POLICYFILE)
|
1088
|
+
{
|
1089
|
+
"name": "wat"
|
1090
|
+
}
|
1091
1091
|
POLICYFILE
|
1092
1092
|
end
|
1093
1093
|
Kitchen::Provisioner::Chef::Policyfile.stubs(:new).returns(resolver)
|
@@ -1172,17 +1172,17 @@ POLICYFILE
|
|
1172
1172
|
|
1173
1173
|
before do
|
1174
1174
|
File.open(policyfile_path, "wb") do |file|
|
1175
|
-
file.write(
|
1176
|
-
name 'wat'
|
1177
|
-
run_list 'wat'
|
1178
|
-
cookbook 'wat'
|
1175
|
+
file.write(<<~POLICYFILE)
|
1176
|
+
name 'wat'
|
1177
|
+
run_list 'wat'
|
1178
|
+
cookbook 'wat'
|
1179
1179
|
POLICYFILE
|
1180
1180
|
end
|
1181
1181
|
File.open(policyfile_lock_path, "wb") do |file|
|
1182
|
-
file.write(
|
1183
|
-
{
|
1184
|
-
|
1185
|
-
}
|
1182
|
+
file.write(<<~POLICYFILE)
|
1183
|
+
{
|
1184
|
+
"name": "wat"
|
1185
|
+
}
|
1186
1186
|
POLICYFILE
|
1187
1187
|
end
|
1188
1188
|
end
|
@@ -1251,17 +1251,17 @@ POLICYFILE
|
|
1251
1251
|
|
1252
1252
|
before do
|
1253
1253
|
File.open(policyfile_path, "wb") do |file|
|
1254
|
-
file.write(
|
1255
|
-
name 'wat'
|
1256
|
-
run_list 'wat'
|
1257
|
-
cookbook 'wat'
|
1254
|
+
file.write(<<~POLICYFILE)
|
1255
|
+
name 'wat'
|
1256
|
+
run_list 'wat'
|
1257
|
+
cookbook 'wat'
|
1258
1258
|
POLICYFILE
|
1259
1259
|
end
|
1260
1260
|
File.open(policyfile_lock_path, "wb") do |file|
|
1261
|
-
file.write(
|
1262
|
-
{
|
1263
|
-
|
1264
|
-
}
|
1261
|
+
file.write(<<~POLICYFILE)
|
1262
|
+
{
|
1263
|
+
"name": "wat"
|
1264
|
+
}
|
1265
1265
|
POLICYFILE
|
1266
1266
|
end
|
1267
1267
|
end
|