chef 12.0.0.alpha.2-x86-mingw32 → 12.0.0.rc.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) 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/ext/win32-eventlog/Rakefile +50 -0
  82. data/ext/win32-eventlog/chef-log.man +26 -0
  83. data/lib/chef/application.rb +313 -241
  84. data/lib/chef/application/apply.rb +10 -8
  85. data/lib/chef/application/client.rb +58 -33
  86. data/lib/chef/application/solo.rb +33 -12
  87. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  88. data/lib/chef/chef_fs/command_line.rb +1 -1
  89. data/lib/chef/chef_fs/file_system/organization_invites_entry.rb +2 -1
  90. data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -1
  91. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +2 -1
  92. data/lib/chef/client.rb +18 -48
  93. data/lib/chef/config.rb +43 -11
  94. data/lib/chef/cookbook/cookbook_version_loader.rb +14 -7
  95. data/lib/chef/cookbook/metadata.rb +81 -38
  96. data/lib/chef/cookbook/syntax_check.rb +18 -52
  97. data/lib/chef/cookbook_loader.rb +1 -1
  98. data/lib/chef/cookbook_version.rb +58 -39
  99. data/lib/chef/data_bag.rb +2 -2
  100. data/lib/chef/deprecation/provider/file.rb +2 -1
  101. data/lib/chef/dsl/data_query.rb +2 -29
  102. data/lib/chef/dsl/recipe.rb +8 -22
  103. data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
  104. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -0
  105. data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +1 -1
  106. data/lib/chef/event_loggers/base.rb +62 -0
  107. data/lib/chef/event_loggers/windows_eventlog.rb +104 -0
  108. data/lib/chef/exceptions.rb +18 -1
  109. data/lib/chef/file_cache.rb +3 -2
  110. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +15 -6
  111. data/lib/chef/http.rb +20 -13
  112. data/lib/chef/http/ssl_policies.rb +2 -1
  113. data/lib/chef/json_compat.rb +9 -3
  114. data/lib/chef/knife.rb +2 -1
  115. data/lib/chef/knife/bootstrap.rb +12 -18
  116. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  117. data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
  118. data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
  119. data/lib/chef/knife/cookbook_create.rb +1 -1
  120. data/lib/chef/knife/cookbook_site_share.rb +43 -8
  121. data/lib/chef/knife/core/bootstrap_context.rb +6 -11
  122. data/lib/chef/knife/core/object_loader.rb +5 -5
  123. data/lib/chef/knife/core/status_presenter.rb +156 -0
  124. data/lib/chef/knife/core/subcommand_loader.rb +6 -5
  125. data/lib/chef/knife/core/ui.rb +4 -4
  126. data/lib/chef/knife/data_bag_create.rb +7 -32
  127. data/lib/chef/knife/data_bag_edit.rb +24 -43
  128. data/lib/chef/knife/data_bag_from_file.rb +6 -31
  129. data/lib/chef/knife/data_bag_secret_options.rb +142 -0
  130. data/lib/chef/knife/data_bag_show.rb +19 -33
  131. data/lib/chef/knife/node_from_file.rb +9 -8
  132. data/lib/chef/knife/ssh.rb +0 -7
  133. data/lib/chef/knife/ssl_check.rb +70 -6
  134. data/lib/chef/knife/status.rb +11 -58
  135. data/lib/chef/mixin/command/unix.rb +2 -2
  136. data/lib/chef/mixin/convert_to_class_name.rb +54 -0
  137. data/lib/chef/mixin/descendants_tracker.rb +82 -0
  138. data/lib/chef/mixin/homebrew_user.rb +68 -0
  139. data/lib/chef/mixin/shell_out.rb +0 -4
  140. data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
  141. data/lib/chef/mixin/windows_env_helper.rb +56 -0
  142. data/lib/chef/node.rb +2 -2
  143. data/lib/chef/node_map.rb +146 -0
  144. data/lib/chef/platform/provider_mapping.rb +11 -39
  145. data/lib/chef/platform/provider_priority_map.rb +80 -0
  146. data/lib/chef/platform/query_helpers.rb +5 -1
  147. data/lib/chef/platform/service_helpers.rb +113 -0
  148. data/lib/chef/provider.rb +24 -0
  149. data/lib/chef/provider/breakpoint.rb +2 -0
  150. data/lib/chef/provider/cookbook_file.rb +2 -0
  151. data/lib/chef/provider/cron.rb +1 -1
  152. data/lib/chef/provider/cron/unix.rb +13 -9
  153. data/lib/chef/provider/deploy.rb +3 -2
  154. data/lib/chef/provider/deploy/revision.rb +4 -2
  155. data/lib/chef/provider/deploy/timestamped.rb +2 -0
  156. data/lib/chef/provider/directory.rb +2 -0
  157. data/lib/chef/provider/dsc_script.rb +179 -0
  158. data/lib/chef/provider/env.rb +25 -10
  159. data/lib/chef/provider/env/windows.rb +9 -16
  160. data/lib/chef/provider/erl_call.rb +2 -0
  161. data/lib/chef/provider/execute.rb +5 -2
  162. data/lib/chef/provider/file.rb +2 -0
  163. data/lib/chef/provider/git.rb +51 -23
  164. data/lib/chef/provider/group/dscl.rb +2 -2
  165. data/lib/chef/provider/group/pw.rb +9 -13
  166. data/lib/chef/provider/http_request.rb +2 -0
  167. data/lib/chef/provider/link.rb +3 -0
  168. data/lib/chef/provider/log.rb +2 -0
  169. data/lib/chef/provider/lwrp_base.rb +11 -9
  170. data/lib/chef/provider/mount/mount.rb +1 -1
  171. data/lib/chef/provider/package/aix.rb +2 -0
  172. data/lib/chef/provider/package/apt.rb +2 -0
  173. data/lib/chef/provider/package/dpkg.rb +2 -0
  174. data/lib/chef/provider/package/easy_install.rb +2 -0
  175. data/lib/chef/provider/package/freebsd/pkg.rb +2 -1
  176. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  177. data/lib/chef/provider/package/freebsd/port.rb +1 -9
  178. data/lib/chef/provider/package/homebrew.rb +127 -0
  179. data/lib/chef/provider/package/ips.rb +2 -0
  180. data/lib/chef/provider/package/macports.rb +3 -0
  181. data/lib/chef/provider/package/pacman.rb +5 -4
  182. data/lib/chef/provider/package/paludis.rb +4 -2
  183. data/lib/chef/provider/package/portage.rb +4 -1
  184. data/lib/chef/provider/package/rpm.rb +2 -0
  185. data/lib/chef/provider/package/rubygems.rb +4 -0
  186. data/lib/chef/provider/package/smartos.rb +2 -0
  187. data/lib/chef/provider/package/solaris.rb +2 -0
  188. data/lib/chef/provider/package/windows.rb +5 -2
  189. data/lib/chef/provider/package/yum.rb +2 -0
  190. data/lib/chef/provider/powershell_script.rb +3 -1
  191. data/lib/chef/provider/remote_directory.rb +25 -10
  192. data/lib/chef/provider/route.rb +2 -0
  193. data/lib/chef/provider/ruby_block.rb +2 -0
  194. data/lib/chef/provider/script.rb +6 -0
  195. data/lib/chef/provider/service/aix.rb +128 -0
  196. data/lib/chef/provider/service/aixinit.rb +117 -0
  197. data/lib/chef/provider/service/arch.rb +6 -0
  198. data/lib/chef/provider/service/debian.rb +35 -29
  199. data/lib/chef/provider/service/freebsd.rb +7 -1
  200. data/lib/chef/provider/service/gentoo.rb +5 -1
  201. data/lib/chef/provider/service/init.rb +2 -0
  202. data/lib/chef/provider/service/insserv.rb +15 -8
  203. data/lib/chef/provider/service/invokercd.rb +6 -0
  204. data/lib/chef/provider/service/macosx.rb +4 -1
  205. data/lib/chef/provider/service/redhat.rb +9 -3
  206. data/lib/chef/provider/service/simple.rb +2 -0
  207. data/lib/chef/provider/service/solaris.rb +2 -0
  208. data/lib/chef/provider/service/systemd.rb +7 -0
  209. data/lib/chef/provider/service/upstart.rb +7 -0
  210. data/lib/chef/provider/service/windows.rb +5 -0
  211. data/lib/chef/provider/subversion.rb +2 -0
  212. data/lib/chef/provider/template.rb +1 -0
  213. data/lib/chef/provider/user/dscl.rb +3 -2
  214. data/lib/chef/provider/whyrun_safe_ruby_block.rb +2 -0
  215. data/lib/chef/provider_resolver.rb +103 -0
  216. data/lib/chef/providers.rb +6 -2
  217. data/lib/chef/recipe.rb +2 -0
  218. data/lib/chef/resource.rb +69 -78
  219. data/lib/chef/resource/apt_package.rb +3 -1
  220. data/lib/chef/resource/bash.rb +1 -0
  221. data/lib/chef/resource/bff_package.rb +0 -1
  222. data/lib/chef/resource/breakpoint.rb +1 -1
  223. data/lib/chef/resource/chef_gem.rb +1 -2
  224. data/lib/chef/resource/conditional.rb +26 -6
  225. data/lib/chef/resource/cookbook_file.rb +2 -3
  226. data/lib/chef/resource/csh.rb +1 -0
  227. data/lib/chef/resource/deploy.rb +0 -1
  228. data/lib/chef/resource/deploy_revision.rb +6 -1
  229. data/lib/chef/resource/directory.rb +1 -2
  230. data/lib/chef/resource/dpkg_package.rb +2 -1
  231. data/lib/chef/resource/dsc_script.rb +125 -0
  232. data/lib/chef/resource/easy_install_package.rb +2 -1
  233. data/lib/chef/resource/erl_call.rb +1 -0
  234. data/lib/chef/resource/execute.rb +26 -9
  235. data/lib/chef/resource/file.rb +1 -3
  236. data/lib/chef/resource/freebsd_package.rb +10 -23
  237. data/lib/chef/resource/gem_package.rb +2 -1
  238. data/lib/chef/resource/git.rb +2 -1
  239. data/lib/chef/resource/homebrew_package.rb +46 -0
  240. data/lib/chef/resource/http_request.rb +1 -0
  241. data/lib/chef/resource/ips_package.rb +3 -1
  242. data/lib/chef/resource/link.rb +1 -2
  243. data/lib/chef/resource/log.rb +4 -0
  244. data/lib/chef/resource/lwrp_base.rb +24 -15
  245. data/lib/chef/resource/macports_package.rb +3 -1
  246. data/lib/chef/resource/pacman_package.rb +2 -1
  247. data/lib/chef/resource/paludis_package.rb +3 -1
  248. data/lib/chef/resource/perl.rb +1 -0
  249. data/lib/chef/resource/powershell_script.rb +0 -2
  250. data/lib/chef/resource/python.rb +1 -1
  251. data/lib/chef/resource/remote_directory.rb +1 -2
  252. data/lib/chef/resource/remote_file.rb +1 -1
  253. data/lib/chef/resource/rpm_package.rb +2 -1
  254. data/lib/chef/resource/ruby.rb +1 -0
  255. data/lib/chef/resource/ruby_block.rb +3 -0
  256. data/lib/chef/resource/script.rb +2 -25
  257. data/lib/chef/resource/service.rb +0 -4
  258. data/lib/chef/resource/smartos_package.rb +3 -4
  259. data/lib/chef/resource/solaris_package.rb +7 -1
  260. data/lib/chef/resource/subversion.rb +0 -1
  261. data/lib/chef/resource/template.rb +2 -3
  262. data/lib/chef/resource/timestamped_deploy.rb +1 -2
  263. data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
  264. data/lib/chef/resource/windows_package.rb +3 -4
  265. data/lib/chef/resource/windows_script.rb +3 -0
  266. data/lib/chef/resource/windows_service.rb +2 -2
  267. data/lib/chef/resource/yum_package.rb +3 -1
  268. data/lib/chef/resource_collection.rb +50 -227
  269. data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -0
  270. data/lib/chef/resource_collection/resource_list.rb +89 -0
  271. data/lib/chef/resource_collection/resource_set.rb +170 -0
  272. data/lib/chef/resources.rb +2 -0
  273. data/lib/chef/role.rb +1 -1
  274. data/lib/chef/run_context.rb +5 -1
  275. data/lib/chef/shell/ext.rb +1 -1
  276. data/lib/chef/util/backup.rb +3 -2
  277. data/lib/chef/util/dsc/configuration_generator.rb +115 -0
  278. data/lib/chef/util/dsc/lcm_output_parser.rb +133 -0
  279. data/lib/chef/util/dsc/local_configuration_manager.rb +141 -0
  280. data/lib/chef/util/dsc/resource_info.rb +26 -0
  281. data/lib/chef/util/path_helper.rb +12 -0
  282. data/lib/chef/util/powershell/cmdlet.rb +136 -0
  283. data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
  284. data/lib/chef/version.rb +1 -1
  285. data/lib/chef/win32/api/system.rb +9 -0
  286. data/lib/chef/win32/version.rb +2 -0
  287. data/spec/.DS_Store +0 -0
  288. data/spec/data/.DS_Store +0 -0
  289. data/spec/data/bootstrap/test-hints.erb +1 -1
  290. data/spec/data/bootstrap/test.erb +1 -1
  291. data/spec/data/cb_version_cookbooks/cookbook2/files/test.txt +0 -0
  292. data/spec/data/cb_version_cookbooks/cookbook2/templates/test.erb +0 -0
  293. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -0
  294. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -0
  295. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -0
  296. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -0
  297. data/spec/data/lwrp/.DS_Store +0 -0
  298. data/spec/data/lwrp/providers/.DS_Store +0 -0
  299. data/spec/data/lwrp/providers/buck_passer.rb +9 -2
  300. data/spec/data/lwrp/resources/.DS_Store +0 -0
  301. data/spec/data/lwrp/resources/foo.rb +3 -2
  302. data/spec/data/lwrp_override/.DS_Store +0 -0
  303. data/spec/data/lwrp_override/providers/.DS_Store +0 -0
  304. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -10
  305. data/spec/data/lwrp_override/resources/.DS_Store +0 -0
  306. data/spec/data/lwrp_override/resources/foo.rb +4 -3
  307. data/spec/functional/assets/chefinittest +34 -0
  308. data/spec/functional/assets/testchefsubsys +11 -0
  309. data/spec/functional/dsl/reboot_pending_spec.rb +19 -16
  310. data/spec/functional/event_loggers/windows_eventlog_spec.rb +82 -0
  311. data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
  312. data/spec/functional/knife/exec_spec.rb +1 -1
  313. data/spec/functional/resource/aix_service_spec.rb +136 -0
  314. data/spec/functional/resource/aixinit_service_spec.rb +211 -0
  315. data/spec/functional/resource/base.rb +1 -0
  316. data/spec/functional/resource/batch_spec.rb +4 -11
  317. data/spec/functional/resource/cron_spec.rb +7 -1
  318. data/spec/functional/resource/dsc_script_spec.rb +382 -0
  319. data/spec/functional/resource/env_spec.rb +54 -0
  320. data/spec/functional/resource/execute_spec.rb +113 -0
  321. data/spec/functional/resource/file_spec.rb +2 -0
  322. data/spec/functional/resource/group_spec.rb +7 -4
  323. data/spec/functional/resource/powershell_spec.rb +198 -185
  324. data/spec/functional/resource/rpm_spec.rb +5 -4
  325. data/spec/functional/resource/user/dscl_spec.rb +2 -1
  326. data/spec/functional/util/path_helper_spec.rb +37 -0
  327. data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
  328. data/spec/integration/client/client_spec.rb +1 -1
  329. data/spec/integration/client/ipv6_spec.rb +1 -1
  330. data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
  331. data/spec/integration/knife/chef_repo_path_spec.rb +1 -1
  332. data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
  333. data/spec/integration/knife/chefignore_spec.rb +1 -1
  334. data/spec/integration/knife/common_options_spec.rb +1 -1
  335. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  336. data/spec/integration/knife/delete_spec.rb +1 -1
  337. data/spec/integration/knife/deps_spec.rb +1 -1
  338. data/spec/integration/knife/diff_spec.rb +1 -1
  339. data/spec/integration/knife/download_spec.rb +1 -1
  340. data/spec/integration/knife/list_spec.rb +1 -1
  341. data/spec/integration/knife/raw_spec.rb +1 -1
  342. data/spec/integration/knife/redirection_spec.rb +1 -1
  343. data/spec/integration/knife/serve_spec.rb +1 -1
  344. data/spec/integration/knife/show_spec.rb +1 -1
  345. data/spec/integration/knife/upload_spec.rb +4 -3
  346. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  347. data/spec/spec_helper.rb +15 -0
  348. data/spec/support/chef_helpers.rb +1 -0
  349. data/spec/support/lib/chef/provider/snakeoil.rb +1 -0
  350. data/spec/support/lib/chef/resource/zen_follower.rb +1 -7
  351. data/spec/support/platform_helpers.rb +28 -0
  352. data/spec/support/shared/functional/file_resource.rb +6 -0
  353. data/spec/support/shared/functional/windows_script.rb +118 -0
  354. data/spec/support/shared/integration/integration_helper.rb +5 -2
  355. data/spec/support/shared/matchers/exit_with_code.rb +28 -0
  356. data/spec/support/shared/matchers/match_environment_variable.rb +17 -0
  357. data/spec/support/shared/shared_examples.rb +14 -0
  358. data/spec/support/shared/unit/execute_resource.rb +0 -7
  359. data/spec/support/shared/unit/resource/static_provider_resolution.rb +71 -0
  360. data/spec/support/shared/unit/script_resource.rb +1 -1
  361. data/spec/support/shared/unit/windows_script_resource.rb +35 -2
  362. data/spec/tiny_server.rb +1 -2
  363. data/spec/unit/api_client_spec.rb +5 -1
  364. data/spec/unit/application/{apply.rb → apply_spec.rb} +13 -5
  365. data/spec/unit/application/client_spec.rb +106 -13
  366. data/spec/unit/application/solo_spec.rb +25 -1
  367. data/spec/unit/client_spec.rb +1 -26
  368. data/spec/unit/config_fetcher_spec.rb +2 -1
  369. data/spec/unit/config_spec.rb +91 -2
  370. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +8 -0
  371. data/spec/unit/cookbook/metadata_spec.rb +43 -6
  372. data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
  373. data/spec/unit/cookbook_loader_spec.rb +4 -2
  374. data/spec/unit/cookbook_version_spec.rb +83 -2
  375. data/spec/unit/data_bag_item_spec.rb +5 -1
  376. data/spec/unit/data_bag_spec.rb +6 -1
  377. data/spec/unit/dsl/data_query_spec.rb +8 -110
  378. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -0
  379. data/spec/unit/encrypted_data_bag_item_spec.rb +16 -23
  380. data/spec/unit/environment_spec.rb +6 -2
  381. data/spec/unit/exceptions_spec.rb +6 -0
  382. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +16 -15
  383. data/spec/unit/json_compat_spec.rb +12 -2
  384. data/spec/unit/knife/bootstrap_spec.rb +16 -63
  385. data/spec/unit/knife/cookbook_site_share_spec.rb +59 -6
  386. data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -37
  387. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  388. data/spec/unit/knife/core/ui_spec.rb +28 -0
  389. data/spec/unit/knife/data_bag_create_spec.rb +63 -71
  390. data/spec/unit/knife/data_bag_edit_spec.rb +83 -49
  391. data/spec/unit/knife/data_bag_from_file_spec.rb +104 -126
  392. data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -0
  393. data/spec/unit/knife/data_bag_show_spec.rb +74 -72
  394. data/spec/unit/knife/environment_from_file_spec.rb +3 -2
  395. data/spec/unit/knife/ssl_check_spec.rb +46 -1
  396. data/spec/unit/knife/status_spec.rb +1 -2
  397. data/spec/unit/knife_spec.rb +18 -1
  398. data/spec/unit/lwrp_spec.rb +29 -8
  399. data/spec/unit/mixin/homebrew_user_spec.rb +100 -0
  400. data/spec/unit/node_map_spec.rb +155 -0
  401. data/spec/unit/node_spec.rb +11 -0
  402. data/spec/unit/platform/query_helpers_spec.rb +23 -0
  403. data/spec/unit/platform_spec.rb +23 -0
  404. data/spec/unit/provider/breakpoint_spec.rb +9 -9
  405. data/spec/unit/provider/cookbook_file/content_spec.rb +3 -3
  406. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  407. data/spec/unit/provider/cron/unix_spec.rb +78 -60
  408. data/spec/unit/provider/cron_spec.rb +175 -175
  409. data/spec/unit/provider/deploy/revision_spec.rb +22 -21
  410. data/spec/unit/provider/deploy/timestamped_spec.rb +3 -3
  411. data/spec/unit/provider/deploy_spec.rb +231 -230
  412. data/spec/unit/provider/directory_spec.rb +55 -55
  413. data/spec/unit/provider/dsc_script_spec.rb +174 -0
  414. data/spec/unit/provider/env/windows_spec.rb +70 -34
  415. data/spec/unit/provider/env_spec.rb +95 -49
  416. data/spec/unit/provider/erl_call_spec.rb +9 -9
  417. data/spec/unit/provider/execute_spec.rb +43 -27
  418. data/spec/unit/provider/file/content_spec.rb +9 -9
  419. data/spec/unit/provider/file_spec.rb +1 -1
  420. data/spec/unit/provider/git_spec.rb +221 -159
  421. data/spec/unit/provider/group/dscl_spec.rb +64 -63
  422. data/spec/unit/provider/group/gpasswd_spec.rb +14 -14
  423. data/spec/unit/provider/group/groupadd_spec.rb +33 -33
  424. data/spec/unit/provider/group/groupmod_spec.rb +23 -23
  425. data/spec/unit/provider/group/pw_spec.rb +21 -21
  426. data/spec/unit/provider/group/usermod_spec.rb +20 -20
  427. data/spec/unit/provider/group/windows_spec.rb +15 -15
  428. data/spec/unit/provider/group_spec.rb +76 -76
  429. data/spec/unit/provider/http_request_spec.rb +30 -30
  430. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  431. data/spec/unit/provider/ifconfig/debian_spec.rb +25 -9
  432. data/spec/unit/provider/ifconfig/redhat_spec.rb +13 -13
  433. data/spec/unit/provider/ifconfig_spec.rb +43 -43
  434. data/spec/unit/provider/link_spec.rb +60 -60
  435. data/spec/unit/provider/log_spec.rb +0 -4
  436. data/spec/unit/provider/mdadm_spec.rb +23 -23
  437. data/spec/unit/provider/mount/aix_spec.rb +17 -17
  438. data/spec/unit/provider/mount/mount_spec.rb +115 -119
  439. data/spec/unit/provider/mount/solaris_spec.rb +72 -72
  440. data/spec/unit/provider/mount/windows_spec.rb +24 -24
  441. data/spec/unit/provider/ohai_spec.rb +11 -11
  442. data/spec/unit/provider/package/aix_spec.rb +34 -34
  443. data/spec/unit/provider/package/apt_spec.rb +36 -36
  444. data/spec/unit/provider/package/dpkg_spec.rb +27 -27
  445. data/spec/unit/provider/package/easy_install_spec.rb +16 -16
  446. data/spec/unit/provider/package/freebsd/pkg_spec.rb +53 -53
  447. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +24 -24
  448. data/spec/unit/provider/package/freebsd/port_spec.rb +45 -35
  449. data/spec/unit/provider/package/homebrew_spec.rb +266 -0
  450. data/spec/unit/provider/package/ips_spec.rb +34 -34
  451. data/spec/unit/provider/package/macports_spec.rb +49 -49
  452. data/spec/unit/provider/package/pacman_spec.rb +35 -39
  453. data/spec/unit/provider/package/paludis_spec.rb +20 -20
  454. data/spec/unit/provider/package/portage_spec.rb +38 -38
  455. data/spec/unit/provider/package/rpm_spec.rb +29 -29
  456. data/spec/unit/provider/package/rubygems_spec.rb +284 -270
  457. data/spec/unit/provider/package/smartos_spec.rb +15 -15
  458. data/spec/unit/provider/package/solaris_spec.rb +35 -35
  459. data/spec/unit/provider/package/windows/msi_spec.rb +3 -3
  460. data/spec/unit/provider/package/windows_spec.rb +6 -6
  461. data/spec/unit/provider/package/yum_spec.rb +416 -416
  462. data/spec/unit/provider/package/zypper_spec.rb +47 -47
  463. data/spec/unit/provider/package_spec.rb +107 -107
  464. data/spec/unit/provider/powershell_spec.rb +1 -1
  465. data/spec/unit/provider/registry_key_spec.rb +61 -61
  466. data/spec/unit/provider/remote_directory_spec.rb +36 -36
  467. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +24 -24
  468. data/spec/unit/provider/remote_file/content_spec.rb +45 -45
  469. data/spec/unit/provider/remote_file/fetcher_spec.rb +9 -9
  470. data/spec/unit/provider/remote_file/ftp_spec.rb +32 -32
  471. data/spec/unit/provider/remote_file/http_spec.rb +44 -44
  472. data/spec/unit/provider/remote_file/local_file_spec.rb +9 -9
  473. data/spec/unit/provider/remote_file_spec.rb +3 -3
  474. data/spec/unit/provider/route_spec.rb +63 -63
  475. data/spec/unit/provider/ruby_block_spec.rb +4 -4
  476. data/spec/unit/provider/script_spec.rb +12 -12
  477. data/spec/unit/provider/service/aix_service_spec.rb +181 -0
  478. data/spec/unit/provider/service/aixinit_service_spec.rb +269 -0
  479. data/spec/unit/provider/service/arch_service_spec.rb +48 -48
  480. data/spec/unit/provider/service/debian_service_spec.rb +40 -40
  481. data/spec/unit/provider/service/gentoo_service_spec.rb +28 -28
  482. data/spec/unit/provider/service/init_service_spec.rb +39 -39
  483. data/spec/unit/provider/service/insserv_service_spec.rb +8 -8
  484. data/spec/unit/provider/service/invokercd_service_spec.rb +35 -35
  485. data/spec/unit/provider/service/macosx_spec.rb +49 -49
  486. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  487. data/spec/unit/provider/service/simple_service_spec.rb +28 -28
  488. data/spec/unit/provider/service/solaris_smf_service_spec.rb +43 -46
  489. data/spec/unit/provider/service/systemd_service_spec.rb +63 -63
  490. data/spec/unit/provider/service/upstart_service_spec.rb +78 -78
  491. data/spec/unit/provider/service/windows_spec.rb +92 -92
  492. data/spec/unit/provider/service_spec.rb +40 -40
  493. data/spec/unit/provider/subversion_spec.rb +80 -80
  494. data/spec/unit/provider/template/content_spec.rb +9 -9
  495. data/spec/unit/provider/template_spec.rb +6 -6
  496. data/spec/unit/provider/user/dscl_spec.rb +170 -167
  497. data/spec/unit/provider/user/pw_spec.rb +48 -48
  498. data/spec/unit/provider/user/solaris_spec.rb +8 -8
  499. data/spec/unit/provider/user/useradd_spec.rb +1 -1
  500. data/spec/unit/provider/user/windows_spec.rb +26 -26
  501. data/spec/unit/provider/user_spec.rb +72 -72
  502. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +4 -4
  503. data/spec/unit/provider_resolver_spec.rb +387 -0
  504. data/spec/unit/recipe_spec.rb +33 -12
  505. data/spec/unit/resource/apt_package_spec.rb +10 -13
  506. data/spec/unit/resource/bash_spec.rb +4 -4
  507. data/spec/unit/resource/batch_spec.rb +1 -1
  508. data/spec/unit/resource/breakpoint_spec.rb +11 -7
  509. data/spec/unit/resource/chef_gem_spec.rb +8 -15
  510. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  511. data/spec/unit/resource/conditional_spec.rb +35 -16
  512. data/spec/unit/resource/cookbook_file_spec.rb +13 -13
  513. data/spec/unit/resource/cron_spec.rb +37 -37
  514. data/spec/unit/resource/csh_spec.rb +4 -4
  515. data/spec/unit/resource/deploy_revision_spec.rb +13 -18
  516. data/spec/unit/resource/deploy_spec.rb +60 -55
  517. data/spec/unit/resource/directory_spec.rb +18 -18
  518. data/spec/unit/resource/dpkg_package_spec.rb +8 -14
  519. data/spec/unit/resource/dsc_script_spec.rb +98 -0
  520. data/spec/unit/resource/easy_install_package_spec.rb +9 -18
  521. data/spec/unit/resource/env_spec.rb +12 -12
  522. data/spec/unit/resource/erl_call_spec.rb +11 -11
  523. data/spec/unit/resource/execute_spec.rb +5 -0
  524. data/spec/unit/resource/file_spec.rb +29 -29
  525. data/spec/unit/resource/freebsd_package_spec.rb +11 -12
  526. data/spec/unit/resource/gem_package_spec.rb +8 -15
  527. data/spec/unit/resource/git_spec.rb +12 -8
  528. data/spec/unit/resource/group_spec.rb +27 -27
  529. data/spec/unit/resource/homebrew_package_spec.rb +50 -0
  530. data/spec/unit/resource/http_request_spec.rb +6 -6
  531. data/spec/unit/resource/ifconfig_spec.rb +8 -8
  532. data/spec/unit/resource/ips_package_spec.rb +10 -13
  533. data/spec/unit/resource/link_spec.rb +25 -25
  534. data/spec/unit/resource/log_spec.rb +9 -9
  535. data/spec/unit/resource/macports_package_spec.rb +8 -13
  536. data/spec/unit/resource/mdadm_spec.rb +18 -18
  537. data/spec/unit/resource/mount_spec.rb +45 -45
  538. data/spec/unit/resource/ohai_spec.rb +7 -7
  539. data/spec/unit/resource/package_spec.rb +12 -12
  540. data/spec/unit/resource/pacman_package_spec.rb +8 -14
  541. data/spec/unit/resource/perl_spec.rb +4 -4
  542. data/spec/unit/resource/portage_package_spec.rb +3 -3
  543. data/spec/unit/resource/powershell_spec.rb +7 -7
  544. data/spec/unit/resource/python_spec.rb +4 -4
  545. data/spec/unit/resource/registry_key_spec.rb +32 -32
  546. data/spec/unit/resource/remote_directory_spec.rb +17 -17
  547. data/spec/unit/resource/remote_file_spec.rb +41 -41
  548. data/spec/unit/resource/route_spec.rb +19 -19
  549. data/spec/unit/resource/rpm_package_spec.rb +9 -13
  550. data/spec/unit/resource/ruby_block_spec.rb +8 -8
  551. data/spec/unit/resource/ruby_spec.rb +4 -4
  552. data/spec/unit/resource/scm_spec.rb +40 -40
  553. data/spec/unit/resource/script_spec.rb +2 -2
  554. data/spec/unit/resource/service_spec.rb +37 -47
  555. data/spec/unit/resource/smartos_package_spec.rb +10 -15
  556. data/spec/unit/resource/solaris_package_spec.rb +13 -28
  557. data/spec/unit/resource/subversion_spec.rb +16 -12
  558. data/spec/unit/resource/template_spec.rb +35 -35
  559. data/spec/unit/resource/timestamped_deploy_spec.rb +30 -4
  560. data/spec/unit/resource/user_spec.rb +23 -23
  561. data/spec/unit/resource/windows_package_spec.rb +17 -10
  562. data/spec/unit/resource/windows_service_spec.rb +9 -6
  563. data/spec/unit/resource/yum_package_spec.rb +16 -21
  564. data/spec/unit/resource_collection/resource_list_spec.rb +137 -0
  565. data/spec/unit/resource_collection/resource_set_spec.rb +199 -0
  566. data/spec/unit/resource_collection_spec.rb +73 -92
  567. data/spec/unit/resource_definition_spec.rb +38 -40
  568. data/spec/unit/resource_reporter_spec.rb +3 -3
  569. data/spec/unit/resource_spec.rb +68 -33
  570. data/spec/unit/rest_spec.rb +83 -76
  571. data/spec/unit/role_spec.rb +5 -0
  572. data/spec/unit/run_list_spec.rb +5 -1
  573. data/spec/unit/runner_spec.rb +245 -238
  574. data/spec/unit/shell/shell_ext_spec.rb +1 -1
  575. data/spec/unit/user_spec.rb +5 -1
  576. data/spec/unit/util/dsc/configuration_generator_spec.rb +171 -0
  577. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +169 -0
  578. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +139 -0
  579. data/spec/unit/util/path_helper_spec.rb +23 -1
  580. data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
  581. data/spec/unit/workstation_config_loader_spec.rb +1 -1
  582. metadata +303 -196
  583. checksums.yaml +0 -7
  584. data/distro/README +0 -2
  585. data/distro/arch/etc/conf.d/chef-client.conf +0 -5
  586. data/distro/arch/etc/conf.d/chef-expander.conf +0 -8
  587. data/distro/arch/etc/conf.d/chef-server-webui.conf +0 -10
  588. data/distro/arch/etc/conf.d/chef-server.conf +0 -10
  589. data/distro/arch/etc/conf.d/chef-solr.conf +0 -8
  590. data/distro/arch/etc/rc.d/chef-client +0 -90
  591. data/distro/arch/etc/rc.d/chef-expander +0 -78
  592. data/distro/arch/etc/rc.d/chef-server +0 -78
  593. data/distro/arch/etc/rc.d/chef-server-webui +0 -78
  594. data/distro/arch/etc/rc.d/chef-solr +0 -78
  595. data/distro/debian/etc/default/chef-client +0 -4
  596. data/distro/debian/etc/default/chef-expander +0 -8
  597. data/distro/debian/etc/default/chef-server +0 -9
  598. data/distro/debian/etc/default/chef-server-webui +0 -9
  599. data/distro/debian/etc/default/chef-solr +0 -8
  600. data/distro/debian/etc/init.d/chef-client +0 -212
  601. data/distro/debian/etc/init.d/chef-expander +0 -176
  602. data/distro/debian/etc/init.d/chef-server +0 -122
  603. data/distro/debian/etc/init.d/chef-server-webui +0 -123
  604. data/distro/debian/etc/init.d/chef-solr +0 -176
  605. data/distro/debian/etc/init/chef-client.conf +0 -17
  606. data/distro/debian/etc/init/chef-expander.conf +0 -17
  607. data/distro/debian/etc/init/chef-server-webui.conf +0 -17
  608. data/distro/debian/etc/init/chef-server.conf +0 -17
  609. data/distro/debian/etc/init/chef-solr.conf +0 -17
  610. data/distro/redhat/etc/init.d/chef-client +0 -121
  611. data/distro/redhat/etc/init.d/chef-expander +0 -104
  612. data/distro/redhat/etc/init.d/chef-server +0 -112
  613. data/distro/redhat/etc/init.d/chef-server-webui +0 -112
  614. data/distro/redhat/etc/init.d/chef-solr +0 -104
  615. data/distro/redhat/etc/logrotate.d/chef-client +0 -8
  616. data/distro/redhat/etc/logrotate.d/chef-expander +0 -8
  617. data/distro/redhat/etc/logrotate.d/chef-server +0 -8
  618. data/distro/redhat/etc/logrotate.d/chef-server-webui +0 -8
  619. data/distro/redhat/etc/logrotate.d/chef-solr +0 -8
  620. data/distro/redhat/etc/sysconfig/chef-client +0 -15
  621. data/distro/redhat/etc/sysconfig/chef-expander +0 -7
  622. data/distro/redhat/etc/sysconfig/chef-server +0 -14
  623. data/distro/redhat/etc/sysconfig/chef-server-webui +0 -14
  624. data/distro/redhat/etc/sysconfig/chef-solr +0 -8
  625. data/distro/windows/service_manager.rb +0 -20
  626. data/lib/chef/resource_platform_map.rb +0 -151
  627. data/spec/support/shared/matchers.rb +0 -17
  628. data/spec/unit/resource_platform_map_spec.rb +0 -164
