chef 10.34.6 → 11.0.0.beta.0

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 (506) hide show
  1. data/CONTRIBUTING.md +155 -0
  2. data/README.md +89 -0
  3. data/Rakefile +4 -12
  4. data/bin/chef-apply +25 -0
  5. data/bin/chef-shell +34 -0
  6. data/bin/shef +6 -5
  7. data/distro/common/html/chef-client.8.html +4 -4
  8. data/distro/common/html/chef-expander.8.html +4 -4
  9. data/distro/common/html/chef-expanderctl.8.html +4 -4
  10. data/distro/common/html/chef-server-webui.8.html +4 -4
  11. data/distro/common/html/chef-server.8.html +4 -4
  12. data/distro/common/html/{shef.1.html → chef-shell.1.html} +49 -46
  13. data/distro/common/html/chef-solo.8.html +18 -12
  14. data/distro/common/html/chef-solr.8.html +4 -4
  15. data/distro/common/html/knife-bootstrap.1.html +4 -4
  16. data/distro/common/html/knife-client.1.html +4 -4
  17. data/distro/common/html/knife-configure.1.html +4 -4
  18. data/distro/common/html/knife-cookbook-site.1.html +4 -4
  19. data/distro/common/html/knife-cookbook.1.html +10 -7
  20. data/distro/common/html/knife-data-bag.1.html +10 -7
  21. data/distro/common/html/knife-environment.1.html +8 -6
  22. data/distro/common/html/knife-exec.1.html +9 -9
  23. data/distro/common/html/knife-index.1.html +4 -4
  24. data/distro/common/html/knife-node.1.html +4 -4
  25. data/distro/common/html/knife-role.1.html +4 -4
  26. data/distro/common/html/knife-search.1.html +4 -4
  27. data/distro/common/html/knife-ssh.1.html +4 -4
  28. data/distro/common/html/knife-status.1.html +4 -4
  29. data/distro/common/html/knife-tag.1.html +4 -4
  30. data/distro/common/html/knife.1.html +8 -13
  31. data/distro/common/man/man1/{shef.1 → chef-shell.1} +21 -57
  32. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  33. data/distro/common/man/man1/knife-client.1 +1 -1
  34. data/distro/common/man/man1/knife-configure.1 +1 -1
  35. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  36. data/distro/common/man/man1/knife-cookbook.1 +15 -2
  37. data/distro/common/man/man1/knife-data-bag.1 +15 -2
  38. data/distro/common/man/man1/knife-environment.1 +12 -2
  39. data/distro/common/man/man1/knife-exec.1 +4 -7
  40. data/distro/common/man/man1/knife-index.1 +1 -1
  41. data/distro/common/man/man1/knife-node.1 +1 -1
  42. data/distro/common/man/man1/knife-role.1 +1 -1
  43. data/distro/common/man/man1/knife-search.1 +1 -1
  44. data/distro/common/man/man1/knife-ssh.1 +1 -1
  45. data/distro/common/man/man1/knife-status.1 +1 -1
  46. data/distro/common/man/man1/knife-tag.1 +1 -1
  47. data/distro/common/man/man1/knife.1 +3 -6
  48. data/distro/common/man/man8/chef-client.8 +1 -1
  49. data/distro/common/man/man8/chef-expander.8 +1 -1
  50. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  51. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  52. data/distro/common/man/man8/chef-server.8 +1 -1
  53. data/distro/common/man/man8/chef-solo.8 +36 -4
  54. data/distro/common/man/man8/chef-solr.8 +1 -1
  55. data/distro/common/markdown/man1/{shef.mkd → chef-shell.mkd} +49 -43
  56. data/distro/common/markdown/man1/knife-exec.mkd +11 -6
  57. data/distro/common/markdown/man1/knife.mkd +4 -9
  58. data/distro/debian/etc/default/chef-client +0 -1
  59. data/distro/debian/etc/init.d/chef-client +2 -2
  60. data/lib/chef.rb +2 -5
  61. data/lib/chef/api_client.rb +20 -130
  62. data/lib/chef/api_client/registration.rb +126 -0
  63. data/lib/chef/application.rb +71 -14
  64. data/lib/chef/application/apply.rb +160 -0
  65. data/lib/chef/application/client.rb +25 -18
  66. data/lib/chef/application/knife.rb +0 -2
  67. data/lib/chef/application/solo.rb +23 -8
  68. data/lib/chef/application/windows_service.rb +5 -2
  69. data/lib/chef/applications.rb +1 -0
  70. data/lib/chef/chef_fs.rb +11 -0
  71. data/lib/chef/chef_fs/command_line.rb +232 -0
  72. data/lib/chef/chef_fs/file_pattern.rb +312 -0
  73. data/lib/chef/chef_fs/file_system.rb +358 -0
  74. data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -0
  75. data/lib/chef/chef_fs/file_system/base_fs_object.rb +121 -0
  76. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +109 -0
  77. data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb} +12 -15
  78. data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +84 -0
  79. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +188 -0
  80. data/lib/chef/chef_fs/file_system/cookbook_file.rb +78 -0
  81. data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
  82. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +68 -0
  83. data/lib/chef/chef_fs/file_system/data_bag_dir.rb +78 -0
  84. data/lib/chef/chef_fs/file_system/data_bag_item.rb +59 -0
  85. data/lib/chef/chef_fs/file_system/data_bags_dir.rb +66 -0
  86. data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
  87. data/lib/chef/{index_queue.rb → chef_fs/file_system/file_system_error.rb} +14 -12
  88. data/lib/chef/{resource/whyrun_safe_ruby_block.rb → chef_fs/file_system/file_system_root_dir.rb} +10 -10
  89. data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
  90. data/lib/chef/chef_fs/file_system/nodes_dir.rb +47 -0
  91. data/lib/chef/{provider/whyrun_safe_ruby_block.rb → chef_fs/file_system/nonexistent_fs_object.rb} +19 -9
  92. data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
  93. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +84 -0
  94. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +123 -0
  95. data/lib/chef/chef_fs/knife.rb +77 -0
  96. data/lib/chef/chef_fs/path_utils.rb +64 -0
  97. data/lib/chef/client.rb +44 -21
  98. data/lib/chef/config.rb +52 -43
  99. data/lib/chef/cookbook/synchronizer.rb +6 -8
  100. data/lib/chef/cookbook/syntax_check.rb +61 -14
  101. data/lib/chef/cookbook_loader.rb +39 -26
  102. data/lib/chef/cookbook_uploader.rb +17 -19
  103. data/lib/chef/cookbook_version.rb +3 -302
  104. data/lib/chef/daemon.rb +3 -18
  105. data/lib/chef/data_bag.rb +4 -97
  106. data/lib/chef/data_bag_item.rb +2 -65
  107. data/lib/chef/digester.rb +73 -0
  108. data/lib/chef/dsl.rb +6 -0
  109. data/lib/chef/dsl/data_query.rb +66 -0
  110. data/lib/chef/dsl/include_attribute.rb +60 -0
  111. data/lib/chef/dsl/include_recipe.rb +42 -0
  112. data/lib/chef/dsl/platform_introspection.rb +213 -0
  113. data/lib/chef/dsl/recipe.rb +84 -0
  114. data/lib/chef/dsl/registry_helper.rb +59 -0
  115. data/lib/chef/encrypted_data_bag_item.rb +74 -19
  116. data/lib/chef/environment.rb +9 -180
  117. data/lib/chef/exceptions.rb +87 -14
  118. data/lib/chef/formatters/base.rb +4 -1
  119. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +0 -4
  120. data/lib/chef/json_compat.rb +1 -97
  121. data/lib/chef/knife.rb +90 -41
  122. data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
  123. data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
  124. data/lib/chef/knife/bootstrap/chef-full.erb +3 -3
  125. data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
  126. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
  127. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
  128. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
  129. data/lib/chef/knife/configure.rb +1 -2
  130. data/lib/chef/knife/cookbook_metadata.rb +1 -0
  131. data/lib/chef/knife/cookbook_test.rb +3 -2
  132. data/lib/chef/knife/cookbook_upload.rb +12 -7
  133. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  134. data/lib/chef/knife/core/generic_presenter.rb +26 -13
  135. data/lib/chef/knife/core/node_editor.rb +36 -16
  136. data/lib/chef/knife/core/node_presenter.rb +1 -1
  137. data/lib/chef/knife/core/text_formatter.rb +23 -37
  138. data/lib/chef/knife/core/ui.rb +15 -9
  139. data/lib/chef/knife/delete.rb +39 -0
  140. data/lib/chef/knife/diff.rb +46 -0
  141. data/lib/chef/knife/download.rb +50 -0
  142. data/lib/chef/knife/environment_show.rb +7 -0
  143. data/lib/chef/knife/exec.rb +5 -5
  144. data/lib/chef/knife/help_topics.rb +1 -1
  145. data/lib/chef/knife/index_rebuild.rb +91 -7
  146. data/lib/chef/knife/list.rb +109 -0
  147. data/lib/chef/knife/raw.rb +108 -0
  148. data/lib/chef/knife/search.rb +40 -22
  149. data/lib/chef/knife/show.rb +32 -0
  150. data/lib/chef/knife/ssh.rb +6 -2
  151. data/lib/chef/knife/upload.rb +50 -0
  152. data/lib/chef/mixin/checksum.rb +3 -3
  153. data/lib/chef/mixin/deep_merge.rb +55 -197
  154. data/lib/chef/mixin/language.rb +9 -222
  155. data/lib/chef/mixin/language_include_attribute.rb +6 -38
  156. data/lib/chef/mixin/language_include_recipe.rb +3 -35
  157. data/lib/chef/mixin/params_validate.rb +6 -19
  158. data/lib/chef/mixin/recipe_definition_dsl_core.rb +8 -61
  159. data/lib/chef/mixin/securable.rb +32 -7
  160. data/lib/chef/mixin/template.rb +40 -0
  161. data/lib/chef/mixins.rb +0 -4
  162. data/lib/chef/monkey_patches/net_http.rb +0 -34
  163. data/lib/chef/node.rb +133 -309
  164. data/lib/chef/node/attribute.rb +333 -473
  165. data/lib/chef/node/attribute_collections.rb +199 -0
  166. data/lib/chef/node/immutable_collections.rb +186 -0
  167. data/lib/chef/platform.rb +7 -22
  168. data/lib/chef/provider.rb +2 -49
  169. data/lib/chef/provider/breakpoint.rb +6 -6
  170. data/lib/chef/provider/cookbook_file.rb +5 -33
  171. data/lib/chef/provider/deploy.rb +2 -1
  172. data/lib/chef/provider/directory.rb +14 -17
  173. data/lib/chef/provider/file.rb +19 -52
  174. data/lib/chef/provider/group.rb +31 -51
  175. data/lib/chef/provider/group/dscl.rb +13 -53
  176. data/lib/chef/provider/group/gpasswd.rb +19 -14
  177. data/lib/chef/provider/group/groupadd.rb +1 -41
  178. data/lib/chef/provider/group/groupmod.rb +36 -46
  179. data/lib/chef/provider/group/pw.rb +16 -59
  180. data/lib/chef/provider/group/suse.rb +13 -16
  181. data/lib/chef/provider/group/usermod.rb +18 -40
  182. data/lib/chef/provider/group/windows.rb +6 -13
  183. data/lib/chef/provider/http_request.rb +25 -42
  184. data/lib/chef/provider/link.rb +2 -0
  185. data/lib/chef/provider/lwrp_base.rb +150 -0
  186. data/lib/chef/provider/package/portage.rb +4 -9
  187. data/lib/chef/provider/package/rpm.rb +2 -2
  188. data/lib/chef/provider/package/rubygems.rb +9 -41
  189. data/lib/chef/provider/package/yum.rb +12 -19
  190. data/lib/chef/provider/registry_key.rb +156 -0
  191. data/lib/chef/provider/remote_directory.rb +2 -0
  192. data/lib/chef/provider/remote_file.rb +21 -12
  193. data/lib/chef/provider/ruby_block.rb +5 -2
  194. data/lib/chef/provider/service.rb +15 -0
  195. data/lib/chef/provider/service/init.rb +9 -7
  196. data/lib/chef/provider/service/macosx.rb +15 -73
  197. data/lib/chef/provider/service/simple.rb +1 -1
  198. data/lib/chef/provider/service/solaris.rb +3 -3
  199. data/lib/chef/provider/template.rb +22 -25
  200. data/lib/chef/provider/template_finder.rb +61 -0
  201. data/lib/chef/provider/user.rb +0 -1
  202. data/lib/chef/provider/user/dscl.rb +175 -568
  203. data/lib/chef/provider/user/useradd.rb +30 -47
  204. data/lib/chef/providers.rb +3 -2
  205. data/lib/chef/recipe.rb +14 -8
  206. data/lib/chef/resource.rb +13 -154
  207. data/lib/chef/resource/group.rb +1 -11
  208. data/lib/chef/resource/http_request.rb +2 -1
  209. data/lib/chef/resource/lwrp_base.rb +127 -0
  210. data/lib/chef/resource/mount.rb +10 -11
  211. data/lib/chef/resource/registry_key.rb +86 -0
  212. data/lib/chef/resource/remote_directory.rb +6 -5
  213. data/lib/chef/resource/remote_file.rb +22 -31
  214. data/lib/chef/resource/ruby_block.rb +2 -2
  215. data/lib/chef/resource/service.rb +14 -0
  216. data/lib/chef/resource/user.rb +0 -18
  217. data/lib/chef/resource_collection.rb +25 -21
  218. data/lib/chef/resources.rb +2 -1
  219. data/lib/chef/rest.rb +50 -131
  220. data/lib/chef/rest/auth_credentials.rb +4 -20
  221. data/lib/chef/rest/rest_request.rb +2 -7
  222. data/lib/chef/role.rb +1 -97
  223. data/lib/chef/run_context.rb +108 -130
  224. data/lib/chef/run_context/cookbook_compiler.rb +280 -0
  225. data/lib/chef/run_list.rb +0 -2
  226. data/lib/chef/run_list/run_list_expansion.rb +0 -15
  227. data/lib/chef/run_lock.rb +90 -0
  228. data/lib/chef/runner.rb +28 -5
  229. data/lib/chef/sandbox.rb +15 -148
  230. data/lib/chef/scan_access_control.rb +2 -4
  231. data/lib/chef/shef/ext.rb +3 -575
  232. data/lib/chef/{shef.rb → shell.rb} +35 -40
  233. data/lib/chef/shell/ext.rb +593 -0
  234. data/lib/chef/{shef → shell}/model_wrapper.rb +3 -3
  235. data/lib/chef/{shef/shef_rest.rb → shell/shell_rest.rb} +4 -4
  236. data/lib/chef/{shef/shef_session.rb → shell/shell_session.rb} +17 -15
  237. data/lib/chef/shell_out.rb +7 -0
  238. data/lib/chef/util/windows/net_group.rb +1 -5
  239. data/lib/chef/version.rb +3 -3
  240. data/lib/chef/win32/api/process.rb +0 -1
  241. data/lib/chef/win32/handle.rb +1 -8
  242. data/lib/chef/win32/registry.rb +371 -0
  243. data/spec/data/big_json.json +1 -2
  244. data/spec/data/big_json_plus_one.json +1 -2
  245. data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
  246. data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
  247. data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
  248. data/spec/data/nodes/default.rb +3 -3
  249. data/spec/data/nodes/test.example.com.rb +3 -3
  250. data/spec/data/nodes/test.rb +3 -3
  251. data/spec/data/partial_one.erb +1 -0
  252. data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
  253. data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
  254. data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
  255. data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
  256. data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
  257. data/spec/data/{knife-home/.chef/plugins/knife/example_home_subcommand.rb → run_context/cookbooks/circular-dep1/recipes/default.rb} +0 -0
  258. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  259. data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
  260. data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
  261. data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
  262. data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
  263. data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
  264. data/spec/data/{lwrp_const_scoping/resources/conflict.rb → run_context/cookbooks/circular-dep2/recipes/default.rb} +0 -0
  265. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  266. data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
  267. data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
  268. data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
  269. data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
  270. data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
  271. data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
  272. data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
  273. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  274. data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
  275. data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
  276. data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
  277. data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
  278. data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
  279. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  280. data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
  281. data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
  282. data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
  283. data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
  284. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  285. data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
  286. data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
  287. data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
  288. data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
  289. data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
  290. data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
  291. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
  292. data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
  293. data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
  294. data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
  295. data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
  296. data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
  297. data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
  298. data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
  299. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  300. data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
  301. data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
  302. data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
  303. data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
  304. data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
  305. data/spec/data/shef-config.rb +7 -0
  306. data/spec/functional/dsl/registry_helper_spec.rb +63 -0
  307. data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
  308. data/spec/functional/knife/exec_spec.rb +2 -2
  309. data/spec/functional/knife/ssh_spec.rb +5 -1
  310. data/spec/functional/resource/cookbook_file_spec.rb +7 -19
  311. data/spec/functional/resource/directory_spec.rb +4 -0
  312. data/spec/functional/resource/file_spec.rb +56 -22
  313. data/spec/functional/resource/link_spec.rb +2 -0
  314. data/spec/functional/resource/registry_spec.rb +576 -0
  315. data/spec/functional/resource/remote_directory_spec.rb +142 -36
  316. data/spec/functional/resource/remote_file_spec.rb +18 -0
  317. data/spec/functional/resource/template_spec.rb +23 -2
  318. data/spec/functional/run_lock_spec.rb +106 -0
  319. data/spec/functional/shell_spec.rb +100 -0
  320. data/spec/functional/win32/registry_helper_spec.rb +632 -0
  321. data/spec/spec_helper.rb +5 -29
  322. data/spec/stress/win32/security_spec.rb +1 -1
  323. data/spec/support/chef_helpers.rb +0 -2
  324. data/spec/support/platform_helpers.rb +8 -15
  325. data/spec/support/shared/functional/directory_resource.rb +84 -22
  326. data/spec/support/shared/functional/file_resource.rb +169 -71
  327. data/spec/support/shared/functional/securable_resource.rb +143 -119
  328. data/spec/support/shared/functional/securable_resource_with_reporting.rb +375 -0
  329. data/spec/support/shared/unit/file_system_support.rb +110 -0
  330. data/spec/support/shared/unit/platform_introspector.rb +162 -0
  331. data/spec/unit/api_client/registration_spec.rb +175 -0
  332. data/spec/unit/api_client_spec.rb +78 -156
  333. data/spec/unit/application/apply.rb +84 -0
  334. data/spec/unit/application/client_spec.rb +1 -37
  335. data/spec/unit/application/knife_spec.rb +5 -0
  336. data/spec/unit/application_spec.rb +57 -2
  337. data/spec/unit/checksum/storage/filesystem_spec.rb +1 -1
  338. data/spec/unit/chef_fs/diff_spec.rb +328 -0
  339. data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
  340. data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +237 -0
  341. data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +568 -0
  342. data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +220 -0
  343. data/spec/unit/chef_fs/file_system_spec.rb +136 -0
  344. data/spec/unit/client_spec.rb +124 -33
  345. data/spec/unit/config_spec.rb +46 -13
  346. data/spec/unit/cookbook/synchronizer_spec.rb +1 -49
  347. data/spec/unit/cookbook/syntax_check_spec.rb +48 -109
  348. data/spec/unit/cookbook_loader_spec.rb +153 -91
  349. data/spec/unit/cookbook_manifest_spec.rb +81 -81
  350. data/spec/unit/cookbook_spec.rb +3 -20
  351. data/spec/unit/cookbook_version_spec.rb +23 -122
  352. data/spec/unit/daemon_spec.rb +3 -24
  353. data/spec/unit/data_bag_spec.rb +6 -4
  354. data/spec/unit/digester_spec.rb +50 -0
  355. data/spec/unit/dsl/data_query_spec.rb +66 -0
  356. data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
  357. data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
  358. data/spec/unit/encrypted_data_bag_item_spec.rb +50 -105
  359. data/spec/unit/environment_spec.rb +0 -130
  360. data/spec/unit/exceptions_spec.rb +2 -3
  361. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
  362. data/spec/unit/json_compat_spec.rb +15 -7
  363. data/spec/unit/knife/bootstrap_spec.rb +2 -0
  364. data/spec/unit/knife/configure_spec.rb +20 -14
  365. data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
  366. data/spec/unit/knife/cookbook_test_spec.rb +1 -0
  367. data/spec/unit/knife/cookbook_upload_spec.rb +43 -8
  368. data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
  369. data/spec/unit/knife/core/ui_spec.rb +156 -125
  370. data/spec/unit/knife/data_bag_create_spec.rb +9 -0
  371. data/spec/unit/knife/data_bag_edit_spec.rb +1 -4
  372. data/spec/unit/knife/data_bag_from_file_spec.rb +4 -6
  373. data/spec/unit/knife/data_bag_show_spec.rb +11 -4
  374. data/spec/unit/knife/index_rebuild_spec.rb +96 -33
  375. data/spec/unit/knife/knife_help.rb +7 -7
  376. data/spec/unit/knife/node_edit_spec.rb +6 -33
  377. data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
  378. data/spec/unit/knife/ssh_spec.rb +12 -15
  379. data/spec/unit/knife/status_spec.rb +2 -2
  380. data/spec/unit/knife_spec.rb +53 -0
  381. data/spec/unit/lwrp_spec.rb +59 -42
  382. data/spec/unit/mixin/checksum_spec.rb +2 -2
  383. data/spec/unit/mixin/deep_merge_spec.rb +101 -799
  384. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
  385. data/spec/unit/mixin/params_validate_spec.rb +4 -37
  386. data/spec/unit/mixin/securable_spec.rb +5 -3
  387. data/spec/unit/mixin/template_spec.rb +119 -0
  388. data/spec/unit/node/attribute_spec.rb +195 -173
  389. data/spec/unit/node/immutable_collections_spec.rb +139 -0
  390. data/spec/unit/node_spec.rb +366 -370
  391. data/spec/unit/platform_spec.rb +9 -10
  392. data/spec/unit/provider/breakpoint_spec.rb +8 -8
  393. data/spec/unit/provider/cookbook_file_spec.rb +4 -8
  394. data/spec/unit/provider/directory_spec.rb +96 -64
  395. data/spec/unit/provider/env_spec.rb +2 -2
  396. data/spec/unit/provider/file_spec.rb +48 -39
  397. data/spec/unit/provider/group/dscl_spec.rb +0 -36
  398. data/spec/unit/provider/group/gpasswd_spec.rb +9 -16
  399. data/spec/unit/provider/group/groupadd_spec.rb +4 -3
  400. data/spec/unit/provider/group/groupmod_spec.rb +1 -0
  401. data/spec/unit/provider/group/pw_spec.rb +15 -12
  402. data/spec/unit/provider/group/usermod_spec.rb +6 -21
  403. data/spec/unit/provider/group/windows_spec.rb +8 -0
  404. data/spec/unit/provider/group_spec.rb +6 -28
  405. data/spec/unit/provider/http_request_spec.rb +28 -69
  406. data/spec/unit/provider/ifconfig_spec.rb +2 -2
  407. data/spec/unit/provider/ohai_spec.rb +4 -4
  408. data/spec/unit/provider/package/apt_spec.rb +0 -1
  409. data/spec/unit/provider/package/ips_spec.rb +0 -1
  410. data/spec/unit/provider/package/portage_spec.rb +0 -44
  411. data/spec/unit/provider/package/rpm_spec.rb +0 -12
  412. data/spec/unit/provider/package/rubygems_spec.rb +1 -44
  413. data/spec/unit/provider/package/yum_spec.rb +39 -36
  414. data/spec/unit/provider/package_spec.rb +7 -5
  415. data/spec/unit/provider/registry_key_spec.rb +269 -0
  416. data/spec/unit/provider/remote_directory_spec.rb +7 -3
  417. data/spec/unit/provider/remote_file_spec.rb +36 -0
  418. data/spec/unit/provider/route_spec.rb +4 -3
  419. data/spec/unit/provider/ruby_block_spec.rb +8 -0
  420. data/spec/unit/provider/service/arch_service_spec.rb +5 -5
  421. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  422. data/spec/unit/provider/service/freebsd_service_spec.rb +5 -5
  423. data/spec/unit/provider/service/init_service_spec.rb +27 -4
  424. data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
  425. data/spec/unit/provider/service/invokercd_service_spec.rb +4 -4
  426. data/spec/unit/provider/service/macosx_spec.rb +11 -66
  427. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  428. data/spec/unit/provider/service/simple_service_spec.rb +3 -3
  429. data/spec/unit/provider/service/upstart_service_spec.rb +9 -9
  430. data/spec/unit/provider/subversion_spec.rb +1 -1
  431. data/spec/unit/provider/template_spec.rb +35 -11
  432. data/spec/unit/provider/user/dscl_spec.rb +285 -681
  433. data/spec/unit/provider/user/useradd_spec.rb +1 -22
  434. data/spec/unit/provider/user_spec.rb +1 -1
  435. data/spec/unit/recipe_spec.rb +10 -8
  436. data/spec/unit/registry_helper_spec.rb +374 -0
  437. data/spec/unit/resource/mount_spec.rb +0 -11
  438. data/spec/unit/resource/registry_key_spec.rb +171 -0
  439. data/spec/unit/resource/remote_file_spec.rb +21 -23
  440. data/spec/unit/resource/ruby_block_spec.rb +7 -3
  441. data/spec/unit/resource/service_spec.rb +11 -0
  442. data/spec/unit/resource_spec.rb +4 -19
  443. data/spec/unit/rest/auth_credentials_spec.rb +2 -19
  444. data/spec/unit/rest_spec.rb +130 -284
  445. data/spec/unit/run_context/cookbook_compiler_spec.rb +181 -0
  446. data/spec/unit/run_context_spec.rb +18 -4
  447. data/spec/unit/run_list_spec.rb +0 -209
  448. data/spec/unit/run_lock_spec.rb +37 -0
  449. data/spec/unit/runner_spec.rb +101 -2
  450. data/spec/unit/scan_access_control_spec.rb +4 -4
  451. data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
  452. data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
  453. data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +14 -69
  454. data/spec/unit/shell_out_spec.rb +18 -0
  455. data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
  456. metadata +275 -234
  457. checksums.yaml +0 -15
  458. data/README.rdoc +0 -177
  459. data/distro/common/html/knife-recipe.1.html +0 -92
  460. data/lib/chef/certificate.rb +0 -161
  461. data/lib/chef/checksum.rb +0 -167
  462. data/lib/chef/checksum_cache.rb +0 -190
  463. data/lib/chef/cookbook_version_selector.rb +0 -168
  464. data/lib/chef/couchdb.rb +0 -246
  465. data/lib/chef/index_queue/amqp_client.rb +0 -116
  466. data/lib/chef/index_queue/consumer.rb +0 -76
  467. data/lib/chef/index_queue/indexable.rb +0 -109
  468. data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +0 -60
  469. data/lib/chef/monkey_patches/moneta.rb +0 -50
  470. data/lib/chef/monkey_patches/uri.rb +0 -70
  471. data/lib/chef/openid_registration.rb +0 -187
  472. data/lib/chef/provider/user/solaris.rb +0 -90
  473. data/lib/chef/solr_query.rb +0 -187
  474. data/lib/chef/solr_query/lucene.treetop +0 -150
  475. data/lib/chef/solr_query/lucene_nodes.rb +0 -285
  476. data/lib/chef/solr_query/query_transform.rb +0 -65
  477. data/lib/chef/solr_query/solr_http_request.rb +0 -132
  478. data/lib/chef/webui_user.rb +0 -231
  479. data/spec/data/cookbooks/openldap/files/default/.dotfile +0 -1
  480. data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -1
  481. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -1
  482. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -1
  483. data/spec/data/mac_users/10.7-8.plist.xml +0 -559
  484. data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
  485. data/spec/data/mac_users/10.7.plist.xml +0 -559
  486. data/spec/data/mac_users/10.7.shadow.xml +0 -11
  487. data/spec/data/mac_users/10.8.plist.xml +0 -559
  488. data/spec/data/mac_users/10.8.shadow.xml +0 -21
  489. data/spec/data/mac_users/10.9.plist.xml +0 -560
  490. data/spec/data/mac_users/10.9.shadow.xml +0 -21
  491. data/spec/functional/resource/base.rb +0 -40
  492. data/spec/functional/resource/group_spec.rb +0 -343
  493. data/spec/functional/resource/user/dscl_spec.rb +0 -199
  494. data/spec/unit/certificate_spec.rb +0 -76
  495. data/spec/unit/checksum_cache_spec.rb +0 -209
  496. data/spec/unit/checksum_spec.rb +0 -94
  497. data/spec/unit/couchdb_spec.rb +0 -274
  498. data/spec/unit/index_queue_spec.rb +0 -391
  499. data/spec/unit/mixin/language_spec.rb +0 -305
  500. data/spec/unit/openid_registration_spec.rb +0 -153
  501. data/spec/unit/provider/user/solaris_spec.rb +0 -414
  502. data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -47
  503. data/spec/unit/solr_query/query_transform_spec.rb +0 -454
  504. data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
  505. data/spec/unit/solr_query_spec.rb +0 -203
  506. data/spec/unit/webui_user_spec.rb +0 -238
