chef 11.18.12-x86-mingw32 → 12.0.0.alpha.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (307) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +10 -0
  3. data/README.md +1 -1
  4. data/distro/common/html/_sources/index.txt +5 -2
  5. data/distro/common/html/_sources/knife_serve.txt +19 -0
  6. data/distro/common/html/_sources/knife_ssl_check.txt +2 -2
  7. data/distro/common/html/_sources/knife_ssl_fetch.txt +2 -2
  8. data/distro/common/html/_static/basic.css +1 -1
  9. data/distro/common/html/_static/doctools.js +1 -1
  10. data/distro/common/html/_static/searchtools.js +1 -1
  11. data/distro/common/html/_static/websupport.js +1 -1
  12. data/distro/common/html/ctl_chef_client.html +19 -9
  13. data/distro/common/html/ctl_chef_server.html +7 -1
  14. data/distro/common/html/ctl_chef_shell.html +3 -4
  15. data/distro/common/html/ctl_chef_solo.html +12 -7
  16. data/distro/common/html/index.html +19 -12
  17. data/distro/common/html/knife.html +1 -2
  18. data/distro/common/html/knife_bootstrap.html +16 -5
  19. data/distro/common/html/knife_client.html +8 -5
  20. data/distro/common/html/knife_common_options.html +11 -12
  21. data/distro/common/html/knife_configure.html +2 -3
  22. data/distro/common/html/knife_cookbook.html +16 -17
  23. data/distro/common/html/knife_cookbook_site.html +19 -18
  24. data/distro/common/html/knife_data_bag.html +6 -7
  25. data/distro/common/html/knife_delete.html +2 -3
  26. data/distro/common/html/knife_deps.html +2 -3
  27. data/distro/common/html/knife_diff.html +3 -4
  28. data/distro/common/html/knife_download.html +6 -7
  29. data/distro/common/html/knife_edit.html +0 -1
  30. data/distro/common/html/knife_environment.html +3 -4
  31. data/distro/common/html/knife_exec.html +0 -1
  32. data/distro/common/html/knife_index_rebuild.html +0 -1
  33. data/distro/common/html/knife_list.html +5 -6
  34. data/distro/common/html/knife_node.html +13 -6
  35. data/distro/common/html/knife_raw.html +0 -1
  36. data/distro/common/html/knife_recipe_list.html +0 -1
  37. data/distro/common/html/knife_role.html +1 -2
  38. data/distro/common/html/knife_search.html +2 -3
  39. data/distro/common/html/knife_serve.html +79 -0
  40. data/distro/common/html/knife_show.html +1 -2
  41. data/distro/common/html/knife_ssh.html +2 -3
  42. data/distro/common/html/knife_ssl_check.html +12 -9
  43. data/distro/common/html/knife_ssl_fetch.html +9 -10
  44. data/distro/common/html/knife_status.html +2 -3
  45. data/distro/common/html/knife_tag.html +0 -1
  46. data/distro/common/html/knife_upload.html +3 -4
  47. data/distro/common/html/knife_user.html +2 -3
  48. data/distro/common/html/knife_using.html +0 -1
  49. data/distro/common/html/knife_xargs.html +3 -4
  50. data/distro/common/html/search.html +0 -1
  51. data/distro/common/html/searchindex.js +1 -1
  52. data/lib/chef/api_client.rb +1 -1
  53. data/lib/chef/application.rb +24 -67
  54. data/lib/chef/application/client.rb +1 -1
  55. data/lib/chef/application/knife.rb +1 -1
  56. data/lib/chef/chef_fs/chef_fs_data_store.rb +2 -3
  57. data/lib/chef/chef_fs/command_line.rb +2 -3
  58. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -5
  59. data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -2
  60. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +1 -2
  61. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +2 -2
  62. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +2 -3
  63. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -5
  64. data/lib/chef/config.rb +26 -2
  65. data/lib/chef/config_fetcher.rb +1 -1
  66. data/lib/chef/cookbook/cookbook_version_loader.rb +4 -4
  67. data/lib/chef/cookbook/metadata.rb +1 -1
  68. data/lib/chef/cookbook/synchronizer.rb +50 -8
  69. data/lib/chef/cookbook_uploader.rb +9 -23
  70. data/lib/chef/cookbook_version.rb +3 -2
  71. data/lib/chef/data_bag.rb +1 -1
  72. data/lib/chef/data_bag_item.rb +1 -1
  73. data/lib/chef/dsl/recipe.rb +1 -14
  74. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  75. data/lib/chef/environment.rb +1 -1
  76. data/lib/chef/exceptions.rb +2 -24
  77. data/lib/chef/file_content_management/tempfile.rb +8 -1
  78. data/lib/chef/formatters/base.rb +0 -7
  79. data/lib/chef/http.rb +12 -19
  80. data/lib/chef/http/json_input.rb +12 -1
  81. data/lib/chef/json_compat.rb +45 -64
  82. data/lib/chef/knife.rb +2 -5
  83. data/lib/chef/knife/bootstrap.rb +2 -2
  84. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  85. data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
  86. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  87. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  88. data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
  89. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
  90. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
  91. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
  92. data/lib/chef/knife/cookbook_site_download.rb +1 -1
  93. data/lib/chef/knife/cookbook_site_install.rb +10 -34
  94. data/lib/chef/knife/cookbook_site_list.rb +1 -1
  95. data/lib/chef/knife/cookbook_site_search.rb +1 -1
  96. data/lib/chef/knife/cookbook_site_share.rb +3 -3
  97. data/lib/chef/knife/cookbook_site_show.rb +3 -3
  98. data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
  99. data/lib/chef/knife/cookbook_upload.rb +1 -1
  100. data/lib/chef/knife/core/subcommand_loader.rb +0 -24
  101. data/lib/chef/knife/core/ui.rb +8 -7
  102. data/lib/chef/knife/deps.rb +2 -3
  103. data/lib/chef/knife/serve.rb +2 -1
  104. data/lib/chef/local_mode.rb +105 -0
  105. data/lib/chef/mixin/file_class.rb +1 -4
  106. data/lib/chef/mixin/shell_out.rb +15 -0
  107. data/lib/chef/mixin/windows_architecture_helper.rb +0 -16
  108. data/lib/chef/node.rb +1 -1
  109. data/lib/chef/platform/query_helpers.rb +1 -5
  110. data/lib/chef/policy_builder/expand_node_object.rb +3 -0
  111. data/lib/chef/provider.rb +2 -0
  112. data/lib/chef/provider/cookbook_file.rb +0 -1
  113. data/lib/chef/provider/deploy.rb +0 -1
  114. data/lib/chef/provider/deploy/revision.rb +1 -1
  115. data/lib/chef/provider/env.rb +10 -25
  116. data/lib/chef/provider/env/windows.rb +23 -10
  117. data/lib/chef/provider/execute.rb +0 -3
  118. data/lib/chef/provider/file.rb +0 -3
  119. data/lib/chef/provider/git.rb +0 -6
  120. data/lib/chef/provider/group/dscl.rb +9 -27
  121. data/lib/chef/provider/group/gpasswd.rb +0 -3
  122. data/lib/chef/provider/group/groupmod.rb +0 -4
  123. data/lib/chef/provider/group/suse.rb +0 -3
  124. data/lib/chef/provider/group/usermod.rb +0 -3
  125. data/lib/chef/provider/link.rb +22 -5
  126. data/lib/chef/provider/log.rb +15 -4
  127. data/lib/chef/provider/mdadm.rb +0 -3
  128. data/lib/chef/provider/mount/mount.rb +0 -2
  129. data/lib/chef/provider/mount/solaris.rb +0 -2
  130. data/lib/chef/provider/package.rb +0 -1
  131. data/lib/chef/provider/package/apt.rb +0 -3
  132. data/lib/chef/provider/package/dpkg.rb +0 -1
  133. data/lib/chef/provider/package/easy_install.rb +0 -4
  134. data/lib/chef/provider/package/freebsd/base.rb +0 -3
  135. data/lib/chef/provider/package/freebsd/pkgng.rb +0 -2
  136. data/lib/chef/provider/package/freebsd/port.rb +0 -2
  137. data/lib/chef/provider/package/ips.rb +0 -3
  138. data/lib/chef/provider/package/paludis.rb +0 -5
  139. data/lib/chef/provider/package/portage.rb +0 -2
  140. data/lib/chef/provider/package/rpm.rb +2 -4
  141. data/lib/chef/provider/package/rubygems.rb +0 -4
  142. data/lib/chef/provider/package/smartos.rb +0 -3
  143. data/lib/chef/provider/package/windows/msi.rb +0 -2
  144. data/lib/chef/provider/package/yum.rb +0 -4
  145. data/lib/chef/provider/package/zypper.rb +0 -3
  146. data/lib/chef/provider/registry_key.rb +0 -2
  147. data/lib/chef/provider/remote_directory.rb +0 -1
  148. data/lib/chef/provider/remote_file.rb +0 -1
  149. data/lib/chef/provider/remote_file/cache_control_data.rb +1 -3
  150. data/lib/chef/provider/remote_file/content.rb +0 -1
  151. data/lib/chef/provider/remote_file/fetcher.rb +0 -2
  152. data/lib/chef/provider/remote_file/ftp.rb +0 -1
  153. data/lib/chef/provider/resource_update.rb +0 -3
  154. data/lib/chef/provider/service/freebsd.rb +0 -3
  155. data/lib/chef/provider/service/init.rb +0 -3
  156. data/lib/chef/provider/service/macosx.rb +0 -1
  157. data/lib/chef/provider/service/redhat.rb +0 -2
  158. data/lib/chef/provider/service/simple.rb +0 -3
  159. data/lib/chef/provider/service/solaris.rb +0 -3
  160. data/lib/chef/provider/service/systemd.rb +15 -14
  161. data/lib/chef/provider/service/windows.rb +0 -3
  162. data/lib/chef/provider/subversion.rb +0 -2
  163. data/lib/chef/provider/template.rb +0 -2
  164. data/lib/chef/provider/template/content.rb +0 -1
  165. data/lib/chef/provider/user/dscl.rb +156 -549
  166. data/lib/chef/provider/user/solaris.rb +0 -1
  167. data/lib/chef/provider/user/useradd.rb +0 -3
  168. data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
  169. data/lib/chef/providers.rb +0 -1
  170. data/lib/chef/resource.rb +1 -4
  171. data/lib/chef/resource/freebsd_package.rb +2 -10
  172. data/lib/chef/resource/lwrp_base.rb +1 -12
  173. data/lib/chef/resource/user.rb +0 -18
  174. data/lib/chef/resource_collection.rb +1 -1
  175. data/lib/chef/resource_reporter.rb +10 -10
  176. data/lib/chef/resources.rb +0 -1
  177. data/lib/chef/role.rb +3 -3
  178. data/lib/chef/run_list.rb +1 -1
  179. data/lib/chef/tasks/chef_repo.rake +131 -264
  180. data/lib/chef/user.rb +1 -1
  181. data/lib/chef/util/path_helper.rb +2 -2
  182. data/lib/chef/version.rb +9 -1
  183. data/lib/chef/win32/api/system.rb +0 -9
  184. data/spec/data/bootstrap/test-hints.erb +1 -1
  185. data/spec/data/bootstrap/test.erb +1 -1
  186. data/spec/functional/dsl/reboot_pending_spec.rb +53 -58
  187. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  188. data/spec/functional/knife/exec_spec.rb +1 -1
  189. data/spec/functional/mixin/shell_out_spec.rb +48 -0
  190. data/spec/functional/resource/base.rb +0 -10
  191. data/spec/functional/resource/group_spec.rb +1 -5
  192. data/spec/functional/resource/link_spec.rb +8 -0
  193. data/spec/functional/resource/{user/useradd_spec.rb → user_spec.rb} +1 -1
  194. data/spec/integration/knife/chef_fs_data_store_spec.rb +3 -3
  195. data/spec/integration/knife/chef_repo_path_spec.rb +1 -6
  196. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  197. data/spec/integration/knife/chefignore_spec.rb +1 -1
  198. data/spec/integration/knife/common_options_spec.rb +50 -3
  199. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  200. data/spec/integration/knife/delete_spec.rb +1 -1
  201. data/spec/integration/knife/deps_spec.rb +1 -1
  202. data/spec/integration/knife/diff_spec.rb +3 -3
  203. data/spec/integration/knife/download_spec.rb +3 -3
  204. data/spec/integration/knife/list_spec.rb +1 -1
  205. data/spec/integration/knife/raw_spec.rb +1 -11
  206. data/spec/integration/knife/redirection_spec.rb +1 -1
  207. data/spec/integration/knife/serve_spec.rb +2 -2
  208. data/spec/integration/knife/show_spec.rb +1 -1
  209. data/spec/integration/knife/upload_spec.rb +9 -9
  210. data/spec/spec_helper.rb +0 -9
  211. data/spec/support/pedant/pedant_config.rb +2 -1
  212. data/spec/support/pedant/run_pedant.rb +2 -1
  213. data/spec/support/platform_helpers.rb +5 -24
  214. data/spec/support/shared/integration/integration_helper.rb +2 -1
  215. data/spec/support/shared/matchers.rb +17 -0
  216. data/spec/tiny_server.rb +1 -2
  217. data/spec/unit/api_client_spec.rb +3 -3
  218. data/spec/unit/application_spec.rb +9 -32
  219. data/spec/unit/config_fetcher_spec.rb +1 -1
  220. data/spec/unit/cookbook/metadata_spec.rb +3 -7
  221. data/spec/unit/cookbook/synchronizer_spec.rb +441 -226
  222. data/spec/unit/cookbook_loader_spec.rb +1 -1
  223. data/spec/unit/cookbook_uploader_spec.rb +160 -0
  224. data/spec/unit/cookbook_version_spec.rb +0 -4
  225. data/spec/unit/data_bag_item_spec.rb +1 -5
  226. data/spec/unit/data_bag_spec.rb +1 -5
  227. data/spec/unit/deprecation_spec.rb +1 -1
  228. data/spec/unit/dsl/recipe_spec.rb +12 -0
  229. data/spec/unit/encrypted_data_bag_item_spec.rb +7 -14
  230. data/spec/unit/environment_spec.rb +3 -7
  231. data/spec/unit/exceptions_spec.rb +0 -6
  232. data/spec/unit/http/json_input_spec.rb +128 -0
  233. data/spec/unit/json_compat_spec.rb +17 -58
  234. data/spec/unit/knife/client_create_spec.rb +3 -3
  235. data/spec/unit/knife/configure_client_spec.rb +6 -5
  236. data/spec/unit/knife/cookbook_delete_spec.rb +1 -1
  237. data/spec/unit/knife/cookbook_download_spec.rb +5 -5
  238. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -0
  239. data/spec/unit/knife/cookbook_metadata_spec.rb +1 -1
  240. data/spec/unit/knife/cookbook_site_download_spec.rb +10 -11
  241. data/spec/unit/knife/cookbook_site_install_spec.rb +116 -161
  242. data/spec/unit/knife/cookbook_site_share_spec.rb +8 -8
  243. data/spec/unit/knife/cookbook_upload_spec.rb +3 -2
  244. data/spec/unit/knife/core/bootstrap_context_spec.rb +3 -3
  245. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -66
  246. data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
  247. data/spec/unit/knife/tag_create_spec.rb +3 -3
  248. data/spec/unit/knife/tag_delete_spec.rb +3 -3
  249. data/spec/unit/knife/user_create_spec.rb +1 -1
  250. data/spec/unit/knife_spec.rb +14 -14
  251. data/spec/unit/lwrp_spec.rb +1 -21
  252. data/spec/unit/mixin/shell_out_spec.rb +92 -0
  253. data/spec/unit/node_spec.rb +0 -4
  254. data/spec/unit/platform/query_helpers_spec.rb +0 -23
  255. data/spec/unit/provider/env/windows_spec.rb +34 -70
  256. data/spec/unit/provider/env_spec.rb +11 -76
  257. data/spec/unit/provider/group/dscl_spec.rb +1 -38
  258. data/spec/unit/provider/log_spec.rb +18 -0
  259. data/spec/unit/provider/package/rpm_spec.rb +0 -12
  260. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +1 -1
  261. data/spec/unit/provider/service/systemd_service_spec.rb +44 -27
  262. data/spec/unit/provider/user/dscl_spec.rb +264 -660
  263. data/spec/unit/provider/user/useradd_spec.rb +0 -1
  264. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +2 -2
  265. data/spec/unit/provider_spec.rb +12 -0
  266. data/spec/unit/recipe_spec.rb +0 -41
  267. data/spec/unit/resource_collection_spec.rb +1 -5
  268. data/spec/unit/resource_reporter_spec.rb +3 -51
  269. data/spec/unit/resource_spec.rb +3 -14
  270. data/spec/unit/rest_spec.rb +1 -4
  271. data/spec/unit/role_spec.rb +0 -10
  272. data/spec/unit/run_list_spec.rb +1 -5
  273. data/spec/unit/user_spec.rb +1 -5
  274. metadata +20 -100
  275. data/lib/chef/mixin/windows_env_helper.rb +0 -56
  276. data/lib/chef/provider/dsc_script.rb +0 -175
  277. data/lib/chef/resource/dsc_script.rb +0 -126
  278. data/lib/chef/streaming_cookbook_uploader.rb +0 -205
  279. data/lib/chef/util/dsc/configuration_generator.rb +0 -115
  280. data/lib/chef/util/dsc/lcm_output_parser.rb +0 -133
  281. data/lib/chef/util/dsc/local_configuration_manager.rb +0 -141
  282. data/lib/chef/util/dsc/resource_info.rb +0 -26
  283. data/lib/chef/util/powershell/cmdlet.rb +0 -136
  284. data/lib/chef/util/powershell/cmdlet_result.rb +0 -46
  285. data/spec/data/mac_users/10.7-8.plist.xml +0 -559
  286. data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
  287. data/spec/data/mac_users/10.7.plist.xml +0 -559
  288. data/spec/data/mac_users/10.7.shadow.xml +0 -11
  289. data/spec/data/mac_users/10.8.plist.xml +0 -559
  290. data/spec/data/mac_users/10.8.shadow.xml +0 -21
  291. data/spec/data/mac_users/10.9.plist.xml +0 -560
  292. data/spec/data/mac_users/10.9.shadow.xml +0 -21
  293. data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +0 -51
  294. data/spec/functional/resource/dsc_script_spec.rb +0 -382
  295. data/spec/functional/resource/env_spec.rb +0 -182
  296. data/spec/functional/resource/user/dscl_spec.rb +0 -199
  297. data/spec/functional/util/powershell/cmdlet_spec.rb +0 -113
  298. data/spec/support/lib/chef/resource/zen_follower.rb +0 -46
  299. data/spec/support/shared/shared_examples.rb +0 -10
  300. data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +0 -63
  301. data/spec/unit/formatters/base_spec.rb +0 -48
  302. data/spec/unit/provider/dsc_script_spec.rb +0 -174
  303. data/spec/unit/resource/dsc_script_spec.rb +0 -98
  304. data/spec/unit/util/dsc/configuration_generator_spec.rb +0 -171
  305. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +0 -169
  306. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +0 -139
  307. data/spec/unit/util/powershell/cmdlet_spec.rb +0 -106