@@ -25,16 +25,16 @@ describe Chef::Resource::Csh do
25
25
  end
26
26
 
27
27
  it "should create a new Chef::Resource::Csh" do
28
- @resource.should be_a_kind_of(Chef::Resource)
29
- @resource.should be_a_kind_of(Chef::Resource::Csh)
28
+ expect(@resource).to be_a_kind_of(Chef::Resource)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource::Csh)
30
30
  end
31
31
 
32
32
  it "should have a resource name of :csh" do
33
- @resource.resource_name.should eql(:csh)
33
+ expect(@resource.resource_name).to eql(:csh)
34
34
  end
35
35
 
36
36
  it "should have an interpreter of csh" do
37
- @resource.interpreter.should eql("csh")
37
+ expect(@resource.interpreter).to eql("csh")
38
38
  end
39
39
 
40
40
  end
@@ -17,31 +17,26 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::DeployRevision do
22
23
 
23
- it "defaults to the revision deploy provider" do
24
- @resource = Chef::Resource::DeployRevision.new("deploy _this_!")
25
- @resource.provider.should == Chef::Provider::Deploy::Revision
26
- end
27
-
28
- it "has a name of deploy_revision" do
29
- @resource = Chef::Resource::DeployRevision.new("deploy _this_!")
30
- @resource.resource_name.should == :deploy_revision
31
- end
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::DeployRevision,
26
+ provider: Chef::Provider::Deploy::Revision,
27
+ name: :deploy_revision,
28
+ action: :deploy,
29
+ )
32
30
 
