chef 15.4.45-universal-mingw32 → 15.5.9-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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -3
  3. data/Rakefile +5 -3
  4. data/chef.gemspec +2 -1
  5. data/ext/win32-eventlog/Rakefile +9 -1
  6. data/ext/win32-eventlog/{chef-log.man → chef-log.man.erb} +4 -4
  7. data/lib/chef/application.rb +2 -2
  8. data/lib/chef/application/client.rb +1 -1
  9. data/lib/chef/application/knife.rb +1 -0
  10. data/lib/chef/application/solo.rb +1 -1
  11. data/lib/chef/chef_class.rb +1 -6
  12. data/lib/chef/chef_fs.rb +1 -1
  13. data/lib/chef/chef_fs/file_pattern.rb +1 -1
  14. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +2 -2
  15. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +2 -2
  16. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +7 -1
  18. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +4 -3
  19. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +3 -3
  20. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -1
  21. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -3
  22. data/lib/chef/chef_fs/knife.rb +1 -1
  23. data/lib/chef/chef_fs/path_utils.rb +2 -2
  24. data/lib/chef/client.rb +4 -5
  25. data/lib/chef/config.rb +3 -2
  26. data/lib/chef/cookbook/chefignore.rb +16 -11
  27. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  28. data/lib/chef/cookbook/syntax_check.rb +5 -3
  29. data/lib/chef/cookbook_loader.rb +3 -3
  30. data/lib/chef/cookbook_uploader.rb +1 -1
  31. data/lib/chef/data_collector.rb +2 -2
  32. data/lib/chef/data_collector/run_end_message.rb +1 -0
  33. data/lib/chef/deprecated.rb +4 -0
  34. data/lib/chef/dsl/core.rb +1 -1
  35. data/lib/chef/dsl/platform_introspection.rb +9 -18
  36. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  37. data/lib/chef/file_content_management/deploy.rb +3 -3
  38. data/lib/chef/file_content_management/deploy/mv_windows.rb +2 -2
  39. data/lib/chef/file_content_management/tempfile.rb +1 -1
  40. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  41. data/lib/chef/http.rb +1 -1
  42. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  43. data/lib/chef/knife.rb +4 -3
  44. data/lib/chef/knife/config_get.rb +2 -1
  45. data/lib/chef/knife/configure.rb +1 -1
  46. data/lib/chef/knife/cookbook_metadata_from_file.rb +6 -0
  47. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  48. data/lib/chef/knife/core/status_presenter.rb +1 -1
  49. data/lib/chef/knife/ssh.rb +6 -0
  50. data/lib/chef/local_mode.rb +1 -1
  51. data/lib/chef/mash.rb +21 -232
  52. data/lib/chef/mixin/file_class.rb +2 -2
  53. data/lib/chef/mixin/lazy_module_include.rb +1 -1
  54. data/lib/chef/mixin/path_sanity.rb +3 -39
  55. data/lib/chef/mixin/securable.rb +1 -1
  56. data/lib/chef/mixin/shell_out.rb +4 -5
  57. data/lib/chef/mixin/template.rb +1 -1
  58. data/lib/chef/mixin/user_context.rb +3 -3
  59. data/lib/chef/mixin/which.rb +10 -38
  60. data/lib/chef/mixin/windows_architecture_helper.rb +6 -6
  61. data/lib/chef/mixin/windows_env_helper.rb +5 -5
  62. data/lib/chef/node/attribute.rb +2 -2
  63. data/lib/chef/node_map.rb +17 -4
  64. data/lib/chef/platform/query_helpers.rb +4 -2
  65. data/lib/chef/platform/rebooter.rb +1 -1
  66. data/lib/chef/platform/service_helpers.rb +14 -85
  67. data/lib/chef/provider.rb +2 -0
  68. data/lib/chef/provider/file.rb +2 -2
  69. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  70. data/lib/chef/provider/link.rb +3 -3
  71. data/lib/chef/provider/mount/solaris.rb +1 -1
  72. data/lib/chef/provider/package/yum.rb +1 -1
  73. data/lib/chef/provider/registry_key.rb +1 -1
  74. data/lib/chef/provider/remote_directory.rb +3 -3
  75. data/lib/chef/provider/remote_file/fetcher.rb +2 -2
  76. data/lib/chef/provider/remote_file/local_file.rb +1 -1
  77. data/lib/chef/provider/script.rb +3 -3
  78. data/lib/chef/provider/service.rb +5 -2
  79. data/lib/chef/provider/service/arch.rb +1 -1
  80. data/lib/chef/provider/service/debian.rb +4 -4
  81. data/lib/chef/provider/service/init.rb +1 -1
  82. data/lib/chef/provider/service/insserv.rb +4 -4
  83. data/lib/chef/provider/service/invokercd.rb +4 -4
  84. data/lib/chef/provider/service/redhat.rb +4 -4
  85. data/lib/chef/provider/service/systemd.rb +19 -3
  86. data/lib/chef/provider/service/upstart.rb +3 -3
  87. data/lib/chef/provider/subversion.rb +1 -1
  88. data/lib/chef/provider/systemd_unit.rb +26 -2
  89. data/lib/chef/provider/windows_path.rb +3 -3
  90. data/lib/chef/provider/windows_task.rb +4 -4
  91. data/lib/chef/resource.rb +1 -0
  92. data/lib/chef/resource/bash.rb +2 -0
  93. data/lib/chef/resource/batch.rb +2 -0
  94. data/lib/chef/resource/breakpoint.rb +3 -1
  95. data/lib/chef/resource/build_essential.rb +3 -3
  96. data/lib/chef/resource/chef_sleep.rb +70 -0
  97. data/lib/chef/resource/cookbook_file.rb +2 -1
  98. data/lib/chef/resource/csh.rb +2 -0
  99. data/lib/chef/resource/directory.rb +2 -0
  100. data/lib/chef/resource/dmg_package.rb +1 -1
  101. data/lib/chef/resource/dnf_package.rb +1 -1
  102. data/lib/chef/resource/execute.rb +2 -0
  103. data/lib/chef/resource/file.rb +2 -1
  104. data/lib/chef/resource/git.rb +2 -0
  105. data/lib/chef/resource/group.rb +1 -1
  106. data/lib/chef/resource/homebrew_package.rb +1 -1
  107. data/lib/chef/resource/http_request.rb +2 -0
  108. data/lib/chef/resource/ifconfig.rb +3 -1
  109. data/lib/chef/resource/ksh.rb +2 -0
  110. data/lib/chef/resource/link.rb +4 -2
  111. data/lib/chef/resource/locale.rb +1 -1
  112. data/lib/chef/resource/log.rb +2 -0
  113. data/lib/chef/resource/ohai.rb +2 -0
  114. data/lib/chef/resource/perl.rb +2 -0
  115. data/lib/chef/resource/python.rb +2 -0
  116. data/lib/chef/resource/reboot.rb +2 -0
  117. data/lib/chef/resource/registry_key.rb +2 -0
  118. data/lib/chef/resource/remote_directory.rb +3 -2
  119. data/lib/chef/resource/remote_file.rb +1 -0
  120. data/lib/chef/resource/ruby.rb +2 -0
  121. data/lib/chef/resource/ruby_block.rb +2 -0
  122. data/lib/chef/resource/scm.rb +2 -0
  123. data/lib/chef/resource/script.rb +2 -0
  124. data/lib/chef/resource/service.rb +9 -1
  125. data/lib/chef/resource/solaris_package.rb +1 -1
  126. data/lib/chef/resource/subversion.rb +2 -0
  127. data/lib/chef/resource/sudo.rb +1 -1
  128. data/lib/chef/resource/systemd_unit.rb +1 -0
  129. data/lib/chef/resource/template.rb +2 -0
  130. data/lib/chef/resource/user.rb +2 -0
  131. data/lib/chef/resource/user/aix_user.rb +2 -0
  132. data/lib/chef/resource/user/linux_user.rb +2 -0
  133. data/lib/chef/resource/user/pw_user.rb +2 -0
  134. data/lib/chef/resource/user/solaris_user.rb +2 -0
  135. data/lib/chef/resource/user/windows_user.rb +2 -0
  136. data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
  137. data/lib/chef/resource/windows_ad_join.rb +1 -1
  138. data/lib/chef/resource/windows_env.rb +1 -1
  139. data/lib/chef/resource/windows_feature.rb +2 -2
  140. data/lib/chef/resource/windows_feature_powershell.rb +1 -1
  141. data/lib/chef/resource/windows_firewall_rule.rb +11 -6
  142. data/lib/chef/resource/windows_script.rb +3 -1
  143. data/lib/chef/resource/yum_package.rb +1 -1
  144. data/lib/chef/resource_reporter.rb +1 -1
  145. data/lib/chef/resources.rb +1 -0
  146. data/lib/chef/run_context.rb +1 -1
  147. data/lib/chef/run_lock.rb +5 -5
  148. data/lib/chef/search/query.rb +0 -3
  149. data/lib/chef/train_transport.rb +3 -1
  150. data/lib/chef/util/powershell/ps_credential.rb +2 -2
  151. data/lib/chef/util/selinux.rb +1 -1
  152. data/lib/chef/util/windows/logon_session.rb +2 -2
  153. data/lib/chef/version.rb +1 -1
  154. data/lib/chef/win32/eventlog.rb +2 -2
  155. data/spec/data/cookbooks/starter/chefignore +8 -0
  156. data/spec/data/cookbooks/starter/files/sample.txt +1 -0
  157. data/spec/data/cookbooks/starter/metadata.rb +2 -0
  158. data/spec/data/cookbooks/starter/recipes/default.rb +4 -0
  159. data/spec/functional/event_loggers/windows_eventlog_spec.rb +1 -1
  160. data/spec/functional/mixin/user_context_spec.rb +2 -2
  161. data/spec/functional/rebooter_spec.rb +1 -1
  162. data/spec/functional/resource/cookbook_file_spec.rb +2 -2
  163. data/spec/functional/resource/template_spec.rb +1 -1
  164. data/spec/functional/version_spec.rb +1 -1
  165. data/spec/functional/win32/crypto_spec.rb +1 -1
  166. data/spec/functional/win32/security_spec.rb +1 -1
  167. data/spec/functional/win32/service_manager_spec.rb +1 -1
  168. data/spec/functional/win32/sid_spec.rb +2 -2
  169. data/spec/functional/win32/version_info_spec.rb +1 -1
  170. data/spec/functional/win32/versions_spec.rb +1 -1
  171. data/spec/integration/knife/config_get_profile_spec.rb +2 -2
  172. data/spec/integration/knife/config_get_spec.rb +9 -2
  173. data/spec/integration/knife/config_list_profiles_spec.rb +2 -2
  174. data/spec/integration/knife/config_use_profile_spec.rb +2 -2
  175. data/spec/integration/knife/list_spec.rb +2 -2
  176. data/spec/integration/solo/solo_spec.rb +1 -1
  177. data/spec/support/matchers/leak.rb +1 -1
  178. data/spec/support/mock/platform.rb +1 -1
  179. data/spec/support/platform_helpers.rb +2 -0
  180. data/spec/support/shared/integration/integration_helper.rb +1 -1
  181. data/spec/support/shared/integration/knife_support.rb +1 -1
  182. data/spec/support/shared/unit/provider/file.rb +4 -4
  183. data/spec/unit/application/client_spec.rb +2 -2
  184. data/spec/unit/application/knife_spec.rb +17 -0
  185. data/spec/unit/application_spec.rb +1 -1
  186. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  187. data/spec/unit/chef_fs/path_util_spec.rb +3 -3
  188. data/spec/unit/client_spec.rb +2 -2
  189. data/spec/unit/cookbook/chefignore_spec.rb +31 -11
  190. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +1 -1
  191. data/spec/unit/cookbook/syntax_check_spec.rb +2 -2
  192. data/spec/unit/cookbook_loader_spec.rb +2 -2
  193. data/spec/unit/cookbook_uploader_spec.rb +6 -1
  194. data/spec/unit/data_bag_spec.rb +2 -2
  195. data/spec/unit/data_collector_spec.rb +7 -0
  196. data/spec/unit/dsl/platform_introspection_spec.rb +31 -1
  197. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +1 -1
  198. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +1 -1
  199. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +7 -0
  200. data/spec/unit/knife/cookbook_show_spec.rb +1 -1
  201. data/spec/unit/knife/core/gem_glob_loader_spec.rb +1 -1
  202. data/spec/unit/knife/core/hashed_command_loader_spec.rb +1 -1
  203. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  204. data/spec/unit/knife/core/ui_spec.rb +2 -2
  205. data/spec/unit/knife/data_bag_from_file_spec.rb +2 -2
  206. data/spec/unit/knife/environment_from_file_spec.rb +2 -2
  207. data/spec/unit/knife/ssh_spec.rb +27 -17
  208. data/spec/unit/knife/status_spec.rb +1 -1
  209. data/spec/unit/knife/supermarket_install_spec.rb +1 -1
  210. data/spec/unit/mixin/path_sanity_spec.rb +3 -3
  211. data/spec/unit/mixin/shell_out_spec.rb +2 -3
  212. data/spec/unit/mixin/template_spec.rb +4 -4
  213. data/spec/unit/mixin/user_context_spec.rb +3 -3
  214. data/spec/unit/node_map_spec.rb +12 -12
  215. data/spec/unit/platform/query_helpers_spec.rb +9 -9
  216. data/spec/unit/provider/execute_spec.rb +1 -1
  217. data/spec/unit/provider/link_spec.rb +5 -5
  218. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  219. data/spec/unit/provider/package/smartos_spec.rb +1 -1
  220. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  221. data/spec/unit/provider/package/windows_spec.rb +2 -2
  222. data/spec/unit/provider/remote_file/fetcher_spec.rb +2 -2
  223. data/spec/unit/provider/remote_file/local_file_spec.rb +1 -1
  224. data/spec/unit/provider/remote_file/network_file_spec.rb +1 -1
  225. data/spec/unit/provider/script_spec.rb +2 -2
  226. data/spec/unit/provider/service/systemd_service_spec.rb +26 -2
  227. data/spec/unit/provider/subversion_spec.rb +3 -3
  228. data/spec/unit/provider/systemd_unit_spec.rb +53 -4
  229. data/spec/unit/provider/user/dscl_spec.rb +1 -1
  230. data/spec/unit/provider_resolver_spec.rb +41 -61
  231. data/spec/unit/resource/chef_sleep_spec.rb +30 -0
  232. data/spec/unit/resource/cookbook_file_spec.rb +3 -3
  233. data/spec/unit/resource/remote_file_spec.rb +3 -3
  234. data/spec/unit/resource/windows_firewall_rule_spec.rb +69 -12
  235. data/spec/unit/role_spec.rb +2 -2
  236. data/spec/unit/shell_spec.rb +1 -1
  237. data/spec/unit/util/selinux_spec.rb +2 -2
  238. data/spec/unit/win32/error_spec.rb +1 -1
  239. data/spec/unit/win32/link_spec.rb +1 -1
  240. data/spec/unit/win32/security_spec.rb +1 -1
  241. data/spec/unit/windows_service_spec.rb +1 -1
  242. data/tasks/docs.rb +10 -2
  243. data/tasks/rspec.rb +8 -6
  244. metadata +33 -9
  245. data/lib/chef/mixin/train_helpers.rb +0 -60
  246. data/spec/unit/mash_spec.rb +0 -51
