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
@@ -28,73 +28,73 @@ describe Chef::Provider::Service do
28
28
 
29
29
  @provider = Chef::Provider::Service.new(@new_resource, @run_context)
30
30
  @provider.current_resource = @current_resource
31
- @provider.stub(:load_current_resource)
31
+ allow(@provider).to receive(:load_current_resource)
32
32
  end
33
33
 
34
34
  describe "when enabling the service" do
35
35
  it "should enable the service if disabled and set the resource as updated" do
36
36
  @current_resource.enabled(false)
37
- @provider.should_receive(:enable_service).and_return(true)
37
+ expect(@provider).to receive(:enable_service).and_return(true)
38
38
  @provider.action_enable
39
39
  @provider.set_updated_status
40
- @provider.new_resource.should be_updated
40
+ expect(@provider.new_resource).to be_updated
41
41
  end
42
42
 
43
43
  it "should not enable the service if already enabled" do
44
44
  @current_resource.enabled(true)
45
- @provider.should_not_receive(:enable_service)
45
+ expect(@provider).not_to receive(:enable_service)
46
46
  @provider.action_enable
47
47
  @provider.set_updated_status
48
- @provider.new_resource.should_not be_updated
48
+ expect(@provider.new_resource).not_to be_updated
49
49
  end
50
50
  end
51
51
 
52
52
 
53
53
  describe "when disabling the service" do
54
54
  it "should disable the service if enabled and set the resource as updated" do
55
- @current_resource.stub(:enabled).and_return(true)
56
- @provider.should_receive(:disable_service).and_return(true)
55
+ allow(@current_resource).to receive(:enabled).and_return(true)
56
+ expect(@provider).to receive(:disable_service).and_return(true)
57
57
  @provider.run_action(:disable)
58
- @provider.new_resource.should be_updated
58
+ expect(@provider.new_resource).to be_updated
59
59
  end
60
60
 
61
61
  it "should not disable the service if already disabled" do
62
- @current_resource.stub(:enabled).and_return(false)
63
- @provider.should_not_receive(:disable_service)
62
+ allow(@current_resource).to receive(:enabled).and_return(false)
63
+ expect(@provider).not_to receive(:disable_service)
64
64
  @provider.run_action(:disable)
65
- @provider.new_resource.should_not be_updated
65
+ expect(@provider.new_resource).not_to be_updated
66
66
  end
67
67
  end
68
68
 
69
69
  describe "action_start" do
70
70
  it "should start the service if it isn't running and set the resource as updated" do
71
71
  @current_resource.running(false)
72
- @provider.should_receive(:start_service).with.and_return(true)
72
+ expect(@provider).to receive(:start_service).with.and_return(true)
73
73
  @provider.run_action(:start)
74
- @provider.new_resource.should be_updated
74
+ expect(@provider.new_resource).to be_updated
75
75
  end
76
76
 
77
77
  it "should not start the service if already running" do
78
78
  @current_resource.running(true)
79
- @provider.should_not_receive(:start_service)
79
+ expect(@provider).not_to receive(:start_service)
80
80
  @provider.run_action(:start)
81
- @provider.new_resource.should_not be_updated
81
+ expect(@provider.new_resource).not_to be_updated
82
82
  end
83
83
  end
84
84
 
85
85
  describe "action_stop" do
86
86
  it "should stop the service if it is running and set the resource as updated" do
87
- @current_resource.stub(:running).and_return(true)
88
- @provider.should_receive(:stop_service).and_return(true)
87
+ allow(@current_resource).to receive(:running).and_return(true)
88
+ expect(@provider).to receive(:stop_service).and_return(true)
89
89
  @provider.run_action(:stop)
90
- @provider.new_resource.should be_updated
90
+ expect(@provider.new_resource).to be_updated
91
91
  end
92
92
 
93
93
  it "should not stop the service if it's already stopped" do