@@ -762,10 +762,6 @@ describe Chef::Node do
762
762
  end
763
763
  serialized_node.run_list.should == node.run_list
764
764
  end
765
-
766
- include_examples "to_json equalivent to Chef::JSONCompat.to_json" do
767
- let(:subject) { node.from_file(File.expand_path("nodes/test.example.com.rb", CHEF_SPEC_DATA)) }
768
- end
769
765
  end
770
766
 
771
767
  describe "to_s" do
@@ -30,26 +30,3 @@ describe "Chef::Platform#windows_server_2003?" do
30
30
  expect { Thread.fork { Chef::Platform.windows_server_2003? }.join }.not_to raise_error
31
31
  end
32
32
  end
33
-
34
- describe 'Chef::Platform#supports_dsc?' do
35
- it 'returns false if powershell is not present' do
36
- node = Chef::Node.new
37
- Chef::Platform.supports_dsc?(node).should be_false
38
- end
39
-
40
- ['1.0', '2.0', '3.0'].each do |version|
41
- it "returns false for Powershell #{version}" do
42
- node = Chef::Node.new
43
- node.automatic[:languages][:powershell][:version] = version
44
- Chef::Platform.supports_dsc?(node).should be_false
45
- end
46
- end
47
-
48
- ['4.0', '5.0'].each do |version|
49
- it "returns true for Powershell #{version}" do
50
- node = Chef::Node.new
51
- node.automatic[:languages][:powershell][:version] = version
52
- Chef::Platform.supports_dsc?(node).should be_true
53
- end
54
- end
55
- end
@@ -19,85 +19,49 @@
19
19
  require 'spec_helper'