@@ -20,7 +20,7 @@ require "spec_helper"
20
20
 
21
21
  describe Chef::Cookbook::CookbookVersionLoader do
22
22
  before do
23
- allow(ChefConfig).to receive(:windows?) { false }
23
+ allow(ChefUtils).to receive(:windows?) { false }
24
24
  end
25
25
 
26
26
  describe "loading a cookbook" do
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright 2010-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2010-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@ require "chef/cookbook/syntax_check"
21
21
 
22
22
  describe Chef::Cookbook::SyntaxCheck do
23
23
  before do
24
- allow(ChefConfig).to receive(:windows?) { false }
24
+ allow(ChefUtils).to receive(:windows?) { false }
25
25
  end
26
26
 
27
27
  let(:cookbook_path) { File.join(CHEF_SPEC_DATA, "cookbooks", "openldap") }
@@ -20,7 +20,7 @@ require "spec_helper"
20
20
 
21
21
  describe Chef::CookbookLoader do
22
22
  before do
23
- allow(ChefConfig).to receive(:windows?) { false }
23
+ allow(ChefUtils).to receive(:windows?) { false }
24
24
  end
25
25
  let(:repo_paths) do
26
26
  [
@@ -101,7 +101,7 @@ describe Chef::CookbookLoader do
101
101
  cookbook_loader.each_key do |cookbook_name|
102
102
  seen << cookbook_name
103
103
  end
104
- expect(seen).to eq %w{angrybash apache2 borken ignorken irssi java name-mismatch openldap preseed supports-platform-constraints wget}
104
+ expect(seen).to eq %w{angrybash apache2 borken ignorken irssi java name-mismatch openldap preseed starter supports-platform-constraints wget}
105
105
  end
106
106
  end
107
107
 
@@ -21,9 +21,10 @@ require "spec_helper"
21
21
  describe Chef::CookbookUploader do
22
22
 
23
23
  let(:http_client) { double("Chef::ServerAPI") }
24
+ let(:cookbook_path) { File.join(CHEF_SPEC_DATA, "cookbooks") }
24
25
 
25
26
  let(:cookbook_loader) do
26
- loader = Chef::CookbookLoader.new(File.join(CHEF_SPEC_DATA, "cookbooks"))
27
+ loader = Chef::CookbookLoader.new(cookbook_path)
27
28
  loader.load_cookbooks
28
29
  loader.cookbooks_by_name["apache2"].identifier = apache2_identifier
29
30
  loader.cookbooks_by_name["java"].identifier = java_identifier
@@ -55,6 +56,10 @@ describe Chef::CookbookUploader do
55
56
 
56
57
  let(:uploader) { described_class.new(cookbooks_to_upload, rest: http_client, policy_mode: policy_mode) }
57
58
 
59
+ before do
60
+ allow(Chef::Config).to receive(:cookbook_path) { cookbook_path }
61
+ end
62
+
58
63
  it "defaults to not enabling policy mode" do
59
64
  expect(described_class.new(cookbooks_to_upload, rest: http_client).policy_mode?).to be(false)
60
65
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@ require "chef/data_bag"
22
22
  describe Chef::DataBag do
23
23
  before(:each) do
24
24
  @data_bag = Chef::DataBag.new
25
- allow(ChefConfig).to receive(:windows?) { false }
25
+ allow(ChefUtils).to receive(:windows?) { false }
26
26
  end
27
27
 
28
28
  describe "initialize" do
@@ -46,6 +46,8 @@ describe Chef::DataCollector do
46
46
 
47
47
  let(:run_list) { node.run_list }
48
48
 
49
+ let(:cookbooks) { node.fetch("cookbooks", {}) }
50
+
49
51
  let(:run_id) { run_status.run_id }
50
52
 
51
53
  let(:expansion) { Chef::RunList::RunListExpansion.new("_default", run_list.run_list_items) }
@@ -211,6 +213,11 @@ describe Chef::DataCollector do
211
213
  send_run_failed_or_completed_event
212
214
  end
213
215
 
216
+ it "has a cookbooks" do
217
+ expect_converge_message("cookbooks" => cookbooks)
218
+ send_run_failed_or_completed_event
219
+ end
220
+
214
221
  it "has a source" do
215
222
  expect_converge_message("source" => "chef_client")
216
223
  send_run_failed_or_completed_event
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Falcon (<seth@chef.io>)
3
- # Copyright:: Copyright 2010-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2010-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -127,3 +127,33 @@ describe Chef::DSL::PlatformIntrospection::PlatformFamilyDependentValue do
127
127
  end
128
128
 
129
129
  end
130
+
131
+ describe "ChefHelper functions mixed into classes" do
132
+ METHODS = %i{windows? fedora_derived? bsd_based? rhel? aix? gentoo?}.freeze
133
+
134
+ METHODS.each do |method|
135
+ it "mixes #{method} into Chef::Resource instances" do
136
+ expect(Chef::Resource.instance_methods.include?(method)).to be true
137
+ end
138
+
139
+ it "mixes #{method} into Chef::Resource classes (provides lines, etc)" do
140
+ expect(Chef::Resource.respond_to?(method)).to be true
141
+ end
142
+
143
+ it "mixes #{method} into Chef::Provider instances (actions)" do
144
+ expect(Chef::Provider.instance_methods.include?(method)).to be true
145
+ end
146
+
147
+ it "mixes #{method} into Chef::Provider classes (provides lines, etc)" do
148
+ expect(Chef::Provider.respond_to?(method)).to be true
149
+ end
150
+
151
+ it "mixes #{method} into Chef::Recipe instances (recipe files)" do
152
+ expect(Chef::Recipe.instance_methods.include?(method)).to be true
153
+ end
154
+
155
+ it "mixes #{method} into Chef::Node instances (attribute files)" do
156
+ expect(Chef::Recipe.instance_methods.include?(method)).to be true
157
+ end
158
+ end
159
+ end
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "spec_helper"
20
20
 
21
- unless Chef::Platform.windows?
21
+ unless ChefUtils.windows?
22
22
  class Chef
23
23
  module ReservedNames
24
24
  module Win32
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright 2012-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2012-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -40,6 +40,13 @@ describe Chef::Knife::CookbookMetadataFromFile do
40
40
  end
41
41
 
42
42
  describe "run" do
43
+ it "should print usage and exit when a FILE is not provided" do
44
+ @knife.name_args = []
45
+ expect(@knife).to receive(:show_usage)
46
+ expect(@knife.ui).to receive(:fatal).with(/You must specify the FILE./)
47
+ expect { @knife.run }.to raise_error(SystemExit)
48
+ end
49
+
43
50
  it "should determine cookbook name from path" do
44
51
  expect(@md).to receive(:name).with(no_args)
45
52
  expect(@md).to receive(:name).with("quick_start")
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Copyright:: Copyright 2008-2017, Chef Software Inc.
4
- # License:: Apache License, eersion 2.0
4
+ # License:: Apache License, version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -23,7 +23,7 @@ describe Chef::Knife::SubcommandLoader::GemGlobLoader do
23
23
  let(:plugin_dir) { File.join(home, ".chef", "plugins", "knife") }
24
24
 
25
25
  before do
26
- allow(ChefConfig).to receive(:windows?) { false }
26
+ allow(ChefUtils).to receive(:windows?) { false }
27
27
  Chef::Util::PathHelper.class_variable_set(:@@home_dir, home)
28
28
  end
29
29
 
@@ -19,7 +19,7 @@ require "spec_helper"
19
19
 
20
20
  describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
21
21
  before do
22
- allow(ChefConfig).to receive(:windows?) { false }
22
+ allow(ChefUtils).to receive(:windows?) { false }
23
23
  end
24
24
 
25
25
  let(:plugin_manifest) do
@@ -23,7 +23,7 @@ describe Chef::Knife::SubcommandLoader do
23
23
  let(:plugin_dir) { File.join(home, ".chef", "plugins", "knife") }
24
24
 
25
25
  before do
26
- allow(ChefConfig).to receive(:windows?) { false }
26
+ allow(ChefUtils).to receive(:windows?) { false }
27
27
  Chef::Util::PathHelper.class_variable_set(:@@home_dir, home)
28
28
  end
29
29
 
@@ -3,7 +3,7 @@
3
3
  # Author:: Tim Hinderliter (<tim@chef.io>)
4
4
  # Author:: Daniel DeLeo (<dan@chef.io>)
5
5
  # Author:: John Keiser (<jkeiser@chef.io>)
6
- # Copyright:: Copyright 2008-2017, Chef Software Inc.
6
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
7
7
  # License:: Apache License, Version 2.0
8
8
  #
9
9
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -482,7 +482,7 @@ describe Chef::Knife::UI do
482
482
  before(:each) do
483
483
  stdout = double("StringIO", tty?: true)
484
484
  allow(@ui).to receive(:stdout).and_return(stdout)
485
- allow(ChefConfig).to receive(:windows?) { true }
485
+ allow(ChefUtils).to receive(:windows?) { true }
486
486
  Chef::Config.reset
487
487
  end
488
488
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Falcon (<seth@chef.io>)
3
- # Copyright:: Copyright 2010-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2010-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,7 +26,7 @@ Chef::Knife::DataBagFromFile.load_deps
26
26
 
27
27
  describe Chef::Knife::DataBagFromFile do
28
28
  before :each do
29
- allow(ChefConfig).to receive(:windows?) { false }
29
+ allow(ChefUtils).to receive(:windows?) { false }
30
30
  Chef::Config[:node_name] = "webmonkey.example.com"
31
31
  FileUtils.mkdir_p([db_folder, db_folder2])
32
32
  db_file.write(Chef::JSONCompat.to_json(plain_data))
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Stephen Delano (<stephen@ospcode.com>)
3
3
  # Author:: Seth Falcon (<seth@ospcode.com>)
4
- # Copyright:: Copyright 2010-2016, Chef Software Inc.
4
+ # Copyright:: Copyright 2010-2018, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,7 +23,7 @@ Chef::Knife::EnvironmentFromFile.load_deps
23
23
 
24
24
  describe Chef::Knife::EnvironmentFromFile do
25
25
  before(:each) do
26
- allow(ChefConfig).to receive(:windows?) { false }
26
+ allow(ChefUtils).to receive(:windows?) { false }
27
27
  @knife = Chef::Knife::EnvironmentFromFile.new
28
28
  @stdout = StringIO.new
29
29
  allow(@knife.ui).to receive(:stdout).and_return(@stdout)
@@ -360,29 +360,39 @@ describe Chef::Knife::Ssh do
360
360
  end
361
361
 
362
362
  describe "#run" do
363
- before do
364
- @query = Chef::Search::Query.new
365
- expect(@query).to receive(:search).and_yield(@node_foo)
366
- allow(Chef::Search::Query).to receive(:new).and_return(@query)
367
- allow(@knife).to receive(:ssh_command).and_return(exit_code)
368
- @knife.name_args = ["*:*", "false"]
363
+
364
+ it "should print usage and exit when a SEARCH QUERY is not provided" do
365
+ @knife.name_args = []
366
+ expect(@knife).to receive(:show_usage)
367
+ expect(@knife.ui).to receive(:fatal).with(/You must specify the SEARCH QUERY./)
368
+ expect { @knife.run }.to raise_error(SystemExit)
369
369
  end
370
370
 
371
- context "with an error" do
372
- let(:exit_code) { 1 }
371
+ context "exit" do
372
+ before do
373
+ @query = Chef::Search::Query.new
374
+ expect(@query).to receive(:search).and_yield(@node_foo)
375
+ allow(Chef::Search::Query).to receive(:new).and_return(@query)
376
+ allow(@knife).to receive(:ssh_command).and_return(exit_code)
377
+ @knife.name_args = ["*:*", "false"]
378
+ end
379
+
380
+ context "with an error" do
381
+ let(:exit_code) { 1 }
373
382
 
374
- it "should exit with a non-zero exit code" do
375
- expect(@knife).to receive(:exit).with(exit_code)
376
- @knife.run
383
+ it "should exit with a non-zero exit code" do
384
+ expect(@knife).to receive(:exit).with(exit_code)
385
+ @knife.run
386
+ end
377
387
  end
378
- end
379
388
 
380
- context "with no error" do
381
- let(:exit_code) { 0 }
389
+ context "with no error" do
390
+ let(:exit_code) { 0 }
382
391
 
383
- it "should not exit" do
384
- expect(@knife).not_to receive(:exit)
385
- @knife.run
392
+ it "should not exit" do
393
+ expect(@knife).not_to receive(:exit)
394
+ @knife.run
395
+ end
386
396
  end
387
397
  end
388
398
  end
@@ -30,7 +30,7 @@ describe Chef::Knife::Status do
30
30
  @query = double("Chef::Search::Query")
31
31
  allow(@query).to receive(:search).and_yield(node)
32
32
  allow(Chef::Search::Query).to receive(:new).and_return(@query)
33
- @knife = Chef::Knife::Status.new
33
+ @knife = Chef::Knife::Status.new
34
34
  @stdout = StringIO.new
35
35
  allow(@knife.ui).to receive(:stdout).and_return(@stdout)
36
36
  end
@@ -31,7 +31,7 @@ describe Chef::Knife::SupermarketInstall do
31
31
  merge_updates_from: true)
