test-kitchen 2.3.4 → 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -12
  3. data/lib/kitchen.rb +30 -30
  4. data/lib/kitchen/cli.rb +2 -2
  5. data/lib/kitchen/command/action.rb +1 -1
  6. data/lib/kitchen/command/console.rb +1 -1
  7. data/lib/kitchen/command/diagnose.rb +2 -2
  8. data/lib/kitchen/command/doctor.rb +1 -1
  9. data/lib/kitchen/command/exec.rb +1 -1
  10. data/lib/kitchen/command/list.rb +1 -1
  11. data/lib/kitchen/command/login.rb +1 -1
  12. data/lib/kitchen/command/package.rb +1 -1
  13. data/lib/kitchen/command/sink.rb +1 -1
  14. data/lib/kitchen/command/test.rb +1 -1
  15. data/lib/kitchen/configurable.rb +7 -1
  16. data/lib/kitchen/data_munger.rb +1 -1
  17. data/lib/kitchen/diagnostic.rb +2 -2
  18. data/lib/kitchen/driver.rb +1 -1
  19. data/lib/kitchen/driver/base.rb +5 -5
  20. data/lib/kitchen/driver/dummy.rb +1 -1
  21. data/lib/kitchen/driver/exec.rb +4 -4
  22. data/lib/kitchen/driver/proxy.rb +2 -2
  23. data/lib/kitchen/driver/ssh_base.rb +1 -1
  24. data/lib/kitchen/generator/init.rb +2 -2
  25. data/lib/kitchen/lifecycle_hooks.rb +2 -2
  26. data/lib/kitchen/loader/yaml.rb +1 -1
  27. data/lib/kitchen/plugin.rb +2 -2
  28. data/lib/kitchen/provisioner.rb +1 -1
  29. data/lib/kitchen/provisioner/base.rb +3 -3
  30. data/lib/kitchen/provisioner/chef/berkshelf.rb +2 -2
  31. data/lib/kitchen/provisioner/chef/policyfile.rb +3 -3
  32. data/lib/kitchen/provisioner/chef_apply.rb +3 -3
  33. data/lib/kitchen/provisioner/chef_base.rb +26 -18
  34. data/lib/kitchen/provisioner/chef_solo.rb +1 -1
  35. data/lib/kitchen/provisioner/chef_zero.rb +1 -1
  36. data/lib/kitchen/provisioner/dummy.rb +1 -1
  37. data/lib/kitchen/provisioner/shell.rb +8 -4
  38. data/lib/kitchen/rake_tasks.rb +1 -1
  39. data/lib/kitchen/ssh.rb +2 -2
  40. data/lib/kitchen/thor_tasks.rb +1 -1
  41. data/lib/kitchen/transport.rb +1 -1
  42. data/lib/kitchen/transport/base.rb +5 -5
  43. data/lib/kitchen/transport/dummy.rb +1 -1
  44. data/lib/kitchen/transport/exec.rb +3 -3
  45. data/lib/kitchen/transport/ssh.rb +1 -1
  46. data/lib/kitchen/transport/winrm.rb +1 -1
  47. data/lib/kitchen/util.rb +1 -1
  48. data/lib/kitchen/verifier.rb +1 -1
  49. data/lib/kitchen/verifier/base.rb +10 -3
  50. data/lib/kitchen/verifier/busser.rb +1 -1
  51. data/lib/kitchen/verifier/dummy.rb +1 -1
  52. data/lib/kitchen/verifier/shell.rb +1 -1
  53. data/lib/kitchen/version.rb +1 -1
  54. data/support/chef_base_install_command.ps1 +3 -3
  55. data/support/chef_base_install_command.sh +2 -2
  56. data/templates/init/chefignore.erb +1 -0
  57. data/templates/init/kitchen.yml.erb +2 -2
  58. data/test-kitchen.gemspec +5 -5
  59. metadata +23 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15c9a72eb04c9c0bc9e568e4e239dc05c7dad13d721370afdcc1b35df180ff12
4
- data.tar.gz: 528b0c3bc29d1b16c3e56feeaf35f87a5b1b6d1c37b757f6460e19045a219b15
3
+ metadata.gz: 15da3669fff472ce1a908562922fa945e8e65a82657b360270e498f17493ace0
4
+ data.tar.gz: 663b1e2800aff7ae63a8c9b2d2333c5af41b69503e116014ea4fde9f2e212438
5
5
  SHA512:
6
- metadata.gz: 9a4fe9ce79cad2bce2c4fa8fd61b2a5a105183c4d5962c5041f25b0f79e95e2e75c0d84190d21b5915cdb88498bb94e7cce7644aa6ee16428c8bbb760aaa89c6
7
- data.tar.gz: f9cf235f6fcaa1594747e92695b34160bbfd3f45fc9f061c553c74d1bda51663fa2ae0304c2f5fae2feb54deb6779f5c033ee56f3aab4bed3e9c109c46f60ff0
6
+ metadata.gz: f8fa9c1c41866ca32d894a8bd835ab80d389a9e9ea52839b8ec6f19f5a740837d9f57535c9f111d57a97c7649b7097440430ced07bd278e2c99d1f402fe486a0
7
+ data.tar.gz: e608e44111952e8b46486960a17b79b817b5adde8a83f17863d7332c0f408b11686290fc0ac385aa9dff1f2864495e5e5e9b27c0a489809109c08ad5f7c22ddc
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
1
  source "https://rubygems.org"
3
2
  gemspec
4
3
 
@@ -10,7 +9,7 @@ group :integration do
10
9
  end
11
10
 
12
11
  group :changelog do
13
- gem "github_changelog_generator", "1.15.0"
12
+ gem "github_changelog_generator", "1.15.2"
14
13
  end
15
14
 
16
15
  group :debug do
@@ -26,13 +25,3 @@ end
26
25
  group :docs do
27
26
  gem "yard"
28
27
  end
29
-
30
- instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
31
-
32
- # To avoid bringing in development or test dependencies that are not
33
- # absolutely needed, if you want to load tools not present in the gemspec
34
- # or this Gemfile, add those additional dependencies into a Gemfile.local
35
- # file which is ignored by this repository.
36
- # rubocop:disable Security/Eval
37
- eval(IO.read(__FILE__ + ".local"), binding) if File.exist?(__FILE__ + ".local")
38
- # rubocop:enable Security/Eval
@@ -19,36 +19,36 @@
19
19
  require "pathname"
20
20
  require "thread"
21
21
 
22
- require "kitchen/errors"
23
- require "kitchen/logger"
24
- require "kitchen/logging"
25
- require "kitchen/shell_out"
26
- require "kitchen/configurable"
27
- require "kitchen/util"
28
-
29
- require "kitchen/provisioner"
30
- require "kitchen/provisioner/base"
31
- require "kitchen/color"
32
- require "kitchen/collection"
33
- require "kitchen/config"
34
- require "kitchen/data_munger"
35
- require "kitchen/driver"
36
- require "kitchen/driver/base"
37
- require "kitchen/driver/ssh_base"
38
- require "kitchen/driver/proxy"
39
- require "kitchen/instance"
40
- require "kitchen/lifecycle_hooks"
41
- require "kitchen/transport"
42
- require "kitchen/transport/base"
43
- require "kitchen/loader/yaml"
44
- require "kitchen/metadata_chopper"
45
- require "kitchen/platform"
46
- require "kitchen/state_file"
47
- require "kitchen/ssh"
48
- require "kitchen/suite"
49
- require "kitchen/verifier"
50
- require "kitchen/verifier/base"
51
- require "kitchen/version"
22
+ require_relative "kitchen/errors"
23
+ require_relative "kitchen/logger"
24
+ require_relative "kitchen/logging"
25
+ require_relative "kitchen/shell_out"
26
+ require_relative "kitchen/configurable"
27
+ require_relative "kitchen/util"
28
+
29
+ require_relative "kitchen/provisioner"
30
+ require_relative "kitchen/provisioner/base"
31
+ require_relative "kitchen/color"
32
+ require_relative "kitchen/collection"
33
+ require_relative "kitchen/config"
34
+ require_relative "kitchen/data_munger"
35
+ require_relative "kitchen/driver"
36
+ require_relative "kitchen/driver/base"
37
+ require_relative "kitchen/driver/ssh_base"
38
+ require_relative "kitchen/driver/proxy"
39
+ require_relative "kitchen/instance"
40
+ require_relative "kitchen/lifecycle_hooks"
41
+ require_relative "kitchen/transport"
42
+ require_relative "kitchen/transport/base"
43
+ require_relative "kitchen/loader/yaml"
44
+ require_relative "kitchen/metadata_chopper"
45
+ require_relative "kitchen/platform"
46
+ require_relative "kitchen/state_file"
47
+ require_relative "kitchen/ssh"
48
+ require_relative "kitchen/suite"
49
+ require_relative "kitchen/verifier"
50
+ require_relative "kitchen/verifier/base"
51
+ require_relative "kitchen/version"
52
52
 
