chef 12.0.0.alpha.2 → 12.0.0.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (626) hide show
  1. data/CONTRIBUTING.md +9 -0
  2. data/README.md +1 -1
  3. data/Rakefile +12 -0
  4. data/bin/chef-service-manager +1 -1
  5. data/bin/chef-windows-service +35 -0
  6. data/distro/common/html/_sources/ctl_chef_server.txt +307 -10
  7. data/distro/common/html/ctl_chef_client.html +3 -7
  8. data/distro/common/html/ctl_chef_server.html +609 -41
  9. data/distro/common/html/ctl_chef_shell.html +2 -2
  10. data/distro/common/html/ctl_chef_solo.html +1 -1
  11. data/distro/common/html/index.html +13 -13
  12. data/distro/common/html/knife.html +10 -10
  13. data/distro/common/html/knife_bootstrap.html +8 -8
  14. data/distro/common/html/knife_client.html +12 -12
  15. data/distro/common/html/knife_common_options.html +7 -7
  16. data/distro/common/html/knife_configure.html +3 -3
  17. data/distro/common/html/knife_cookbook.html +19 -19
  18. data/distro/common/html/knife_cookbook_site.html +28 -28
  19. data/distro/common/html/knife_data_bag.html +28 -13
  20. data/distro/common/html/knife_delete.html +2 -2
  21. data/distro/common/html/knife_deps.html +3 -3
  22. data/distro/common/html/knife_diff.html +4 -4
  23. data/distro/common/html/knife_download.html +3 -3
  24. data/distro/common/html/knife_edit.html +2 -2
  25. data/distro/common/html/knife_environment.html +14 -14
  26. data/distro/common/html/knife_exec.html +11 -11
  27. data/distro/common/html/knife_index_rebuild.html +2 -2
  28. data/distro/common/html/knife_list.html +3 -3
  29. data/distro/common/html/knife_node.html +23 -23
  30. data/distro/common/html/knife_raw.html +4 -4
  31. data/distro/common/html/knife_recipe_list.html +3 -3
  32. data/distro/common/html/knife_role.html +11 -11
  33. data/distro/common/html/knife_search.html +4 -4
  34. data/distro/common/html/knife_serve.html +3 -3
  35. data/distro/common/html/knife_show.html +3 -3
  36. data/distro/common/html/knife_ssh.html +7 -7
  37. data/distro/common/html/knife_ssl_check.html +7 -7
  38. data/distro/common/html/knife_ssl_fetch.html +9 -9
  39. data/distro/common/html/knife_status.html +3 -3
  40. data/distro/common/html/knife_tag.html +9 -9
  41. data/distro/common/html/knife_upload.html +3 -3
  42. data/distro/common/html/knife_user.html +9 -9
  43. data/distro/common/html/knife_using.html +11 -11
  44. data/distro/common/html/knife_xargs.html +14 -5
  45. data/distro/common/html/search.html +2 -2
  46. data/distro/common/html/searchindex.js +1 -1
  47. data/distro/common/man/man1/chef-shell.1 +2 -2
  48. data/distro/common/man/man1/knife-bootstrap.1 +7 -7
  49. data/distro/common/man/man1/knife-client.1 +10 -10
  50. data/distro/common/man/man1/knife-configure.1 +5 -5
  51. data/distro/common/man/man1/knife-cookbook-site.1 +24 -24
  52. data/distro/common/man/man1/knife-cookbook.1 +12 -12
  53. data/distro/common/man/man1/knife-data-bag.1 +34 -10
  54. data/distro/common/man/man1/knife-delete.1 +5 -5
  55. data/distro/common/man/man1/knife-deps.1 +5 -5
  56. data/distro/common/man/man1/knife-diff.1 +7 -7
  57. data/distro/common/man/man1/knife-download.1 +5 -5
  58. data/distro/common/man/man1/knife-edit.1 +5 -5
  59. data/distro/common/man/man1/knife-environment.1 +11 -11
  60. data/distro/common/man/man1/knife-exec.1 +11 -11
  61. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  62. data/distro/common/man/man1/knife-list.1 +5 -5
  63. data/distro/common/man/man1/knife-node.1 +16 -16
  64. data/distro/common/man/man1/knife-raw.1 +6 -6
  65. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  66. data/distro/common/man/man1/knife-role.1 +7 -7
  67. data/distro/common/man/man1/knife-search.1 +6 -6
  68. data/distro/common/man/man1/knife-serve.1 +6 -6
  69. data/distro/common/man/man1/knife-show.1 +5 -5
  70. data/distro/common/man/man1/knife-ssh.1 +9 -9
  71. data/distro/common/man/man1/knife-ssl-check.1 +7 -7
  72. data/distro/common/man/man1/knife-ssl-fetch.1 +9 -9
  73. data/distro/common/man/man1/knife-status.1 +5 -5
  74. data/distro/common/man/man1/knife-tag.1 +8 -8
  75. data/distro/common/man/man1/knife-upload.1 +5 -5
  76. data/distro/common/man/man1/knife-user.1 +8 -8
  77. data/distro/common/man/man1/knife-xargs.1 +36 -10
  78. data/distro/common/man/man1/knife.1 +14 -14
  79. data/distro/common/man/man8/chef-client.8 +3 -10
  80. data/distro/common/man/man8/chef-solo.8 +1 -1
  81. data/lib/chef/application.rb +313 -241
  82. data/lib/chef/application/apply.rb +10 -8
  83. data/lib/chef/application/client.rb +58 -33
  84. data/lib/chef/application/solo.rb +33 -12
  85. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  86. data/lib/chef/chef_fs/command_line.rb +1 -1
  87. data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
  88. data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
  89. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
  90. data/lib/chef/client.rb +18 -48
  91. data/lib/chef/config.rb +43 -11
  92. data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
  93. data/lib/chef/cookbook/metadata.rb +81 -38
  94. data/lib/chef/cookbook/syntax_check.rb +18 -52
  95. data/lib/chef/cookbook_loader.rb +1 -1
  96. data/lib/chef/cookbook_version.rb +58 -39
  97. data/lib/chef/data_bag.rb +2 -2
  98. data/lib/chef/deprecation/provider/file.rb +2 -1
  99. data/lib/chef/dsl/data_query.rb +2 -29
  100. data/lib/chef/dsl/recipe.rb +8 -22
  101. data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
  102. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
  103. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
  104. data/lib/chef/event_loggers/base.rb +62 -0
  105. data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
  106. data/lib/chef/exceptions.rb +18 -1
  107. data/lib/chef/file_cache.rb +3 -2
  108. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
  109. data/lib/chef/http.rb +20 -13
  110. data/lib/chef/http/ssl_policies.rb +2 -1
  111. data/lib/chef/json_compat.rb +9 -3
  112. data/lib/chef/knife.rb +2 -1
  113. data/lib/chef/knife/bootstrap.rb +12 -18
  114. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  115. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  116. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  117. data/lib/chef/knife/cookbook_create.rb +1 -1
  118. data/lib/chef/knife/cookbook_site_share.rb +43 -8
  119. data/lib/chef/knife/core/bootstrap_context.rb +6 -11
  120. data/lib/chef/knife/core/object_loader.rb +5 -5
  121. data/lib/chef/knife/core/status_presenter.rb +156 -0
  122. data/lib/chef/knife/core/subcommand_loader.rb +6 -5
  123. data/lib/chef/knife/core/ui.rb +4 -4
  124. data/lib/chef/knife/data_bag_create.rb +7 -32
  125. data/lib/chef/knife/data_bag_edit.rb +24 -43
  126. data/lib/chef/knife/data_bag_from_file.rb +6 -31
  127. data/lib/chef/knife/data_bag_secret_options.rb +142 -0
  128. data/lib/chef/knife/data_bag_show.rb +19 -33
  129. data/lib/chef/knife/node_from_file.rb +9 -8
  130. data/lib/chef/knife/ssh.rb +0 -7
  131. data/lib/chef/knife/ssl_check.rb +70 -6
  132. data/lib/chef/knife/status.rb +11 -58
  133. data/lib/chef/mixin/command/unix.rb +2 -2
  134. data/lib/chef/mixin/convert_to_class_name.rb +54 -0
  135. data/lib/chef/mixin/descendants_tracker.rb +82 -0
  136. data/lib/chef/mixin/homebrew_user.rb +68 -0
  137. data/lib/chef/mixin/shell_out.rb +0 -4
  138. data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
  139. data/lib/chef/mixin/windows_env_helper.rb +56 -0
  140. data/lib/chef/node.rb +2 -2
  141. data/lib/chef/node_map.rb +146 -0
  142. data/lib/chef/platform/provider_mapping.rb +11 -39
  143. data/lib/chef/platform/provider_priority_map.rb +80 -0
  144. data/lib/chef/platform/query_helpers.rb +5 -1
  145. data/lib/chef/platform/service_helpers.rb +113 -0
  146. data/lib/chef/provider.rb +24 -0
  147. data/lib/chef/provider/breakpoint.rb +2 -0
  148. data/lib/chef/provider/cookbook_file.rb +2 -0
  149. data/lib/chef/provider/cron.rb +1 -1
  150. data/lib/chef/provider/cron/unix.rb +13 -9
  151. data/lib/chef/provider/deploy.rb +3 -2
  152. data/lib/chef/provider/deploy/revision.rb +4 -2
  153. data/lib/chef/provider/deploy/timestamped.rb +2 -0
  154. data/lib/chef/provider/directory.rb +2 -0
  155. data/lib/chef/provider/dsc_script.rb +179 -0
  156. data/lib/chef/provider/env.rb +25 -10
  157. data/lib/chef/provider/env/windows.rb +9 -16
  158. data/lib/chef/provider/erl_call.rb +2 -0
  159. data/lib/chef/provider/execute.rb +5 -2
  160. data/lib/chef/provider/file.rb +2 -0
  161. data/lib/chef/provider/git.rb +51 -23
  162. data/lib/chef/provider/group/dscl.rb +2 -2
  163. data/lib/chef/provider/group/pw.rb +9 -13
  164. data/lib/chef/provider/http_request.rb +2 -0
  165. data/lib/chef/provider/link.rb +3 -0
  166. data/lib/chef/provider/log.rb +2 -0
  167. data/lib/chef/provider/lwrp_base.rb +11 -9
  168. data/lib/chef/provider/mount/mount.rb +1 -1
  169. data/lib/chef/provider/package/aix.rb +2 -0
  170. data/lib/chef/provider/package/apt.rb +2 -0
  171. data/lib/chef/provider/package/dpkg.rb +2 -0
  172. data/lib/chef/provider/package/easy_install.rb +2 -0
  173. data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
  174. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  175. data/lib/chef/provider/package/freebsd/port.rb +1 -9
  176. data/lib/chef/provider/package/homebrew.rb +127 -0
  177. data/lib/chef/provider/package/ips.rb +2 -0
  178. data/lib/chef/provider/package/macports.rb +3 -0
  179. data/lib/chef/provider/package/pacman.rb +5 -4
  180. data/lib/chef/provider/package/paludis.rb +4 -2
  181. data/lib/chef/provider/package/portage.rb +4 -1
  182. data/lib/chef/provider/package/rpm.rb +2 -0
  183. data/lib/chef/provider/package/rubygems.rb +4 -0
  184. data/lib/chef/provider/package/smartos.rb +2 -0
  185. data/lib/chef/provider/package/solaris.rb +2 -0
  186. data/lib/chef/provider/package/windows.rb +5 -2
  187. data/lib/chef/provider/package/yum.rb +2 -0
  188. data/lib/chef/provider/powershell_script.rb +3 -1
  189. data/lib/chef/provider/remote_directory.rb +25 -10
  190. data/lib/chef/provider/route.rb +2 -0
  191. data/lib/chef/provider/ruby_block.rb +2 -0
  192. data/lib/chef/provider/script.rb +6 -0
  193. data/lib/chef/provider/service/aix.rb +128 -0
  194. data/lib/chef/provider/service/aixinit.rb +117 -0
  195. data/lib/chef/provider/service/arch.rb +6 -0
  196. data/lib/chef/provider/service/debian.rb +35 -29
  197. data/lib/chef/provider/service/freebsd.rb +7 -1
  198. data/lib/chef/provider/service/gentoo.rb +5 -1
  199. data/lib/chef/provider/service/init.rb +2 -0
  200. data/lib/chef/provider/service/insserv.rb +15 -8
  201. data/lib/chef/provider/service/invokercd.rb +6 -0
  202. data/lib/chef/provider/service/macosx.rb +4 -1
  203. data/lib/chef/provider/service/redhat.rb +9 -3
  204. data/lib/chef/provider/service/simple.rb +2 -0
  205. data/lib/chef/provider/service/solaris.rb +2 -0
  206. data/lib/chef/provider/service/systemd.rb +7 -0
  207. data/lib/chef/provider/service/upstart.rb +7 -0
  208. data/lib/chef/provider/service/windows.rb +5 -0
  209. data/lib/chef/provider/subversion.rb +2 -0
  210. data/lib/chef/provider/template.rb +1 -0
  211. data/lib/chef/provider/user/dscl.rb +3 -2
  212. data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
  213. data/lib/chef/provider_resolver.rb +103 -0
  214. data/lib/chef/providers.rb +6 -2
  215. data/lib/chef/recipe.rb +2 -0
  216. data/lib/chef/resource.rb +69 -78
  217. data/lib/chef/resource/apt_package.rb +3 -1
  218. data/lib/chef/resource/bash.rb +1 -0
  219. data/lib/chef/resource/bff_package.rb +0 -1
  220. data/lib/chef/resource/breakpoint.rb +1 -1
  221. data/lib/chef/resource/chef_gem.rb +1 -2
  222. data/lib/chef/resource/conditional.rb +26 -6
  223. data/lib/chef/resource/cookbook_file.rb +2 -3
  224. data/lib/chef/resource/csh.rb +1 -0
  225. data/lib/chef/resource/deploy.rb +0 -1
  226. data/lib/chef/resource/deploy_revision.rb +6 -1
  227. data/lib/chef/resource/directory.rb +1 -2
  228. data/lib/chef/resource/dpkg_package.rb +2 -1
  229. data/lib/chef/resource/dsc_script.rb +125 -0
  230. data/lib/chef/resource/easy_install_package.rb +2 -1
  231. data/lib/chef/resource/erl_call.rb +1 -0
  232. data/lib/chef/resource/execute.rb +26 -9
  233. data/lib/chef/resource/file.rb +1 -3
  234. data/lib/chef/resource/freebsd_package.rb +10 -23
  235. data/lib/chef/resource/gem_package.rb +2 -1
  236. data/lib/chef/resource/git.rb +2 -1
  237. data/lib/chef/resource/homebrew_package.rb +46 -0
  238. data/lib/chef/resource/http_request.rb +1 -0
  239. data/lib/chef/resource/ips_package.rb +3 -1
  240. data/lib/chef/resource/link.rb +1 -2
  241. data/lib/chef/resource/log.rb +4 -0
  242. data/lib/chef/resource/lwrp_base.rb +24 -15
  243. data/lib/chef/resource/macports_package.rb +3 -1
  244. data/lib/chef/resource/pacman_package.rb +2 -1
  245. data/lib/chef/resource/paludis_package.rb +3 -1
  246. data/lib/chef/resource/perl.rb +1 -0
  247. data/lib/chef/resource/powershell_script.rb +0 -2
  248. data/lib/chef/resource/python.rb +1 -1
  249. data/lib/chef/resource/remote_directory.rb +1 -2
  250. data/lib/chef/resource/remote_file.rb +1 -1
  251. data/lib/chef/resource/rpm_package.rb +2 -1
  252. data/lib/chef/resource/ruby.rb +1 -0
  253. data/lib/chef/resource/ruby_block.rb +3 -0
  254. data/lib/chef/resource/script.rb +2 -25
  255. data/lib/chef/resource/service.rb +0 -4
  256. data/lib/chef/resource/smartos_package.rb +3 -4
  257. data/lib/chef/resource/solaris_package.rb +7 -1
  258. data/lib/chef/resource/subversion.rb +0 -1
  259. data/lib/chef/resource/template.rb +2 -3
  260. data/lib/chef/resource/timestamped_deploy.rb +1 -2
  261. data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
  262. data/lib/chef/resource/windows_package.rb +3 -4
  263. data/lib/chef/resource/windows_script.rb +3 -0
  264. data/lib/chef/resource/windows_service.rb +2 -2
  265. data/lib/chef/resource/yum_package.rb +3 -1
  266. data/lib/chef/resource_collection.rb +50 -227
  267. data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
  268. data/lib/chef/resource_collection/resource_list.rb +89 -0
  269. data/lib/chef/resource_collection/resource_set.rb +170 -0
  270. data/lib/chef/resources.rb +2 -0
  271. data/lib/chef/role.rb +1 -1
  272. data/lib/chef/run_context.rb +5 -1
  273. data/lib/chef/shell/ext.rb +1 -1
  274. data/lib/chef/util/backup.rb +3 -2
  275. data/lib/chef/util/dsc/configuration_generator.rb +115 -0
  276. data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
  277. data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
  278. data/lib/chef/util/dsc/resource_info.rb +26 -0
  279. data/lib/chef/util/path_helper.rb +12 -0
  280. data/lib/chef/util/powershell/cmdlet.rb +136 -0
  281. data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
  282. data/lib/chef/version.rb +1 -1
  283. data/lib/chef/win32/api/system.rb +9 -0
  284. data/lib/chef/win32/version.rb +2 -0
  285. data/spec/.DS_Store +0 -0
  286. data/spec/data/.DS_Store +0 -0
  287. data/spec/data/bootstrap/test-hints.erb +1 -1
  288. data/spec/data/bootstrap/test.erb +1 -1
  289. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  290. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  291. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
  292. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
  293. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
  294. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
  295. data/spec/data/lwrp/.DS_Store +0 -0
  296. data/spec/data/lwrp/providers/.DS_Store +0 -0
  297. data/spec/data/lwrp/providers/buck_passer.rb +9 -2
  298. data/spec/data/lwrp/resources/.DS_Store +0 -0
  299. data/spec/data/lwrp/resources/foo.rb +3 -2
  300. data/spec/data/lwrp_override/.DS_Store +0 -0
  301. data/spec/data/lwrp_override/providers/.DS_Store +0 -0
  302. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
  303. data/spec/data/lwrp_override/resources/.DS_Store +0 -0
  304. data/spec/data/lwrp_override/resources/foo.rb +4 -3
  305. data/spec/functional/assets/chefinittest +34 -0
  306. data/spec/functional/assets/testchefsubsys +11 -0
  307. data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
  308. data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
  309. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  310. data/spec/functional/knife/exec_spec.rb +1 -1
  311. data/spec/functional/resource/aix_service_spec.rb +136 -0
  312. data/spec/functional/resource/aixinit_service_spec.rb +211 -0
  313. data/spec/functional/resource/base.rb +1 -0
  314. data/spec/functional/resource/batch_spec.rb +4 -11
  315. data/spec/functional/resource/cron_spec.rb +7 -1
  316. data/spec/functional/resource/dsc_script_spec.rb +382 -0
  317. data/spec/functional/resource/env_spec.rb +54 -0
  318. data/spec/functional/resource/execute_spec.rb +113 -0
  319. data/spec/functional/resource/file_spec.rb +2 -0
  320. data/spec/functional/resource/group_spec.rb +7 -4
  321. data/spec/functional/resource/powershell_spec.rb +198 -185
  322. data/spec/functional/resource/rpm_spec.rb +5 -4
  323. data/spec/functional/resource/user/dscl_spec.rb +2 -1
  324. data/spec/functional/util/path_helper_spec.rb +37 -0
  325. data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
  326. data/spec/integration/client/client_spec.rb +1 -1
  327. data/spec/integration/client/ipv6_spec.rb +1 -1
  328. data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
  329. data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
  330. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  331. data/spec/integration/knife/chefignore_spec.rb +1 -1
  332. data/spec/integration/knife/common_options_spec.rb +1 -1
  333. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  334. data/spec/integration/knife/delete_spec.rb +1 -1
  335. data/spec/integration/knife/deps_spec.rb +1 -1
  336. data/spec/integration/knife/diff_spec.rb +1 -1
  337. data/spec/integration/knife/download_spec.rb +1 -1
  338. data/spec/integration/knife/list_spec.rb +1 -1
  339. data/spec/integration/knife/raw_spec.rb +1 -1
  340. data/spec/integration/knife/redirection_spec.rb +1 -1
  341. data/spec/integration/knife/serve_spec.rb +1 -1
  342. data/spec/integration/knife/show_spec.rb +1 -1
  343. data/spec/integration/knife/upload_spec.rb +4 -3
  344. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  345. data/spec/spec_helper.rb +15 -0
  346. data/spec/support/chef_helpers.rb +1 -0
  347. data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
  348. data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
  349. data/spec/support/platform_helpers.rb +28 -0
  350. data/spec/support/shared/functional/file_resource.rb +6 -0
  351. data/spec/support/shared/functional/windows_script.rb +118 -0
  352. data/spec/support/shared/integration/integration_helper.rb +5 -2
  353. data/spec/support/shared/matchers/exit_with_code.rb +28 -0
  354. data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
  355. data/spec/support/shared/shared_examples.rb +14 -0
  356. data/spec/support/shared/unit/execute_resource.rb +0 -7
  357. data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
  358. data/spec/support/shared/unit/script_resource.rb +1 -1
  359. data/spec/support/shared/unit/windows_script_resource.rb +35 -2
  360. data/spec/tiny_server.rb +1 -2
  361. data/spec/unit/api_client_spec.rb +5 -1
  362. data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
  363. data/spec/unit/application/client_spec.rb +106 -13
  364. data/spec/unit/application/solo_spec.rb +25 -1
  365. data/spec/unit/client_spec.rb +1 -26
  366. data/spec/unit/config_fetcher_spec.rb +2 -1
  367. data/spec/unit/config_spec.rb +91 -2
  368. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
  369. data/spec/unit/cookbook/metadata_spec.rb +43 -6
  370. data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
  371. data/spec/unit/cookbook_loader_spec.rb +4 -2
  372. data/spec/unit/cookbook_version_spec.rb +83 -2
  373. data/spec/unit/data_bag_item_spec.rb +5 -1
  374. data/spec/unit/data_bag_spec.rb +6 -1
  375. data/spec/unit/dsl/data_query_spec.rb +8 -110
  376. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
  377. data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
  378. data/spec/unit/environment_spec.rb +6 -2
  379. data/spec/unit/exceptions_spec.rb +6 -0
  380. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
  381. data/spec/unit/json_compat_spec.rb +12 -2
  382. data/spec/unit/knife/bootstrap_spec.rb +16 -63
  383. data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
  384. data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
  385. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  386. data/spec/unit/knife/core/ui_spec.rb +28 -0
  387. data/spec/unit/knife/data_bag_create_spec.rb +63 -71
  388. data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
  389. data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
  390. data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
  391. data/spec/unit/knife/data_bag_show_spec.rb +74 -72
  392. data/spec/unit/knife/environment_from_file_spec.rb +3 -2
  393. data/spec/unit/knife/ssl_check_spec.rb +46 -1
  394. data/spec/unit/knife/status_spec.rb +1 -2
  395. data/spec/unit/knife_spec.rb +18 -1
  396. data/spec/unit/lwrp_spec.rb +29 -8
  397. data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
  398. data/spec/unit/node_map_spec.rb +155 -0
  399. data/spec/unit/node_spec.rb +11 -0
  400. data/spec/unit/platform/query_helpers_spec.rb +23 -0
  401. data/spec/unit/platform_spec.rb +23 -0
  402. data/spec/unit/provider/breakpoint_spec.rb +9 -9
  403. data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
  404. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  405. data/spec/unit/provider/cron/unix_spec.rb +78 -60
  406. data/spec/unit/provider/cron_spec.rb +175 -175
  407. data/spec/unit/provider/deploy/revision_spec.rb +22 -21
  408. data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
  409. data/spec/unit/provider/deploy_spec.rb +231 -230
  410. data/spec/unit/provider/directory_spec.rb +55 -55
  411. data/spec/unit/provider/dsc_script_spec.rb +174 -0
  412. data/spec/unit/provider/env/windows_spec.rb +70 -34
  413. data/spec/unit/provider/env_spec.rb +95 -49
  414. data/spec/unit/provider/erl_call_spec.rb +9 -9
  415. data/spec/unit/provider/execute_spec.rb +43 -27
  416. data/spec/unit/provider/file/content_spec.rb +9 -9
  417. data/spec/unit/provider/file_spec.rb +1 -1
  418. data/spec/unit/provider/git_spec.rb +221 -159
  419. data/spec/unit/provider/group/dscl_spec.rb +64 -63
  420. data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
  421. data/spec/unit/provider/group/groupadd_spec.rb +33 -33
  422. data/spec/unit/provider/group/groupmod_spec.rb +23 -23
  423. data/spec/unit/provider/group/pw_spec.rb +21 -21
  424. data/spec/unit/provider/group/usermod_spec.rb +20 -20
  425. data/spec/unit/provider/group/windows_spec.rb +15 -15
  426. data/spec/unit/provider/group_spec.rb +76 -76
  427. data/spec/unit/provider/http_request_spec.rb +30 -30
  428. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  429. data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
  430. data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
  431. data/spec/unit/provider/ifconfig_spec.rb +43 -43
  432. data/spec/unit/provider/link_spec.rb +60 -60
  433. data/spec/unit/provider/log_spec.rb +0 -4
  434. data/spec/unit/provider/mdadm_spec.rb +23 -23
  435. data/spec/unit/provider/mount/aix_spec.rb +17 -17
  436. data/spec/unit/provider/mount/mount_spec.rb +115 -119
  437. data/spec/unit/provider/mount/solaris_spec.rb +72 -72
  438. data/spec/unit/provider/mount/windows_spec.rb +24 -24
  439. data/spec/unit/provider/ohai_spec.rb +11 -11
  440. data/spec/unit/provider/package/aix_spec.rb +34 -34
  441. data/spec/unit/provider/package/apt_spec.rb +36 -36
  442. data/spec/unit/provider/package/dpkg_spec.rb +27 -27
  443. data/spec/unit/provider/package/easy_install_spec.rb +16 -16
  444. data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
  445. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
  446. data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
  447. data/spec/unit/provider/package/homebrew_spec.rb +266 -0
  448. data/spec/unit/provider/package/ips_spec.rb +34 -34
  449. data/spec/unit/provider/package/macports_spec.rb +49 -49
  450. data/spec/unit/provider/package/pacman_spec.rb +35 -39
  451. data/spec/unit/provider/package/paludis_spec.rb +20 -20
  452. data/spec/unit/provider/package/portage_spec.rb +38 -38
  453. data/spec/unit/provider/package/rpm_spec.rb +29 -29
  454. data/spec/unit/provider/package/rubygems_spec.rb +284 -270
  455. data/spec/unit/provider/package/smartos_spec.rb +15 -15
  456. data/spec/unit/provider/package/solaris_spec.rb +35 -35
  457. data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
  458. data/spec/unit/provider/package/windows_spec.rb +6 -6
  459. data/spec/unit/provider/package/yum_spec.rb +416 -416
  460. data/spec/unit/provider/package/zypper_spec.rb +47 -47
  461. data/spec/unit/provider/package_spec.rb +107 -107
  462. data/spec/unit/provider/powershell_spec.rb +1 -1
  463. data/spec/unit/provider/registry_key_spec.rb +61 -61
  464. data/spec/unit/provider/remote_directory_spec.rb +36 -36
  465. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
  466. data/spec/unit/provider/remote_file/content_spec.rb +45 -45
  467. data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
  468. data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
  469. data/spec/unit/provider/remote_file/http_spec.rb +44 -44
  470. data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
  471. data/spec/unit/provider/remote_file_spec.rb +3 -3
  472. data/spec/unit/provider/route_spec.rb +63 -63
  473. data/spec/unit/provider/ruby_block_spec.rb +4 -4
  474. data/spec/unit/provider/script_spec.rb +12 -12
  475. data/spec/unit/provider/service/aix_service_spec.rb +181 -0
  476. data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
  477. data/spec/unit/provider/service/arch_service_spec.rb +48 -48
  478. data/spec/unit/provider/service/debian_service_spec.rb +40 -40
  479. data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
  480. data/spec/unit/provider/service/init_service_spec.rb +39 -39
  481. data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
  482. data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
  483. data/spec/unit/provider/service/macosx_spec.rb +49 -49
  484. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  485. data/spec/unit/provider/service/simple_service_spec.rb +28 -28
  486. data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
  487. data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
  488. data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
  489. data/spec/unit/provider/service/windows_spec.rb +92 -92
  490. data/spec/unit/provider/service_spec.rb +40 -40
  491. data/spec/unit/provider/subversion_spec.rb +80 -80
  492. data/spec/unit/provider/template/content_spec.rb +9 -9
  493. data/spec/unit/provider/template_spec.rb +6 -6
  494. data/spec/unit/provider/user/dscl_spec.rb +170 -167
  495. data/spec/unit/provider/user/pw_spec.rb +48 -48
  496. data/spec/unit/provider/user/solaris_spec.rb +8 -8
  497. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  498. data/spec/unit/provider/user/windows_spec.rb +26 -26
  499. data/spec/unit/provider/user_spec.rb +72 -72
  500. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
  501. data/spec/unit/provider_resolver_spec.rb +387 -0
  502. data/spec/unit/recipe_spec.rb +33 -12
  503. data/spec/unit/resource/apt_package_spec.rb +10 -13
  504. data/spec/unit/resource/bash_spec.rb +4 -4
  505. data/spec/unit/resource/batch_spec.rb +1 -1
  506. data/spec/unit/resource/breakpoint_spec.rb +11 -7
  507. data/spec/unit/resource/chef_gem_spec.rb +8 -15
  508. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  509. data/spec/unit/resource/conditional_spec.rb +35 -16
  510. data/spec/unit/resource/cookbook_file_spec.rb +13 -13
  511. data/spec/unit/resource/cron_spec.rb +37 -37
  512. data/spec/unit/resource/csh_spec.rb +4 -4
  513. data/spec/unit/resource/deploy_revision_spec.rb +13 -18
  514. data/spec/unit/resource/deploy_spec.rb +60 -55
  515. data/spec/unit/resource/directory_spec.rb +18 -18
  516. data/spec/unit/resource/dpkg_package_spec.rb +8 -14
  517. data/spec/unit/resource/dsc_script_spec.rb +98 -0
  518. data/spec/unit/resource/easy_install_package_spec.rb +9 -18
  519. data/spec/unit/resource/env_spec.rb +12 -12
  520. data/spec/unit/resource/erl_call_spec.rb +11 -11
  521. data/spec/unit/resource/execute_spec.rb +5 -0
  522. data/spec/unit/resource/file_spec.rb +29 -29
  523. data/spec/unit/resource/freebsd_package_spec.rb +11 -12
  524. data/spec/unit/resource/gem_package_spec.rb +8 -15
  525. data/spec/unit/resource/git_spec.rb +12 -8
  526. data/spec/unit/resource/group_spec.rb +27 -27
  527. data/spec/unit/resource/homebrew_package_spec.rb +50 -0
  528. data/spec/unit/resource/http_request_spec.rb +6 -6
  529. data/spec/unit/resource/ifconfig_spec.rb +8 -8
  530. data/spec/unit/resource/ips_package_spec.rb +10 -13
  531. data/spec/unit/resource/link_spec.rb +25 -25
  532. data/spec/unit/resource/log_spec.rb +9 -9
  533. data/spec/unit/resource/macports_package_spec.rb +8 -13
  534. data/spec/unit/resource/mdadm_spec.rb +18 -18
  535. data/spec/unit/resource/mount_spec.rb +45 -45
  536. data/spec/unit/resource/ohai_spec.rb +7 -7
  537. data/spec/unit/resource/package_spec.rb +12 -12
  538. data/spec/unit/resource/pacman_package_spec.rb +8 -14
  539. data/spec/unit/resource/perl_spec.rb +4 -4
  540. data/spec/unit/resource/portage_package_spec.rb +3 -3
  541. data/spec/unit/resource/powershell_spec.rb +7 -7
  542. data/spec/unit/resource/python_spec.rb +4 -4
  543. data/spec/unit/resource/registry_key_spec.rb +32 -32
  544. data/spec/unit/resource/remote_directory_spec.rb +17 -17
  545. data/spec/unit/resource/remote_file_spec.rb +41 -41
  546. data/spec/unit/resource/route_spec.rb +19 -19
  547. data/spec/unit/resource/rpm_package_spec.rb +9 -13
  548. data/spec/unit/resource/ruby_block_spec.rb +8 -8
  549. data/spec/unit/resource/ruby_spec.rb +4 -4
  550. data/spec/unit/resource/scm_spec.rb +40 -40
  551. data/spec/unit/resource/script_spec.rb +2 -2
  552. data/spec/unit/resource/service_spec.rb +37 -47
  553. data/spec/unit/resource/smartos_package_spec.rb +10 -15
  554. data/spec/unit/resource/solaris_package_spec.rb +13 -28
  555. data/spec/unit/resource/subversion_spec.rb +16 -12
  556. data/spec/unit/resource/template_spec.rb +35 -35
  557. data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
  558. data/spec/unit/resource/user_spec.rb +23 -23
  559. data/spec/unit/resource/windows_package_spec.rb +17 -10
  560. data/spec/unit/resource/windows_service_spec.rb +9 -6
  561. data/spec/unit/resource/yum_package_spec.rb +16 -21
  562. data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
  563. data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
  564. data/spec/unit/resource_collection_spec.rb +73 -92
  565. data/spec/unit/resource_definition_spec.rb +38 -40
  566. data/spec/unit/resource_reporter_spec.rb +3 -3
  567. data/spec/unit/resource_spec.rb +68 -33
  568. data/spec/unit/rest_spec.rb +83 -76
  569. data/spec/unit/role_spec.rb +5 -0
  570. data/spec/unit/run_list_spec.rb +5 -1
  571. data/spec/unit/runner_spec.rb +245 -238
  572. data/spec/unit/shell/shell_ext_spec.rb +1 -1
  573. data/spec/unit/user_spec.rb +5 -1
  574. data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
  575. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
  576. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
  577. data/spec/unit/util/path_helper_spec.rb +23 -1
  578. data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
  579. data/spec/unit/workstation_config_loader_spec.rb +1 -1
  580. metadata +257 -191
  581. checksums.yaml +0 -7
  582. data/distro/README +0 -2
  583. data/distro/arch/etc/conf.d/chef-client.conf +0 -5
  584. data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
  585. data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
  586. data/distro/arch/etc/conf.d/chef-server.conf +0 -10
  587. data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
  588. data/distro/arch/etc/rc.d/chef-client +0 -90
  589. data/distro/arch/etc/rc.d/chef-expander +0 -78
  590. data/distro/arch/etc/rc.d/chef-server +0 -78
  591. data/distro/arch/etc/rc.d/chef-server-webui +0 -78
  592. data/distro/arch/etc/rc.d/chef-solr +0 -78
  593. data/distro/debian/etc/default/chef-client +0 -4
  594. data/distro/debian/etc/default/chef-expander +0 -8
  595. data/distro/debian/etc/default/chef-server +0 -9
  596. data/distro/debian/etc/default/chef-server-webui +0 -9
  597. data/distro/debian/etc/default/chef-solr +0 -8
  598. data/distro/debian/etc/init.d/chef-client +0 -212
  599. data/distro/debian/etc/init.d/chef-expander +0 -176
  600. data/distro/debian/etc/init.d/chef-server +0 -122
  601. data/distro/debian/etc/init.d/chef-server-webui +0 -123
  602. data/distro/debian/etc/init.d/chef-solr +0 -176
  603. data/distro/debian/etc/init/chef-client.conf +0 -17
  604. data/distro/debian/etc/init/chef-expander.conf +0 -17
  605. data/distro/debian/etc/init/chef-server-webui.conf +0 -17
  606. data/distro/debian/etc/init/chef-server.conf +0 -17
  607. data/distro/debian/etc/init/chef-solr.conf +0 -17
  608. data/distro/redhat/etc/init.d/chef-client +0 -121
  609. data/distro/redhat/etc/init.d/chef-expander +0 -104
  610. data/distro/redhat/etc/init.d/chef-server +0 -112
  611. data/distro/redhat/etc/init.d/chef-server-webui +0 -112
  612. data/distro/redhat/etc/init.d/chef-solr +0 -104
  613. data/distro/redhat/etc/logrotate.d/chef-client +0 -8
  614. data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
  615. data/distro/redhat/etc/logrotate.d/chef-server +0 -8
  616. data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
  617. data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
  618. data/distro/redhat/etc/sysconfig/chef-client +0 -15
  619. data/distro/redhat/etc/sysconfig/chef-expander +0 -7
  620. data/distro/redhat/etc/sysconfig/chef-server +0 -14
  621. data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
  622. data/distro/redhat/etc/sysconfig/chef-solr +0 -8
  623. data/distro/windows/service_manager.rb +0 -20
  624. data/lib/chef/resource_platform_map.rb +0 -151
  625. data/spec/support/shared/matchers.rb +0 -17
  626. data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -45,36 +45,36 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