@@ -0,0 +1,37 @@
1
+ #
2
+ # Author:: Daniel DeLeo (<dan@opscode.com>)
3
+ # Copyright:: Copyright (c) 2012 Opscode, 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
+ require File.expand_path('../../spec_helper', __FILE__)
19
+ require 'chef/client'
20
+
21
+ describe Chef::RunLock do
22
+
23
+ describe "when first created" do
24
+ it "locates the lockfile in the file cache path by default" do
25
+ run_lock = Chef::RunLock.new(:file_cache_path => "/var/chef/cache", :lockfile => nil)
26
+ run_lock.runlock_file.should == "/var/chef/cache/chef-client-running.pid"
27
+ end
28
+
29
+ it "locates the lockfile in the user-configured path when set" do
30
+ run_lock = Chef::RunLock.new(:file_cache_path => "/var/chef/cache", :lockfile => "/tmp/chef-client-running.pid")
31
+ run_lock.runlock_file.should == "/tmp/chef-client-running.pid"
32
+ end
33
+ end
34
+
35
+ # See also: spec/functional/run_lock_spec
36
+
37
+ end
@@ -52,13 +52,40 @@ class SnitchyProvider < Chef::Provider
52
52
 
53
53
  end
54
54
 
55
+ class FailureResource < Chef::Resource
56
+
57
+ attr_accessor :action
58
+
59
+ def initialize(*args)
60
+ super
61
+ @action = :fail
62
+ end
63
+
64
+ def provider
65
+ FailureProvider
66
+ end
67
+ end
68
+
69
+ class FailureProvider < Chef::Provider
70
+
71
+ class ChefClientFail < StandardError; end
72
+
73
+ def load_current_resource
74
+ true
75
+ end
76
+
77
+ def action_fail
78
+ raise ChefClientFail, "chef had an error of some sort"
79
+ end
80
+ end
81
+
55
82
  describe Chef::Runner do
