chef 15.11.3-universal-mingw32 → 15.15.0-universal-mingw32

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/Gemfile +7 -9
  3. data/README.md +3 -3
  4. data/chef-universal-mingw32.gemspec +2 -2
  5. data/chef.gemspec +12 -3
  6. data/distro/powershell/chef/chef.psm1 +3 -3
  7. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  8. data/lib/chef/api_client/registration.rb +2 -2
  9. data/lib/chef/application/apply.rb +1 -1
  10. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
  11. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  12. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  13. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
  14. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  16. data/lib/chef/chef_fs/path_utils.rb +3 -3
  17. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  18. data/lib/chef/data_bag.rb +2 -2
  19. data/lib/chef/data_collector/error_handlers.rb +1 -1
  20. data/lib/chef/deprecated.rb +12 -0
  21. data/lib/chef/dsl/declare_resource.rb +1 -1
  22. data/lib/chef/dsl/platform_introspection.rb +2 -0
  23. data/lib/chef/environment.rb +2 -2
  24. data/lib/chef/exceptions.rb +3 -0
  25. data/lib/chef/http.rb +2 -1
  26. data/lib/chef/knife/bootstrap.rb +8 -10
  27. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  28. data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
  29. data/lib/chef/knife/cookbook_download.rb +1 -1
  30. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  31. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  32. data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
  33. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  34. data/lib/chef/knife/exec.rb +2 -2
  35. data/lib/chef/knife/ssh.rb +20 -1
  36. data/lib/chef/log.rb +1 -1
  37. data/lib/chef/mixin/openssl_helper.rb +26 -3
  38. data/lib/chef/mixin/template.rb +1 -0
  39. data/lib/chef/node_map.rb +5 -2
  40. data/lib/chef/provider/mount/solaris.rb +0 -1
  41. data/lib/chef/provider/package/cab.rb +1 -1
  42. data/lib/chef/provider/package/chocolatey.rb +1 -1
  43. data/lib/chef/provider/package/msu.rb +1 -0
  44. data/lib/chef/provider/package/powershell.rb +5 -1
  45. data/lib/chef/provider/package/snap.rb +96 -27
  46. data/lib/chef/provider/package/zypper.rb +0 -1
  47. data/lib/chef/provider/service/arch.rb +2 -2
  48. data/lib/chef/provider/service/debian.rb +1 -1
  49. data/lib/chef/provider/service/gentoo.rb +2 -2
  50. data/lib/chef/provider/service/macosx.rb +2 -2
  51. data/lib/chef/provider/service/openbsd.rb +1 -1
  52. data/lib/chef/provider/service/redhat.rb +2 -2
  53. data/lib/chef/provider/service/upstart.rb +1 -1
  54. data/lib/chef/provider/yum_repository.rb +1 -1
  55. data/lib/chef/provider/zypper_repository.rb +31 -11
  56. data/lib/chef/resource.rb +2 -0
  57. data/lib/chef/resource/archive_file.rb +28 -8
  58. data/lib/chef/resource/cron_access.rb +13 -5
  59. data/lib/chef/resource/cron_d.rb +2 -1
  60. data/lib/chef/resource/homebrew_cask.rb +3 -3
  61. data/lib/chef/resource/hostname.rb +19 -18
  62. data/lib/chef/resource/locale.rb +1 -1
  63. data/lib/chef/resource/lwrp_base.rb +7 -0
  64. data/lib/chef/resource/msu_package.rb +5 -0
  65. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  66. data/lib/chef/resource/sudo.rb +2 -2
  67. data/lib/chef/resource/windows_feature_powershell.rb +6 -2
  68. data/lib/chef/resource/windows_font.rb +2 -1
  69. data/lib/chef/role.rb +2 -2
  70. data/lib/chef/shell.rb +1 -1
  71. data/lib/chef/shell/shell_session.rb +2 -0
  72. data/lib/chef/util/diff.rb +1 -1
  73. data/lib/chef/util/powershell/cmdlet.rb +1 -1
  74. data/lib/chef/version.rb +2 -2
  75. data/lib/chef/win32/file.rb +2 -2
  76. data/spec/functional/knife/ssh_spec.rb +4 -4
  77. data/spec/functional/resource/aix_service_spec.rb +0 -1
  78. data/spec/functional/resource/aixinit_service_spec.rb +7 -8
  79. data/spec/functional/resource/apt_package_spec.rb +0 -1
  80. data/spec/functional/resource/bff_spec.rb +2 -2
  81. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  82. data/spec/functional/resource/cron_spec.rb +0 -1
  83. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  84. data/spec/functional/resource/insserv_spec.rb +4 -5
  85. data/spec/functional/resource/link_spec.rb +17 -17
  86. data/spec/functional/resource/msu_package_spec.rb +5 -2
  87. data/spec/functional/resource/rpm_spec.rb +2 -2
  88. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  89. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  90. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  91. data/spec/functional/resource/windows_font_spec.rb +49 -0
  92. data/spec/functional/resource/windows_task_spec.rb +8 -8
  93. data/spec/functional/run_lock_spec.rb +2 -1
  94. data/spec/functional/shell_spec.rb +5 -5
  95. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  96. data/spec/functional/version_spec.rb +1 -1
  97. data/spec/functional/win32/service_manager_spec.rb +1 -1
  98. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  99. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
  100. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  101. data/spec/integration/recipes/notifies_spec.rb +1 -1
  102. data/spec/integration/recipes/notifying_block_spec.rb +1 -1
  103. data/spec/integration/recipes/recipe_dsl_spec.rb +1 -1
  104. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
  105. data/spec/integration/recipes/resource_load_spec.rb +1 -0
  106. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  107. data/spec/scripts/ssl-serve.rb +1 -1
  108. data/spec/spec_helper.rb +26 -8
  109. data/spec/support/chef_helpers.rb +1 -1
  110. data/spec/support/platform_helpers.rb +12 -42
  111. data/spec/support/platforms/win32/spec_service.rb +1 -1
  112. data/spec/support/shared/functional/directory_resource.rb +1 -1
  113. data/spec/support/shared/functional/execute_resource.rb +1 -1
  114. data/spec/support/shared/functional/file_resource.rb +2 -2
  115. data/spec/support/shared/functional/win32_service.rb +1 -1
  116. data/spec/support/shared/functional/windows_script.rb +3 -3
  117. data/spec/support/shared/integration/knife_support.rb +2 -5
  118. data/spec/unit/application_spec.rb +7 -0
  119. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
  120. data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
  121. data/spec/unit/data_bag_spec.rb +1 -1
  122. data/spec/unit/data_collector_spec.rb +1 -1
  123. data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
  124. data/spec/unit/environment_spec.rb +7 -7
  125. data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
  126. data/spec/unit/file_access_control_spec.rb +1 -1
  127. data/spec/unit/json_compat_spec.rb +1 -1
  128. data/spec/unit/knife/bootstrap_spec.rb +16 -16
  129. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  130. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  131. data/spec/unit/knife/cookbook_upload_spec.rb +5 -6
  132. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  133. data/spec/unit/knife/ssh_spec.rb +2 -2
  134. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  135. data/spec/unit/lwrp_spec.rb +4 -4
  136. data/spec/unit/mixin/securable_spec.rb +0 -1
  137. data/spec/unit/mixin/user_context_spec.rb +1 -9
  138. data/spec/unit/property_spec.rb +6 -6
  139. data/spec/unit/provider/apt_repository_spec.rb +2 -2
  140. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
  141. data/spec/unit/provider/package/powershell_spec.rb +95 -86
  142. data/spec/unit/provider/package/rubygems_spec.rb +5 -10
  143. data/spec/unit/provider/package/snap_spec.rb +1 -1
  144. data/spec/unit/provider/package/windows_spec.rb +30 -53
  145. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  146. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  147. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  148. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  149. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  150. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  151. data/spec/unit/provider/service/windows_spec.rb +2 -6
  152. data/spec/unit/provider/systemd_unit_spec.rb +28 -24
  153. data/spec/unit/provider/zypper_repository_spec.rb +75 -25
  154. data/spec/unit/provider_spec.rb +1 -0
  155. data/spec/unit/resource/archive_file_spec.rb +11 -2
  156. data/spec/unit/resource/msu_package_spec.rb +4 -0
  157. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  158. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  159. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  160. data/spec/unit/resource/windows_package_spec.rb +1 -0
  161. data/spec/unit/resource/windows_task_spec.rb +1 -1
  162. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  163. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  164. data/spec/unit/resource_reporter_spec.rb +1 -1
  165. data/spec/unit/resource_spec.rb +1 -1
  166. data/spec/unit/role_spec.rb +11 -11
  167. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  168. data/spec/unit/run_lock_spec.rb +1 -1
  169. data/spec/unit/scan_access_control_spec.rb +1 -1
  170. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  171. data/spec/unit/win32/security_spec.rb +4 -3
  172. data/tasks/rspec.rb +5 -13
  173. metadata +38 -19