20
20
 
21
21
  describe Chef::Provider::Env::Windows, :windows_only do
22
- let(:node) { Chef::Node.new }
23
- let(:events) {Chef::EventDispatch::Dispatcher.new }
24
- let(:run_context) { Chef::RunContext.new(node, {}, events) }
25
-
26
- context 'when environment variable is not PATH' do
27
- let(:new_resource) {
28
- new_resource = Chef::Resource::Env.new("CHEF_WINDOWS_ENV_TEST")
29
- new_resource.value("foo")
30
- new_resource
31
- }
32
- let(:provider) {
33
- provider = Chef::Provider::Env::Windows.new(new_resource, run_context)
34
- provider.stub(:env_obj).and_return(double('null object').as_null_object)
35
- provider
36
- }
37
-
38
- describe "action_create" do
39
- before do
40
- ENV.delete('CHEF_WINDOWS_ENV_TEST')
41
- provider.key_exists = false
42
- end
22
+ before do
23
+ @node = Chef::Node.new
24
+ @events = Chef::EventDispatch::Dispatcher.new
25
+ @run_context = Chef::RunContext.new(@node, {}, @events)
26
+ @new_resource = Chef::Resource::Env.new("CHEF_WINDOWS_ENV_TEST")
27
+ @new_resource.value("foo")
28
+ @provider = Chef::Provider::Env::Windows.new(@new_resource, @run_context)
29
+ @provider.stub(:env_obj).and_return(double('null object').as_null_object)
30
+ end
43
31
 