56
83
 
57
84
  before(:each) do
58
85
  @node = Chef::Node.new
59
86
  @node.name "latte"
60
- @node.platform "mac_os_x"
61
- @node.platform_version "10.5.1"
87
+ @node.automatic[:platform] = "mac_os_x"
88
+ @node.automatic[:platform_version] = "10.5.1"
62
89
  @events = Chef::EventDispatch::Dispatcher.new
63
90
  @run_context = Chef::RunContext.new(@node, Chef::CookbookCollection.new({}), @events)
64
91
  @first_resource = Chef::Resource::Cat.new("loulou1", @run_context)
@@ -167,6 +194,78 @@ describe Chef::Runner do
167
194
  @first_resource.should be_updated
168
195
  end
169
196
 
197
+ it "should execute delayed notifications when a failure occurs in the chef client run" do
198
+ @first_resource.action = :nothing
199
+ second_resource = Chef::Resource::Cat.new("peanut", @run_context)
200
+ second_resource.action = :purr
201
+
202
+ @run_context.resource_collection << second_resource
203
+ second_resource.notifies(:purr, @first_resource, :delayed)
204
+
205
+ third_resource = FailureResource.new("explode", @run_context)
206
+ @run_context.resource_collection << third_resource
207
+
208
+ lambda {@runner.converge}.should raise_error(FailureProvider::ChefClientFail)
209
+
210
+ @first_resource.should be_updated
211
+ end
212
+
213
+ it "should execute delayed notifications when a failure occurs in a notification" do
214
+ @first_resource.action = :nothing
215
+ second_resource = Chef::Resource::Cat.new("peanut", @run_context)
216
+ second_resource.action = :purr
217
+
218
+ @run_context.resource_collection << second_resource
219
+
220
+ third_resource = FailureResource.new("explode", @run_context)
221
+ third_resource.action = :nothing
222
+ @run_context.resource_collection << third_resource
223
+
224
+ second_resource.notifies(:fail, third_resource, :delayed)
225
+ second_resource.notifies(:purr, @first_resource, :delayed)
226
+
227
+ lambda {@runner.converge}.should raise_error(FailureProvider::ChefClientFail)
228
+
229
+ @first_resource.should be_updated
230
+ end
231
+
232
+ it "should execute delayed notifications when a failure occurs in multiple notifications" do
233
+ @first_resource.action = :nothing
234
+ second_resource = Chef::Resource::Cat.new("peanut", @run_context)
235
+ second_resource.action = :purr
236
+
237
+ @run_context.resource_collection << second_resource
238
+
239
+ third_resource = FailureResource.new("explode", @run_context)
240
+ third_resource.action = :nothing
241
+ @run_context.resource_collection << third_resource
242
+
243
+ fourth_resource = FailureResource.new("explode again", @run_context)
244
+ fourth_resource.action = :nothing
245
+ @run_context.resource_collection << fourth_resource
246
+
247
+ second_resource.notifies(:fail, third_resource, :delayed)
248
+ second_resource.notifies(:fail, fourth_resource, :delayed)
249
+ second_resource.notifies(:purr, @first_resource, :delayed)
250
+
251
+ exception = nil
252
+ begin
253
+ @runner.converge
254
+ rescue => e
255
+ exception = e
256
+ end
257
+ exception.should be_a(Chef::Exceptions::MultipleFailures)
258
+
259
+ expected_message =<<-E
260
+ Multiple failures occurred:
261
+ * FailureProvider::ChefClientFail occurred in delayed notification: [explode] (dynamically defined) had an error: FailureProvider::ChefClientFail: chef had an error of some sort
262
+ * FailureProvider::ChefClientFail occurred in delayed notification: [explode again] (dynamically defined) had an error: FailureProvider::ChefClientFail: chef had an error of some sort
263
+ E
264
+ exception.message.should == expected_message
265
+
266
+ @first_resource.should be_updated
267
+ end
268
+
170
269
  it "does not duplicate delayed notifications" do