33
31
  end
34
32
 
35
33
  describe Chef::Resource::DeployBranch do
36
34
 
37
- it "defaults to the revision deploy provider" do
38
- @resource = Chef::Resource::DeployBranch.new("deploy _this_!")
39
- @resource.provider.should == Chef::Provider::Deploy::Revision
40
- end
41
-
42
- it "has a name of deploy_branch" do
43
- @resource = Chef::Resource::DeployBranch.new("deploy _this_!")
44
- @resource.resource_name.should == :deploy_branch
45
- end
35
+ static_provider_resolution(
36
+ resource: Chef::Resource::DeployBranch,
37
+ provider: Chef::Provider::Deploy::Revision,
38
+ name: :deploy_branch,
39
+ action: :deploy,
40
+ )
46
41
 
47
42
  end
@@ -17,35 +17,44 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::Deploy do
22
23
 
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::Deploy,
26
+ provider: Chef::Provider::Deploy::Timestamped,
27
+ name: :deploy,
28
+ action: :deploy,
29
+ )
30
+
31
+
23
32
  class << self
24
33
  def resource_has_a_string_attribute(attr_name)
25
34
  it "has a String attribute for #{attr_name.to_s}" do
26
35
  @resource.send(attr_name, "this is a string")
27
- @resource.send(attr_name).should eql("this is a string")
28
- lambda {@resource.send(attr_name, 8675309)}.should raise_error(ArgumentError)
36
+ expect(@resource.send(attr_name)).to eql("this is a string")
37
+ expect {@resource.send(attr_name, 8675309)}.to raise_error(ArgumentError)
29
38
  end
