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
@@ -20,104 +20,77 @@
20
20
  require 'spec_helper'
21
21
 
22
22
  describe Chef::ResourceCollection do
23
+ let(:rc) { Chef::ResourceCollection.new() }
24
+ let(:resource) { Chef::Resource::ZenMaster.new("makoto") }
23
25
 
24
- before(:each) do
25
- @rc = Chef::ResourceCollection.new()
26
- @resource = Chef::Resource::ZenMaster.new("makoto")
26
+ it "should throw an error when calling a non-delegated method" do
27
+ expect { rc.not_a_method }.to raise_error(NoMethodError)
27
28
  end
28
29
 
29
30
  describe "initialize" do
30
31
  it "should return a Chef::ResourceCollection" do
31
- @rc.should be_kind_of(Chef::ResourceCollection)
32
+ rc.should be_kind_of(Chef::ResourceCollection)
32
33
  end
33
34
  end
34
35
 
35
36
  describe "[]" do
36
37
  it "should accept Chef::Resources through [index]" do
37
- lambda { @rc[0] = @resource }.should_not raise_error
38
- lambda { @rc[0] = "string" }.should raise_error
38
+ lambda { rc[0] = resource }.should_not raise_error
39
+ lambda { rc[0] = "string" }.should raise_error(ArgumentError)
39
40
  end
40
41
 
41
42
  it "should allow you to fetch Chef::Resources by position" do
42
- @rc[0] = @resource
43
- @rc[0].should eql(@resource)
43
+ rc[0] = resource
44
+ rc[0].should eql(resource)
44
45
  end
45
46
  end
46
47
 
47
48
  describe "push" do
48
49
  it "should accept Chef::Resources through pushing" do
49
- lambda { @rc.push(@resource) }.should_not raise_error
50
- lambda { @rc.push("string") }.should raise_error
50
+ lambda { rc.push(resource) }.should_not raise_error
51
+ lambda { rc.push("string") }.should raise_error(ArgumentError)
51
52
  end
52
53
  end
53
54
 
54
55
  describe "<<" do
55
56
  it "should accept the << operator" do
56
- lambda { @rc << @resource }.should_not raise_error
57
+ lambda { rc << resource }.should_not raise_error
57
58
  end
58
59
  end
59
60
 
60
61
  describe "insert" do
61
62
  it "should accept only Chef::Resources" do
62
- lambda { @rc.insert(@resource) }.should_not raise_error
63
- lambda { @rc.insert("string") }.should raise_error
63
+ lambda { rc.insert(resource) }.should_not raise_error
64
+ lambda { rc.insert("string") }.should raise_error(ArgumentError)
65
+ end
66
+
67
+ it "should accept named arguments in any order" do
68
+ rc.insert(resource, :instance_name => 'foo', :resource_type =>'bar')
69
+ expect(rc[0]).to eq(resource)
64
70
  end
65
71
 
66
72
  it "should append resources to the end of the collection when not executing a run" do
67
73
  zmr = Chef::Resource::ZenMaster.new("there is no spoon")
68
- @rc.insert(@resource)
69
- @rc.insert(zmr)
70
- @rc[0].should eql(@resource)
71
- @rc[1].should eql(zmr)
74
+ rc.insert(resource)
75
+ rc.insert(zmr)
76
+ rc[0].should eql(resource)
77
+ rc[1].should eql(zmr)
72
78
  end
73
79
 
74
80
  it "should insert resources to the middle of the collection if called while executing a run" do
75
81
  resource_to_inject = Chef::Resource::ZenMaster.new("there is no spoon")
76
82
  zmr = Chef::Resource::ZenMaster.new("morpheus")
77
83
  dummy = Chef::Resource::ZenMaster.new("keanu reeves")
78
- @rc.insert(zmr)
79
- @rc.insert(dummy)
84
+ rc.insert(zmr)
85
+ rc.insert(dummy)
80
86
 
81
- @rc.execute_each_resource do |resource|
82
- @rc.insert(resource_to_inject) if resource == zmr
87
+ rc.execute_each_resource do |resource|
88
+ rc.insert(resource_to_inject) if resource == zmr
83
89
  end
84
90
 