171
270
  SnitchyProvider.clear_action_record
172
271
 
@@ -60,7 +60,7 @@ describe Chef::ScanAccessControl do
60
60
  end
61
61
 
62
62
  it "sets the mode of the current resource to the current mode as a String" do
63
- @current_resource.mode.should == "644"
63
+ @current_resource.mode.should == "0644"
64
64
  end
65
65
 
66
66
  context "on unix", :unix_only do
@@ -91,7 +91,7 @@ describe Chef::ScanAccessControl do
91
91
  end
92
92
 
93
93
  it "sets the mode of the current resource to the file's current mode as a string" do
94
- @current_resource.mode.should == "644"
94
+ @current_resource.mode.should == "0644"
95
95
  end
96
96
  end
97
97
 
@@ -101,8 +101,8 @@ describe Chef::ScanAccessControl do
101
101
  @scanner.set_all!
102
102
  end
103
103
 
104
- it "sets the mode of the current resource to the current mode as an integer" do
105
- @current_resource.mode.should == 00644
104
+ it "sets the mode of the current resource to the current mode as a String" do
105
+ @current_resource.mode.should == "0644"
106
106
  end
107
107
 
108
108
  end
@@ -19,16 +19,16 @@
19
19
  require 'spec_helper'
20
20
  require 'ostruct'