32
32
  end
33
33
  let(:install_path) do
34
- if Chef::Platform.windows?
34
+ if ChefUtils.windows?
35
35
  "C:/tmp/chef"
36
36
  else
37
37
  "/var/tmp/chef"
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright 2011-2017, Chef Software Inc.
3
+ # Copyright:: Copyright 2011-2019, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,7 +35,7 @@ describe Chef::Mixin::PathSanity do
35
35
  @gem_bindir = "/some/gem/bin"
36
36
  allow(Gem).to receive(:bindir).and_return(@gem_bindir)
37
37
  allow(RbConfig::CONFIG).to receive(:[]).with("bindir").and_return(@ruby_bindir)
38
- allow(ChefConfig).to receive(:windows?).and_return(false)
38
+ allow(ChefUtils).to receive(:windows?).and_return(false)
39
39
  end
40
40
 
41
41
  it "adds all useful PATHs even if environment is an empty hash" do
@@ -83,7 +83,7 @@ describe Chef::Mixin::PathSanity do
83
83
  gem_bindir = 'C:\gems\bin'
84
84
  allow(Gem).to receive(:bindir).and_return(gem_bindir)
85
85
  allow(RbConfig::CONFIG).to receive(:[]).with("bindir").and_return(ruby_bindir)
86
- allow(ChefConfig).to receive(:windows?).and_return(true)
86
+ allow(ChefUtils).to receive(:windows?).and_return(true)
87
87
  env = { "PATH" => 'C:\Windows\system32;C:\mr\softie' }