44
- it "should update the ruby ENV object when it creates the key" do
45
- provider.action_create
46
- expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql('foo')
47
- end
32
+ describe "action_create" do
33
+ before do
34
+ ENV.delete('CHEF_WINDOWS_ENV_TEST')
35
+ @provider.key_exists = false
48
36
  end
49
37
 
50
- describe "action_modify" do
51
- before do
52
- ENV['CHEF_WINDOWS_ENV_TEST'] = 'foo'
53
- end
54
-
55
- it "should update the ruby ENV object when it updates the value" do
56
- provider.should_receive(:requires_modify_or_create?).and_return(true)
57
- new_resource.value("foobar")
58
- provider.action_modify
59
- expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql('foobar')
60
- end
61
-
62
- describe "action_delete" do
63
- before do
64
- ENV['CHEF_WINDOWS_ENV_TEST'] = 'foo'
65
- end
66
-
67
- it "should update the ruby ENV object when it deletes the key" do
68
- provider.action_delete
69
- expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql(nil)
70
- end
71
- end
38
+ it "should update the ruby ENV object when it creates the key" do
39
+ @provider.action_create
40
+ expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql('foo')
72
41
  end
73
42
  end
74
43
 
75
- context 'when environment is PATH' do
76
- describe "for PATH" do
77
- let(:system_root) {'%SystemRoot%'}
78
- let(:system_root_value) { 'D:\Windows' }
79
- let(:new_resource) {
80
- new_resource = Chef::Resource::Env.new('PATH')
81
- new_resource.value(system_root)
82
- new_resource
83
- }
84
- let(:provider) {
85
- provider = Chef::Provider::Env::Windows.new(new_resource, run_context)
86
- provider.stub(:env_obj).and_return(double('null object').as_null_object)
87
- provider
88
- }
44
+ describe "action_modify" do
45
+ before do
46
+ ENV['CHEF_WINDOWS_ENV_TEST'] = 'foo'
47
+ end
89
48
 