21
21
 
22
- describe Shef::ModelWrapper do
22
+ describe Shell::ModelWrapper do
23
23
  before do
24
24
  @model = OpenStruct.new(:name=>"Chef::Node")
25
- @wrapper = Shef::ModelWrapper.new(@model)
25
+ @wrapper = Shell::ModelWrapper.new(@model)
26
26
  end
27
27
 
28
28
  describe "when created with an explicit model_symbol" do
29
29
  before do
30
30
  @model = OpenStruct.new(:name=>"Chef::ApiClient")
31
- @wrapper = Shef::ModelWrapper.new(@model, :client)
31
+ @wrapper = Shell::ModelWrapper.new(@model, :client)
32
32
  end
33
33
 
34
34
  it "uses the explicit model symbol" do
@@ -47,7 +47,7 @@ describe Shef::ModelWrapper do
47
47
  @node_2 = Chef::Node.new
48
48
  @node_2.name("yummy")
49
49
  @server_response = {:node_1 => @node_1, :node_2 => @node_2}
50
- @wrapper = Shef::ModelWrapper.new(Chef::Node)
50
+ @wrapper = Shell::ModelWrapper.new(Chef::Node)
51
51
  Chef::Node.stub(:list).and_return(@server_response)
52
52
  end
53
53
 
