test-kitchen 1.23.2 → 1.23.3

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.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -0
  3. data/.gitmodules +0 -0
  4. data/.travis.yml +0 -4
  5. data/CHANGELOG.md +40 -0
  6. data/MAINTAINERS.md +2 -1
  7. data/Rakefile +9 -0
  8. data/docs/CONTRIBUTING.md +8 -0
  9. data/docs/LICENSE +22 -0
  10. data/docs/README.md +78 -0
  11. data/docs/archetypes/default.md +6 -0
  12. data/docs/config.toml +36 -0
  13. data/docs/content/docs/_index.md +5 -0
  14. data/docs/content/docs/drivers/_index.md +27 -0
  15. data/docs/content/docs/drivers/azurerm.md +44 -0
  16. data/docs/content/docs/drivers/vagrant.md +39 -0
  17. data/docs/content/docs/getting-started/00-introduction.md +14 -0
  18. data/docs/content/docs/getting-started/01-installing.md +64 -0
  19. data/docs/content/docs/getting-started/02-getting-help.md +59 -0
  20. data/docs/content/docs/getting-started/03-creating-cookbook.md +46 -0
  21. data/docs/content/docs/getting-started/04-kitchen-yml.md +56 -0
  22. data/docs/content/docs/getting-started/05-instances.md +79 -0
  23. data/docs/content/docs/getting-started/06-writing-recipe.md +21 -0
  24. data/docs/content/docs/getting-started/07-running-converge.md +134 -0
  25. data/docs/content/docs/getting-started/08-manually-verifying.md +55 -0
  26. data/docs/content/docs/getting-started/09-writing-test.md +49 -0
  27. data/docs/content/docs/getting-started/10-running-verify.md +120 -0
  28. data/docs/content/docs/getting-started/11-running-test.md +168 -0
  29. data/docs/content/docs/getting-started/12-adding-platform.md +206 -0
  30. data/docs/content/docs/getting-started/13-adding-feature.md +30 -0
  31. data/docs/content/docs/getting-started/14-adding-suite.md +60 -0
  32. data/docs/content/docs/getting-started/15-adding-test.md +66 -0
  33. data/docs/content/docs/getting-started/16-adding-recipe.md +53 -0
  34. data/docs/content/docs/getting-started/17-excluding-platforms.md +101 -0
  35. data/docs/content/docs/getting-started/18-next-steps.md +23 -0
  36. data/docs/content/docs/getting-started/_index.md +5 -0
  37. data/docs/content/docs/provisioners/_index.md +36 -0
  38. data/docs/content/docs/provisioners/chef.md +69 -0
  39. data/docs/content/docs/provisioners/shell.md +31 -0
  40. data/docs/content/docs/reference/_index.md +5 -0
  41. data/docs/content/docs/reference/configuration.md +53 -0
  42. data/docs/content/docs/reference/examples.md +97 -0
  43. data/docs/content/docs/reference/faq.md +58 -0
  44. data/docs/content/docs/reference/fixtures.md +32 -0
  45. data/docs/content/docs/reference/glossary.md +34 -0
  46. data/docs/content/docs/reference/lifecycle-hooks.md +68 -0
  47. data/docs/content/docs/reference/reboots.md +24 -0
  48. data/docs/content/docs/verifiers/_index.md +14 -0
  49. data/docs/content/docs/verifiers/inspec.md +44 -0
  50. data/docs/content/docs/verifiers/serverspec.md +20 -0
  51. data/docs/static/images/chef-logo.png +0 -0
  52. data/docs/static/images/chef-logo.svg +1 -0
  53. data/docs/static/images/github-banner.png +0 -0
  54. data/docs/static/images/github-banner.svg +71 -0
  55. data/docs/static/images/kitchen-logo.png +0 -0
  56. data/docs/static/images/logo-block.svg +222 -0
  57. data/docs/static/images/logo.png +0 -0
  58. data/docs/static/images/logos-group.png +0 -0
  59. data/docs/static/images/terminal-1.png +0 -0
  60. data/docs/static/images/terminal-1.svg +589 -0
  61. data/docs/static/images/terminal-2.png +0 -0
  62. data/docs/static/images/terminal-2.svg +235 -0
  63. data/docs/static/images/terminal-3.png +0 -0
  64. data/docs/static/images/terminal-3.svg +439 -0
  65. data/docs/static/index.html +59 -0
  66. data/docs/static/javascripts/all.js +348 -0
  67. data/docs/static/javascripts/vendor/foundation.min.js +4 -0
  68. data/docs/static/javascripts/vendor/jquery.min.js +5 -0
  69. data/docs/static/javascripts/vendor/what-input.js +336 -0
  70. data/docs/static/stylesheets/site.css +4667 -0
  71. data/docs/themes/kitchen/layouts/_default/baseof.html +53 -0
  72. data/docs/themes/kitchen/layouts/_default/list.html +4 -0
  73. data/docs/themes/kitchen/layouts/_default/redirect.html +10 -0
  74. data/docs/themes/kitchen/layouts/_default/single.html +6 -0
  75. data/docs/themes/kitchen/layouts/partials/core/head.html +6 -0
  76. data/docs/themes/kitchen/layouts/partials/kitchen/footer.html +18 -0
  77. data/docs/themes/kitchen/layouts/partials/kitchen/head.html +4 -0
  78. data/docs/themes/kitchen/layouts/partials/kitchen/header.html +26 -0
  79. data/docs/themes/kitchen/layouts/partials/search-docs.html +3 -0
  80. data/docs/themes/kitchen/layouts/partials/sidebar.html +33 -0
  81. data/docs/themes/kitchen/layouts/shortcodes/button.html +1 -0
  82. data/docs/themes/kitchen/layouts/shortcodes/codeblock.html +8 -0
  83. data/docs/themes/kitchen/layouts/shortcodes/cta.html +5 -0
  84. data/docs/themes/kitchen/layouts/shortcodes/danger.html +1 -0
  85. data/docs/themes/kitchen/layouts/shortcodes/example_fqdn.html +1 -0
  86. data/docs/themes/kitchen/layouts/shortcodes/info.html +1 -0
  87. data/docs/themes/kitchen/layouts/shortcodes/ol-styled.html +3 -0
  88. data/docs/themes/kitchen/layouts/shortcodes/success.html +1 -0
  89. data/docs/themes/kitchen/layouts/shortcodes/tip.html +1 -0
  90. data/docs/themes/kitchen/layouts/shortcodes/warning.html +1 -0
  91. data/docs/themes/kitchen/static/css/kitchen.css +10 -0
  92. data/docs/themes/kitchen/static/css/kitchen.css.map +7 -0
  93. data/docs/themes/kitchen/static/fonts/Muli-Bold.ttf +0 -0
  94. data/docs/themes/kitchen/static/fonts/Muli-Regular.ttf +0 -0
  95. data/docs/themes/kitchen/static/fonts/Muli-SemiBold.ttf +0 -0
  96. data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.eot +0 -0
  97. data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.svg +1104 -0
  98. data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.ttf +0 -0
  99. data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff +0 -0
  100. data/docs/themes/kitchen/static/fonts/fontawesome/fa-brands-400.woff2 +0 -0
  101. data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.eot +0 -0
  102. data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.svg +372 -0
  103. data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.ttf +0 -0
  104. data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff +0 -0
  105. data/docs/themes/kitchen/static/fonts/fontawesome/fa-regular-400.woff2 +0 -0
  106. data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.eot +0 -0
  107. data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.svg +1896 -0
  108. data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.ttf +0 -0
  109. data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff +0 -0
  110. data/docs/themes/kitchen/static/fonts/fontawesome/fa-solid-900.woff2 +0 -0
  111. data/docs/themes/kitchen/static/images/chef-logo-light.svg +36 -0
  112. data/docs/themes/kitchen/static/images/chef-logo-white.svg +38 -0
  113. data/docs/themes/kitchen/static/images/chef-logo.svg +37 -0
  114. data/docs/themes/kitchen/static/images/favicon.ico +0 -0
  115. data/docs/themes/kitchen/static/js/scripts-all.js +7 -0
  116. data/docs/themes/kitchen/static/js/source/chef-hugo.js +116 -0
  117. data/docs/themes/kitchen/static/js/source/omnitruck.js +82 -0
  118. data/docs/themes/kitchen/static/js/source/segment.js +52 -0
  119. data/docs/themes/kitchen/static/sass/_buttons.scss +161 -0
  120. data/docs/themes/kitchen/static/sass/_core.scss +24 -0
  121. data/docs/themes/kitchen/static/sass/_forms.scss +14 -0
  122. data/docs/themes/kitchen/static/sass/_mixins.scss +133 -0
  123. data/docs/themes/kitchen/static/sass/_typography.scss +34 -0
  124. data/docs/themes/kitchen/static/sass/_variables.scss +82 -0
  125. data/docs/themes/kitchen/static/sass/kitchen.scss +7 -0
  126. data/docs/themes/kitchen/static/sass/kitchen/_footer.scss +50 -0
  127. data/docs/themes/kitchen/static/sass/kitchen/_header.scss +187 -0
  128. data/docs/themes/kitchen/static/sass/kitchen/_homepage.scss +27 -0
  129. data/docs/themes/kitchen/static/sass/kitchen/_utility-bar.scss +173 -0
  130. data/docs/themes/kitchen/static/sass/partials/_alerts.scss +32 -0
  131. data/docs/themes/kitchen/static/sass/partials/_bg.scss +19 -0
  132. data/docs/themes/kitchen/static/sass/partials/_blurbs.scss +25 -0
  133. data/docs/themes/kitchen/static/sass/partials/_callout.scss +15 -0
  134. data/docs/themes/kitchen/static/sass/partials/_cards.scss +54 -0
  135. data/docs/themes/kitchen/static/sass/partials/_dropdown.scss +77 -0
  136. data/docs/themes/kitchen/static/sass/partials/_grid.scss +87 -0
  137. data/docs/themes/kitchen/static/sass/partials/_padding.scss +73 -0
  138. data/docs/themes/kitchen/static/sass/partials/_sidebar.scss +71 -0
  139. data/docs/themes/kitchen/static/sass/partials/_tabs.scss +125 -0
  140. data/docs/themes/kitchen/static/sass/typography/_chroma.scss +366 -0
  141. data/docs/themes/kitchen/static/sass/typography/_code.scss +72 -0
  142. data/docs/themes/kitchen/static/sass/typography/_headers.scss +90 -0
  143. data/docs/themes/kitchen/static/sass/typography/_links.scss +127 -0
  144. data/docs/themes/kitchen/static/sass/typography/_lists.scss +155 -0
  145. data/docs/themes/kitchen/static/sass/typography/_prose.scss +29 -0
  146. data/docs/themes/kitchen/static/sass/typography/_text.scss +221 -0
  147. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_animated.scss +20 -0
  148. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_bordered-pulled.scss +20 -0
  149. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_core.scss +16 -0
  150. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_fixed-width.scss +6 -0
  151. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_icons.scss +992 -0
  152. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_larger.scss +23 -0
  153. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_list.scss +18 -0
  154. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_mixins.scss +57 -0
  155. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_rotated-flipped.scss +23 -0
  156. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_screen-reader.scss +5 -0
  157. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_stacked.scss +31 -0
  158. data/docs/themes/kitchen/static/sass/vendor/fontawesome/_variables.scss +1005 -0
  159. data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-brands.scss +21 -0
  160. data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-regular.scss +22 -0
  161. data/docs/themes/kitchen/static/sass/vendor/fontawesome/fa-solid.scss +23 -0
  162. data/docs/themes/kitchen/static/sass/vendor/fontawesome/fontawesome.scss +16 -0
  163. data/docs/themes/kitchen/theme.toml +8 -0
  164. data/lib/kitchen/provisioner/chef_base.rb +6 -6
  165. data/lib/kitchen/transport/ssh.rb +2 -2
  166. data/lib/kitchen/transport/winrm.rb +32 -9
  167. data/lib/kitchen/version.rb +1 -1
  168. data/spec/kitchen/data_munger_spec.rb +13 -13
  169. data/spec/kitchen/driver/exec_spec.rb +1 -1
  170. data/spec/kitchen/lifecycle_hooks_spec.rb +6 -6
  171. data/spec/kitchen/provisioner/chef_base_spec.rb +26 -26
  172. data/spec/kitchen/transport/winrm_spec.rb +46 -10
  173. 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(:named_run_list => config[:named_run_list]) if config[:named_run_list]
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(:port => ssh_gateway_port)
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
- # Connecto to a host executing passed block and properly handling retreis.
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
- response = session.run(command) do |stdout, _|
241
- logger << stdout if stdout
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 = @options.delete(:instance_name)
260
- @kitchen_root = @options.delete(:kitchen_root)
261
- @rdp_port = @options.delete(: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
- @max_wait_until_ready = @options.delete(:max_wait_until_ready)
265
- @elevated = @options.delete(:elevated)
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],
@@ -17,5 +17,5 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Kitchen
20
- VERSION = "1.23.2".freeze
20
+ VERSION = "1.23.3".freeze
21
21
  end
@@ -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", :"transport=" => nil)
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 recipes" do
107
- provisioner[:cookbook_files_glob].must_match %r{,recipes/}
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(<<-POLICYFILE)
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(<<-POLICYFILE)
1088
- {
1089
- "name": "wat"
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(<<-POLICYFILE)
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(<<-POLICYFILE)
1183
- {
1184
- "name": "wat"
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(<<-POLICYFILE)
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(<<-POLICYFILE)
1262
- {
1263
- "name": "wat"
1264
- }
1261
+ file.write(<<~POLICYFILE)
1262
+ {
1263
+ "name": "wat"
1264
+ }
1265
1265
  POLICYFILE
1266
1266
  end
1267
1267
  end