88
88
  @sanity.enforce_path_sanity(env)
89
89
  expect(env["PATH"]).to eq("#{gem_bindir};#{ruby_bindir};C:\\Windows\\system32;C:\\mr\\softie")
@@ -24,13 +24,12 @@ require "spec_helper"
24
24
  require "chef/mixin/path_sanity"
25
25
 
26
26
  describe Chef::Mixin::ShellOut do
27
- include Chef::Mixin::PathSanity
28
-
27
+ include ChefUtils::DSL::PathSanity
29
28
  let(:shell_out_class) { Class.new { include Chef::Mixin::ShellOut } }
30
29
  subject(:shell_out_obj) { shell_out_class.new }
31
30
 
32
31
  def env_path
33
- if Chef::Platform.windows?
32
+ if ChefUtils.windows?
34
33
  "Path"
35
34
  else
36
35
  "PATH"
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@ require "spec_helper"
21
21
  require "cgi"
22
22
  describe Chef::Mixin::Template, "render_template" do
23
23
 
24
- let(:sep) { Chef::Platform.windows? ? "\r\n" : "\n" }
24
+ let(:sep) { ChefUtils.windows? ? "\r\n" : "\n" }
25
25
 
26
26
  before :each do
27
27
  @context = Chef::Mixin::Template::TemplateContext.new({})