53
53
  # Test Kitchen base module.
54
54
  #
@@ -18,8 +18,8 @@
18
18
 
19
19
  require "thor"
20
20
 
21
- require "kitchen"
22
- require "kitchen/generator/init"
21
+ require_relative "../kitchen"
22
+ require_relative "generator/init"
23
23
 
24
24
  module Kitchen
25
25
  # The command line runner for Kitchen.
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  require "benchmark"
22
22
 
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  module Kitchen
22
22
  module Command
@@ -16,8 +16,8 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
20
- require "kitchen/diagnostic"
19
+ require_relative "../command"
20
+ require_relative "../diagnostic"
21
21
 
22
22
  require "yaml"
23
23
 
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- require "kitchen/command"
16
+ require_relative "../command"
17
17
 
18
18
  module Kitchen
19
19
  module Command
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  module Kitchen
22
22
  module Command
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
  require "json"
21
21
 
22
22
  module Kitchen
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  module Kitchen
22
22
  module Command
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- require "kitchen/command"
16
+ require_relative "../command"
17
17
 
18
18
  module Kitchen
19
19
  module Command
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  module Kitchen
22
22
  module Command
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/command"
19
+ require_relative "../command"
20
20
 
21
21
  require "benchmark"
22
22
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "thor/util"
20
20
 
21
- require "kitchen/lazy_hash"
21
+ require_relative "lazy_hash"
22
22
 
23
23
  module Kitchen
24
24
  # A mixin for providing configuration-related behavior such as default
@@ -349,6 +349,12 @@ module Kitchen
349
349
  code_parts = resolve_proxy_settings_from_config
350
350
  code_parts << shell_env_var("TEST_KITCHEN", 1)
351
351
  code_parts << shell_env_var("CI", ENV["CI"]) if ENV["CI"]
352
+ code_parts << shell_env_var("CHEF_LICENSE", ENV["CHEF_LICENSE"]) if ENV["CHEF_LICENSE"]
353
+ ENV.select { |key, value| key.start_with?("TKENV_") }.each do |key, value|
354
+ env_var_name = "#{key}".sub!("TKENV_", "")
355
+ code_parts << shell_env_var(env_var_name, value)
356
+ end
357
+
352
358
  code_parts << code
353
359
  code_parts.join("\n")
354
360
  end
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "vendor/hash_recursive_merge"
19
+ require_relative "../vendor/hash_recursive_merge"
20
20
 
21
21
  module Kitchen
22
22
  # Class to handle recursive merging of configuration between platforms,
@@ -16,8 +16,8 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/util"
20
- require "kitchen/version"
19
+ require_relative "util"
20
+ require_relative "version"
21
21
 
22
22
  module Kitchen
23
23
  # Combines and compiles diagnostic information about a Test Kitchen
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/plugin"
19
+ require_relative "plugin"
20
20
 
21
21
  module Kitchen
22
22
  # A driver is responsible for carrying out the lifecycle activities of an
@@ -16,11 +16,11 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/configurable"
20
- require "kitchen/errors"
21
- require "kitchen/lazy_hash"
22
- require "kitchen/logging"
23
- require "kitchen/shell_out"
19
+ require_relative "../configurable"
20
+ require_relative "../errors"
21
+ require_relative "../lazy_hash"
22
+ require_relative "../logging"
23
+ require_relative "../shell_out"
24
24
 
25
25
  module Kitchen
26
26
  module Driver
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen"
19
+ require_relative "../../kitchen"
20
20
 
21
21
  module Kitchen
22
22
  module Driver
@@ -13,10 +13,10 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
- require "kitchen/driver/base"
17
- require "kitchen/shell_out"
18
- require "kitchen/transport/exec"
19
- require "kitchen/version"
16
+ require_relative "base"
17
+ require_relative "../shell_out"
18
+ require_relative "../transport/exec"
19
+ require_relative "../version"
20
20
 
21
21
  module Kitchen
22
22
  module Driver
@@ -18,8 +18,8 @@
18
18
  # limitations under the License.
19
19
  #
20
20
 
21
- require "kitchen/driver/ssh_base"
22
- require "kitchen/version"
21
+ require_relative "ssh_base"
22
+ require_relative "../version"
23
23
 
24
24
  module Kitchen
25
25
  module Driver
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "thor/util"
20
20
 
21
- require "kitchen/lazy_hash"
21
+ require_relative "../lazy_hash"
22
22
  require "benchmark"
23
23
 
24
24
  module Kitchen