30
39
  end
31
40
 
32
41
  def resource_has_a_boolean_attribute(attr_name, opts={:defaults_to=>false})
33
42
  it "has a Boolean attribute for #{attr_name.to_s}" do
34
- @resource.send(attr_name).should eql(opts[:defaults_to])
43
+ expect(@resource.send(attr_name)).to eql(opts[:defaults_to])
35
44
  @resource.send(attr_name, !opts[:defaults_to])
36
- @resource.send(attr_name).should eql( !opts[:defaults_to] )
45
+ expect(@resource.send(attr_name)).to eql( !opts[:defaults_to] )
37
46
  end
38
47
  end
39
48
 
40
49
  def resource_has_a_callback_attribute(attr_name)
41
50
  it "has a Callback attribute #{attr_name}" do
42
51
  callback_block = lambda { :noop }
43
- lambda {@resource.send(attr_name, &callback_block)}.should_not raise_error
44
- @resource.send(attr_name).should == callback_block
52
+ expect {@resource.send(attr_name, &callback_block)}.not_to raise_error
53
+ expect(@resource.send(attr_name)).to eq(callback_block)
45
54
  callback_file = "path/to/callback.rb"
46
- lambda {@resource.send(attr_name, callback_file)}.should_not raise_error
47
- @resource.send(attr_name).should == callback_file
48
- lambda {@resource.send(attr_name, :this_is_fail)}.should raise_error(ArgumentError)
55
+ expect {@resource.send(attr_name, callback_file)}.not_to raise_error
56
+ expect(@resource.send(attr_name)).to eq(callback_file)
57
+ expect {@resource.send(attr_name, :this_is_fail)}.to raise_error(ArgumentError)
49
58
  end