@@ -68,7 +68,7 @@ describe Shef::ModelWrapper do
68
68
  @node_2 = Chef::Node.new
69
69
  @node_2.name("yummy")
70
70
  @server_response = {:node_1 => @node_1, :node_2 => @node_2}
71
- @wrapper = Shef::ModelWrapper.new(Chef::Node)
71
+ @wrapper = Shell::ModelWrapper.new(Chef::Node)
72
72
 
73
73
  # Creating a Chef::Search::Query object tries to read the private key...
74
74
  @searcher = mock("Chef::Search::Query #{__FILE__}:#{__LINE__}")
@@ -18,16 +18,16 @@
18
18
 
19
19
  require 'spec_helper'
20
20
 
21
- describe Shef::Extensions do
21
+ describe Shell::Extensions do
22
22
  describe "extending object for top level methods" do
23
23
 
24
24
  before do
25
- @shef_client = TestableShefSession.instance
26
- Shef.stub!(:session).and_return(@shef_client)
25
+ @shell_client = TestableShellSession.instance
26
+ Shell.stub!(:session).and_return(@shell_client)
27
27
  @job_manager = TestJobManager.new
28
28
  @root_context = Object.new
29
29
  @root_context.instance_eval(&ObjectTestHarness)
30
- Shef::Extensions.extend_context_object(@root_context)
30
+ Shell::Extensions.extend_context_object(@root_context)
31
31
  @root_context.conf = mock("irbconf")