@@ -136,7 +136,7 @@ module Kitchen
136
136
  rakedoc = <<-RAKE.gsub(/^ {10}/, "")
137
137
 
138
138
  begin
139
- require 'kitchen/rake_tasks'
139
+ require_relative '../rake_tasks'
140
140
  Kitchen::RakeTasks.new
141
141
  rescue LoadError
142
142
  puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
@@ -154,7 +154,7 @@ module Kitchen
154
154
  thordoc = <<-THOR.gsub(/^ {10}/, "")
155
155
 
156
156
  begin
157
- require 'kitchen/thor_tasks'
157
+ require_relative '../thor_tasks'
158
158
  Kitchen::ThorTasks.new
159
159
  rescue LoadError
160
160
  puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
@@ -16,8 +16,8 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/errors"
20
- require "kitchen/shell_out"
19
+ require_relative "errors"
20
+ require_relative "shell_out"
21
21
 
22
22
  module Kitchen
23
23
  # A helper object used by {Instance} to coordinate lifecycle hook calls from
@@ -17,7 +17,7 @@
17
17
  # limitations under the License.
18
18
 
19
19
  require "erb"
20
- require "vendor/hash_recursive_merge"
20
+ require_relative "../../vendor/hash_recursive_merge"
21
21
  require "yaml"
22
22
 
23
23
  module Kitchen
@@ -17,8 +17,8 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require "kitchen/errors"
21
- require "kitchen/util"
20
+ require_relative "errors"
21
+ require_relative "util"
22
22
 
23
23
  module Kitchen
24
24
  module Plugin
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/plugin"
19
+ require_relative "plugin"
20
20
 
21
21
  module Kitchen
22
22
  # A provisioner is responsible for generating the commands necessary to
@@ -16,9 +16,9 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/configurable"
20
- require "kitchen/errors"
21
- require "kitchen/logging"
19
+ require_relative "../configurable"
20
+ require_relative "../errors"
21
+ require_relative "../logging"
22
22
 
23
23
  module Kitchen
24
24
  module Provisioner
@@ -16,8 +16,8 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/errors"
20
- require "kitchen/logging"
19
+ require_relative "../../errors"
20
+ require_relative "../../logging"
21
21
 
22
22
  module Kitchen
23
23
  module Provisioner
@@ -19,9 +19,9 @@
19
19
  require "shellwords"
20
20
  require "rbconfig"
21
21
 
22
- require "kitchen/errors"
23
- require "kitchen/logging"
24
- require "kitchen/shell_out"
22
+ require_relative "../../errors"
23
+ require_relative "../../logging"
24
+ require_relative "../../shell_out"
25
25
 
26
26
  module Kitchen
27
27
  module Provisioner
@@ -30,8 +30,8 @@
30
30
  # name: chef_apply
31
31
  #
32
32
  # platforms:
33
- # - name: ubuntu-16.04
34
- # - name: centos-7
33
+ # - name: ubuntu-20.04
34
+ # - name: centos-8
35
35
  #
36
36
  # suites:
37
37
  # - name: default
@@ -45,7 +45,7 @@
45
45
  # chef-apply apply/recipe1.rb
46
46
  # chef-apply apply/recipe2.rb
47
47
 
48
- require "kitchen/provisioner/chef_base"
48
+ require_relative "chef_base"
49
49
 
50
50
  module Kitchen
51
51
  module Provisioner
@@ -21,10 +21,10 @@ require "pathname"
21
21
  require "json"
22
22
  require "cgi"
23
23
 
24
- require "kitchen/provisioner/chef/policyfile"
25
- require "kitchen/provisioner/chef/berkshelf"
26
- require "kitchen/provisioner/chef/common_sandbox"
27
- require "kitchen/util"
24
+ require_relative "chef/policyfile"
25
+ require_relative "chef/berkshelf"
26
+ require_relative "chef/common_sandbox"
27
+ require_relative "../util"
28
28
  require "mixlib/install"
29
29
  require "mixlib/install/script_generator"
30
30
  require "license_acceptance/acceptor"
@@ -69,6 +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
73
  ).join(",")
73
74
  # to ease upgrades, allow the user to turn deprecation warnings into errors
74
75
  default_config :deprecations_as_errors, false
@@ -153,7 +154,7 @@ module Kitchen
153
154
 
154
155
  # New Usage #
155
156
  provisioner:
156
- product_name: <chef or chefdk>
157
+ product_name: <chef or chef-workstation>
157
158
  install_strategy: skip
158
159
  MSG