85
- @rc[0].should eql(zmr)
86
- @rc[1].should eql(resource_to_inject)
87
- @rc[2].should eql(dummy)
88
- end
89
- end
90
-
91
- describe "insert_at" do
92
- it "should accept only Chef::Resources" do
93
- lambda { @rc.insert_at(0, @resource, @resource) }.should_not raise_error
94
- lambda { @rc.insert_at(0, "string") }.should raise_error
95
- lambda { @rc.insert_at(0, @resource, "string") }.should raise_error
96
- end
97
-
98
- it "should toss an error if it receives a bad index" do
99
- @rc.insert_at(10, @resource)
100
- end
101
-
102
- it "should insert resources at the beginning when asked" do
103
- @rc.insert(Chef::Resource::ZenMaster.new('1'))
104
- @rc.insert(Chef::Resource::ZenMaster.new('2'))
105
- @rc.insert_at(0, Chef::Resource::ZenMaster.new('X'))
106
- @rc.all_resources.map { |r| r.name }.should == [ 'X', '1', '2' ]
107
- end
108
-
109
- it "should insert resources in the middle when asked" do
110
- @rc.insert(Chef::Resource::ZenMaster.new('1'))
111
- @rc.insert(Chef::Resource::ZenMaster.new('2'))
112
- @rc.insert_at(1, Chef::Resource::ZenMaster.new('X'))
113
- @rc.all_resources.map { |r| r.name }.should == [ '1', 'X', '2' ]
114
- end
115
-
116
- it "should insert resources at the end when asked" do
117
- @rc.insert(Chef::Resource::ZenMaster.new('1'))
118
- @rc.insert(Chef::Resource::ZenMaster.new('2'))
119
- @rc.insert_at(2, Chef::Resource::ZenMaster.new('X'))
120
- @rc.all_resources.map { |r| r.name }.should == [ '1', '2', 'X' ]
91
+ rc[0].should eql(zmr)
92
+ rc[1].should eql(resource_to_inject)
93
+ rc[2].should eql(dummy)
121
94
  end
122
95
  end
123
96
 
@@ -126,7 +99,7 @@ describe Chef::ResourceCollection do
126
99
  load_up_resources
127
100
  results = Array.new
128
101
  lambda {
129
- @rc.each do |r|
102
+ rc.each do |r|
130
103
  results << r.name
131
104
  end
132
105
  }.should_not raise_error
@@ -148,8 +121,8 @@ describe Chef::ResourceCollection do
148
121
  load_up_resources
149
122
  results = Array.new
150
123
  lambda {
151
- @rc.each_index do |i|
152
- results << @rc[i].name
124
+ rc.each_index do |i|
125
+ results << rc[i].name
153
126
  end
154
127
  }.should_not raise_error
155
128
  results.each_index do |i|
@@ -168,24 +141,24 @@ describe Chef::ResourceCollection do
168
141
  describe "lookup" do
169
142
  it "should allow you to find resources by name via lookup" do
170
143
  zmr = Chef::Resource::ZenMaster.new("dog")
171
- @rc << zmr
172
- @rc.lookup(zmr.to_s).should eql(zmr)
144
+ rc << zmr
145
+ rc.lookup(zmr.to_s).should eql(zmr)
173
146
 
174
147
  zmr = Chef::Resource::ZenMaster.new("cat")
175
- @rc[0] = zmr
176
- @rc.lookup(zmr).should eql(zmr)
148
+ rc[0] = zmr
149
+ rc.lookup(zmr).should eql(zmr)
177
150
 
178
151
  zmr = Chef::Resource::ZenMaster.new("monkey")
179
- @rc.push(zmr)
180
- @rc.lookup(zmr).should eql(zmr)
152
+ rc.push(zmr)
153
+ rc.lookup(zmr).should eql(zmr)
181
154
  end
182
155
 
183
156
  it "should raise an exception if you send something strange to lookup" do
184
- lambda { @rc.lookup(:symbol) }.should raise_error(ArgumentError)
157
+ lambda { rc.lookup(:symbol) }.should raise_error(ArgumentError)
185
158
  end
186
159
 
187
160
  it "should raise an exception if it cannot find a resource with lookup" do
188
- lambda { @rc.lookup("zen_master[dog]") }.should raise_error(Chef::Exceptions::ResourceNotFound)
161
+ lambda { rc.lookup("zen_master[dog]") }.should raise_error(Chef::Exceptions::ResourceNotFound)
189
162
  end