@@ -27,7 +27,7 @@ Chef::Log.level(Chef::Config.log_level)
27
27
  Chef::Config.solo(false)
28
28
 
29
29
  def sha256_checksum(path)
30
- OpenSSL::Digest::SHA256.hexdigest(File.read(path))
30
+ OpenSSL::Digest.hexdigest("SHA256", File.read(path))
31
31
  end
32
32
 
33
33
  # extracted from Ruby < 2.5 to return a unique temp file name without creating it
@@ -3,7 +3,6 @@ require "chef/mixin/shell_out"
3
3
  require "ohai/mixin/http_helper"
4
4
  require "ohai/mixin/gce_metadata"
5
5
  require "chef/mixin/powershell_out"
6
- require "chef/version_class"
7
6
 
8
7
  class ShellHelpers
9
8
  extend Chef::Mixin::ShellOut
@@ -100,39 +99,12 @@ def windows_user_right?(right)
100
99
  Chef::ReservedNames::Win32::Security.get_account_right(ENV["USERNAME"]).include?(right)
101
100
  end
102
101
 
103
- def mac_osx_106?
104
- if File.exists? "/usr/bin/sw_vers"
105
- result = ShellHelpers.shell_out("/usr/bin/sw_vers")
106
- result.stdout.each_line do |line|
107
- if line =~ /^ProductVersion:\s10.6.*$/
108
- return true
109
- end
110
- end
111
- end
112
-
113
- false
114
- end
115
-
116
- def mac_osx_1014?
117
- if mac_osx?
118
- ver = Chef::Version.new(ohai[:platform_version])
119
- return ver.major == 10 && ver.minor == 14
120
- end
121
-
122
- false
102
+ def macos_1013?
103
+ macos? && Gem::Requirement.new("~> 10.13.0").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
123
104
  end