45
45
  describe "when the target is a symlink" do
46
46
  before(:each) do
47
47
  lstat = double("stats", :ino => 5)
48
- lstat.stub(:uid).and_return(501)
49
- lstat.stub(:gid).and_return(501)
50
- lstat.stub(:mode).and_return(0777)
51
- File.stub(:lstat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(lstat)
52
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
53
- provider.file_class.stub(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
48
+ allow(lstat).to receive(:uid).and_return(501)
49
+ allow(lstat).to receive(:gid).and_return(501)
50
+ allow(lstat).to receive(:mode).and_return(0777)
51
+ allow(File).to receive(:lstat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(lstat)
52
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
53
+ allow(provider.file_class).to receive(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
54
54
  end
55
55
 
56
56
  describe "to a file that exists" do
57
57
  before do
58
- File.stub(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
58
+ allow(File).to receive(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
59
59
  new_resource.owner 501 # only loaded in current_resource if present in new
60
60
  new_resource.group 501
61
61
  provider.load_current_resource
62
62
  end
63
63
 
64
64
  it "should set the symlink target" do
65
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
65
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
66
66
  end
67
67
  it "should set the link type" do
68
- provider.current_resource.link_type.should == :symbolic
68
+ expect(provider.current_resource.link_type).to eq(:symbolic)
69
69
  end
70
70
  it "should update the source of the existing link with the links target" do
71
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
71
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
72
72
  end
73
73
  it "should set the owner" do
74
- provider.current_resource.owner.should == 501
74
+ expect(provider.current_resource.owner).to eq(501)
75
75
  end
76
76
  it "should set the group" do
77
- provider.current_resource.group.should == 501
77
+ expect(provider.current_resource.group).to eq(501)
78
78
  end
79
79
 
80
80
  # We test create in unit tests because there is no other way to ensure
@@ -87,7 +87,7 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
87
87
  result
88
88
  end
89
89
  it 'create does no work' do
90
- provider.access_controls.should_not_receive(:set_all)
90
+ expect(provider.access_controls).not_to receive(:set_all)
91
91
  provider.run_action(:create)
92
92
  end
93
93
  end
@@ -95,139 +95,139 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
95
95
 
96
96
  describe "to a file that doesn't exist" do
97
97
  before do
98
- File.stub(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
99
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
100
- provider.file_class.stub(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
98
+ allow(File).to receive(:exist?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
99
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
100
+ allow(provider.file_class).to receive(:readlink).with("#{CHEF_SPEC_DATA}/fofile-link").and_return("#{CHEF_SPEC_DATA}/fofile")
101
101
  new_resource.owner "501" # only loaded in current_resource if present in new
102
102
  new_resource.group "501"
103
103
  provider.load_current_resource
104
104
  end
105
105
 
106
106
  it "should set the symlink target" do
107
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
107
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
108
108
  end
109
109
  it "should set the link type" do
110
- provider.current_resource.link_type.should == :symbolic
110
+ expect(provider.current_resource.link_type).to eq(:symbolic)
111
111
  end
112
112
  it "should update the source of the existing link to the link's target" do
113
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
113
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
114
114
  end
115
115
  it "should not set the owner" do
116
- provider.current_resource.owner.should be_nil
116
+ expect(provider.current_resource.owner).to be_nil
117
117
  end
118
118
  it "should not set the group" do
119
- provider.current_resource.group.should be_nil
119
+ expect(provider.current_resource.group).to be_nil
120
120
  end
121
121
  end
122
122
  end
123
123
 
124
124
  describe "when the target doesn't exist" do
125
125
  before do
126
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
127
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
126
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
127
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
128
128
  provider.load_current_resource
129
129
  end
130
130
 
131
131
  it "should set the symlink target" do
132
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
132
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
133
133
  end
134
134
  it "should update the source of the existing link to nil" do
135
- provider.current_resource.to.should be_nil
135
+ expect(provider.current_resource.to).to be_nil
136
136
  end
137
137
  it "should not set the owner" do
138
- provider.current_resource.owner.should == nil
138
+ expect(provider.current_resource.owner).to eq(nil)
139
139
  end
140
140
  it "should not set the group" do
141
- provider.current_resource.group.should == nil
141
+ expect(provider.current_resource.group).to eq(nil)
142
142
  end
143
143
  end
144
144
 
145
145
  describe "when the target is a regular old file" do
146
146
  before do
147
147
  stat = double("stats", :ino => 5)
148
- stat.stub(:uid).and_return(501)
149
- stat.stub(:gid).and_return(501)
150
- stat.stub(:mode).and_return(0755)
151
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(stat)
148
+ allow(stat).to receive(:uid).and_return(501)
149
+ allow(stat).to receive(:gid).and_return(501)
150
+ allow(stat).to receive(:mode).and_return(0755)
151
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(stat)
152
152
 
153
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
154
- provider.file_class.stub(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
153
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(true)
154
+ allow(provider.file_class).to receive(:symlink?).with("#{CHEF_SPEC_DATA}/fofile-link").and_return(false)
155
155
  end
156
156
 
157
157
  describe "and the source does not exist" do
158
158
  before do
159
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(false)
159
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(false)
160
160
  provider.load_current_resource
161
161
  end
162
162
 
163
163
  it "should set the symlink target" do
164
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
164
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
165
165
  end
166
166
  it "should update the current source of the existing link with an empty string" do
167
- provider.current_resource.to.should == ''
167
+ expect(provider.current_resource.to).to eq('')
168
168
  end
169
169
  it "should not set the owner" do
170
- provider.current_resource.owner.should == nil
170
+ expect(provider.current_resource.owner).to eq(nil)
171
171
  end
172
172
  it "should not set the group" do
173
- provider.current_resource.group.should == nil
173
+ expect(provider.current_resource.group).to eq(nil)
174
174
  end
175
175
  end
176
176
 
177
177
  describe "and the source exists" do
178
178
  before do
179
179
  stat = double("stats", :ino => 6)
180
- stat.stub(:uid).and_return(502)
181
- stat.stub(:gid).and_return(502)
182
- stat.stub(:mode).and_return(0644)
180
+ allow(stat).to receive(:uid).and_return(502)
181
+ allow(stat).to receive(:gid).and_return(502)
182
+ allow(stat).to receive(:mode).and_return(0644)
183
183
 
184
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
184
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
185
185
 
186
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
186
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
187
187
  provider.load_current_resource
188
188
  end
189
189
 
190
190
  it "should set the symlink target" do
191
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
191
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
192
192
  end
193
193
  it "should update the current source of the existing link with an empty string" do
194
- provider.current_resource.to.should == ''
194
+ expect(provider.current_resource.to).to eq('')
195
195
  end
196
196
  it "should not set the owner" do
197
- provider.current_resource.owner.should == nil
197
+ expect(provider.current_resource.owner).to eq(nil)
198
198
  end
199
199
  it "should not set the group" do
200
- provider.current_resource.group.should == nil
200
+ expect(provider.current_resource.group).to eq(nil)
201
201
  end
202
202
  end
203
203
 
204
204
  describe "and is hardlinked to the source" do
205
205
  before do
206
206
  stat = double("stats", :ino => 5)
207
- stat.stub(:uid).and_return(502)
208
- stat.stub(:gid).and_return(502)
209
- stat.stub(:mode).and_return(0644)
207
+ allow(stat).to receive(:uid).and_return(502)
208
+ allow(stat).to receive(:gid).and_return(502)
209
+ allow(stat).to receive(:mode).and_return(0644)
210
210
 
211
- provider.file_class.stub(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
211
+ allow(provider.file_class).to receive(:stat).with("#{CHEF_SPEC_DATA}/fofile").and_return(stat)
212
212
 
213
- File.stub(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
213
+ allow(File).to receive(:exists?).with("#{CHEF_SPEC_DATA}/fofile").and_return(true)
214
214
  provider.load_current_resource
215
215
  end
216
216
 
217
217
  it "should set the symlink target" do
218
- provider.current_resource.target_file.should == "#{CHEF_SPEC_DATA}/fofile-link"
218
+ expect(provider.current_resource.target_file).to eq("#{CHEF_SPEC_DATA}/fofile-link")
219
219
  end
220
220
  it "should set the link type" do
221
- provider.current_resource.link_type.should == :hard
221
+ expect(provider.current_resource.link_type).to eq(:hard)
222
222
  end
223
223
  it "should update the source of the existing link to the link's target" do
224
- paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile").should be_true
224
+ expect(paths_eql?(provider.current_resource.to, "#{CHEF_SPEC_DATA}/fofile")).to be_true
225
225
  end
226
226
  it "should not set the owner" do
227
- provider.current_resource.owner.should == nil
227
+ expect(provider.current_resource.owner).to eq(nil)
228
228
  end
229
229
  it "should not set the group" do
230
- provider.current_resource.group.should == nil
230
+ expect(provider.current_resource.group).to eq(nil)
231
231
  end
232
232
 
233
233
  # We test create in unit tests because there is no other way to ensure
@@ -241,9 +241,9 @@ describe Chef::Resource::Link, :not_supported_on_win2k3 do
241
241
  result
242
242
  end
243
243
  it 'create does no work' do
244
- provider.file_class.should_not_receive(:symlink)
245
- provider.file_class.should_not_receive(:link)
246
- provider.access_controls.should_not_receive(:set_all)
244
+ expect(provider.file_class).not_to receive(:symlink)
245
+ expect(provider.file_class).not_to receive(:link)
246
+ expect(provider.access_controls).not_to receive(:set_all)
247
247
  provider.run_action(:create)
248
248
  end
249
249
  end
@@ -32,10 +32,6 @@ describe Chef::Provider::Log::ChefLog do
32
32
 
33
33
  let(:provider) { Chef::Provider::Log::ChefLog.new(new_resource, run_context) }
34
34
 
35
- it "should be registered with the default platform hash" do
36
- expect(Chef::Platform.platforms[:default][:log]).not_to be_nil
37
- end
38
-
39
35
  it "should write the string to the Chef::Log object at default level (info)" do
40
36
  expect(Chef::Log).to receive(:info).with(log_str).and_return(true)
41
37
  provider.run_action(:write)
@@ -32,22 +32,22 @@ describe Chef::Provider::Mdadm do
32
32
 
33
33
  describe "when determining the current metadevice status" do
34
34
  it "should set the current resources mount point to the new resources mount point" do
35
- @provider.stub(:shell_out!).and_return(OpenStruct.new(:status => 0))
35
+ allow(@provider).to receive(:shell_out!).and_return(OpenStruct.new(:status => 0))
36
36
  @provider.load_current_resource
37
- @provider.current_resource.name.should == '/dev/md1'
38
- @provider.current_resource.raid_device.should == '/dev/md1'
37
+ expect(@provider.current_resource.name).to eq('/dev/md1')
38
+ expect(@provider.current_resource.raid_device).to eq('/dev/md1')
39
39
  end
40
40
 
41
41
  it "determines that the metadevice exists when mdadm exit code is zero" do
42
- @provider.stub(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 0))
42
+ allow(@provider).to receive(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 0))
43
43
  @provider.load_current_resource
44
- @provider.current_resource.exists.should be_true
44
+ expect(@provider.current_resource.exists).to be_true
45
45
  end
46
46
 
47
47
  it "determines that the metadevice does not exist when mdadm exit code is 4" do
48
- @provider.stub(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 4))
48
+ allow(@provider).to receive(:shell_out!).with("mdadm --detail --test /dev/md1", :returns => [0,4]).and_return(OpenStruct.new(:status => 4))
49
49
  @provider.load_current_resource
50
- @provider.current_resource.exists.should be_false
50
+ expect(@provider.current_resource.exists).to be_false
51
51
  end
52
52
  end
53
53
 
@@ -55,7 +55,7 @@ describe Chef::Provider::Mdadm do
55
55
  before(:each) do
56
56
  @current_resource = Chef::Resource::Mdadm.new('/dev/md1')
57
57
  @new_resource.level 5
58
- @provider.stub(:load_current_resource).and_return(true)
58
+ allow(@provider).to receive(:load_current_resource).and_return(true)
59
59
  @provider.current_resource = @current_resource
60
60
  end
61
61
 
@@ -63,7 +63,7 @@ describe Chef::Provider::Mdadm do
63
63
  it "should create the raid device if it doesnt exist" do
64
64
  @current_resource.exists(false)
65
65
  expected_command = "yes | mdadm --create /dev/md1 --level 5 --chunk=16 --metadata=0.90 --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
66
- @provider.should_receive(:shell_out!).with(expected_command)
66
+ expect(@provider).to receive(:shell_out!).with(expected_command)
67
67
  @provider.run_action(:create)
68
68
  end
69
69
 
@@ -71,25 +71,25 @@ describe Chef::Provider::Mdadm do
71
71
  @current_resource.exists(false)
72
72
  @new_resource.bitmap('grow')
73
73
  expected_command = "yes | mdadm --create /dev/md1 --level 5 --chunk=16 --metadata=0.90 --bitmap=grow --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
74
- @provider.should_receive(:shell_out!).with(expected_command)
74
+ expect(@provider).to receive(:shell_out!).with(expected_command)
75
75
  @provider.run_action(:create)
76
- @new_resource.should be_updated_by_last_action
76
+ expect(@new_resource).to be_updated_by_last_action
77
77
  end
78
78
 
79
79
  it "should not specify a chunksize if raid level 1" do
80
80
  @current_resource.exists(false)
81
81
  @new_resource.level 1
82
82
  expected_command = "yes | mdadm --create /dev/md1 --level 1 --metadata=0.90 --raid-devices 3 /dev/sdz1 /dev/sdz2 /dev/sdz3"
83
- @provider.should_receive(:shell_out!).with(expected_command)
83
+ expect(@provider).to receive(:shell_out!).with(expected_command)
84
84
  @provider.run_action(:create)
85
- @new_resource.should be_updated_by_last_action
85
+ expect(@new_resource).to be_updated_by_last_action
86
86
  end
87
87
 
88
88
  it "should not create the raid device if it does exist" do
89
89
  @current_resource.exists(true)
90
- @provider.should_not_receive(:shell_out!)
90
+ expect(@provider).not_to receive(:shell_out!)
91
91
  @provider.run_action(:create)
92
- @new_resource.should_not be_updated_by_last_action
92
+ expect(@new_resource).not_to be_updated_by_last_action
93
93
  end
94
94
  end
95
95
 
@@ -97,16 +97,16 @@ describe Chef::Provider::Mdadm do
97
97
  it "should assemble the raid device if it doesnt exist" do
98
98
  @current_resource.exists(false)
99
99
  expected_mdadm_cmd = "yes | mdadm --assemble /dev/md1 /dev/sdz1 /dev/sdz2 /dev/sdz3"
100
- @provider.should_receive(:shell_out!).with(expected_mdadm_cmd)
100
+ expect(@provider).to receive(:shell_out!).with(expected_mdadm_cmd)
101
101
  @provider.run_action(:assemble)
102
- @new_resource.should be_updated_by_last_action
102
+ expect(@new_resource).to be_updated_by_last_action
103
103
  end
104
104
 
105
105
  it "should not assemble the raid device if it doesnt exist" do
106
106
  @current_resource.exists(true)
107
- @provider.should_not_receive(:shell_out!)
107
+ expect(@provider).not_to receive(:shell_out!)
108
108
  @provider.run_action(:assemble)
109
- @new_resource.should_not be_updated_by_last_action
109
+ expect(@new_resource).not_to be_updated_by_last_action
110
110
  end
111
111
  end
112
112
 
@@ -115,16 +115,16 @@ describe Chef::Provider::Mdadm do
115
115
  it "should stop the raid device if it exists" do
116
116
  @current_resource.exists(true)
117
117
  expected_mdadm_cmd = "yes | mdadm --stop /dev/md1"
118
- @provider.should_receive(:shell_out!).with(expected_mdadm_cmd)
118
+ expect(@provider).to receive(:shell_out!).with(expected_mdadm_cmd)
119
119
  @provider.run_action(:stop)
120
- @new_resource.should be_updated_by_last_action
120
+ expect(@new_resource).to be_updated_by_last_action
121
121
  end
122
122
 
123
123
  it "should not attempt to stop the raid device if it does not exist" do
124
124
  @current_resource.exists(false)
125
- @provider.should_not_receive(:shell_out!)
125
+ expect(@provider).not_to receive(:shell_out!)
126
126
  @provider.run_action(:stop)
127
- @new_resource.should_not be_updated_by_last_action
127
+ expect(@new_resource).not_to be_updated_by_last_action
128
128
  end
129
129
  end
130
130
  end
@@ -60,18 +60,18 @@ ENABLED
60
60
 
61
61
  @provider = Chef::Provider::Mount::Aix.new(@new_resource, @run_context)
62
62
 
63
- ::File.stub(:exists?).with("/dev/sdz1").and_return true
64
- ::File.stub(:exists?).with("/tmp/foo").and_return true
63
+ allow(::File).to receive(:exists?).with("/dev/sdz1").and_return true
64
+ allow(::File).to receive(:exists?).with("/tmp/foo").and_return true
65
65
  end
66
66
 
67
67
  def stub_mounted(provider, mounted_output)
68
68
  response = double("Mixlib::ShellOut command", :exitstatus => 0, :stdout => mounted_output, :stderr => "")
69
- provider.should_receive(:shell_out!).with("mount").and_return(response)
69
+ expect(provider).to receive(:shell_out!).with("mount").and_return(response)
70
70
  end
71
71
 
72
72
  def stub_enabled(provider, enabled_output)
73
73
  response = double("Mixlib::ShellOut command", :exitstatus => 0, :stdout => enabled_output, :stderr => "")
74
- provider.should_receive(:shell_out).with("lsfs -c #{@new_resource.mount_point}").and_return(response)
74
+ expect(provider).to receive(:shell_out).with("lsfs -c #{@new_resource.mount_point}").and_return(response)
75
75
  end
76
76
 
77
77
  def stub_mounted_enabled(provider, mounted_output, enabled_output)
@@ -121,7 +121,7 @@ ENABLED
121
121
  it "should mount resource if it is not mounted" do
122
122
  stub_mounted_enabled(@provider, @unmounted_output, "")
123
123
 
124
- @provider.should_receive(:shell_out!).with("mount -v #{@new_resource.fstype} #{@new_resource.device} #{@new_resource.mount_point}")
124
+ expect(@provider).to receive(:shell_out!).with("mount -v #{@new_resource.fstype} #{@new_resource.device} #{@new_resource.mount_point}")
125
125
 
126
126
  @provider.run_action(:mount)
127
127
  end
@@ -129,7 +129,7 @@ ENABLED
129
129
  it "should not mount resource if it is already mounted" do
130
130
  stub_mounted_enabled(@provider, @mounted_output, "")
131
131
 
132
- @provider.should_not_receive(:mount_fs)
132
+ expect(@provider).not_to receive(:mount_fs)
133
133
 
134
134
  @provider.run_action(:mount)
135
135
  end
@@ -139,7 +139,7 @@ ENABLED
139
139
  it "should umount resource if it is already mounted" do
140
140
  stub_mounted_enabled(@provider, @mounted_output, "")
141
141
 
142
- @provider.should_receive(:shell_out!).with("umount #{@new_resource.mount_point}")
142
+ expect(@provider).to receive(:shell_out!).with("umount #{@new_resource.mount_point}")
143
143
 
144
144
  @provider.run_action(:umount)
145
145
  end
@@ -147,7 +147,7 @@ ENABLED
147
147
  it "should not umount resource if it is not mounted" do
148
148
  stub_mounted_enabled(@provider, @unmounted_output, "")
149
149
 
150
- @provider.should_not_receive(:umount_fs)
150
+ expect(@provider).not_to receive(:umount_fs)
151
151
 
152
152
  @provider.run_action(:umount)
153
153
  end
@@ -158,7 +158,7 @@ ENABLED
158
158
  @new_resource.supports({:remount => true})
159
159
  stub_mounted_enabled(@provider, @mounted_output, "")
160
160
 
161
- @provider.should_receive(:shell_out!).with("mount -o remount #{@new_resource.device} #{@new_resource.mount_point}")
161
+ expect(@provider).to receive(:shell_out!).with("mount -o remount #{@new_resource.device} #{@new_resource.mount_point}")
162
162
 
163
163
  @provider.run_action(:remount)
164
164
  end
@@ -168,7 +168,7 @@ ENABLED
168
168
  @new_resource.options("nodev,rw")
169
169
  stub_mounted_enabled(@provider, @mounted_output, "")
170
170
 
171
- @provider.should_receive(:shell_out!).with("mount -o remount,nodev,rw #{@new_resource.device} #{@new_resource.mount_point}")
171
+ expect(@provider).to receive(:shell_out!).with("mount -o remount,nodev,rw #{@new_resource.device} #{@new_resource.mount_point}")
172
172
 
173
173
  @provider.run_action(:remount)
174
174
  end
@@ -179,18 +179,18 @@ ENABLED
179
179
  @new_resource.options("nodev,rw")
180
180
  stub_mounted_enabled(@provider, @mounted_output, "")
181
181
  filesystems = StringIO.new
182
- ::File.stub(:open).with("/etc/filesystems", "a").and_yield(filesystems)
182
+ allow(::File).to receive(:open).with("/etc/filesystems", "a").and_yield(filesystems)
183
183
 
184
184
  @provider.run_action(:enable)
185
185
 
186
- filesystems.string.should match(%r{^/tmp/foo:\n\tdev\t\t= /dev/sdz1\n\tvfs\t\t= jfs2\n\tmount\t\t= false\n\toptions\t\t= nodev,rw\n$})
186
+ expect(filesystems.string).to match(%r{^/tmp/foo:\n\tdev\t\t= /dev/sdz1\n\tvfs\t\t= jfs2\n\tmount\t\t= false\n\toptions\t\t= nodev,rw\n$})
187
187
  end
188
188
 
189
189
  it "should not enable mount if it is mounted and already enabled and mount options are unchanged" do
190
190
  stub_mounted_enabled(@provider, @mounted_output, @enabled_output)
191
191
  @new_resource.options "rw"
192
192
 
193
- @provider.should_not_receive(:enable_fs)
193
+ expect(@provider).not_to receive(:enable_fs)
194
194
 
195
195
  @provider.run_action(:enable)
196
196
  end
@@ -200,7 +200,7 @@ ENABLED
200
200
  it "should disable mount if it is mounted and enabled" do
201
201
  stub_mounted_enabled(@provider, @mounted_output, @enabled_output)
202
202
 
203
- ::File.stub(:open).with("/etc/filesystems", "r").and_return(<<-ETCFILESYSTEMS)
203
+ allow(::File).to receive(:open).with("/etc/filesystems", "r").and_return(<<-ETCFILESYSTEMS)
204
204
  /tmp/foo:
205
205
  dev = /dev/sdz1
206
206
  vfs = jfs2
@@ -219,17 +219,17 @@ ENABLED
219
219
  ETCFILESYSTEMS
220
220
 
221
221
  filesystems = StringIO.new
222
- ::File.stub(:open).with("/etc/filesystems", "w").and_yield(filesystems)
222
+ allow(::File).to receive(:open).with("/etc/filesystems", "w").and_yield(filesystems)
223
223
 
224
224
  @provider.run_action(:disable)
225
225
 
226
- filesystems.string.should match(%r{^/tmp/abc:\s+dev\s+= /dev/sdz2\s+vfs\s+= jfs2\s+mount\s+= true\s+options\s+= rw\n$})
226
+ expect(filesystems.string).to match(%r{^/tmp/abc:\s+dev\s+= /dev/sdz2\s+vfs\s+= jfs2\s+mount\s+= true\s+options\s+= rw\n$})
227
227
  end
228
228
 
229
229
  it "should not disable mount if it is not mounted" do
230
230
  stub_mounted_enabled(@provider, @unmounted_output, "")
231
231
 
232
- @provider.should_not_receive(:disable_fs)
232
+ expect(@provider).not_to receive(:disable_fs)
233
233
 
234
234
  @provider.run_action(:disable)
235
235
  end