90
- before do
91
- stub_const('ENV', {'PATH' => ''})
92
- end
49
+ it "should update the ruby ENV object when it updates the value" do
50
+ @provider.should_receive(:compare_value).and_return(true)
51
+ @new_resource.value("foobar")
52
+ @provider.action_modify
53
+ expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql('foobar')
54
+ end
55
+ end
93
56
 
94
- it "replaces Windows system variables" do
95
- provider.should_receive(:requires_modify_or_create?).and_return(true)
96
- provider.should_receive(:expand_path).with(system_root).and_return(system_root_value)
97
- provider.action_modify
98
- expect(ENV['PATH']).to eql(system_root_value)
99
- end
57
+ describe "action_delete" do
58
+ before do
59
+ ENV['CHEF_WINDOWS_ENV_TEST'] = 'foo'
100
60
  end
101
61
 
62
+ it "should update the ruby ENV object when it deletes the key" do
63
+ @provider.action_delete
64
+ expect(ENV['CHEF_WINDOWS_ENV_TEST']).to eql(nil)
65
+ end
102
66
  end
103
67
  end
@@ -88,20 +88,20 @@ describe Chef::Provider::Env do
88
88
 
89
89
  it "should check to see if the values are the same if the key exists" do
90
90
  @provider.key_exists = true
91
- @provider.should_receive(:requires_modify_or_create?).and_return(false)
91
+ @provider.should_receive(:compare_value).and_return(false)
92
92
  @provider.action_create
93
93
  end
94
94
 
95
95
  it "should call modify_env if the key exists and values are not equal" do
96
96
  @provider.key_exists = true
97
- @provider.stub(:requires_modify_or_create?).and_return(true)
97
+ @provider.stub(:compare_value).and_return(true)
98
98
  @provider.should_receive(:modify_env).and_return(true)
99
99
  @provider.action_create
100
100
  end
101
101
 
102
102
  it "should set the new_resources updated flag when it updates an existing value" do
103
103
  @provider.key_exists = true
104
- @provider.stub(:requires_modify_or_create?).and_return(true)
104
+ @provider.stub(:compare_value).and_return(true)
105
105
  @provider.stub(:modify_env).and_return(true)
106
106
  @provider.action_create
107
107
  @new_resource.should be_updated
@@ -147,20 +147,20 @@ describe Chef::Provider::Env do
147
147
  end
148
148
 
149
149
  it "should call modify_group if the key exists and values are not equal" do
150
- @provider.should_receive(:requires_modify_or_create?).and_return(true)
150
+ @provider.should_receive(:compare_value).and_return(true)
151
151
  @provider.should_receive(:modify_env).and_return(true)
152
152
  @provider.action_modify
153
153
  end
154
154
 
155
155
  it "should set the new resources updated flag to true if modify_env is called" do
156
- @provider.stub(:requires_modify_or_create?).and_return(true)
156
+ @provider.stub(:compare_value).and_return(true)
157
157
  @provider.stub(:modify_env).and_return(true)
158
158
  @provider.action_modify
159
159
  @new_resource.should be_updated
160
160
  end
161
161
 
162
162
  it "should not call modify_env if the key exists but the values are equal" do
163
- @provider.should_receive(:requires_modify_or_create?).and_return(false)
163
+ @provider.should_receive(:compare_value).and_return(false)
164
164
  @provider.should_not_receive(:modify_env)
165
165
  @provider.action_modify
166
166
  end
@@ -198,31 +198,9 @@ describe Chef::Provider::Env do
198
198
  @provider.delete_element.should eql(true)
199
199
  @new_resource.should be_updated
200
200
  end
201
-
202
- context "when new_resource's value contains the delimiter" do
203
- it "should return false if all the elements are deleted" do
204
- # This indicates that the entire key needs to be deleted
205
- @new_resource.value("C:/foo/bin;C:/bar/bin")
206
- @provider.delete_element.should eql(false)
207
- @new_resource.should_not be_updated # This will be updated in action_delete
208
- end
209
-
210
- it "should return true if any, but not all, of the elements are deleted" do
211
- @new_resource.value("C:/foo/bin;C:/notbaz/bin")
212
- @provider.should_receive(:create_env)
213
- @provider.delete_element.should eql(true)
214
- @new_resource.should be_updated
215
- end
216
-
217
- it "should return true if none of the elements are deleted" do
218
- @new_resource.value("C:/notfoo/bin;C:/notbaz/bin")
219
- @provider.delete_element.should eql(true)
220
- @new_resource.should_not be_updated
221
- end
222
- end
223
201
  end