94
- @current_resource.stub(:running).and_return(false)
95
- @provider.should_not_receive(:stop_service)
94
+ allow(@current_resource).to receive(:running).and_return(false)
95
+ expect(@provider).not_to receive(:stop_service)
96
96
  @provider.run_action(:stop)
97
- @provider.new_resource.should_not be_updated
97
+ expect(@provider.new_resource).not_to be_updated
98
98
  end
99
99
  end
100
100
 
@@ -104,16 +104,16 @@ describe Chef::Provider::Service do
104
104
  end
105
105
 
106
106
  it "should restart the service if it's supported and set the resource as updated" do
107
- @provider.should_receive(:restart_service).and_return(true)
107
+ expect(@provider).to receive(:restart_service).and_return(true)
108
108
  @provider.run_action(:restart)
109
- @provider.new_resource.should be_updated
109
+ expect(@provider.new_resource).to be_updated
110
110
  end
111
111
 
112
112
  it "should restart the service even if it isn't running and set the resource as updated" do
113
- @current_resource.stub(:running).and_return(false)
114
- @provider.should_receive(:restart_service).and_return(true)
113
+ allow(@current_resource).to receive(:running).and_return(false)
114
+ expect(@provider).to receive(:restart_service).and_return(true)
115
115
  @provider.run_action(:restart)
116
- @provider.new_resource.should be_updated
116
+ expect(@provider.new_resource).to be_updated
117
117
  end
118
118
  end
119
119
 
@@ -124,46 +124,46 @@ describe Chef::Provider::Service do
124
124
 
125
125
  it "should raise an exception if reload isn't supported" do
126
126
  @new_resource.supports(:reload => false)
127
- @new_resource.stub(:reload_command).and_return(false)
128
- lambda { @provider.run_action(:reload) }.should raise_error(Chef::Exceptions::UnsupportedAction)
127
+ allow(@new_resource).to receive(:reload_command).and_return(false)
128
+ expect { @provider.run_action(:reload) }.to raise_error(Chef::Exceptions::UnsupportedAction)
129
129
  end
130
130
 
131
131
  it "should reload the service if it is running and set the resource as updated" do
132
- @current_resource.stub(:running).and_return(true)
133
- @provider.should_receive(:reload_service).and_return(true)
132
+ allow(@current_resource).to receive(:running).and_return(true)
133
+ expect(@provider).to receive(:reload_service).and_return(true)
134
134
  @provider.run_action(:reload)
135
- @provider.new_resource.should be_updated
135
+ expect(@provider.new_resource).to be_updated
136
136
  end
137
137
 
138
138
  it "should not reload the service if it's stopped" do
139
- @current_resource.stub(:running).and_return(false)
140
- @provider.should_not_receive(:reload_service)
139
+ allow(@current_resource).to receive(:running).and_return(false)
140
+ expect(@provider).not_to receive(:reload_service)
141
141
  @provider.run_action(:stop)
142
- @provider.new_resource.should_not be_updated
142
+ expect(@provider.new_resource).not_to be_updated
143
143
  end
144
144
  end
145
145
 
146
146
  it "delegates enable_service to subclasses" do