190
163
  end
191
164
 
@@ -193,80 +166,80 @@ describe Chef::ResourceCollection do
193
166
 
194
167
  it "should find a resource by symbol and name (:zen_master => monkey)" do
195
168
  load_up_resources
196
- @rc.resources(:zen_master => "monkey").name.should eql("monkey")
169
+ rc.resources(:zen_master => "monkey").name.should eql("monkey")
197
170
  end
198
171
 
199
172
  it "should find a resource by symbol and array of names (:zen_master => [a,b])" do
200
173
  load_up_resources
201
- results = @rc.resources(:zen_master => [ "monkey", "dog" ])
174
+ results = rc.resources(:zen_master => [ "monkey", "dog" ])
202
175
  results.length.should eql(2)
203
176
  check_by_names(results, "monkey", "dog")
204
177
  end
205
178
 
206
179
  it "should find resources of multiple kinds (:zen_master => a, :file => b)" do
207
180
  load_up_resources
208
- results = @rc.resources(:zen_master => "monkey", :file => "something")
181
+ results = rc.resources(:zen_master => "monkey", :file => "something")
209
182
  results.length.should eql(2)
210
183
  check_by_names(results, "monkey", "something")
211
184
  end
212
185
 
213
186
  it "should find a resource by string zen_master[a]" do
214
187
  load_up_resources
215
- @rc.resources("zen_master[monkey]").name.should eql("monkey")
188
+ rc.resources("zen_master[monkey]").name.should eql("monkey")
216
189
  end
217
190
 
218
191
  it "should find resources by strings of zen_master[a,b]" do
219
192
  load_up_resources
220
- results = @rc.resources("zen_master[monkey,dog]")
193
+ results = rc.resources("zen_master[monkey,dog]")
221
194
  results.length.should eql(2)
222
195
  check_by_names(results, "monkey", "dog")
223
196
  end
224
197
 
225
198
  it "should find resources of multiple types by strings of zen_master[a]" do
226
199
  load_up_resources
227
- results = @rc.resources("zen_master[monkey]", "file[something]")
200
+ results = rc.resources("zen_master[monkey]", "file[something]")
228
201
  results.length.should eql(2)
229
202
  check_by_names(results, "monkey", "something")
230
203
  end
231
204
 
232
205
  it "should raise an exception if you pass a bad name to resources" do
233
- lambda { @rc.resources("michael jackson") }.should raise_error(ArgumentError)
206
+ lambda { rc.resources("michael jackson") }.should raise_error(ArgumentError)
234
207
  end
235
208
 
236
209
  it "should raise an exception if you pass something other than a string or hash to resource" do
237
- lambda { @rc.resources([Array.new]) }.should raise_error(ArgumentError)
210
+ lambda { rc.resources([Array.new]) }.should raise_error(ArgumentError)
238
211
  end
239
212
 
240
213
  it "raises an error when attempting to find a resource that does not exist" do
241
- lambda {@rc.find("script[nonesuch]")}.should raise_error(Chef::Exceptions::ResourceNotFound)
214
+ lambda {rc.find("script[nonesuch]")}.should raise_error(Chef::Exceptions::ResourceNotFound)
242
215
  end
243
216
 
244
217
  end
245
218
 
246
219
  describe "when validating a resource query object" do
247
220
  it "accepts a string of the form 'resource_type[resource_name]'" do
248
- @rc.validate_lookup_spec!("resource_type[resource_name]").should be_true
221
+ rc.validate_lookup_spec!("resource_type[resource_name]").should be_true
249
222
  end
250
223
 
251
224
  it "accepts a single-element :resource_type => 'resource_name' Hash" do
252
- @rc.validate_lookup_spec!(:service => "apache2").should be_true
225
+ rc.validate_lookup_spec!(:service => "apache2").should be_true
253
226
  end
254
227
 
255
228
 
256
229
  it "accepts a chef resource object" do
257
230
  res = Chef::Resource.new("foo", nil)
258
- @rc.validate_lookup_spec!(res).should be_true
231
+ rc.validate_lookup_spec!(res).should be_true
259
232
  end
260
233
 
261
234
  it "rejects a malformed query string" do
262
235
  lambda do