50
59
  end
51
60
  end
@@ -76,7 +85,7 @@ describe Chef::Resource::Deploy do
76
85
  resource_has_a_boolean_attribute(:shallow_clone, :defaults_to=>false)
77
86
 
78
87
  it "uses the first argument as the deploy directory" do
79
- @resource.deploy_to.should eql("/my/deploy/dir")
88
+ expect(@resource.deploy_to).to eql("/my/deploy/dir")
80
89
  end
81
90
 
82
91
  # For git, any revision, branch, tag, whatever is resolved to a SHA1 ref.
@@ -84,100 +93,100 @@ describe Chef::Resource::Deploy do
84
93
  # Therefore, revision and branch ARE NOT SEPARATE THINGS
85
94
  it "aliases #revision as #branch" do
86
95
  @resource.branch "stable"
87
- @resource.revision.should eql("stable")
96
+ expect(@resource.revision).to eql("stable")
88
97
  end
89
98
 
90
99
  it "takes the SCM resource to use as a constant, and defaults to git" do
91
- @resource.scm_provider.should eql(Chef::Provider::Git)
100
+ expect(@resource.scm_provider).to eql(Chef::Provider::Git)
92
101
  @resource.scm_provider Chef::Provider::Subversion
93
- @resource.scm_provider.should eql(Chef::Provider::Subversion)
102
+ expect(@resource.scm_provider).to eql(Chef::Provider::Subversion)
94
103
  end