224
202
 
225
- describe "requires_modify_or_create?" do
203
+ describe "compare_value" do
226
204
  before(:each) do
227
205
  @new_resource.value("C:/bar")
228
206
  @current_resource = @new_resource.clone
@@ -230,68 +208,25 @@ describe Chef::Provider::Env do
230
208
  end
231
209
 
232
210
  it "should return false if the values are equal" do
233
- @provider.requires_modify_or_create?.should be_false
211
+ @provider.compare_value.should be_false
234
212
  end
235
213
 
236
214
  it "should return true if the values not are equal" do
237
215
  @new_resource.value("C:/elsewhere")
238
- @provider.requires_modify_or_create?.should be_true
216
+ @provider.compare_value.should be_true
239
217
  end
240
218
 
241
219
  it "should return false if the current value contains the element" do
242
220
  @new_resource.delim(";")
243
221
  @current_resource.value("C:/bar;C:/foo;C:/baz")
244
222
 
245
- @provider.requires_modify_or_create?.should be_false
223
+ @provider.compare_value.should be_false
246
224
  end
247
225
 
248
226
  it "should return true if the current value does not contain the element" do
249
227
  @new_resource.delim(";")
250
228
  @current_resource.value("C:/biz;C:/foo/bin;C:/baz")
251
- @provider.requires_modify_or_create?.should be_true
252
- end
253
-
254
- context "when new_resource's value contains the delimiter" do
255
- it "should return false if all the current values are contained" do
256
- @new_resource.value("C:/biz;C:/baz")
257
- @new_resource.delim(";")
258
- @current_resource.value("C:/biz;C:/foo/bin;C:/baz")
259
- @provider.requires_modify_or_create?.should be_false
260
- end
261
-
262
- it "should return true if any of the new values are not contained" do
263
- @new_resource.value("C:/biz;C:/baz;C:/bin")
264
- @new_resource.delim(";")
265
- @current_resource.value("C:/biz;C:/foo/bin;C:/baz")
266
- @provider.requires_modify_or_create?.should be_true
267
- end
268
- end
269
- end
270
-
271
- describe "modify_env" do
272
- before(:each) do
273
- @provider.stub(:create_env).and_return(true)
274
- @new_resource.delim ";"
275
-
276
- @current_resource = Chef::Resource::Env.new("FOO")
277
- @current_resource.value "C:/foo/bin"
278
- @provider.current_resource = @current_resource
279
- end
280
-
281
- it "should not modify the variable passed to the resource" do
282
- new_value = "C:/bar/bin"
283
- passed_value = new_value.dup
284
- @new_resource.value(passed_value)
285
- @provider.modify_env
286
- passed_value.should == new_value
287
- end
288
-
289
- it "should only add values not already contained when a delimiter is provided" do
290
- @new_resource.value("C:/foo;C:/bar;C:/baz")
291
- @new_resource.delim(";")
292
- @current_resource.value("C:/foo/bar;C:/bar;C:/baz")
293
- @provider.modify_env
294
- @new_resource.value.should eq("C:/foo;C:/foo/bar;C:/bar;C:/baz")
229
+ @provider.compare_value.should be_true
295
230
  end
296
231
  end
297
232
  end
@@ -240,7 +240,6 @@ describe Chef::Provider::Group::Dscl do
240
240
  @provider.load_current_resource
241
241
  @provider.define_resource_requirements
242
242
  end
243
-
244
243
  it "raises an error if the required binary /usr/bin/dscl doesn't exist" do
245
244
  File.should_receive(:exists?).with("/usr/bin/dscl").and_return(false)
246
245
 
@@ -252,7 +251,7 @@ describe Chef::Provider::Group::Dscl do
252
251
  lambda { @provider.process_resource_requirements }.should_not raise_error
253
252
  end
254
253
  end
255
-
254
+
256
255
  describe "when creating the group" do
257
256
  it "creates the group, password field, gid, and sets group membership" do
258
257
  @provider.should_receive(:set_gid).and_return(true)
@@ -295,39 +294,3 @@ describe Chef::Provider::Group::Dscl do
295
294
  end
296
295
  end
297
296
  end
298
-
299
- describe 'Test DSCL loading' do
300
- before do
301
- @node = Chef::Node.new
302
- @events = Chef::EventDispatch::Dispatcher.new
303
- @run_context = Chef::RunContext.new(@node, {}, @events)
304
- @new_resource = Chef::Resource::Group.new("aj")
305
- @provider = Chef::Provider::Group::Dscl.new(@new_resource, @run_context)
306
- @output = <<-EOF
307
- AppleMetaNodeLocation: /Local/Default
308
- Comment:
309
- Test Group
310
- GeneratedUID: AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
311
- NestedGroups: AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAB
312
- Password: *
313
- PrimaryGroupID: 999
314
- RealName:
315
- TestGroup
316
- RecordName: com.apple.aj
317
- RecordType: dsRecTypeStandard:Groups
318
- GroupMembership: waka bar
319
- EOF
320
- @provider.stub(:safe_dscl).with("read /Groups/aj").and_return(@output)
321
- @current_resource = @provider.load_current_resource
322
-
323
- end
324
-
325
- it 'should parse gid properly' do
326
- File.stub(:exists?).and_return(true)
327
- @current_resource.gid.should eq("999")
328
- end
329
- it 'should parse members properly' do
330
- File.stub(:exists?).and_return(true)
331
- @current_resource.members.should eq(['waka', 'bar'])
332
- end
333
- end
@@ -78,4 +78,22 @@ describe Chef::Provider::Log::ChefLog do
78
78
  @provider.action_write