159
160
  when provisioner[:require_chef_omnibus].to_s.match(/\d/)
@@ -166,7 +167,7 @@ module Kitchen
166
167
 
167
168
  # New Usage #
168
169
  provisioner:
169
- product_name: <chef or chefdk>
170
+ product_name: <chef or chef-workstation>
170
171
  product_version: #{provisioner[:require_chef_omnibus]}
171
172
  MSG
172
173
  when provisioner[:require_chef_omnibus] == "latest"
@@ -179,7 +180,7 @@ module Kitchen
179
180
 
180
181
  # New Usage #
181
182
  provisioner:
182
- product_name: <chef or chefdk>
183
+ product_name: <chef or chef-workstation>
183
184
  install_strategy: always
184
185
  MSG
185
186
  end
@@ -199,11 +200,11 @@ module Kitchen
199
200
 
200
201
  # Deprecated Example #
201
202
  provisioner:
202
- chef_omnibus_install_options: -P chefdk -c current
203
+ chef_omnibus_install_options: -P chef-workstation -c current
203
204
 
204
205
  # New Usage #
205
206
  provisioner:
206
- product_name: chefdk
207
+ product_name: chef-workstation
207
208
  channel: current
208
209
  MSG
209
210
 
@@ -216,7 +217,7 @@ module Kitchen
216
217
 
217
218
  # New Usage #
218
219
  provisioner:
219
- product_name: <chef or chefdk>
220
+ product_name: <chef or chef-workstation>
220
221
  download_url: http://direct-download-url
221
222
  MSG
222
223
 
@@ -225,9 +226,9 @@ module Kitchen
225
226
  fully managed by using attribute settings.
226
227
  MSG
227
228
 
228
- # Reads the local Chef::Config object (if present). We do this because
229
- # we want to start bring Chef config and ChefDK tool config closer
230
- # together. For example, we want to configure proxy settings in 1
229
+ # Reads the local Chef::Config object (if present). We do this because
230
+ # we want to start bring Chef config and Chef Workstation config closer
231
+ # together. For example, we want to configure proxy settings in 1
231
232
  # location instead of 3 configuration files.
232
233
  #
233
234
  # @param config [Hash] initial provided configuration
@@ -328,7 +329,7 @@ module Kitchen
328
329
  return unless config[:require_chef_omnibus] || config[:product_name]
329
330
  return if config[:product_name] && config[:install_strategy] == "skip"
330
331
 
331
- prefix_command(sudo(install_script_contents))
332
+ prefix_command(install_script_contents)
332
333
  end
333
334
 
334
335
  private
@@ -509,6 +510,8 @@ module Kitchen
509
510
  channel: config[:channel].to_sym,
510
511
  install_command_options: {
511
512
  install_strategy: config[:install_strategy],
513
+ tmp_dir: config[:root_path],
514
+ "TMPDIR" => config[:root_path],
512
515
  },
513
516
  }.tap do |opts|
514
517
  opts[:shell_type] = :ps1 if powershell_shell?
@@ -534,7 +537,6 @@ module Kitchen
534
537
  # install.ps1 only supports http_proxy
535
538
  prox.delete_if { |p| %i{https_proxy ftp_proxy no_proxy}.include?(p) } if powershell_shell?
536
539
  end
537
-
538
540
  opts[:install_command_options].merge!(proxies)
539
541
  end)
540
542
  config[:chef_omnibus_root] = installer.root
@@ -553,8 +555,14 @@ module Kitchen
553
555
  end
554
556
 
555
557
  def install_from_file(command)
556
- install_file = "/tmp/chef-installer.sh"
557
- script = ["cat > #{install_file} <<\"EOL\""]
558
+ install_file = "#{config[:root_path]}/chef-installer.sh"
559
+ script = []
560
+ script << "mkdir -p #{config[:root_path]}"
561
+ script << "if [ $? -ne 0 ]; then"
562
+ script << " echo Kitchen config setting root_path: '#{config[:root_path]}' not creatable by regular user "
563
+ script << " exit 1"
564
+ script << "fi"
565
+ script << "cat > #{install_file} <<\"EOL\""
558
566
  script << command
559
567
  script << "EOL"
560
568
  script << "chmod +x #{install_file}"
@@ -569,7 +577,7 @@ module Kitchen
569
577
  config[:require_chef_omnibus], powershell_shell?, install_options
570
578
  )
571
579
  config[:chef_omnibus_root] = installer.root
572
- installer.install_command
580
+ sudo(installer.install_command)
573
581
  end
574
582
 