95
104
 
96
105
  it "allows scm providers to be set via symbol" do
97
- @resource.scm_provider.should == Chef::Provider::Git
106
+ expect(@resource.scm_provider).to eq(Chef::Provider::Git)
98
107
  @resource.scm_provider :subversion
99
- @resource.scm_provider.should == Chef::Provider::Subversion
108
+ expect(@resource.scm_provider).to eq(Chef::Provider::Subversion)
100
109
  end
101
110
 
102
111
  it "allows scm providers to be set via string" do
103
- @resource.scm_provider.should == Chef::Provider::Git
112
+ expect(@resource.scm_provider).to eq(Chef::Provider::Git)
104
113
  @resource.scm_provider "subversion"
105
- @resource.scm_provider.should == Chef::Provider::Subversion
114
+ expect(@resource.scm_provider).to eq(Chef::Provider::Subversion)
106
115
  end
107
116
 
108
117
  it "has a boolean attribute for svn_force_export defaulting to false" do
109
- @resource.svn_force_export.should be_false
118
+ expect(@resource.svn_force_export).to be_false
110
119
  @resource.svn_force_export true
111
- @resource.svn_force_export.should be_true
112
- lambda {@resource.svn_force_export(10053)}.should raise_error(ArgumentError)
120
+ expect(@resource.svn_force_export).to be_true
121
+ expect {@resource.svn_force_export(10053)}.to raise_error(ArgumentError)
113
122
  end
114
123
 
115
124
  it "takes arbitrary environment variables in a hash" do
116
125
  @resource.environment "RAILS_ENV" => "production"
117
- @resource.environment.should == {"RAILS_ENV" => "production"}
126
+ expect(@resource.environment).to eq({"RAILS_ENV" => "production"})
118
127
  end
119
128
 
120
129
  it "takes string arguments to environment for backwards compat, setting RAILS_ENV, RACK_ENV, and MERB_ENV" do
121
130
  @resource.environment "production"
122
- @resource.environment.should == {"RAILS_ENV"=>"production", "RACK_ENV"=>"production","MERB_ENV"=>"production"}
131
+ expect(@resource.environment).to eq({"RAILS_ENV"=>"production", "RACK_ENV"=>"production","MERB_ENV"=>"production"})
123
132
  end
124
133
 
125
134
  it "sets destination to $deploy_to/shared/$repository_cache" do
126
- @resource.destination.should eql("/my/deploy/dir/shared/cached-copy")
135
+ expect(@resource.destination).to eql("/my/deploy/dir/shared/cached-copy")
127
136
  end
128
137
 
129
138
  it "sets shared_path to $deploy_to/shared" do
130
- @resource.shared_path.should eql("/my/deploy/dir/shared")
139
+ expect(@resource.shared_path).to eql("/my/deploy/dir/shared")
131
140
  end
132
141
 
133
142
  it "sets current_path to $deploy_to/current" do
134
- @resource.current_path.should eql("/my/deploy/dir/current")
143
+ expect(@resource.current_path).to eql("/my/deploy/dir/current")
135
144
  end
136
145
 
137
146
  it "gets the current_path correct even if the shared_path is set (regression test)" do
138
147
  @resource.shared_path
139
- @resource.current_path.should eql("/my/deploy/dir/current")
148
+ expect(@resource.current_path).to eql("/my/deploy/dir/current")
140
149
  end
141
150
 
142
151
  it "gives #depth as 5 if shallow clone is true, nil otherwise" do
143
- @resource.depth.should be_nil
152
+ expect(@resource.depth).to be_nil
144
153
  @resource.shallow_clone true