79
79
  end
80
80
 
81
+ it "should not update the resource if the message was not written to the log" do
82
+ Chef::Log.level = :fatal
83
+ @new_resource = Chef::Resource::Log.new(@log_str)
84
+ @new_resource.level :info
85
+ @provider = Chef::Provider::Log::ChefLog.new(@new_resource, @run_context)
86
+ @provider.action_write
87
+ @new_resource.updated.should be_false
88
+ end
89
+
90
+ it "should update the resource if the message has been written to the log" do
91
+ Chef::Log.level = :debug
92
+ @new_resource = Chef::Resource::Log.new(@log_str)
93
+ @new_resource.level :info
94
+ @provider = Chef::Provider::Log::ChefLog.new(@new_resource, @run_context)
95
+ @provider.action_write
96
+ @new_resource.updated.should be_true
97
+ end
98
+
81
99
  end
@@ -80,18 +80,6 @@ describe Chef::Provider::Package::Rpm do
80
80
  @provider.stub(:popen4).and_return(status)
81
81
  lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
82
82
  end
83
-
84
- it "should not detect the package name as version when not installed" do
85
- @status = double("Status", :exitstatus => -1)
86
- @stdout = StringIO.new("package openssh-askpass is not installed")
87
- @new_resource = Chef::Resource::Package.new("openssh-askpass")
88
- @new_resource.source 'openssh-askpass'
89
- @provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
90
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
91
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_return(@status)
92
- @provider.load_current_resource
93
- @provider.current_resource.version.should be_nil
94
- end
95
83
  end
96
84
 
97
85
  describe "after the current resource is loaded" do
@@ -85,7 +85,7 @@ describe Chef::Provider::RemoteFile::CacheControlData do
85
85
  cache["etag"] = etag
86
86
  cache["mtime"] = mtime
87
87
  cache["checksum"] = last_fetched_checksum
88
- Chef::JSONCompat.to_json(cache)
88
+ cache.to_json
89
89
  end
90
90
 
91
91
  before do
@@ -25,6 +25,11 @@ describe Chef::Provider::Service::Systemd do
25
25
  @run_context = Chef::RunContext.new(@node, {}, @events)
26
26
  @new_resource = Chef::Resource::Service.new('rsyslog.service')
27
27
  @provider = Chef::Provider::Service::Systemd.new(@new_resource, @run_context)
28
+
29
+ @shell_out_success = double('shell_out_with_systems_locale',
30
+ :exitstatus => 0, :error? => false)
31
+ @shell_out_failure = double('shell_out_with_systems_locale',
32
+ :exitstatus => 1, :error? => true)
28
33
  end
29
34
 
30
35
  describe "load_current_resource" do
@@ -69,25 +74,25 @@ describe Chef::Provider::Service::Systemd do
69
74
  end
70
75
 
71
76
  it "should run the services status command if one has been specified" do
72
- @provider.stub(:run_command_with_systems_locale).with({:command => "/bin/chefhasmonkeypants status"}).and_return(0)
77
+ @provider.stub(:shell_out_with_systems_locale).and_return(@shell_out_success)
73
78
  @current_resource.should_receive(:running).with(true)
74
79
  @provider.load_current_resource
75
80
  end
76
81
 
77
82
  it "should run the services status command if one has been specified and properly set status check state" do
78
- @provider.stub(:run_command_with_systems_locale).with({:command => "/bin/chefhasmonkeypants status"}).and_return(0)
83
+ @provider.stub(:shell_out_with_systems_locale).with("/bin/chefhasmonkeypants status").and_return(@shell_out_success)
79
84
  @provider.load_current_resource
80
85
  @provider.instance_variable_get("@status_check_success").should be_true
81
86
  end
82
87
 
83
- it "should set running to false if it catches a Chef::Exceptions::Exec when using a status command" do
84
- @provider.stub(:run_command_with_systems_locale).and_raise(Chef::Exceptions::Exec)
88
+ it "should set running to false if a status command fails" do
89
+ @provider.stub(:shell_out_with_systems_locale).and_return(@shell_out_failure)
85
90
  @current_resource.should_receive(:running).with(false)
86
91
  @provider.load_current_resource
87
92
  end
88
93
 
89
- it "should update state to indicate status check failed when an exception is thrown using a status command" do
90
- @provider.stub(:run_command_with_systems_locale).and_raise(Chef::Exceptions::Exec)
94
+ it "should update state to indicate status check failed when a status command fails" do
95
+ @provider.stub(:shell_out_with_systems_locale).and_return(@shell_out_failure)
91
96
  @provider.load_current_resource
92
97
  @provider.instance_variable_get("@status_check_success").should be_false
93
98
  end
@@ -129,13 +134,13 @@ describe Chef::Provider::Service::Systemd do
129
134
  end
130
135
 
131
136
  it "should call '/bin/systemctl start service_name' if no start command is specified" do
132
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl start #{@new_resource.service_name}"}).and_return(0)
137
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl start #{@new_resource.service_name}").and_return(@shell_out_success)
133
138
  @provider.start_service
134
139
  end
135
140
 
136
141
  it "should not call '/bin/systemctl start service_name' if it is already running" do
137
142
  @current_resource.stub(:running).and_return(true)
138
- @provider.should_not_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl start #{@new_resource.service_name}"})
143
+ @provider.should_not_receive(:shell_out_with_systems_locale).with("/bin/systemctl start #{@new_resource.service_name}")
139
144
  @provider.start_service
140
145
  end
141
146
 
@@ -148,21 +153,33 @@ describe Chef::Provider::Service::Systemd do
148
153
 
149
154
  it "should call '/bin/systemctl restart service_name' if no restart command is specified" do