575
583
  # Hook used in subclasses to indicate support for policyfiles.
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/provisioner/chef_base"
19
+ require_relative "chef_base"
20
20
 
21
21
  module Kitchen
22
22
  module Provisioner
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/provisioner/chef_base"
19
+ require_relative "chef_base"
20
20
 
21
21
  module Kitchen
22
22
  module Provisioner
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen"
19
+ require_relative "../../kitchen"
20
20
 
21
21
  module Kitchen
22
22
  module Provisioner
@@ -18,8 +18,8 @@
18
18
 
19
19
  require "shellwords"
20
20
 
21
- require "kitchen/provisioner/base"
22
- require "kitchen/version"
21
+ require_relative "base"
22
+ require_relative "../version"
23
23
 
24
24
  module Kitchen
25
25
  module Provisioner
@@ -106,13 +106,17 @@ module Kitchen
106
106
 
107
107
  if config[:arguments] && !config[:arguments].empty?
108
108
  if config[:arguments].is_a?(Array)
109
- script = Shellwords.join([script] + config[:arguments])
109
+ if powershell_shell?
110
+ script = ([script] + config[:arguments]).join(" ")
111
+ else
112
+ script = Shellwords.join([script] + config[:arguments])
113
+ end
110
114
  else
111
115
  script.concat(" ").concat(config[:arguments].to_s)
112
116
  end
113
117
  end
114
118
 