124
105
 
125
- def mac_osx?
126
- if File.exists? "/usr/bin/sw_vers"
127
- result = ShellHelpers.shell_out("/usr/bin/sw_vers")
128
- result.stdout.each_line do |line|
129
- if line =~ /^ProductName:\sMac OS X.*$/
130
- return true
131
- end
132
- end
133
- end
134
-
135
- false
106
+ def macos_gte_1014?
107
+ macos? && Gem::Requirement.new(">= 10.14").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
136
108
  end
137
109
 
138
110
  # detects if the hardware is 64-bit (evaluates to true in "WOW64" mode in a 32-bit app on a 64-bit system)
@@ -145,26 +117,24 @@ def windows32?
145
117
  windows? && !windows64?
146
118
  end
147
119
 
148
- # def jruby?
149
-
150
120
  def unix?
151
121
  !windows?
152
122
  end
153
123
 
154
124
  def linux?
155
- !!(RUBY_PLATFORM =~ /linux/)
125
+ RUBY_PLATFORM.match?(/linux/)
156
126
  end
157
127
 
158
- def os_x?
159
- !!(RUBY_PLATFORM =~ /darwin/)
128
+ def macos?
129
+ RUBY_PLATFORM.match?(/darwin/)
160
130
  end
161
131
 
162
132
  def solaris?
163
- !!(RUBY_PLATFORM =~ /solaris/)
133
+ RUBY_PLATFORM.match?(/solaris/)
164
134
  end
165
135
 
166
136
  def freebsd?
167
- !!(RUBY_PLATFORM =~ /freebsd/)
137
+ RUBY_PLATFORM.match?(/freebsd/)
168
138
  end
169
139
 
170
140
  def intel_64bit?
@@ -200,7 +170,7 @@ def debian_family?
200
170
  end
201
171
 
202
172
  def aix?
203
- !!(RUBY_PLATFORM =~ /aix/)
173
+ RUBY_PLATFORM.match?(/aix/)
204
174
  end
205
175
 
206
176
  def wpar?
@@ -236,8 +206,8 @@ def selinux_enabled?
236
206
  end
237
207
 
238
208
  def suse?