145
- @resource.depth.should eql("5")
154
+ expect(@resource.depth).to eql("5")
146
155
  end
147
156
 
148
157
  it "aliases repo as repository" do
149
158
  @resource.repository "git@github.com/opcode/cookbooks.git"
150
- @resource.repo.should eql("git@github.com/opcode/cookbooks.git")
159
+ expect(@resource.repo).to eql("git@github.com/opcode/cookbooks.git")
151
160
  end
152
161
 
153
162
  it "aliases git_ssh_wrapper as ssh_wrapper" do
154
163
  @resource.ssh_wrapper "git_my_repo.sh"
155
- @resource.git_ssh_wrapper.should eql("git_my_repo.sh")
164
+ expect(@resource.git_ssh_wrapper).to eql("git_my_repo.sh")
156
165
  end
157
166
 
158
167
  it "has an Array attribute purge_before_symlink, default: log, tmp/pids, public/system" do
159
- @resource.purge_before_symlink.should == %w{ log tmp/pids public/system }
168
+ expect(@resource.purge_before_symlink).to eq(%w{ log tmp/pids public/system })
160
169
  @resource.purge_before_symlink %w{foo bar baz}
161
- @resource.purge_before_symlink.should == %w{foo bar baz}
170
+ expect(@resource.purge_before_symlink).to eq(%w{foo bar baz})
162
171
  end
163
172
 
164
173
  it "has an Array attribute create_dirs_before_symlink, default: tmp, public, config" do
165
- @resource.create_dirs_before_symlink.should == %w{tmp public config}
174
+ expect(@resource.create_dirs_before_symlink).to eq(%w{tmp public config})
166
175
  @resource.create_dirs_before_symlink %w{foo bar baz}
167
- @resource.create_dirs_before_symlink.should == %w{foo bar baz}
176
+ expect(@resource.create_dirs_before_symlink).to eq(%w{foo bar baz})
168
177
  end
169
178
 
170
179
  it 'has a Hash attribute symlinks, default: {"system" => "public/system", "pids" => "tmp/pids", "log" => "log"}' do
171
180
  default = { "system" => "public/system", "pids" => "tmp/pids", "log" => "log"}
172
- @resource.symlinks.should == default
181
+ expect(@resource.symlinks).to eq(default)
173
182
  @resource.symlinks "foo" => "bar/baz"
174
- @resource.symlinks.should == {"foo" => "bar/baz"}
183
+ expect(@resource.symlinks).to eq({"foo" => "bar/baz"})
175
184
  end
176
185
 
177
186
  it 'has a Hash attribute symlink_before_migrate, default "config/database.yml" => "config/database.yml"' do
178
- @resource.symlink_before_migrate.should == {"config/database.yml" => "config/database.yml"}
187
+ expect(@resource.symlink_before_migrate).to eq({"config/database.yml" => "config/database.yml"})
179
188
  @resource.symlink_before_migrate "wtf?" => "wtf is going on"
180
- @resource.symlink_before_migrate.should == {"wtf?" => "wtf is going on"}
189
+ expect(@resource.symlink_before_migrate).to eq({"wtf?" => "wtf is going on"})
181
190
  end
182
191
 
183
192
  resource_has_a_callback_attribute :before_migrate
@@ -187,59 +196,55 @@ describe Chef::Resource::Deploy do
187
196
 
188
197
  it "aliases restart_command as restart" do
189
198
  @resource.restart "foobaz"
190
- @resource.restart_command.should == "foobaz"
199
+ expect(@resource.restart_command).to eq("foobaz")
191
200
  end
192
201
 
193
202
  it "takes a block for the restart parameter" do
194
203
  restart_like_this = lambda {p :noop}
195
204
  @resource.restart(&restart_like_this)
196
- @resource.restart.should == restart_like_this
197
- end
198
-
199
- it "defaults to using the Deploy::Timestamped provider" do
200
- @resource.provider.should == Chef::Provider::Deploy::Timestamped
205
+ expect(@resource.restart).to eq(restart_like_this)
201
206
  end
202
207
 
203
208
  it "allows providers to be set with a full class name" do
204
209
  @resource.provider Chef::Provider::Deploy::Timestamped
205
- @resource.provider.should == Chef::Provider::Deploy::Timestamped
210
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Timestamped)
206
211
  end
207
212
 
208
213
  it "allows deploy providers to be set via symbol" do
209
214
  @resource.provider :revision
210
- @resource.provider.should == Chef::Provider::Deploy::Revision
215
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Revision)
211
216
  end
212
217
 
213
218
  it "allows deploy providers to be set via string" do
214
219
  @resource.provider "revision"
215
- @resource.provider.should == Chef::Provider::Deploy::Revision
220
+ expect(@resource.provider).to eq(Chef::Provider::Deploy::Revision)
216
221
  end
217
222
 
218
223
  it "defaults keep_releases to 5" do
219
- @resource.keep_releases.should == 5
224
+ expect(@resource.keep_releases).to eq(5)
220
225
  end
221
226
 
222
227
  it "allows keep_releases to be set via integer" do
223
228
  @resource.keep_releases 10
224
- @resource.keep_releases.should == 10
229
+ expect(@resource.keep_releases).to eq(10)
225
230
  end
226
231
 
227
232
  it "enforces a minimum keep_releases of 1" do
228
233
  @resource.keep_releases 0
229
- @resource.keep_releases.should == 1
234
+ expect(@resource.keep_releases).to eq(1)
230
235
  end
231
236
 
232
237
  describe "when it has a timeout attribute" do
233
238
  let(:ten_seconds) { 10 }
234
239
  before { @resource.timeout(ten_seconds) }
235
240
  it "stores this timeout" do
236
- @resource.timeout.should == ten_seconds
241
+ expect(@resource.timeout).to eq(ten_seconds)
237
242
  end
238
243
  end
239
244
 
240
245
  describe "when it has no timeout attribute" do
241
246
  it "should have no default timeout" do
242
- @resource.timeout.should be_nil
247
+ expect(@resource.timeout).to be_nil
243
248
  end
244
249
  end
245
250
 
@@ -261,12 +266,12 @@ describe Chef::Resource::Deploy do
261
266
 
262
267
  it "describes its state" do
263
268
  state = @resource.state
264
- state[:deploy_to].should == "/"
265
- state[:revision].should == "1.2.3"
269
+ expect(state[:deploy_to]).to eq("/")
270
+ expect(state[:revision]).to eq("1.2.3")
266
271
  end
267
272
 
268
273
  it "returns the repository URI as its identity" do
269
- @resource.identity.should == "http://uri.org"
274
+ expect(@resource.identity).to eq("http://uri.org")
270
275
  end
271
276
  end
272
277
 
@@ -26,38 +26,38 @@ describe Chef::Resource::Directory do
26
26
  end
27
27
 
28
28
  it "should create a new Chef::Resource::Directory" do
29
- @resource.should be_a_kind_of(Chef::Resource)
30
- @resource.should be_a_kind_of(Chef::Resource::Directory)
29
+ expect(@resource).to be_a_kind_of(Chef::Resource)
30
+ expect(@resource).to be_a_kind_of(Chef::Resource::Directory)
31
31
  end
32
32
 
33
33
  it "should have a name" do
34
- @resource.name.should eql("fakey_fakerton")
34
+ expect(@resource.name).to eql("fakey_fakerton")
35
35
  end
36
36
 
37
37
  it "should have a default action of 'create'" do
38
- @resource.action.should eql(:create)
38
+ expect(@resource.action).to eql(:create)
39
39
  end
40
40
 
41
41
  it "should accept create or delete for action" do
42
- lambda { @resource.action :create }.should_not raise_error
43
- lambda { @resource.action :delete }.should_not raise_error
44
- lambda { @resource.action :blues }.should raise_error(ArgumentError)
42
+ expect { @resource.action :create }.not_to raise_error
43
+ expect { @resource.action :delete }.not_to raise_error
44
+ expect { @resource.action :blues }.to raise_error(ArgumentError)
45
45
  end