115
- code = powershell_shell? ? %{& "#{script}"} : sudo(script)
119
+ code = powershell_shell? ? %{& #{script}} : sudo(script)
116
120
 
117
121
  prefix_command(wrap_shell_code(code))
118
122
  end
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "rake/tasklib"
20
20
 
21
- require "kitchen"
21
+ require_relative "../kitchen"
22
22
 
23
23
  module Kitchen
24
24
  # Kitchen Rake task generator.
@@ -21,8 +21,8 @@ require "net/ssh"
21
21
  require "net/scp"
22
22
  require "socket"
23
23
 
24
- require "kitchen/errors"
25
- require "kitchen/login_command"
24
+ require_relative "errors"
25
+ require_relative "login_command"
26
26
 
27
27
  module Kitchen
28
28
  # Wrapped exception for any internally raised SSH-related errors.
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "thor"
20
20
 
21
- require "kitchen"
21
+ require_relative "../kitchen"
22
22
 
23
23
  module Kitchen
24
24
  # Kitchen Thor task generator.
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/plugin"
19
+ require_relative "plugin"
20
20
 
21
21
  module Kitchen
22
22
  # A transport is responsible for the communication with an instance,
@@ -17,11 +17,11 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
- require "kitchen/configurable"
21
- require "kitchen/errors"
22
- require "kitchen/lazy_hash"
23
- require "kitchen/logging"
24
- require "kitchen/login_command"
20
+ require_relative "../configurable"
21
+ require_relative "../errors"
22
+ require_relative "../lazy_hash"
23
+ require_relative "../logging"
24
+ require_relative "../login_command"
25
25
 
26
26
  module Kitchen
27
27
  module Transport
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen"
19
+ require_relative "../../kitchen"
20
20
 
21
21
  module Kitchen
22
22
  module Transport
@@ -14,9 +14,9 @@
14
14
 
15
15
  require "fileutils"
16
16
 
17
- require "kitchen/shell_out"
18
- require "kitchen/transport/base"
19
- require "kitchen/version"
17
+ require_relative "../shell_out"
18
+ require_relative "base"
19
+ require_relative "../version"
20
20
 
21
21
  module Kitchen
22
22
  module Transport
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen"
19
+ require_relative "../../kitchen"
20
20
 
21
21
  require "fileutils"
22
22
  require "net/ssh"
@@ -20,7 +20,7 @@
20
20
 
21
21
  require "rbconfig"
22
22
  require "uri"
23
- require "kitchen"
23
+ require_relative "../../kitchen"
24
24
  require "winrm"
25
25
 
26
26
  module Kitchen
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/errors"
19
+ require_relative "errors"
20
20
  require "thor/util"
21
21
 
22
22
  module Kitchen
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/plugin"
19
+ require_relative "plugin"
20
20
 
21
21
  module Kitchen
22
22
  # A verifier is responsible for running tests post-converge to confirm that
@@ -16,9 +16,9 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/errors"
20
- require "kitchen/configurable"
21
- require "kitchen/logging"
19
+ require_relative "../errors"
20
+ require_relative "../configurable"
21
+ require_relative "../logging"
22
22
 
23
23
  module Kitchen
24
24
  module Verifier
@@ -75,6 +75,13 @@ module Kitchen
75
75
  debug("Transfer complete")
76
76
  conn.execute(prepare_command)
77
77
  conn.execute(run_command)
78
+
79
+ info("Downloading files from #{instance.to_str}")
80
+ config[:downloads].to_h.each do |remotes, local|
81
+ debug("Downloading #{Array(remotes).join(", ")} to #{local}")
82
+ conn.download(remotes, local)
83
+ end
84
+ debug("Download complete")
78
85
  end
79
86
  rescue Kitchen::Transport::TransportFailed => ex
80
87
  raise ActionFailed, ex.message
@@ -19,7 +19,7 @@
19
19
  require "base64"
20
20
  require "digest"
21
21
 
22
- require "kitchen/verifier/base"
22
+ require_relative "base"
23
23
 
24
24
  module Kitchen
25
25
  module Verifier
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/verifier/base"
19
+ require_relative "base"
20
20
 
21
21
  module Kitchen
22
22
  module Verifier
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require "kitchen/verifier/base"
19
+ require_relative "base"
20
20
 
21
21
  module Kitchen
22
22
  module Verifier
@@ -17,5 +17,5 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Kitchen
20
- VERSION = "2.3.4".freeze
20
+ VERSION = "2.5.3".freeze
21
21
  end
@@ -44,7 +44,7 @@ Function Download-Chef($md_url, $dst) {
44
44
  }
45
45
 
46
46
  Function Install-Chef($msi) {
47
- Log "Installing Chef package $msi"
47
+ Log "Installing Chef Infra Client package $msi"
48
48
  $p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi" -Passthru -Wait
49
49
 
50
50
  if ($p.ExitCode -ne 0) { throw "msiexec was not successful. Received exit code $($p.ExitCode)" }
@@ -73,11 +73,11 @@ Try {
73
73
  $msi = Unresolve-Path $msi
74
74
 
75
75
  if (Check-UpdateChef $chef_omnibus_root $version) {
76
- Write-Host "-----> Installing Chef package ($pretty_version)`n"
76
+ Write-Host "-----> Installing Chef Infra Client package ($pretty_version)`n"
77
77
  Download-Chef "$chef_metadata_url" $msi
78
78
  Install-Chef $msi
79
79
  } else {
80
- Write-Host "-----> Chef package installation detected ($pretty_version)`n"
80
+ Write-Host "-----> Chef Infra Client package installation detected ($pretty_version)`n"
81
81
  }
82
82
  Catch {
83
83
  Write-Error ($_ | ft -Property * | out-string) -ErrorAction Continue
@@ -206,7 +206,7 @@ unable_to_download() {
206
206
  main() {
207
207
  should_update_chef "$chef_omnibus_root" "$version"
208
208
  if test $? -eq 0; then
209
- echo "-----> Installing Chef package (${pretty_version})";
209
+ echo "-----> Installing Chef Infra Client package (${pretty_version})";
210
210
 
211
211
  # solaris 10 lacks recent enough credentials, so http url is used
212
212
  platform="`/usr/bin/uname -s 2>/dev/null`";
@@ -218,7 +218,7 @@ main() {
218
218
  do_download "$chef_omnibus_url" /tmp/install.sh;
219
219
  $sudo_sh /tmp/install.sh $install_flags;
220
220
  else
221
- echo "-----> Chef package installation detected (${pretty_version})";
221
+ echo "-----> Chef Infra Client package installation detected (${pretty_version})";
222
222
  fi
223
223
  }
224
224
 
@@ -1 +1,2 @@
1
1
  .kitchen
2
+ kitchen*.yml
@@ -6,8 +6,8 @@ provisioner:
6
6
  name: <%= config[:provisioner] %>
7
7
 
8
8
  platforms:
9
- - name: ubuntu-18.04
10
- - name: centos-7
9
+ - name: ubuntu-20.04
10
+ - name: centos-8
11
11
 
12
12
  suites:
13
13
  - name: default
@@ -24,12 +24,12 @@ Gem::Specification.new do |gem|
24
24
  gem.required_ruby_version = ">= 2.3"
25
25
 
26
26
  gem.add_dependency "mixlib-shellout", ">= 1.2", "< 4.0"
27
- gem.add_dependency "net-scp", ">= 1.1", "< 3.0" # pinning until we can confirm 3+ works
28
- gem.add_dependency "net-ssh", ">= 2.9", "< 6.0" # pinning until we can confirm 6+ works
27
+ gem.add_dependency "net-scp", ">= 1.1", "< 4.0" # pinning until we can confirm 4+ works
28
+ gem.add_dependency "net-ssh", ">= 2.9", "< 7.0" # pinning until we can confirm 7+ works
29
29
  gem.add_dependency "net-ssh-gateway", ">= 1.2", "< 3.0" # pinning until we can confirm 3+ works
30
30
  gem.add_dependency "ed25519", "~> 1.2" # ed25519 ssh key support
31
31
  gem.add_dependency "bcrypt_pbkdf", "~> 1.0" # ed25519 ssh key support
32
- gem.add_dependency "thor", "~> 0.19"
32
+ gem.add_dependency "thor", ">= 0.19", "< 2.0"
33
33
  gem.add_dependency "mixlib-install", "~> 3.6"
34
34
  gem.add_dependency "winrm", "~> 2.0"
35
35
  gem.add_dependency "winrm-elevated", "~> 1.0"
@@ -42,8 +42,8 @@ Gem::Specification.new do |gem|
42
42
  gem.add_development_dependency "bundler"
43
43
  gem.add_development_dependency "rake"
44
44
 
45
- gem.add_development_dependency "aruba", "~> 0.11"
46
- gem.add_development_dependency "fakefs", "~> 0.4"
45
+ gem.add_development_dependency "aruba", "~> 0.11", "< 1.0"
46
+ gem.add_development_dependency "fakefs", "~> 1.0"
47
47
  gem.add_development_dependency "minitest", "~> 5.3", "< 5.12"
48
48
  gem.add_development_dependency "mocha", "~> 1.1"
49
49
  gem.add_development_dependency "cucumber", ">= 2.1", "< 4.0" # we just need to validate 4.0 when it comes out
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: 2.3.4
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Nichol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-31 00:00:00.000000000 Z
11
+ date: 2020-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '1.1'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '3.0'
42
+ version: '4.0'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: '1.1'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '3.0'
52
+ version: '4.0'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: net-ssh
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '2.9'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '6.0'
62
+ version: '7.0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: '2.9'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '6.0'
72
+ version: '7.0'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: net-ssh-gateway
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -122,16 +122,22 @@ dependencies:
122
122
  name: thor
123
123
  requirement: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0.19'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.0'
128
131
  type: :runtime
129
132
  prerelease: false
130
133
  version_requirements: !ruby/object:Gem::Requirement
131
134
  requirements:
132
- - - "~>"
135
+ - - ">="
133
136
  - !ruby/object:Gem::Version
134
137
  version: '0.19'
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '2.0'
135
141
  - !ruby/object:Gem::Dependency
136
142
  name: mixlib-install
137
143
  requirement: !ruby/object:Gem::Requirement
@@ -257,6 +263,9 @@ dependencies:
257
263
  - - "~>"
258
264
  - !ruby/object:Gem::Version
259
265
  version: '0.11'
266
+ - - "<"
267
+ - !ruby/object:Gem::Version
268
+ version: '1.0'
260
269
  type: :development
261
270
  prerelease: false
262
271
  version_requirements: !ruby/object:Gem::Requirement
@@ -264,20 +273,23 @@ dependencies:
264
273
  - - "~>"
265
274
  - !ruby/object:Gem::Version
266
275
  version: '0.11'
276
+ - - "<"
277
+ - !ruby/object:Gem::Version
278
+ version: '1.0'
267
279
  - !ruby/object:Gem::Dependency
268
280
  name: fakefs
269
281
  requirement: !ruby/object:Gem::Requirement
270
282
  requirements:
271
283
  - - "~>"
272
284
  - !ruby/object:Gem::Version
273
- version: '0.4'
285
+ version: '1.0'
274
286
  type: :development
275
287
  prerelease: false
276
288
  version_requirements: !ruby/object:Gem::Requirement
277
289
  requirements:
278
290
  - - "~>"
279
291
  - !ruby/object:Gem::Version
280
- version: '0.4'
292
+ version: '1.0'
281
293
  - !ruby/object:Gem::Dependency
282
294
  name: minitest
283
295
  requirement: !ruby/object:Gem::Requirement
@@ -487,7 +499,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
487
499
  - !ruby/object:Gem::Version
488
500
  version: '0'
489
501
  requirements: []
490
- rubygems_version: 3.0.3
502
+ rubygems_version: 3.1.2
491
503
  signing_key:
492
504
  specification_version: 4
493
505
  summary: Test Kitchen is an integration tool for developing and testing infrastructure