263
- @rc.validate_lookup_spec!("resource_type[missing-end-bracket")
236
+ rc.validate_lookup_spec!("resource_type[missing-end-bracket")
264
237
  end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
265
238
  end
266
239
 
267
240
  it "rejects an argument that is not a String, Hash, or Chef::Resource" do
268
241
  lambda do
269
- @rc.validate_lookup_spec!(Object.new)
242
+ rc.validate_lookup_spec!(Object.new)
270
243
  end.should raise_error(Chef::Exceptions::InvalidResourceSpecification)
271
244
  end
272
245
 
@@ -274,32 +247,40 @@ describe Chef::ResourceCollection do
274
247
 
275
248
  describe "to_json" do
276
249
  it "should serialize to json" do
277
- json = @rc.to_json
250
+ json = rc.to_json
278
251
  json.should =~ /json_class/
279
252
  json.should =~ /instance_vars/
280
253
  end
254
+
255
+ include_examples "to_json equalivent to Chef::JSONCompat.to_json" do
256
+ let(:jsonable) { rc }
257
+ end
281
258
  end
282
259
 
283
260
  describe "self.from_json" do
284
- it "should deserialize itself from json" do
285
- @rc << @resource
286
- json = @rc.to_json
261
+ it "should not respond to this method" do
262
+ expect(rc.respond_to?(:from_json)).to eq(false)
263
+ end
264
+
265
+ it "should convert from json using the CHEF::JSONCompat library" do
266
+ rc << resource
267
+ json = Chef::JSONCompat.to_json(rc)
287
268
  s_rc = Chef::JSONCompat.from_json(json)
288
269
  s_rc.should be_a_kind_of(Chef::ResourceCollection)
289
- s_rc[0].name.should eql(@resource.name)
270
+ s_rc[0].name.should eql(resource.name)
290
271
  end
291
272
  end
292
273
 
293
274
  describe "provides access to the raw resources array" do
294
275
  it "returns the resources via the all_resources method" do
295
- @rc.all_resources.should equal(@rc.instance_variable_get(:@resources))
276
+ rc.all_resources.should equal(rc.instance_variable_get(:@resource_list).instance_variable_get(:@resources))
296
277
  end
297
278
  end
298
279
 
299
280
  describe "provides access to stepable iterator" do
300
281
  it "returns the iterator object" do
301
- @rc.instance_variable_set(:@iterator, :fooboar)
302
- @rc.iterator.should == :fooboar
282
+ rc.instance_variable_get(:@resource_list).instance_variable_set(:@iterator, :fooboar)
283
+ rc.iterator.should == :fooboar
303
284
  end
304
285
  end
305
286
 
@@ -311,9 +292,9 @@ describe Chef::ResourceCollection do
311
292
 
312
293
  def load_up_resources
313
294
  %w{dog cat monkey}.each do |n|
314
- @rc << Chef::Resource::ZenMaster.new(n)
295
+ rc << Chef::Resource::ZenMaster.new(n)
315
296
  end
316
- @rc << Chef::Resource::File.new("something")
297
+ rc << Chef::Resource::File.new("something")
317
298
  end
318
299
 
319
300
  end
@@ -19,24 +19,22 @@
19
19
  require 'spec_helper'
20
20
 
21
21
  describe Chef::ResourceDefinition do
22
- before(:each) do
23
- @def = Chef::ResourceDefinition.new()
24
- end
22
+ let(:defn) { Chef::ResourceDefinition.new() }
25
23
 
26
24
  describe "initialize" do
27
25
  it "should be a Chef::ResourceDefinition" do
28
- @def.should be_a_kind_of(Chef::ResourceDefinition)
26
+ expect(defn).to be_a_kind_of(Chef::ResourceDefinition)
29
27
  end
30
28
 
31
29
  it "should not initialize a new node if one is not provided" do
32
- @def.node.should eql(nil)
30
+ expect(defn.node).to eql(nil)
33
31
  end
34
32
 
35
33
  it "should accept a node as an argument" do
36
34
  node = Chef::Node.new
37
35
  node.name("bobo")
38
- @def = Chef::ResourceDefinition.new(node)
39
- @def.node.name.should == "bobo"
36
+ defn = Chef::ResourceDefinition.new(node)
37
+ expect(defn.node.name).to eq("bobo")
40
38
  end