239
- ::File.exists?("/etc/SuSE-release") ||
240
- ( ::File.exists?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
209
+ ::File.exist?("/etc/SuSE-release") ||
210
+ ( ::File.exist?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
241
211
  end
242
212
 
243
213
  def root?
@@ -26,7 +26,7 @@ if RUBY_PLATFORM =~ /mswin|mingw|windows/
26
26
 
27
27
  def service_main(*startup_parameters)
28
28
  while running?
29
- unless File.exists?(@test_service_file)
29
+ unless File.exist?(@test_service_file)
30
30
  File.open(@test_service_file, "wb") do |f|
31
31
  f.write("This file is created by SpecService")
32
32
  end
@@ -173,6 +173,6 @@ shared_context Chef::Resource::Directory do
173
173
  end
174
174
 
175
175
  after(:each) do
176
- FileUtils.rm_r(path) if File.exists?(path)
176
+ FileUtils.rm_r(path) if File.exist?(path)
177
177
  end
178
178
  end
@@ -62,7 +62,7 @@ shared_context "a command that can be executed as an alternate user" do
62
62
  end
63
63
 
64
64
  after do
65
- File.delete(script_output_path) if File.exists?(script_output_path)
65
+ File.delete(script_output_path) if File.exist?(script_output_path)
66
66
  Dir.rmdir(script_output_dir) if Dir.exist?(script_output_dir)
67
67
  end
68
68
  end
@@ -1038,8 +1038,8 @@ shared_context Chef::Resource::File do
1038
1038
  end
1039
1039
 
1040
1040
  after(:each) do
1041
- FileUtils.rm_r(path) if File.exists?(path)
1042
- FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exists?(CHEF_SPEC_BACKUP_PATH)
1041
+ FileUtils.rm_r(path) if File.exist?(path)
1042
+ FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
1043
1043
  end
1044
1044
 
1045
1045
  after do
@@ -30,7 +30,7 @@ shared_context "using Win32::Service" do
30
30
  end
31
31
 
32
32
  # Delete the test_service_file if it exists
33
- if File.exists?(test_service_file)
33
+ if File.exist?(test_service_file)
34
34
  File.delete(test_service_file)
35
35
  end
36
36
  end
@@ -39,11 +39,11 @@ shared_context Chef::Resource::WindowsScript do
39
39
  end
40
40
 
41
41
  before(:each) do
42
- File.delete(script_output_path) if File.exists?(script_output_path)
42
+ File.delete(script_output_path) if File.exist?(script_output_path)
43
43
  end
44
44
 
45
45
  after(:each) do
46
- File.delete(script_output_path) if File.exists?(script_output_path)
46
+ File.delete(script_output_path) if File.exist?(script_output_path)
47
47
  end
48
48
 
49
49
  shared_examples_for "a script resource with architecture attribute" do
@@ -149,7 +149,7 @@ shared_context Chef::Resource::WindowsScript do
149
149
 
150
150
  after do
151
151
  script_file.close! if script_file
152
- ::File.delete(script_file.to_path) if script_file && ::File.exists?(script_file.to_path)
152
+ ::File.delete(script_file.to_path) if script_file && ::File.exist?(script_file.to_path)
153
153
  end
154
154
 
155
155
  include_context "alternate user identity"
@@ -39,10 +39,7 @@ module KnifeSupport
39
39
 
40
40
  # Work on machines where we can't access /var
41
41
  Dir.mktmpdir("checksums") do |checksums_cache_dir|
42
- Chef::Config[:cache_options] = {
43
- path: checksums_cache_dir,
44
- skip_expires: true,
45
- }
42
+ Chef::Config[:syntax_check_cache_path] = checksums_cache_dir
46
43
 
47
44
  # This is Chef::Knife.run without load_commands--we'll load stuff
48
45
  # ourselves, thank you very much
@@ -117,7 +114,7 @@ module KnifeSupport
117
114
  ensure
118
115
  Chef::Log.use_log_devices(old_loggers)
119
116
  Chef::Log.level = old_log_level
120
- Chef::Config.delete(:cache_options)
117
+ Chef::Config.delete(:syntax_check_cache_path)
121
118
  Chef::Config.delete(:concurrency)
122
119
  end
123
120
 
@@ -94,6 +94,13 @@ describe Chef::Application do
94
94
  end
95
95
  end
96
96
 
97
+ describe "when enforce_license is set to false" do
98
+ it "should not check the license acceptance" do
99
+ expect(@app).to_not receive(:check_license_acceptance)
100
+ @app.run(enforce_license: false)
101
+ end
102
+ end
103
+
97
104
  it "should run the actual application" do
98
105
  expect(@app).to receive(:run_application).and_return(true)
99
106
  @app.run
@@ -25,11 +25,9 @@ describe Chef::ChefFS::FileSystem::OperationFailedError do
25
25
 
26
26
  context "has a cause attribute and HTTP result code is 400" do
27
27
  it "include error cause" do
28
- allow_message_expectations_on_nil
29
28
  response_body = '{"error":["Invalid key test in request body"]}'
30
- allow(@response).to receive(:code).and_return("400")
31
- allow(@response).to receive(:body).and_return(response_body)
32
- exception = Net::HTTPClientException.new("(exception) unauthorized", @response)
29
+ response = double(:response, code: "400", body: response_body)
30
+ exception = Net::HTTPClientException.new("(exception) unauthorized", response)
33
31
  expect do
34
32
  raise Chef::ChefFS::FileSystem::OperationFailedError.new(:write, self, exception), error_message
35
33
  end.to raise_error(Chef::ChefFS::FileSystem::OperationFailedError, "#{error_message} cause: #{response_body}")
@@ -95,7 +95,8 @@ describe Chef::Cookbook::GemInstaller do
95
95
 
96
96
  it "skip metadata installation when Chef::Config[:skip_gem_metadata_installation] is set to true" do
97
97
  Chef::Config[:skip_gem_metadata_installation] = true
98
- expect(gem_installer.install).to_not receive(:shell_out!)
98
+ expect(gem_installer).to_not receive(:shell_out!)
99
+ expect(gem_installer.install).to be_nil
99
100
  end
100
101
 
101
102
  it "install metadata when Chef::Config[:skip_gem_metadata_installation] is not true" do
@@ -243,7 +243,7 @@ describe Chef::DataBag do
243
243
 
244
244
  expect do
245
245
  Chef::DataBag.load("foo")
246
- end.to raise_error Chef::Exceptions::InvalidDataBagPath, "Data bag path '/var/chef/data_bags' is invalid"
246
+ end.to raise_error Chef::Exceptions::InvalidDataBagPath, "Data bag path '/var/chef/data_bags' not found. Please create this directory."
247
247
  end
248
248
 
249
249
  end
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require File.expand_path("../../spec_helper", __FILE__)
18
+ require_relative "../spec_helper"
19
19
  require "chef/data_collector"
20
20
  require "socket"
21
21
 
@@ -21,6 +21,7 @@ require "chef/dsl/platform_introspection"
21
21
 
22
22
  class LanguageTester
23
23
  attr_reader :node
24
+
24
25
  def initialize(node)
25
26
  @node = node
26
27
  end
@@ -402,8 +402,8 @@ describe Chef::Environment do
402
402
 
403
403
  it "should get the environment from the environment_path" do
404
404
  expect(File).to receive(:directory?).with(Chef::Config[:environment_path]).and_return(true)
405
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
406
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.rb")).exactly(1).times.and_return(true)
405
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
406
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.rb")).exactly(1).times.and_return(true)
407
407
  expect(File).to receive(:readable?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(true)
408
408
  expect(File).to receive(:file?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(true)
409
409
  role_dsl = "name \"foo\"\ndescription \"desc\"\n"
@@ -413,7 +413,7 @@ describe Chef::Environment do
413
413
 
414
414
  it "should return a Chef::Environment object from JSON" do
415
415
  expect(File).to receive(:directory?).with(Chef::Config[:environment_path]).and_return(true)
416
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(true)
416
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(true)
417
417
  environment_hash = {
418
418
  "name" => "foo",
419
419
  "default_attributes" => {
@@ -436,8 +436,8 @@ describe Chef::Environment do
436
436
 
437
437
  it "should return a Chef::Environment object from Ruby DSL" do
438
438
  expect(File).to receive(:directory?).with(Chef::Config[:environment_path]).and_return(true)
439
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
440
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.rb")).exactly(1).times.and_return(true)
439
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
440
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.rb")).exactly(1).times.and_return(true)
441
441
  expect(File).to receive(:readable?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(true)
442
442
  expect(File).to receive(:file?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(true)
443
443
  role_dsl = "name \"foo\"\ndescription \"desc\"\n"
@@ -459,8 +459,8 @@ describe Chef::Environment do
459
459
 
460
460
  it "should raise an error if the file does not exist" do
461
461
  expect(File).to receive(:directory?).with(Chef::Config[:environment_path]).and_return(true)
462
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
463
- expect(File).to receive(:exists?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(false)
462
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.json")).and_return(false)
463
+ expect(File).to receive(:exist?).with(File.join(Chef::Config[:environment_path], "foo.rb")).and_return(false)
464
464
 
465
465
  expect do
466
466
  Chef::Environment.load("foo")
@@ -61,6 +61,7 @@ describe Chef::EventDispatch::Dispatcher do
61
61
  let(:event_sink) do
62
62
  Class.new(Chef::EventDispatch::Base) do
63
63
  attr_reader :synchronized_cookbook_args
64
+
64
65
  def synchronized_cookbook(cookbook_name)
65
66
  @synchronized_cookbook_args = [cookbook_name]
66
67
  end
@@ -79,6 +80,7 @@ describe Chef::EventDispatch::Dispatcher do
79
80
  let(:event_sink_1) do
80
81
  Class.new(Chef::EventDispatch::Base) do
81
82
  attr_reader :synchronized_cookbook_args
83
+
82
84
  def synchronized_cookbook(cookbook_name)
83
85
  @synchronized_cookbook_args = [cookbook_name]
84
86
  end
@@ -87,6 +89,7 @@ describe Chef::EventDispatch::Dispatcher do
87
89
  let(:event_sink_2) do
88
90
  Class.new(Chef::EventDispatch::Base) do
89
91
  attr_reader :synchronized_cookbook_args
92
+
90
93
  def synchronized_cookbook(cookbook_name, cookbook)
91
94
  @synchronized_cookbook_args = [cookbook_name, cookbook]
92
95
  end
@@ -93,7 +93,7 @@ describe Chef::FileAccessControl do
93
93
  end
94
94
 
95
95
  it "wraps uids to their negative complements to correctly handle negative uids" do
96
- # More: Mac OS X (at least) has negative UIDs for 'nobody' and some other
96
+ # More: macOS (at least) has negative UIDs for 'nobody' and some other
97
97
  # users. Ruby doesn't believe in negative UIDs so you get the diminished radix
98
98
  # complement (i.e., it wraps around the maximum size of C unsigned int) of these
99
99
  # uids. So we have to get ruby and negative uids to smoke the peace pipe
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require File.expand_path("../../spec_helper", __FILE__)
19
+ require_relative "../spec_helper"
20
20
  require "chef/json_compat"
21
21
 
22
22
  describe Chef::JSONCompat do
@@ -206,7 +206,7 @@ describe Chef::Knife::Bootstrap do
206
206
  end
207
207
 
208
208
  before(:each) do
209
- expect(File).to receive(:exists?).with(bootstrap_template).and_return(false)
209
+ expect(File).to receive(:exist?).with(bootstrap_template).and_return(false)
210
210
  end
211
211
 
212
212
  context "when file is available everywhere" do
@@ -215,7 +215,7 @@ describe Chef::Knife::Bootstrap do
215
215
  configure_env_home
216
216
  configure_gem_files
217
217
 
218
- expect(File).to receive(:exists?).with(builtin_template_path).and_return(true)
218
+ expect(File).to receive(:exist?).with(builtin_template_path).and_return(true)
219
219
  end
220
220
 
221
221
  it "should load the template from built-in templates" do
@@ -229,8 +229,8 @@ describe Chef::Knife::Bootstrap do
229
229
  configure_env_home
230
230
  configure_gem_files
231
231
 
232
- expect(File).to receive(:exists?).with(builtin_template_path).and_return(false)
233
- expect(File).to receive(:exists?).with(chef_config_dir_template_path).and_return(true)
232
+ expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
233
+ expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(true)
234
234
 
235
235
  it "should load the template from chef_config_dir" do
236
236
  knife.find_template.should eq(chef_config_dir_template_path)
@@ -244,9 +244,9 @@ describe Chef::Knife::Bootstrap do
244
244
  configure_env_home
245
245
  configure_gem_files
246
246
 
247
- expect(File).to receive(:exists?).with(builtin_template_path).and_return(false)
248
- expect(File).to receive(:exists?).with(chef_config_dir_template_path).and_return(false)
249
- expect(File).to receive(:exists?).with(env_home_template_path).and_return(true)
247
+ expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
248
+ expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
249
+ expect(File).to receive(:exist?).with(env_home_template_path).and_return(true)
250
250
  end
251
251
 
252
252
  it "should load the template from chef_config_dir" do
@@ -260,10 +260,10 @@ describe Chef::Knife::Bootstrap do
260
260
  configure_env_home
261
261
  configure_gem_files
262
262
 
263
- expect(File).to receive(:exists?).with(builtin_template_path).and_return(false)
264
- expect(File).to receive(:exists?).with(chef_config_dir_template_path).and_return(false)
265
- expect(File).to receive(:exists?).with(env_home_template_path).and_return(false)
266
- expect(File).to receive(:exists?).with(gem_files_template_path).and_return(true)
263
+ expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
264
+ expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
265
+ expect(File).to receive(:exist?).with(env_home_template_path).and_return(false)
266
+ expect(File).to receive(:exist?).with(gem_files_template_path).and_return(true)
267
267
  end
268
268
 
269
269
  it "should load the template from Gem files" do
@@ -277,9 +277,9 @@ describe Chef::Knife::Bootstrap do
277
277
  configure_gem_files
278
278
  allow(Chef::Util::PathHelper).to receive(:home).with(".chef", "bootstrap", "example.erb").and_return(nil)
279
279
 
280
- expect(File).to receive(:exists?).with(builtin_template_path).and_return(false)
281
- expect(File).to receive(:exists?).with(chef_config_dir_template_path).and_return(false)
282
- expect(File).to receive(:exists?).with(gem_files_template_path).and_return(true)
280
+ expect(File).to receive(:exist?).with(builtin_template_path).and_return(false)
281
+ expect(File).to receive(:exist?).with(chef_config_dir_template_path).and_return(false)
282
+ expect(File).to receive(:exist?).with(gem_files_template_path).and_return(true)
283
283
  end
284
284
 
285
285
  it "should load the template from Gem files" do
@@ -1747,8 +1747,8 @@ describe Chef::Knife::Bootstrap do
1747
1747
  allow(vault_handler_mock).to receive(:doing_chef_vault?).and_return false
1748
1748
  end
1749
1749
 
1750
- it "shows a message" do
1751
- expect(knife.ui).to receive(:info)
1750
+ it "shows a warning message" do
1751
+ expect(knife.ui).to receive(:warn).twice
1752
1752
  knife.register_client
1753
1753
  end
1754
1754
  end
@@ -94,7 +94,7 @@ describe Chef::Knife::CookbookDownload do
94
94
  let (:manifest_data) { { all_files: [] } }
95
95
  it "should determine which version to download" do
96
96
  expect(@knife).to receive(:determine_version).and_return("1.0.0")
97
- expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
97
+ expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
98
98
  @knife.run
99
99
  end
100
100
  end
@@ -111,7 +111,7 @@ describe Chef::Knife::CookbookDownload do
111
111
  end
112
112
 
113
113
  it "should print an error and exit if the cookbook download directory already exists" do
114
- expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
114
+ expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
115
115
  expect(@knife.ui).to receive(:fatal).with(%r{/var/tmp/chef/foobar-1\.0\.0 exists}i)
116
116
  expect { @knife.run }.to raise_error(SystemExit)
117
117
  end
@@ -135,7 +135,7 @@ describe Chef::Knife::CookbookDownload do
135
135
  end
136
136
 
137
137
  it "should download the cookbook when the cookbook download directory doesn't exist" do
138
- expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
138
+ expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(false)
139
139
  @knife.run
140
140
  %w{attributes recipes templates}.each do |segment|
141
141
  expect(@stderr.string).to match /downloading #{segment}/im
@@ -147,7 +147,7 @@ describe Chef::Knife::CookbookDownload do
147
147
  describe "with -f or --force" do
148
148
  it "should remove the existing the cookbook download directory if it exists" do
149
149
  @knife.config[:force] = true
150
- expect(File).to receive(:exists?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
150
+ expect(File).to receive(:exist?).with("/var/tmp/chef/foobar-1.0.0").and_return(true)
151
151
  expect(FileUtils).to receive(:rm_rf).with("/var/tmp/chef/foobar-1.0.0")
152
152
  @knife.run
153
153
  end