150
155
  @current_resource.stub(:running).and_return(true)
151
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl restart #{@new_resource.service_name}"}).and_return(0)
156
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl restart #{@new_resource.service_name}").and_return(@shell_out_success)
152
157
  @provider.restart_service
153
158
  end
154
159
 
155
- it "should call the reload command if one is specified" do
156
- @current_resource.stub(:running).and_return(true)
157
- @new_resource.stub(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
158
- @provider.should_receive(:shell_out!).with("/sbin/rsyslog reloadyousillysally")
159
- @provider.reload_service
160
- end
160
+ describe "reload service" do
161
+ context "when a reload command is specified" do
162
+ it "should call the reload command" do
163
+ @current_resource.stub(:running).and_return(true)
164
+ @new_resource.stub(:reload_command).and_return("/sbin/rsyslog reloadyousillysally")
165
+ @provider.should_receive(:shell_out!).with("/sbin/rsyslog reloadyousillysally")
166
+ @provider.reload_service
167
+ end
168
+ end
161
169
 
162
- it "should call '/bin/systemctl reload service_name' if no reload command is specified" do
163
- @current_resource.stub(:running).and_return(true)
164
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl reload #{@new_resource.service_name}"}).and_return(0)
165
- @provider.reload_service
170
+ context "when a reload command is not specified" do
171
+ it "should call '/bin/systemctl reload service_name' if the service is running" do
172
+ @current_resource.stub(:running).and_return(true)
173
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl reload #{@new_resource.service_name}").and_return(@shell_out_success)
174
+ @provider.reload_service
175
+ end
176
+
177
+ it "should start the service if the service is not running" do
178
+ @current_resource.stub(:running).and_return(false)
179
+ @provider.should_receive(:start_service).and_return(true)
180
+ @provider.reload_service
181
+ end
182
+ end
166
183
  end
167
184
 
168
185
  it "should call the stop command if one is specified" do
@@ -174,13 +191,13 @@ describe Chef::Provider::Service::Systemd do
174
191
 
175
192
  it "should call '/bin/systemctl stop service_name' if no stop command is specified" do
176
193
  @current_resource.stub(:running).and_return(true)
177
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl stop #{@new_resource.service_name}"}).and_return(0)
194
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl stop #{@new_resource.service_name}").and_return(@shell_out_success)
178
195
  @provider.stop_service
179
196
  end
180
197
 
181
198
  it "should not call '/bin/systemctl stop service_name' if it is already stopped" do
182
199
  @current_resource.stub(:running).and_return(false)
183
- @provider.should_not_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl stop #{@new_resource.service_name}"})
200
+ @provider.should_not_receive(:shell_out_with_systems_locale).with("/bin/systemctl stop #{@new_resource.service_name}")
184
201
  @provider.stop_service
185
202
  end
186
203
  end
@@ -193,12 +210,12 @@ describe Chef::Provider::Service::Systemd do
193
210
  end
194
211
 
195
212
  it "should call '/bin/systemctl enable service_name' to enable the service" do
196
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl enable #{@new_resource.service_name}"}).and_return(0)
213
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl enable #{@new_resource.service_name}").and_return(@shell_out_success)
197
214
  @provider.enable_service
198
215
  end
199
216
 
200
217
  it "should call '/bin/systemctl disable service_name' to disable the service" do
201
- @provider.should_receive(:run_command_with_systems_locale).with({:command => "/bin/systemctl disable #{@new_resource.service_name}"}).and_return(0)
218
+ @provider.should_receive(:shell_out_with_systems_locale).with("/bin/systemctl disable #{@new_resource.service_name}").and_return(@shell_out_success)
202
219
  @provider.disable_service
203
220
  end
204
221
  end
@@ -210,12 +227,12 @@ describe Chef::Provider::Service::Systemd do
210
227
  end
211
228
 
212
229
  it "should return true if '/bin/systemctl is-active service_name' returns 0" do
213
- @provider.should_receive(:run_command_with_systems_locale).with({:command => '/bin/systemctl is-active rsyslog.service', :ignore_failure => true}).and_return(0)
230
+ @provider.should_receive(:shell_out_with_systems_locale).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_success)
214
231
  @provider.is_active?.should be_true
215
232
  end
216
233
 
217
234
  it "should return false if '/bin/systemctl is-active service_name' returns anything except 0" do
218
- @provider.should_receive(:run_command_with_systems_locale).with({:command => '/bin/systemctl is-active rsyslog.service', :ignore_failure => true}).and_return(1)
235
+ @provider.should_receive(:shell_out_with_systems_locale).with('/bin/systemctl is-active rsyslog.service --quiet').and_return(@shell_out_failure)
219
236
  @provider.is_active?.should be_false
220
237
  end
221
238
  end
@@ -227,12 +244,12 @@ describe Chef::Provider::Service::Systemd do
227
244
  end
228
245
 
229
246
  it "should return true if '/bin/systemctl is-enabled service_name' returns 0" do
230
- @provider.should_receive(:run_command_with_systems_locale).with({:command => '/bin/systemctl is-enabled rsyslog.service', :ignore_failure => true}).and_return(0)
247
+ @provider.should_receive(:shell_out_with_systems_locale).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_success)
231
248
  @provider.is_enabled?.should be_true
232
249
  end
233
250
 
234
251
  it "should return false if '/bin/systemctl is-enabled service_name' returns anything except 0" do
235
- @provider.should_receive(:run_command_with_systems_locale).with({:command => '/bin/systemctl is-enabled rsyslog.service', :ignore_failure => true}).and_return(1)
252
+ @provider.should_receive(:shell_out_with_systems_locale).with('/bin/systemctl is-enabled rsyslog.service --quiet').and_return(@shell_out_failure)
236
253
  @provider.is_enabled?.should be_false
237
254
  end
238
255
  end