41
39
  end
42
40
 
@@ -44,76 +42,76 @@ describe Chef::ResourceDefinition do
44
42
  it "should set the node with node=" do
45
43
  node = Chef::Node.new
46
44
  node.name("bobo")
47
- @def.node = node
48
- @def.node.name.should == "bobo"
45
+ defn.node = node
46
+ expect(defn.node.name).to eq("bobo")
49
47
  end
50
48
 
51
49
  it "should return the node" do
52
- @def.node = Chef::Node.new
53
- @def.node.should be_a_kind_of(Chef::Node)
50
+ defn.node = Chef::Node.new
51
+ expect(defn.node).to be_a_kind_of(Chef::Node)
54
52
  end
55
53
  end
56
54
 
57
55
  it "should accept a new definition with a symbol for a name" do
58
- lambda {
59
- @def.define :smoke do
56
+ expect {
57
+ defn.define :smoke do
60
58
  end
61
- }.should_not raise_error
62
- lambda {
63
- @def.define "george washington" do
59
+ }.not_to raise_error
60
+ expect {
61
+ defn.define "george washington" do
64
62
  end
65
- }.should raise_error(ArgumentError)
66
- @def.name.should eql(:smoke)
63
+ }.to raise_error(ArgumentError)
64
+ expect(defn.name).to eql(:smoke)
67
65
  end
68
66
 
69
67
  it "should accept a new definition with a hash" do
70
- lambda {
71
- @def.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do
68
+ expect {
69
+ defn.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do
72
70
  end
73
- }.should_not raise_error
71
+ }.not_to raise_error
74
72
  end
75
73
 
76
74
  it "should expose the prototype hash params in the params hash" do
77
- @def.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do; end
78
- @def.params[:cigar].should eql("cuban")
79
- @def.params[:cigarette].should eql("marlboro")
75
+ defn.define :smoke, :cigar => "cuban", :cigarette => "marlboro" do; end
76
+ expect(defn.params[:cigar]).to eql("cuban")
77
+ expect(defn.params[:cigarette]).to eql("marlboro")
80
78
  end
81
79
 
82
80
  it "should store the block passed to define as a proc under recipe" do
83
- @def.define :smoke do
81
+ defn.define :smoke do
84
82
  "I am what I am"
85
83
  end
86
- @def.recipe.should be_a_kind_of(Proc)
87
- @def.recipe.call.should eql("I am what I am")
84
+ expect(defn.recipe).to be_a_kind_of(Proc)
85
+ expect(defn.recipe.call).to eql("I am what I am")
88
86
  end
89
87
 
90
88
  it "should set paramaters based on method_missing" do
91
- @def.mind "to fly"
92
- @def.params[:mind].should eql("to fly")
89
+ defn.mind "to fly"
90
+ expect(defn.params[:mind]).to eql("to fly")
93
91
  end
94
92
 
95
93
  it "should raise an exception if prototype_params is not a hash" do
96
- lambda {
97
- @def.define :monkey, Array.new do
94
+ expect {
95
+ defn.define :monkey, Array.new do
98
96
  end
99
- }.should raise_error(ArgumentError)
97
+ }.to raise_error(ArgumentError)
100
98
  end
101
99
 
102
100
  it "should raise an exception if define is called without a block" do
103
- lambda {
104
- @def.define :monkey
105
- }.should raise_error(ArgumentError)
101
+ expect {
102
+ defn.define :monkey
103
+ }.to raise_error(ArgumentError)
106
104
  end
107
105
 
108
106
  it "should load a description from a file" do
109
- @def.from_file(File.join(CHEF_SPEC_DATA, "definitions", "test.rb"))
110
- @def.name.should eql(:rico_suave)
111
- @def.params[:rich].should eql("smooth")
107
+ defn.from_file(File.join(CHEF_SPEC_DATA, "definitions", "test.rb"))
108
+ expect(defn.name).to eql(:rico_suave)
109
+ expect(defn.params[:rich]).to eql("smooth")
112
110
  end
113
111
 
114
112
  it "should turn itself into a string based on the name with to_s" do
115
- @def.name = :woot
116
- @def.to_s.should eql("woot")
113
+ defn.name = :woot
114
+ expect(defn.to_s).to eql("woot")
117
115
  end
118
116
 
119
117
  end