147
- lambda { @provider.enable_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
147
+ expect { @provider.enable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
148
148
  end
149
149
 
150
150
  it "delegates disable_service to subclasses" do
151
- lambda { @provider.disable_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
151
+ expect { @provider.disable_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
152
152
  end
153
153
 
154
154
  it "delegates start_service to subclasses" do
155
- lambda { @provider.start_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
155
+ expect { @provider.start_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
156
156
  end
157
157
 
158
158
  it "delegates stop_service to subclasses" do
159
- lambda { @provider.stop_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
159
+ expect { @provider.stop_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
160
160
  end
161
161
 
162
162
  it "delegates restart_service to subclasses" do
163
- lambda { @provider.restart_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
163
+ expect { @provider.restart_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
164
164
  end
165
165
 
166
166
  it "delegates reload_service to subclasses" do
167
- lambda { @provider.reload_service }.should raise_error(Chef::Exceptions::UnsupportedAction)
167
+ expect { @provider.reload_service }.to raise_error(Chef::Exceptions::UnsupportedAction)
168
168
  end
169
169
  end
@@ -34,9 +34,9 @@ describe Chef::Provider::Subversion do
34
34
  end
35
35
 
36
36
  it "converts resource attributes to options for run_command and popen4" do
37
- @provider.run_options.should == {}
37
+ expect(@provider.run_options).to eq({})
38
38
  @resource.user 'deployninja'
39
- @provider.run_options.should == {:user => "deployninja"}
39
+ expect(@provider.run_options).to eq({:user => "deployninja"})
40
40
  end
41
41
 
42
42
  context "determining the revision of the currently deployed code" do
@@ -48,8 +48,8 @@ describe Chef::Provider::Subversion do
48
48
  end
49
49
 
50
50
  it "sets the revision to nil if there isn't any deployed code yet" do
51
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
52
- @provider.find_current_revision.should be_nil
51
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
52
+ expect(@provider.find_current_revision).to be_nil
53
53
  end
54
54
 
55
55
  it "determines the current revision if there's a checkout with svn data available" do
@@ -62,47 +62,47 @@ describe Chef::Provider::Subversion do
62
62
  "Last Changed Author: codeninja\n" +
63
63
  "Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
64
64
  "Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
65
- ::File.should_receive(:exist?).at_least(1).times.with("/my/deploy/dir/.svn").and_return(true)
66
- ::File.should_receive(:directory?).with("/my/deploy/dir").and_return(true)
67
- ::Dir.should_receive(:chdir).with("/my/deploy/dir").and_yield
68
- @stdout.stub(:string).and_return(example_svn_info)
69
- @stderr.stub(:string).and_return("")
70
- @exitstatus.stub(:exitstatus).and_return(0)
65
+ expect(::File).to receive(:exist?).at_least(1).times.with("/my/deploy/dir/.svn").and_return(true)
66
+ expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
67
+ expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
68
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
69
+ allow(@stderr).to receive(:string).and_return("")
70
+ allow(@exitstatus).to receive(:exitstatus).and_return(0)
71
71
  expected_command = ["svn info", {:cwd=>"/my/deploy/dir"}]
72
- @provider.should_receive(:popen4).with(*expected_command).
72
+ expect(@provider).to receive(:popen4).with(*expected_command).
73
73
  and_yield("no-pid", "no-stdin", @stdout,@stderr).
74
74
  and_return(@exitstatus)
75
- @provider.find_current_revision.should eql("11410")
75
+ expect(@provider.find_current_revision).to eql("11410")
76
76
  end
77
77
 
78
78
  it "gives nil as the current revision if the deploy dir isn't a SVN working copy" do
79
79
  example_svn_info = "svn: '/tmp/deploydir' is not a working copy\n"
80
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
81
- ::File.should_receive(:directory?).with("/my/deploy/dir").and_return(true)
82
- ::Dir.should_receive(:chdir).with("/my/deploy/dir").and_yield
83
- @stdout.stub(:string).and_return(example_svn_info)
84
- @stderr.stub(:string).and_return("")
85
- @exitstatus.stub(:exitstatus).and_return(1)
86
- @provider.should_receive(:popen4).and_yield("no-pid", "no-stdin", @stdout,@stderr).
80
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
81
+ expect(::File).to receive(:directory?).with("/my/deploy/dir").and_return(true)
82
+ expect(::Dir).to receive(:chdir).with("/my/deploy/dir").and_yield
83
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
84
+ allow(@stderr).to receive(:string).and_return("")
85
+ allow(@exitstatus).to receive(:exitstatus).and_return(1)
86
+ expect(@provider).to receive(:popen4).and_yield("no-pid", "no-stdin", @stdout,@stderr).
87
87
  and_return(@exitstatus)
88
- @provider.find_current_revision.should be_nil
88
+ expect(@provider.find_current_revision).to be_nil
89
89
  end
90
90
 
91
91
  it "finds the current revision when loading the current resource state" do
92
92
  # note: the test is kinda janky, but it provides regression coverage for CHEF-2092
93
93
  @resource.instance_variable_set(:@action, :sync)
94
- @provider.should_receive(:find_current_revision).and_return("12345")
94
+ expect(@provider).to receive(:find_current_revision).and_return("12345")
95
95
  @provider.load_current_resource
96
- @provider.current_resource.revision.should == "12345"
96
+ expect(@provider.current_resource.revision).to eq("12345")
97
97
  end
98
98
  end
99
99
 
100
100
  it "creates the current_resource object and sets its revision to the current deployment's revision as long as we're not exporting" do
101
- @provider.stub(:find_current_revision).and_return("11410")
101
+ allow(@provider).to receive(:find_current_revision).and_return("11410")
102
102
  @provider.new_resource.instance_variable_set :@action, [:checkout]
103
103
  @provider.load_current_resource
104
- @provider.current_resource.name.should eql(@resource.name)
105
- @provider.current_resource.revision.should eql("11410")
104
+ expect(@provider.current_resource.name).to eql(@resource.name)
105
+ expect(@provider.current_resource.revision).to eql("11410")
106
106
  end
107
107
 
108
108
  context "resolving revisions to an integer" do
@@ -114,7 +114,7 @@ describe Chef::Provider::Subversion do
114
114
  end
115
115
 
116
116
  it "returns the revision number as is if it's already an integer" do
117
- @provider.revision_int.should eql("12345")
117
+ expect(@provider.revision_int).to eql("12345")
118
118
  end
119
119
 
120
120
  it "queries the server and resolves the revision if it's not an integer (i.e. 'HEAD')" do
@@ -128,153 +128,153 @@ describe Chef::Provider::Subversion do
128
128
  "Last Changed Rev: 11410\n" + # Last Changed Rev is preferred to Revision
129
129
  "Last Changed Date: 2009-03-25 06:09:56 -0600 (Wed, 25 Mar 2009)\n\n"
130
130
  exitstatus = double("exitstatus")
131
- exitstatus.stub(:exitstatus).and_return(0)
131
+ allow(exitstatus).to receive(:exitstatus).and_return(0)
132
132
  @resource.revision "HEAD"
133
- @stdout.stub(:string).and_return(example_svn_info)
134
- @stderr.stub(:string).and_return("")
133
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
134
+ allow(@stderr).to receive(:string).and_return("")
135
135
  expected_command = ["svn info http://svn.example.org/trunk/ --no-auth-cache -rHEAD", {:cwd=>Dir.tmpdir}]
136
- @provider.should_receive(:popen4).with(*expected_command).
136
+ expect(@provider).to receive(:popen4).with(*expected_command).
137
137
  and_yield("no-pid","no-stdin",@stdout,@stderr).
138
138
  and_return(exitstatus)
139
- @provider.revision_int.should eql("11410")
139
+ expect(@provider.revision_int).to eql("11410")
140
140
  end
141
141
 
142
142
  it "returns a helpful message if data from `svn info` can't be parsed" do
143
143
  example_svn_info = "some random text from an error message\n"
144
144
  exitstatus = double("exitstatus")
145
- exitstatus.stub(:exitstatus).and_return(0)
145
+ allow(exitstatus).to receive(:exitstatus).and_return(0)
146
146
  @resource.revision "HEAD"
147
- @stdout.stub(:string).and_return(example_svn_info)
148
- @stderr.stub(:string).and_return("")
149
- @provider.should_receive(:popen4).and_yield("no-pid","no-stdin",@stdout,@stderr).
147
+ allow(@stdout).to receive(:string).and_return(example_svn_info)
148
+ allow(@stderr).to receive(:string).and_return("")
149
+ expect(@provider).to receive(:popen4).and_yield("no-pid","no-stdin",@stdout,@stderr).
150
150
  and_return(exitstatus)
151
- lambda {@provider.revision_int}.should raise_error(RuntimeError, "Could not parse `svn info` data: some random text from an error message")
151
+ expect {@provider.revision_int}.to raise_error(RuntimeError, "Could not parse `svn info` data: some random text from an error message")
152
152
 
153
153
  end
154
154
 
155
155
  it "responds to :revision_slug as an alias for revision_sha" do
156
- @provider.should respond_to(:revision_slug)
156
+ expect(@provider).to respond_to(:revision_slug)
157
157
  end
158
158
 
159
159
  end
160
160
 
161
161
  it "generates a checkout command with default options" do
162
- @provider.checkout_command.should eql("svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
162
+ expect(@provider.checkout_command).to eql("svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
163
163
  end
164
164
 
165
165
  it "generates a checkout command with authentication" do
166
166
  @resource.svn_username "deployNinja"
167
167
  @resource.svn_password "vanish!"
168
- @provider.checkout_command.should eql("svn checkout -q --username deployNinja --password vanish! " +
168
+ expect(@provider.checkout_command).to eql("svn checkout -q --username deployNinja --password vanish! " +
169
169
  "-r12345 http://svn.example.org/trunk/ /my/deploy/dir")
170
170
  end
171
171
 
172
172
  it "generates a checkout command with arbitrary options" do
173
173
  @resource.svn_arguments "--no-auth-cache"
174
- @provider.checkout_command.should eql("svn checkout --no-auth-cache -q -r12345 "+
174
+ expect(@provider.checkout_command).to eql("svn checkout --no-auth-cache -q -r12345 "+
175
175
  "http://svn.example.org/trunk/ /my/deploy/dir")
176
176
  end
177
177
 
178
178
  it "generates a sync command with default options" do
179
- @provider.sync_command.should eql("svn update -q -r12345 /my/deploy/dir")
179
+ expect(@provider.sync_command).to eql("svn update -q -r12345 /my/deploy/dir")
180
180
  end
181
181
 
182
182
  it "generates an export command with default options" do
183
- @provider.export_command.should eql("svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
183
+ expect(@provider.export_command).to eql("svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir")
184
184
  end
185
185
 
186
186
  it "doesn't try to find the current revision when loading the resource if running an export" do
187
187
  @provider.new_resource.instance_variable_set :@action, [:export]
188
- @provider.should_not_receive(:find_current_revision)
188
+ expect(@provider).not_to receive(:find_current_revision)
189
189
  @provider.load_current_resource
190
190
  end
191
191
 
192
192
  it "doesn't try to find the current revision when loading the resource if running a force export" do
193
193
  @provider.new_resource.instance_variable_set :@action, [:force_export]
194
- @provider.should_not_receive(:find_current_revision)
194
+ expect(@provider).not_to receive(:find_current_revision)
195
195
  @provider.load_current_resource
196
196
  end
197
197
 
198
198
  it "runs an export with the --force option" do
199
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
199
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
200
200
  expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
201
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
201
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
202
202
  @provider.run_action(:force_export)
203
- @resource.should be_updated
203
+ expect(@resource).to be_updated
204
204
  end
205
205
 
206
206
  it "runs the checkout command for action_checkout" do
207
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
207
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
208
208
  expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
209
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
209
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
210
210
  @provider.run_action(:checkout)
211
- @resource.should be_updated
211
+ expect(@resource).to be_updated
212
212
  end
213
213
 
214
214
  it "raises an error if the svn checkout command would fail because the enclosing directory doesn't exist" do
215
- lambda {@provider.run_action(:sync)}.should raise_error(Chef::Exceptions::MissingParentDirectory)
215
+ expect {@provider.run_action(:sync)}.to raise_error(Chef::Exceptions::MissingParentDirectory)
216
216
  end
217
217
 
218
218
  it "should not checkout if the destination exists or is a non empty directory" do
219
- ::File.stub(:exist?).with("/my/deploy/dir/.svn").and_return(false)
220
- ::File.stub(:exist?).with("/my/deploy/dir").and_return(true)
221
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
222
- ::Dir.stub(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
223
- @provider.should_not_receive(:checkout_command)
219
+ allow(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(false)
220
+ allow(::File).to receive(:exist?).with("/my/deploy/dir").and_return(true)
221
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
222
+ allow(::Dir).to receive(:entries).with("/my/deploy/dir").and_return(['.','..','foo','bar'])
223
+ expect(@provider).not_to receive(:checkout_command)
224
224
  @provider.run_action(:checkout)
225
- @resource.should_not be_updated
225
+ expect(@resource).not_to be_updated
226
226
  end
227
227
 
228
228
  it "runs commands with the user and group specified in the resource" do
229
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
229
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
230
230
  @resource.user "whois"
231
231
  @resource.group "thisis"
232
232
  expected_cmd = "svn checkout -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
233
- @provider.should_receive(:shell_out!).with(command: expected_cmd, user: "whois", group: "thisis")
233
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd, user: "whois", group: "thisis")
234
234
  @provider.run_action(:checkout)
235
- @resource.should be_updated
235
+ expect(@resource).to be_updated
236
236
  end
237
237
 
238
238
  it "does a checkout for action_sync if there's no deploy dir" do
239
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
240
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
241
- @provider.should_receive(:action_checkout)
239
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
240
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
241
+ expect(@provider).to receive(:action_checkout)
242
242
  @provider.run_action(:sync)
243
243
  end
244
244
 
245
245
  it "does a checkout for action_sync if the deploy dir exists but is empty" do
246
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
247
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
248
- @provider.should_receive(:action_checkout)
246
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
247
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").twice.and_return(false)
248
+ expect(@provider).to receive(:action_checkout)
249
249
  @provider.run_action(:sync)
250
250
  end
251
251
 
252
252
  it "runs the sync_command on action_sync if the deploy dir exists and isn't empty" do
253
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
254
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
255
- @provider.stub(:find_current_revision).and_return("11410")
256
- @provider.stub(:current_revision_matches_target_revision?).and_return(false)
253
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
254
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
255
+ allow(@provider).to receive(:find_current_revision).and_return("11410")
256
+ allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(false)
257
257
  expected_cmd = "svn update -q -r12345 /my/deploy/dir"
258
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
258
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
259
259
  @provider.run_action(:sync)
260
- @resource.should be_updated
260
+ expect(@resource).to be_updated
261
261
  end
262
262
 
263
263
  it "does not fetch any updates if the remote revision matches the current revision" do
264
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
265
- ::File.should_receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
266
- @provider.stub(:find_current_revision).and_return('12345')
267
- @provider.stub(:current_revision_matches_target_revision?).and_return(true)
264
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
265
+ expect(::File).to receive(:exist?).with("/my/deploy/dir/.svn").and_return(true)
266
+ allow(@provider).to receive(:find_current_revision).and_return('12345')
267
+ allow(@provider).to receive(:current_revision_matches_target_revision?).and_return(true)
268
268
  @provider.run_action(:sync)
269
- @resource.should_not be_updated
269
+ expect(@resource).not_to be_updated
270
270
  end
271
271
 
272
272
  it "runs the export_command on action_export" do
273
- ::File.stub(:directory?).with("/my/deploy").and_return(true)
273
+ allow(::File).to receive(:directory?).with("/my/deploy").and_return(true)
274
274
  expected_cmd = "svn export --force -q -r12345 http://svn.example.org/trunk/ /my/deploy/dir"
275
- @provider.should_receive(:shell_out!).with(command: expected_cmd)
275
+ expect(@provider).to receive(:shell_out!).with(command: expected_cmd)
276
276
  @provider.run_action(:export)
277
- @resource.should be_updated
277
+ expect(@resource).to be_updated
278
278
  end
279
279
 
280
280
  end