32
32
  end
33
33
 
@@ -39,39 +39,39 @@ describe Shef::Extensions do
39
39
  @job_manager.jobs = [[:thread, irb_session]]
40
40
  @root_context.stub!(:jobs).and_return(@job_manager)
41
41
  @root_context.ensure_session_select_defined
42
- @root_context.jobs.select_shef_session(target_context_obj).should == irb_session
43
- @root_context.jobs.select_shef_session(:idontexist).should be_nil
42
+ @root_context.jobs.select_shell_session(target_context_obj).should == irb_session
43
+ @root_context.jobs.select_shell_session(:idontexist).should be_nil
44
44
  end
45
45
 
46
46
  it "finds, then switches to a session" do
47
47
  @job_manager.jobs = []
48
48
  @root_context.stub!(:ensure_session_select_defined)
49
49
  @root_context.stub!(:jobs).and_return(@job_manager)
50
- @job_manager.should_receive(:select_shef_session).and_return(:the_shef_session)
51
- @job_manager.should_receive(:switch).with(:the_shef_session)
50
+ @job_manager.should_receive(:select_shell_session).and_return(:the_shell_session)
51
+ @job_manager.should_receive(:switch).with(:the_shell_session)
52
52
  @root_context.find_or_create_session_for(:foo)
53
53
  end
54
54
 
55
55
  it "creates a new session if an existing one isn't found" do
56
56
  @job_manager.jobs = []
57
57
  @root_context.stub!(:jobs).and_return(@job_manager)
58
- @job_manager.stub!(:select_shef_session).and_return(nil)
58
+ @job_manager.stub!(:select_shell_session).and_return(nil)
59
59
  @root_context.should_receive(:irb).with(:foo)
60
60
  @root_context.find_or_create_session_for(:foo)
61
61
  end
62
62
 
63
63
  it "switches to recipe context" do
64
- @root_context.should respond_to(:recipe)
65
- @shef_client.recipe = :monkeyTime
64
+ @root_context.should respond_to(:recipe_mode)
65
+ @shell_client.recipe = :monkeyTime
66
66
  @root_context.should_receive(:find_or_create_session_for).with(:monkeyTime)
67
- @root_context.recipe
67
+ @root_context.recipe_mode
68
68
  end
69
69
 
70
70
  it "switches to attribute context" do
71
- @root_context.should respond_to(:attributes)
72
- @shef_client.node = "monkeyNodeTime"
71
+ @root_context.should respond_to(:attributes_mode)
72
+ @shell_client.node = "monkeyNodeTime"
73
73
  @root_context.should_receive(:find_or_create_session_for).with("monkeyNodeTime")
74
- @root_context.attributes
74
+ @root_context.attributes_mode
75
75
  end
76
76
 
77
77
  it "has a help command" do
@@ -93,7 +93,7 @@ describe Shef::Extensions do
93
93
 
94
94
  it "prints node attributes" do
95
95
  node = mock("node", :attribute => {:foo => :bar})
96
- @shef_client.node = node
96
+ @shell_client.node = node
97
97
  @root_context.should_receive(:pp).with({:foo => :bar})
98
98
  @root_context.ohai
99
99
  @root_context.should_receive(:pp).with(:bar)
@@ -101,7 +101,7 @@ describe Shef::Extensions do
101
101
  end
102
102
 
103
103
  it "resets the recipe and reloads ohai data" do
104
- @shef_client.should_receive(:reset!)
104
+ @shell_client.should_receive(:reset!)
105
105
  @root_context.reset
106
106
  end
107
107
 
@@ -117,12 +117,12 @@ describe Shef::Extensions do
117
117
  end
118
118
 
119
119
  it "gives access to the stepable iterator" do
120
- Shef::StandAloneSession.instance.stub!(:reset!)
121
- Shef.session.stub!(:rebuild_context)
120
+ Shell::StandAloneSession.instance.stub!(:reset!)
121
+ Shell.session.stub!(:rebuild_context)
122
122
  events = Chef::EventDispatch::Dispatcher.new
123
123
  run_context = Chef::RunContext.new(Chef::Node.new, {}, events)
124
124
  run_context.resource_collection.instance_variable_set(:@iterator, :the_iterator)
125
- Shef.session.run_context = run_context
125
+ Shell.session.run_context = run_context
126
126
  @root_context.chef_run.should == :the_iterator
127
127
  end
128
128
 
@@ -140,7 +140,7 @@ describe Shef::Extensions do
140
140
  @events = Chef::EventDispatch::Dispatcher.new
141
141
  @run_context = Chef::RunContext.new(Chef::Node.new, {}, @events)
142
142
  @recipe_object = Chef::Recipe.new(nil, nil, @run_context)