@@ -39,7 +39,7 @@ describe Chef::Mixin::Template, "render_template" do
39
39
 
40
40
  describe "when running on windows" do
41
41
  before do
42
- allow(ChefConfig).to receive(:windows?).and_return(true)
42
+ allow(ChefUtils).to receive(:windows?).and_return(true)
43
43
  end
44
44
 
45
45
  it "should render the templates with windows line endings" do
@@ -54,7 +54,7 @@ describe Chef::Mixin::Template, "render_template" do
54
54
 
55
55
  describe "when running on unix" do
56
56
  before do
57
- allow(ChefConfig).to receive(:windows?).and_return(false)
57
+ allow(ChefUtils).to receive(:windows?).and_return(false)
58
58
  end
59
59
 
60
60
  it "should render the templates with unix line endings" do
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Edwards (<adamed@chef.io>)
3
- # Copyright:: Copyright (c) 2015 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) 2015-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,7 +39,7 @@ describe "a class that mixes in user_context" do
39
39
 
40
40
  context "when running on Windows" do
41
41
  before do
42
- allow(::Chef::Platform).to receive(:windows?).and_return(true)
42
+ allow(ChefUtils).to receive(:windows?).and_return(true)
43
43
  allow(::Chef::Util::Windows::LogonSession).to receive(:new).and_return(logon_session)
44
44
  end
45
45
 
@@ -97,7 +97,7 @@ describe "a class that mixes in user_context" do
97
97
 
98
98
  context "when not running on Windows" do
99
99
  before do
100
- allow(::Chef::Platform).to receive(:windows?).and_return(false)
100
+ allow(ChefUtils).to receive(:windows?).and_return(false)
101
101
  end
102
102
 
103
103
  it "raises a ::Chef::Exceptions::UnsupportedPlatform exception" do