46
46
 
47
47
  it "should use the object name as the path by default" do
48
- @resource.path.should eql("fakey_fakerton")
48
+ expect(@resource.path).to eql("fakey_fakerton")
49
49
  end
50
50
 
51
51
  it "should accept a string as the path" do
52
- lambda { @resource.path "/tmp" }.should_not raise_error
53
- @resource.path.should eql("/tmp")
54
- lambda { @resource.path Hash.new }.should raise_error(ArgumentError)
52
+ expect { @resource.path "/tmp" }.not_to raise_error
53
+ expect(@resource.path).to eql("/tmp")
54
+ expect { @resource.path Hash.new }.to raise_error(ArgumentError)
55
55
  end
56
56
 
57
57
  it "should allow you to have specify whether the action is recursive with true/false" do
58
- lambda { @resource.recursive true }.should_not raise_error
59
- lambda { @resource.recursive false }.should_not raise_error
60
- lambda { @resource.recursive "monkey" }.should raise_error(ArgumentError)
58
+ expect { @resource.recursive true }.not_to raise_error
59
+ expect { @resource.recursive false }.not_to raise_error
60
+ expect { @resource.recursive "monkey" }.to raise_error(ArgumentError)
61
61
  end
62
62
 
63
63
  describe "when it has group, mode, and owner" do
@@ -70,13 +70,13 @@ describe Chef::Resource::Directory do
70
70
 
71
71
  it "describes its state" do
72
72
  state = @resource.state
73
- state[:group].should == "wheel"
74
- state[:mode].should == "0664"
75
- state[:owner].should == "root"
73
+ expect(state[:group]).to eq("wheel")
74
+ expect(state[:mode]).to eq("0664")
75
+ expect(state[:owner]).to eq("root")
76
76
  end
77
77
 
78
78
  it "returns the directory path as its identity" do
79
- @resource.identity.should == "/tmp/foo/bar/"
79
+ expect(@resource.identity).to eq("/tmp/foo/bar/")
80
80
  end
81
81
  end
82
82
  end
@@ -17,22 +17,16 @@
17
17
  #
18
18
 
19
19
  require 'spec_helper'
20
+ require 'support/shared/unit/resource/static_provider_resolution'
20
21
 
21
22
  describe Chef::Resource::DpkgPackage, "initialize" do
22
23
 
23
- before(:each) do
24
- @resource = Chef::Resource::DpkgPackage.new("foo")
25
- end
24
+ static_provider_resolution(
25
+ resource: Chef::Resource::DpkgPackage,
26
+ provider: Chef::Provider::Package::Dpkg,
27
+ name: :dpkg_package,
28
+ action: :install,
29
+ os: 'linux',
30
+ )
26
31
 
27
- it "should return a Chef::Resource::DpkgPackage" do
28
- @resource.should be_a_kind_of(Chef::Resource::DpkgPackage)
29
- end
30
-
31
- it "should set the resource_name to :dpkg_package" do
32
- @resource.resource_name.should eql(:dpkg_package)
33
- end
34
-
35
- it "should set the provider to Chef::Provider::Package::Dpkg" do
36
- @resource.provider.should eql(Chef::Provider::Package::Dpkg)
37
- end
38
32
  end
@@ -0,0 +1,98 @@
1
+ #
2
+ # Author:: Adam Edwards (<adamed@getchef.com>)
3
+ # Copyright:: Copyright (c) 2014 Chef Software, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'spec_helper'
20
+
21
+ describe Chef::Resource::DscScript do
22
+ let(:dsc_test_resource_name) { 'DSCTest' }
23
+
24
+ context 'when Powershell supports Dsc' do
25
+ let(:dsc_test_run_context) {
26
+ node = Chef::Node.new
27
+ node.automatic[:languages][:powershell][:version] = '4.0'
28
+ empty_events = Chef::EventDispatch::Dispatcher.new
29
+ Chef::RunContext.new(node, {}, empty_events)
30
+ }
31
+ let(:dsc_test_resource) {
32
+ Chef::Resource::DscScript.new(dsc_test_resource_name, dsc_test_run_context)
33
+ }
34
+ let(:configuration_code) {'echo "This is supposed to create a configuration document."'}
35
+ let(:configuration_path) {'c:/myconfigs/formatc.ps1'}
36
+ let(:configuration_name) { 'formatme' }
37
+ let(:configuration_data) { '@{AllNodes = @( @{ NodeName = "localhost"; PSDscAllowPlainTextPassword = $true })}' }
38
+ let(:configuration_data_script) { 'c:/myconfigs/data/safedata.psd1' }
39
+
40
+ it "has a default action of `:run`" do
41
+ expect(dsc_test_resource.action).to eq(:run)
42
+ end
43
+
44
+ it "has an allowed_actions attribute with only the `:run` and `:nothing` attributes" do
45
+ expect(dsc_test_resource.allowed_actions.to_set).to eq([:run,:nothing].to_set)
46
+ end
47
+
48
+ it "allows the code attribute to be set" do
49
+ dsc_test_resource.code(configuration_code)
50
+ expect(dsc_test_resource.code).to eq(configuration_code)
51
+ end
52
+
53
+ it "allows the command attribute to be set" do
54
+ dsc_test_resource.command(configuration_path)
55
+ expect(dsc_test_resource.command).to eq(configuration_path)
56
+ end
57
+
58
+ it "allows the configuration_name attribute to be set" do
59
+ dsc_test_resource.configuration_name(configuration_name)
60
+ expect(dsc_test_resource.configuration_name).to eq(configuration_name)
61
+ end
62
+
63
+ it "allows the configuration_data attribute to be set" do
64
+ dsc_test_resource.configuration_data(configuration_data)
65
+ expect(dsc_test_resource.configuration_data).to eq(configuration_data)
66
+ end
67
+
68
+ it "allows the configuration_data_script attribute to be set" do
69
+ dsc_test_resource.configuration_data_script(configuration_data_script)
70
+ expect(dsc_test_resource.configuration_data_script).to eq(configuration_data_script)
71
+ end
72
+
73
+ it "raises an ArgumentError exception if an attempt is made to set the code attribute when the command attribute is already set" do
74
+ dsc_test_resource.command(configuration_path)
75
+ expect { dsc_test_resource.code(configuration_code) }.to raise_error(ArgumentError)
76
+ end
77
+
78
+ it "raises an ArgumentError exception if an attempt is made to set the command attribute when the code attribute is already set" do
79
+ dsc_test_resource.code(configuration_code)
80
+ expect { dsc_test_resource.command(configuration_path) }.to raise_error(ArgumentError)
81
+ end
82
+
83
+ it "raises an ArgumentError exception if an attempt is made to set the configuration_name attribute when the code attribute is already set" do
84
+ dsc_test_resource.code(configuration_code)
85
+ expect { dsc_test_resource.configuration_name(configuration_name) }.to raise_error(ArgumentError)
86
+ end
87
+
88
+ it "raises an ArgumentError exception if an attempt is made to set the configuration_data attribute when the configuration_data_script attribute is already set" do
89
+ dsc_test_resource.configuration_data_script(configuration_data_script)
90
+ expect { dsc_test_resource.configuration_data(configuration_data) }.to raise_error(ArgumentError)
91
+ end
92
+
93
+ it "raises an ArgumentError exception if an attempt is made to set the configuration_data_script attribute when the configuration_data attribute is already set" do
94
+ dsc_test_resource.configuration_data(configuration_data)
95
+ expect { dsc_test_resource.configuration_data_script(configuration_data_script) }.to raise_error(ArgumentError)
96
+ end
97
+ end
98
+ end