143
- Shef::Extensions.extend_context_recipe(@recipe_object)
143
+ Shell::Extensions.extend_context_recipe(@recipe_object)
144
144
  end
145
145
 
146
146
  it "gives a list of the resources" do
@@ -19,7 +19,7 @@ require 'spec_helper'
19
19
  require "ostruct"
20
20
 
21
21
 
22
- class TestableShefSession < Shef::ShefSession
22
+ class TestableShellSession < Shell::ShellSession
23
23
 
24
24
  def rebuild_node
25
25
  nil
@@ -39,54 +39,22 @@ class TestableShefSession < Shef::ShefSession
39
39
 
40
40
  end
41
41
 
42
- describe Shef::ShefSession do
42
+ describe Shell::ShellSession do
43
43
 
44
44
  it "is a singleton object" do
45
- Shef::ShefSession.should include(Singleton)
45
+ Shell::ShellSession.should include(Singleton)
46
46
  end
47
47
 
48
48
  end
49
49
 
50
- describe Shef::ClientSession do
50
+ describe Shell::StandAloneSession do
51
51
  before do
52
- Chef::Config[:shell_config] = { :override_runlist => [Chef::RunList::RunListItem.new('shell::override')] }
53
- @session = Shef::ClientSession.instance
54
- @node = Chef::Node.build("foo")
55
- @session.node = @node
56
- @client = double("Chef::Client.new",
57
- :run_ohai => true,
58
- :load_node => true,
59
- :build_node => true,
60
- :register => true,
61
- :sync_cookbooks => {})
62
- end
63
-
64
- it "builds the node's run_context with the proper environment" do
65
- @session.instance_variable_set(:@client, @client)
66
-
67
-
68
- @expansion = Chef::RunList::RunListExpansion.new(@node.chef_environment, [])
69
-
70
- @node.run_list.should_receive(:expand).with(@node.chef_environment).and_return(@expansion)
71
- @session.rebuild_context
72
- end
73
-
74
- it "passes the shell CLI args to the client" do
75
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
76
- @session.send(:rebuild_node)
77
- end
78
-
79
- end
80
-
81
- describe Shef::StandAloneSession do
82
- before do
83
- Chef::Config[:shell_config] = { :override_runlist => [Chef::RunList::RunListItem.new('shell::override')] }
84
- @session = Shef::StandAloneSession.instance
52
+ @session = Shell::StandAloneSession.instance
85
53
  @node = @session.node = Chef::Node.new
86
54
  @events = Chef::EventDispatch::Dispatcher.new
87
55
  @run_context = @session.run_context = Chef::RunContext.new(@node, {}, @events)
88
56
  @recipe = @session.recipe = Chef::Recipe.new(nil, nil, @run_context)
89
- Shef::Extensions.extend_context_recipe(@recipe)
57
+ Shell::Extensions.extend_context_recipe(@recipe)
90
58
  end
91
59
 
92
60
  it "has a run_context" do
@@ -116,44 +84,32 @@ describe Shef::StandAloneSession do
116
84
  @recipe.run_chef.should == :converged
117
85
  end
118
86
 
119
- it "passes the shell CLI args to the client" do
120
- @client = double("Chef::Client.new",
121
- :run_ohai => true,
122
- :load_node => true,
123
- :build_node => true,
124
- :register => true,
125
- :sync_cookbooks => {})
126
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
127
- @session.send(:rebuild_node)
128
- end
129
-
130
87
  end
131
88
 
132
- describe Shef::SoloSession do
89
+ describe Shell::SoloSession do
133
90
  before do
134
- Chef::Config[:shell_config] = { :override_runlist => [Chef::RunList::RunListItem.new('shell::override')] }
135
- Chef::Config[:shef_solo] = true
136
- @session = Shef::SoloSession.instance
91
+ Chef::Config[:shell_solo] = true
92
+ @session = Shell::SoloSession.instance
137
93
  @node = Chef::Node.new
138
94
  @events = Chef::EventDispatch::Dispatcher.new
139
95
  @run_context = @session.run_context = Chef::RunContext.new(@node, {}, @events)
140
96
  @session.node = @node
141
97
  @recipe = @session.recipe = Chef::Recipe.new(nil, nil, @run_context)
142
- Shef::Extensions.extend_context_recipe(@recipe)
98
+ Shell::Extensions.extend_context_recipe(@recipe)
143
99
  end
144
100
 
145
101
  after do
146
- Chef::Config[:shef_solo] = nil
102
+ Chef::Config[:shell_solo] = nil
147
103
  end
148
104
 
149
- it "returns a collection based on its compilation object and the extra recipe provided by shef" do
105
+ it "returns a collection based on it's compilation object and the extra recipe provided by chef-shell" do
150
106
  @session.stub!(:node_built?).and_return(true)
151
107
  kitteh = Chef::Resource::Cat.new("keyboard")
152
108
  @recipe.run_context.resource_collection << kitteh
153
109
  @session.resource_collection.should include(kitteh)
154
110
  end
155
111
 
156
- it "returns definitions from its compilation object" do
112
+ it "returns definitions from it's compilation object" do
157
113
  @session.definitions.should == @run_context.definitions
158
114
  end
159
115
 
@@ -163,7 +119,7 @@ describe Shef::SoloSession do
163
119
  #pending "1) keep attribs in an ivar 2) pass them to the node 3) feed them to the node on reset"
164
120
  end
165
121
 
166
- it "generates its resource collection from the compiled cookbooks and the ad hoc recipe" do
122
+ it "generates it's resource collection from the compiled cookbooks and the ad hoc recipe" do
167
123
  @session.stub!(:node_built?).and_return(true)
168
124
  kitteh_cat = Chef::Resource::Cat.new("kitteh")
169
125
  @run_context.resource_collection << kitteh_cat
@@ -182,15 +138,4 @@ describe Shef::SoloSession do
182
138
  @recipe.run_chef.should == :converged
183
139
  end
184
140
 
185
- it "passes the shell CLI args to the client" do
186
- @client = double("Chef::Client.new",
187
- :run_ohai => true,
188
- :load_node => true,
189
- :build_node => true,
190
- :register => true,
191
- :sync_cookbooks => {})
192
- Chef::Client.should_receive(:new).with(nil, Chef::Config[:shell_config]).and_return(@client)
193
- @session.send(:rebuild_node)
194
- end
195
-
196
141
  end