chef 11.4.4 → 11.6.0.hotfix.1

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 (504) hide show
  1. data/README.md +1 -1
  2. data/Rakefile +18 -1
  3. data/bin/chef-service-manager +37 -0
  4. data/distro/common/html/chef-client.8.html +4 -4
  5. data/distro/common/html/chef-expander.8.html +4 -4
  6. data/distro/common/html/chef-expanderctl.8.html +4 -4
  7. data/distro/common/html/chef-server-webui.8.html +4 -4
  8. data/distro/common/html/chef-server.8.html +4 -4
  9. data/distro/common/html/chef-shell.1.html +4 -4
  10. data/distro/common/html/chef-solo.8.html +12 -18
  11. data/distro/common/html/chef-solr.8.html +4 -4
  12. data/distro/common/html/knife-bootstrap.1.html +4 -4
  13. data/distro/common/html/knife-client.1.html +4 -4
  14. data/distro/common/html/knife-configure.1.html +4 -4
  15. data/distro/common/html/knife-cookbook-site.1.html +4 -4
  16. data/distro/common/html/knife-cookbook.1.html +7 -10
  17. data/distro/common/html/knife-data-bag.1.html +7 -10
  18. data/distro/common/html/knife-environment.1.html +6 -8
  19. data/distro/common/html/knife-exec.1.html +4 -4
  20. data/distro/common/html/knife-index.1.html +4 -4
  21. data/distro/common/html/knife-node.1.html +4 -4
  22. data/distro/common/html/knife-role.1.html +4 -4
  23. data/distro/common/html/knife-search.1.html +4 -4
  24. data/distro/common/html/knife-ssh.1.html +4 -4
  25. data/distro/common/html/knife-status.1.html +4 -4
  26. data/distro/common/html/knife-tag.1.html +4 -4
  27. data/distro/common/html/knife.1.html +4 -4
  28. data/distro/common/man/man1/chef-shell.1 +1 -1
  29. data/distro/common/man/man1/knife-bootstrap.1 +1 -1
  30. data/distro/common/man/man1/knife-client.1 +1 -1
  31. data/distro/common/man/man1/knife-configure.1 +1 -1
  32. data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
  33. data/distro/common/man/man1/knife-cookbook.1 +2 -15
  34. data/distro/common/man/man1/knife-data-bag.1 +2 -15
  35. data/distro/common/man/man1/knife-environment.1 +2 -12
  36. data/distro/common/man/man1/knife-exec.1 +1 -1
  37. data/distro/common/man/man1/knife-index.1 +1 -1
  38. data/distro/common/man/man1/knife-node.1 +1 -1
  39. data/distro/common/man/man1/knife-role.1 +1 -1
  40. data/distro/common/man/man1/knife-search.1 +1 -1
  41. data/distro/common/man/man1/knife-ssh.1 +1 -1
  42. data/distro/common/man/man1/knife-status.1 +1 -1
  43. data/distro/common/man/man1/knife-tag.1 +1 -1
  44. data/distro/common/man/man1/knife.1 +1 -1
  45. data/distro/common/man/man8/chef-client.8 +1 -1
  46. data/distro/common/man/man8/chef-expander.8 +1 -1
  47. data/distro/common/man/man8/chef-expanderctl.8 +1 -1
  48. data/distro/common/man/man8/chef-server-webui.8 +1 -1
  49. data/distro/common/man/man8/chef-server.8 +1 -1
  50. data/distro/common/man/man8/chef-solo.8 +4 -36
  51. data/distro/common/man/man8/chef-solr.8 +1 -1
  52. data/distro/debian/etc/init.d/chef-client +4 -2
  53. data/distro/windows/service_manager.rb +2 -146
  54. data/lib/chef.rb +1 -1
  55. data/lib/chef/application.rb +5 -12
  56. data/lib/chef/application/apply.rb +2 -0
  57. data/lib/chef/application/client.rb +12 -12
  58. data/lib/chef/application/knife.rb +2 -2
  59. data/lib/chef/application/solo.rb +4 -5
  60. data/lib/chef/application/windows_service.rb +113 -56
  61. data/lib/chef/application/windows_service_manager.rb +179 -0
  62. data/lib/chef/chef_fs.rb +2 -4
  63. data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
  64. data/lib/chef/chef_fs/command_line.rb +145 -93
  65. data/lib/chef/chef_fs/config.rb +205 -0
  66. data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
  67. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
  68. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
  69. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
  70. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
  71. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
  72. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
  73. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
  74. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
  75. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
  76. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
  77. data/lib/chef/chef_fs/file_system.rb +195 -127
  78. data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
  79. data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
  80. data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
  81. data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -0
  82. data/lib/chef/chef_fs/file_system/base_fs_object.rb +98 -39
  83. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
  84. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
  85. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
  86. data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
  87. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +14 -63
  88. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +93 -3
  89. data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +35 -9
  90. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +67 -32
  91. data/lib/chef/chef_fs/file_system/cookbook_file.rb +13 -6
  92. data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
  93. data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
  94. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +102 -21
  95. data/lib/chef/chef_fs/file_system/data_bag_dir.rb +12 -21
  96. data/lib/chef/chef_fs/file_system/data_bags_dir.rb +14 -8
  97. data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
  98. data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
  99. data/lib/chef/chef_fs/file_system/file_system_entry.rb +8 -8
  100. data/lib/chef/chef_fs/file_system/file_system_error.rb +3 -1
  101. data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
  102. data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
  103. data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
  104. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
  105. data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +2 -2
  106. data/lib/chef/chef_fs/file_system/nodes_dir.rb +17 -9
  107. data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
  108. data/lib/chef/chef_fs/file_system/not_found_error.rb +2 -2
  109. data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
  110. data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
  111. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +42 -13
  112. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +81 -27
  113. data/lib/chef/chef_fs/knife.rb +68 -29
  114. data/lib/chef/chef_fs/parallelizer.rb +129 -0
  115. data/lib/chef/chef_fs/path_utils.rb +29 -3
  116. data/lib/chef/chef_fs/raw_request.rb +79 -0
  117. data/lib/chef/client.rb +46 -20
  118. data/lib/chef/config.rb +59 -61
  119. data/lib/chef/cookbook/chefignore.rb +2 -1
  120. data/lib/chef/cookbook/synchronizer.rb +8 -6
  121. data/lib/chef/cookbook/syntax_check.rb +17 -2
  122. data/lib/chef/cookbook_uploader.rb +10 -1
  123. data/lib/chef/cookbook_version.rb +0 -109
  124. data/lib/chef/data_bag.rb +15 -6
  125. data/lib/chef/deprecation/mixin/template.rb +49 -0
  126. data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
  127. data/lib/chef/deprecation/provider/file.rb +197 -0
  128. data/lib/chef/deprecation/provider/remote_file.rb +86 -0
  129. data/lib/chef/deprecation/provider/template.rb +63 -0
  130. data/lib/chef/deprecation/warnings.rb +38 -0
  131. data/lib/chef/encrypted_data_bag_item.rb +153 -61
  132. data/lib/chef/environment.rb +34 -3
  133. data/lib/chef/event_dispatch/base.rb +3 -0
  134. data/lib/chef/exceptions.rb +27 -2
  135. data/lib/chef/file_access_control/unix.rb +64 -7
  136. data/lib/chef/file_access_control/windows.rb +22 -11
  137. data/lib/chef/file_content_management/content_base.rb +56 -0
  138. data/lib/chef/file_content_management/deploy.rb +38 -0
  139. data/lib/chef/file_content_management/deploy/cp.rb +48 -0
  140. data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
  141. data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
  142. data/lib/chef/file_content_management/tempfile.rb +61 -0
  143. data/lib/chef/formatters/doc.rb +1 -1
  144. data/lib/chef/formatters/error_descriptor.rb +5 -4
  145. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
  146. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +4 -0
  147. data/lib/chef/json_compat.rb +3 -0
  148. data/lib/chef/knife.rb +12 -3
  149. data/lib/chef/knife/bootstrap.rb +46 -2
  150. data/lib/chef/knife/bootstrap/archlinux-gems.erb +3 -3
  151. data/lib/chef/knife/bootstrap/centos5-gems.erb +3 -3
  152. data/lib/chef/knife/bootstrap/chef-full.erb +4 -4
  153. data/lib/chef/knife/bootstrap/fedora13-gems.erb +3 -3
  154. data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +3 -3
  155. data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +3 -3
  156. data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +3 -3
  157. data/lib/chef/knife/client_show.rb +2 -5
  158. data/lib/chef/knife/configure.rb +3 -3
  159. data/lib/chef/knife/cookbook_create.rb +6 -5
  160. data/lib/chef/knife/cookbook_download.rb +13 -5
  161. data/lib/chef/knife/cookbook_site_share.rb +1 -0
  162. data/lib/chef/knife/cookbook_test.rb +1 -0
  163. data/lib/chef/knife/cookbook_upload.rb +4 -9
  164. data/lib/chef/knife/core/bootstrap_context.rb +10 -4
  165. data/lib/chef/knife/core/generic_presenter.rb +16 -0
  166. data/lib/chef/knife/core/node_editor.rb +1 -1
  167. data/lib/chef/knife/core/subcommand_loader.rb +43 -12
  168. data/lib/chef/knife/core/ui.rb +19 -4
  169. data/lib/chef/knife/delete.rb +76 -9
  170. data/lib/chef/knife/deps.rb +139 -0
  171. data/lib/chef/knife/diff.rb +22 -5
  172. data/lib/chef/knife/download.rb +16 -3
  173. data/lib/chef/knife/edit.rb +76 -0
  174. data/lib/chef/knife/environment_show.rb +2 -7
  175. data/lib/chef/knife/list.rb +91 -47
  176. data/lib/chef/knife/node_run_list_set.rb +66 -0
  177. data/lib/chef/knife/node_show.rb +1 -7
  178. data/lib/chef/knife/raw.rb +20 -64
  179. data/lib/chef/knife/role_show.rb +2 -4
  180. data/lib/chef/knife/search.rb +5 -6
  181. data/lib/chef/knife/show.rb +34 -11
  182. data/lib/chef/knife/ssh.rb +8 -0
  183. data/lib/chef/knife/upload.rb +23 -4
  184. data/lib/chef/knife/user_show.rb +2 -5
  185. data/lib/chef/knife/xargs.rb +265 -0
  186. data/lib/chef/log.rb +2 -2
  187. data/lib/chef/mixin/file_class.rb +0 -9
  188. data/lib/chef/mixin/language_include_recipe.rb +1 -1
  189. data/lib/chef/mixin/params_validate.rb +19 -9
  190. data/lib/chef/mixin/template.rb +126 -36
  191. data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
  192. data/lib/chef/monkey_patches/file.rb +26 -0
  193. data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
  194. data/lib/chef/monkey_patches/securerandom.rb +44 -0
  195. data/lib/chef/monologger.rb +93 -0
  196. data/lib/chef/node.rb +4 -0
  197. data/lib/chef/platform.rb +4 -490
  198. data/lib/chef/platform/provider_mapping.rb +529 -0
  199. data/lib/chef/{monkey_patches/dir.rb → platform/query_helpers.rb} +25 -19
  200. data/lib/chef/provider.rb +12 -9
  201. data/lib/chef/provider/batch.rb +35 -0
  202. data/lib/chef/provider/cookbook_file.rb +9 -78
  203. data/lib/chef/provider/cookbook_file/content.rb +49 -0
  204. data/lib/chef/provider/deploy.rb +24 -20
  205. data/lib/chef/provider/deploy/revision.rb +27 -0
  206. data/lib/chef/provider/directory.rb +19 -22
  207. data/lib/chef/provider/execute.rb +22 -5
  208. data/lib/chef/provider/file.rb +299 -217
  209. data/lib/chef/provider/file/content.rb +39 -0
  210. data/lib/chef/provider/git.rb +76 -43
  211. data/lib/chef/provider/group/usermod.rb +2 -2
  212. data/lib/chef/provider/ifconfig.rb +25 -35
  213. data/lib/chef/provider/ifconfig/debian.rb +71 -0
  214. data/lib/chef/provider/ifconfig/redhat.rb +47 -0
  215. data/lib/chef/provider/link.rb +10 -3
  216. data/lib/chef/provider/mount.rb +1 -1
  217. data/lib/chef/provider/mount/mount.rb +8 -3
  218. data/lib/chef/provider/mount/windows.rb +4 -1
  219. data/lib/chef/provider/package/portage.rb +9 -4
  220. data/lib/chef/provider/package/rubygems.rb +45 -10
  221. data/lib/chef/provider/package/smartos.rb +47 -36
  222. data/lib/chef/provider/package/yum.rb +19 -12
  223. data/lib/chef/provider/package/zypper.rb +45 -55
  224. data/lib/chef/provider/powershell_script.rb +77 -0
  225. data/lib/chef/provider/remote_directory.rb +5 -6
  226. data/lib/chef/provider/remote_file.rb +12 -108
  227. data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
  228. data/lib/chef/provider/remote_file/content.rb +75 -0
  229. data/lib/chef/provider/remote_file/fetcher.rb +43 -0
  230. data/lib/chef/provider/remote_file/ftp.rb +183 -0
  231. data/lib/chef/provider/remote_file/http.rb +124 -0
  232. data/lib/chef/provider/remote_file/local_file.rb +47 -0
  233. data/lib/chef/provider/route.rb +6 -2
  234. data/lib/chef/provider/script.rb +14 -2
  235. data/lib/chef/provider/service/macosx.rb +16 -10
  236. data/lib/chef/provider/service/solaris.rb +6 -5
  237. data/lib/chef/provider/template.rb +16 -78
  238. data/lib/chef/provider/template/content.rb +61 -0
  239. data/lib/chef/provider/user/solaris.rb +90 -0
  240. data/lib/chef/provider/user/useradd.rb +76 -63
  241. data/lib/chef/provider/windows_script.rb +73 -0
  242. data/lib/chef/providers.rb +16 -0
  243. data/lib/chef/resource.rb +23 -2
  244. data/lib/chef/resource/batch.rb +31 -0
  245. data/lib/chef/resource/conditional.rb +4 -0
  246. data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
  247. data/lib/chef/resource/file.rb +31 -3
  248. data/lib/chef/resource/link.rb +17 -0
  249. data/lib/chef/resource/lwrp_base.rb +1 -1
  250. data/lib/chef/resource/mount.rb +29 -2
  251. data/lib/chef/resource/powershell_script.rb +31 -0
  252. data/lib/chef/resource/remote_file.rb +47 -1
  253. data/lib/chef/resource/route.rb +1 -1
  254. data/lib/chef/resource/template.rb +145 -0
  255. data/lib/chef/resource/windows_script.rb +62 -0
  256. data/lib/chef/resource_collection.rb +45 -11
  257. data/lib/chef/resource_reporter.rb +81 -52
  258. data/lib/chef/resources.rb +2 -0
  259. data/lib/chef/rest.rb +13 -4
  260. data/lib/chef/rest/rest_request.rb +5 -1
  261. data/lib/chef/run_context/cookbook_compiler.rb +3 -3
  262. data/lib/chef/run_list/run_list_expansion.rb +1 -1
  263. data/lib/chef/run_lock.rb +7 -1
  264. data/lib/chef/runner.rb +0 -1
  265. data/lib/chef/scan_access_control.rb +6 -1
  266. data/lib/chef/search/query.rb +2 -2
  267. data/lib/chef/shell/shell_session.rb +2 -2
  268. data/lib/chef/util/backup.rb +84 -0
  269. data/lib/chef/util/diff.rb +145 -0
  270. data/lib/chef/util/file_edit.rb +1 -1
  271. data/lib/chef/util/selinux.rb +100 -0
  272. data/lib/chef/util/windows/net_user.rb +14 -1
  273. data/lib/chef/util/windows/volume.rb +2 -2
  274. data/lib/chef/version.rb +1 -1
  275. data/lib/chef/version/platform.rb +42 -0
  276. data/lib/chef/version_class.rb +1 -1
  277. data/lib/chef/version_constraint.rb +6 -5
  278. data/lib/chef/version_constraint/platform.rb +26 -0
  279. data/lib/chef/win32/api/file.rb +8 -2
  280. data/lib/chef/win32/version.rb +25 -8
  281. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
  282. data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
  283. data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
  284. data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
  285. data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
  286. data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
  287. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
  288. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
  289. data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
  290. data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
  291. data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
  292. data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
  293. data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
  294. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
  295. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
  296. data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
  297. data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
  298. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
  299. data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
  300. data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
  301. data/spec/data/apt/var/www/apt/conf/distributions +7 -0
  302. data/spec/data/apt/var/www/apt/conf/incoming +4 -0
  303. data/spec/data/apt/var/www/apt/conf/pulls +3 -0
  304. data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
  305. data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
  306. data/spec/data/apt/var/www/apt/db/packages.db +0 -0
  307. data/spec/data/apt/var/www/apt/db/references.db +0 -0
  308. data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
  309. data/spec/data/apt/var/www/apt/db/version +4 -0
  310. data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
  311. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
  312. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
  313. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
  314. data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
  315. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
  316. data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
  317. data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
  318. data/spec/data/bootstrap/secret.erb +9 -0
  319. data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
  320. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +2 -0
  321. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -0
  322. data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +1 -0
  323. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -0
  324. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -0
  325. data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
  326. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
  327. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
  328. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
  329. data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
  330. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
  331. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
  332. data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
  333. data/spec/data/git_bundles/example-repo.gitbundle +0 -0
  334. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  335. data/spec/data/knife_subcommand/test_yourself.rb +8 -0
  336. data/spec/data/null_config.rb +1 -0
  337. data/spec/data/partial_one.erb +1 -1
  338. data/spec/data/remote_file/nyan_cat.png.gz +0 -0
  339. data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
  340. data/spec/functional/knife/exec_spec.rb +2 -2
  341. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
  342. data/spec/functional/resource/batch_spec.rb +64 -0
  343. data/spec/functional/resource/cookbook_file_spec.rb +2 -3
  344. data/spec/functional/resource/deploy_revision_spec.rb +180 -0
  345. data/spec/functional/resource/directory_spec.rb +2 -2
  346. data/spec/functional/resource/file_spec.rb +17 -1
  347. data/spec/functional/resource/git_spec.rb +259 -0
  348. data/spec/functional/resource/link_spec.rb +422 -388
  349. data/spec/functional/resource/package_spec.rb +297 -0
  350. data/spec/functional/resource/powershell_spec.rb +188 -0
  351. data/spec/functional/resource/registry_spec.rb +8 -4
  352. data/spec/functional/resource/remote_directory_spec.rb +2 -2
  353. data/spec/functional/resource/remote_file_spec.rb +97 -29
  354. data/spec/functional/resource/template_spec.rb +173 -17
  355. data/spec/functional/resource/user_spec.rb +547 -0
  356. data/spec/functional/run_lock_spec.rb +5 -0
  357. data/spec/functional/shell_spec.rb +2 -1
  358. data/spec/functional/win32/service_manager_spec.rb +269 -0
  359. data/spec/functional/win32/versions_spec.rb +78 -0
  360. data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
  361. data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
  362. data/spec/integration/knife/chefignore_spec.rb +271 -0
  363. data/spec/integration/knife/delete_spec.rb +944 -0
  364. data/spec/integration/knife/deps_spec.rb +648 -0
  365. data/spec/integration/knife/diff_spec.rb +536 -0
  366. data/spec/integration/knife/download_spec.rb +962 -0
  367. data/spec/integration/knife/list_spec.rb +633 -0
  368. data/spec/integration/knife/raw_spec.rb +166 -0
  369. data/spec/integration/knife/redirection_spec.rb +57 -0
  370. data/spec/integration/knife/show_spec.rb +158 -0
  371. data/spec/integration/knife/upload_spec.rb +1060 -0
  372. data/spec/integration/solo/solo_spec.rb +41 -0
  373. data/spec/spec_helper.rb +55 -1
  374. data/spec/support/chef_helpers.rb +32 -0
  375. data/spec/support/platform_helpers.rb +40 -0
  376. data/spec/support/platforms/win32/spec_service.rb +59 -0
  377. data/spec/support/shared/functional/directory_resource.rb +43 -16
  378. data/spec/support/shared/functional/file_resource.rb +661 -20
  379. data/spec/support/shared/functional/securable_resource.rb +109 -8
  380. data/spec/support/shared/functional/securable_resource_with_reporting.rb +39 -31
  381. data/spec/support/shared/integration/integration_helper.rb +166 -0
  382. data/spec/support/shared/integration/knife_support.rb +171 -0
  383. data/spec/support/shared/unit/execute_resource.rb +125 -0
  384. data/spec/support/shared/unit/file_system_support.rb +8 -48
  385. data/spec/support/shared/unit/provider/file.rb +609 -0
  386. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
  387. data/spec/support/shared/unit/script_resource.rb +52 -0
  388. data/spec/support/shared/unit/windows_script_resource.rb +48 -0
  389. data/spec/tiny_server.rb +13 -11
  390. data/spec/unit/application/client_spec.rb +39 -1
  391. data/spec/unit/application/knife_spec.rb +12 -0
  392. data/spec/unit/application/solo_spec.rb +1 -1
  393. data/spec/unit/application_spec.rb +57 -2
  394. data/spec/unit/chef_fs/diff_spec.rb +30 -31
  395. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  396. data/spec/unit/chef_fs/file_system_spec.rb +2 -3
  397. data/spec/unit/client_spec.rb +20 -1
  398. data/spec/unit/config_spec.rb +70 -52
  399. data/spec/unit/cookbook/synchronizer_spec.rb +49 -1
  400. data/spec/unit/cookbook/syntax_check_spec.rb +28 -3
  401. data/spec/unit/cookbook_loader_spec.rb +3 -2
  402. data/spec/unit/daemon_spec.rb +7 -7
  403. data/spec/unit/data_bag_spec.rb +7 -0
  404. data/spec/unit/deprecation_spec.rb +86 -0
  405. data/spec/unit/encrypted_data_bag_item_spec.rb +183 -88
  406. data/spec/unit/environment_spec.rb +98 -0
  407. data/spec/unit/exceptions_spec.rb +6 -1
  408. data/spec/unit/file_access_control_spec.rb +21 -1
  409. data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
  410. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
  411. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
  412. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
  413. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -2
  414. data/spec/unit/knife/bootstrap_spec.rb +128 -29
  415. data/spec/unit/knife/configure_spec.rb +42 -26
  416. data/spec/unit/knife/cookbook_download_spec.rb +24 -3
  417. data/spec/unit/knife/cookbook_upload_spec.rb +8 -4
  418. data/spec/unit/knife/core/bootstrap_context_spec.rb +78 -61
  419. data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
  420. data/spec/unit/knife/core/ui_spec.rb +41 -0
  421. data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
  422. data/spec/unit/knife_spec.rb +21 -0
  423. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +1 -0
  424. data/spec/unit/mixin/params_validate_spec.rb +35 -0
  425. data/spec/unit/mixin/template_spec.rb +69 -57
  426. data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
  427. data/spec/unit/node_spec.rb +7 -0
  428. data/spec/unit/platform_spec.rb +15 -1
  429. data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
  430. data/spec/unit/provider/cookbook_file_spec.rb +26 -183
  431. data/spec/unit/provider/cron/solaris_spec.rb +1 -1
  432. data/spec/unit/provider/deploy/revision_spec.rb +19 -11
  433. data/spec/unit/provider/deploy_spec.rb +2 -2
  434. data/spec/unit/provider/directory_spec.rb +23 -23
  435. data/spec/unit/provider/execute_spec.rb +27 -1
  436. data/spec/unit/provider/file/content_spec.rb +101 -0
  437. data/spec/unit/provider/file_spec.rb +25 -484
  438. data/spec/unit/provider/git_spec.rb +224 -28
  439. data/spec/unit/provider/group/usermod_spec.rb +3 -1
  440. data/spec/unit/provider/ifconfig/debian_spec.rb +89 -0
  441. data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
  442. data/spec/unit/provider/ifconfig_spec.rb +0 -33
  443. data/spec/unit/provider/mount/mount_spec.rb +33 -2
  444. data/spec/unit/provider/mount/windows_spec.rb +4 -1
  445. data/spec/unit/provider/mount_spec.rb +16 -6
  446. data/spec/unit/provider/package/portage_spec.rb +44 -0
  447. data/spec/unit/provider/package/rubygems_spec.rb +44 -1
  448. data/spec/unit/provider/package/smartos_spec.rb +3 -2
  449. data/spec/unit/provider/package/yum_spec.rb +36 -39
  450. data/spec/unit/provider/package/zypper_spec.rb +84 -22
  451. data/spec/unit/provider/package_spec.rb +0 -4
  452. data/spec/unit/provider/powershell_spec.rb +38 -0
  453. data/spec/unit/provider/remote_directory_spec.rb +0 -4
  454. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
  455. data/spec/unit/provider/remote_file/content_spec.rb +230 -0
  456. data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
  457. data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
  458. data/spec/unit/provider/remote_file/http_spec.rb +319 -0
  459. data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
  460. data/spec/unit/provider/remote_file_spec.rb +33 -295
  461. data/spec/unit/provider/route_spec.rb +25 -9
  462. data/spec/unit/provider/service/macosx_spec.rb +176 -152
  463. data/spec/unit/provider/service/solaris_smf_service_spec.rb +21 -18
  464. data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
  465. data/spec/unit/provider/service/upstart_service_spec.rb +2 -2
  466. data/spec/unit/provider/service_spec.rb +3 -3
  467. data/spec/unit/provider/template/content_spec.rb +78 -0
  468. data/spec/unit/provider/template_spec.rb +52 -184
  469. data/spec/unit/provider/user/solaris_spec.rb +80 -0
  470. data/spec/unit/provider/user/useradd_spec.rb +12 -358
  471. data/spec/unit/resource/batch_spec.rb +48 -0
  472. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
  473. data/spec/unit/resource/execute_spec.rb +3 -101
  474. data/spec/unit/resource/file_spec.rb +0 -5
  475. data/spec/unit/resource/group_spec.rb +9 -0
  476. data/spec/unit/resource/ifconfig_spec.rb +60 -1
  477. data/spec/unit/resource/link_spec.rb +1 -0
  478. data/spec/unit/resource/mount_spec.rb +37 -0
  479. data/spec/unit/resource/powershell_spec.rb +48 -0
  480. data/spec/unit/resource/remote_file_spec.rb +44 -4
  481. data/spec/unit/resource/route_spec.rb +1 -1
  482. data/spec/unit/resource/script_spec.rb +13 -36
  483. data/spec/unit/resource/template_spec.rb +111 -8
  484. data/spec/unit/resource/user_spec.rb +7 -0
  485. data/spec/unit/resource_collection_spec.rb +61 -32
  486. data/spec/unit/resource_reporter_spec.rb +115 -102
  487. data/spec/unit/resource_spec.rb +170 -1
  488. data/spec/unit/rest/auth_credentials_spec.rb +2 -2
  489. data/spec/unit/rest_spec.rb +6 -2
  490. data/spec/unit/run_context/cookbook_compiler_spec.rb +9 -0
  491. data/spec/unit/runner_spec.rb +1 -1
  492. data/spec/unit/scan_access_control_spec.rb +4 -2
  493. data/spec/unit/shell/shell_session_spec.rb +15 -2
  494. data/spec/unit/util/backup_spec.rb +149 -0
  495. data/spec/unit/util/diff_spec.rb +596 -0
  496. data/spec/unit/util/selinux_spec.rb +172 -0
  497. data/spec/unit/version/platform_spec.rb +61 -0
  498. data/spec/unit/version_constraint/platform_spec.rb +46 -0
  499. data/spec/unit/version_constraint_spec.rb +5 -0
  500. metadata +233 -10
  501. data/lib/chef/chef_fs/file_system/data_bag_item.rb +0 -59
  502. data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +0 -237
  503. data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +0 -568
  504. data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +0 -220
@@ -19,209 +19,233 @@
19
19
  require 'spec_helper'
20
20
 
21
21
  describe Chef::Provider::Service::Macosx do
22
- let(:node) { Chef::Node.new }
23
- let(:events) {Chef::EventDispatch::Dispatcher.new}
24
- let(:run_context) { Chef::RunContext.new(node, {}, events) }
25
- let(:provider) { described_class.new(new_resource, run_context) }
26
- let(:stdout) { StringIO.new }
27
-
28
- before do
29
- Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
30
- provider.stub!(:shell_out!).
31
- with("launchctl list", {:group => 1001, :user => 101}).
32
- and_return(mock("ouput", :stdout => stdout))
33
-
34
- File.stub!(:stat).and_return(mock("stat", :gid => 1001, :uid => 101))
35
- end
36
-
37
- ["redis-server", "io.redis.redis-server"].each do |service_name|
38
- context "when service name is given as #{service_name}" do
39
- let(:new_resource) { Chef::Resource::Service.new(service_name) }
40
- let!(:current_resource) { Chef::Resource::Service.new(service_name) }
41
-
42
- describe "#load_current_resource" do
43
- context "when launchctl returns pid in service list" do
44
- let(:stdout) { StringIO.new <<-SVC_LIST }
45
- 12761 - 0x100114220.old.machinit.thing
46
- 7777 - io.redis.redis-server
47
- - - com.lol.stopped-thing
48
- SVC_LIST
22
+ describe ".gather_plist_dirs" do
23
+ context "when HOME directory is set" do
24
+ before do
25
+ ENV.stub(:[]).with('HOME').and_return("/User/someuser")
26
+ end
49
27
 
50
- before do
51
- provider.load_current_resource
52
- end
28
+ it "includes users's LaunchAgents folder" do
29
+ described_class.gather_plist_dirs.should include("#{ENV['HOME']}/Library/LaunchAgents")
30
+ end
31
+ end
53
32
 
54
- it "sets resource running state to true" do
55
- provider.current_resource.running.should be_true
56
- end
33
+ context "when HOME directory is not set" do
34
+ before do
35
+ ENV.stub(:[]).with('HOME').and_return(nil)
36
+ end
57
37
 
58
- it "sets resouce enabled state to true" do
59
- provider.current_resource.enabled.should be_true
60
- end
61
- end
38
+ it "doesn't include user's LaunchAgents folder" do
39
+ described_class.gather_plist_dirs.should_not include("~/Library/LaunchAgents")
40
+ end
41
+ end
42
+ end
62
43
 
63
- describe "running unsupported actions" do
64
- before do
65
- Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
66
- end
67
- it "should throw an exception when enable action is attempted" do
68
- lambda {provider.run_action(:enable)}.should raise_error(Chef::Exceptions::UnsupportedAction)
69
- end
70
- it "should throw an exception when reload action is attempted" do
71
- lambda {provider.run_action(:reload)}.should raise_error(Chef::Exceptions::UnsupportedAction)
72
- end
73
- it "should throw an exception when disable action is attempted" do
74
- lambda {provider.run_action(:disable)}.should raise_error(Chef::Exceptions::UnsupportedAction)
75
- end
76
- end
77
- context "when launchctl returns empty service pid" do
78
- let(:stdout) { StringIO.new <<-SVC_LIST }
79
- 12761 - 0x100114220.old.machinit.thing
80
- - - io.redis.redis-server
81
- - - com.lol.stopped-thing
82
- SVC_LIST
44
+ context "when service name is given as" do
45
+ let(:node) { Chef::Node.new }
46
+ let(:events) {Chef::EventDispatch::Dispatcher.new}
47
+ let(:run_context) { Chef::RunContext.new(node, {}, events) }
48
+ let(:provider) { described_class.new(new_resource, run_context) }
49
+ let(:stdout) { StringIO.new }
50
+
51
+ ["redis-server", "io.redis.redis-server"].each do |service_name|
52
+ before do
53
+ Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
54
+ provider.stub!(:shell_out!).
55
+ with("launchctl list", {:group => 1001, :user => 101}).
56
+ and_return(mock("ouput", :stdout => stdout))
57
+
58
+ File.stub!(:stat).and_return(mock("stat", :gid => 1001, :uid => 101))
59
+ end
83
60
 
84
- before do
85
- provider.load_current_resource
86
- end
61
+ context "#{service_name}" do
62
+ let(:new_resource) { Chef::Resource::Service.new(service_name) }
63
+ let!(:current_resource) { Chef::Resource::Service.new(service_name) }
87
64
 
88
- it "sets resource running state to false" do
89
- provider.current_resource.running.should be_false
90
- end
65
+ describe "#load_current_resource" do
66
+ context "when launchctl returns pid in service list" do
67
+ let(:stdout) { StringIO.new <<-SVC_LIST }
68
+ 12761 - 0x100114220.old.machinit.thing
69
+ 7777 - io.redis.redis-server
70
+ - - com.lol.stopped-thing
71
+ SVC_LIST
91
72
 
92
- it "sets resouce enabled state to true" do
93
- provider.current_resource.enabled.should be_true
94
- end
95
- end
73
+ before do
74
+ provider.load_current_resource
75
+ end
96
76
 
97
- context "when launchctl doesn't return service entry at all" do
98
- let(:stdout) { StringIO.new <<-SVC_LIST }
99
- 12761 - 0x100114220.old.machinit.thing
100
- - - com.lol.stopped-thing
101
- SVC_LIST
77
+ it "sets resource running state to true" do
78
+ provider.current_resource.running.should be_true
79
+ end
102
80
 
103
- it "sets service running state to false" do
104
- provider.load_current_resource
105
- provider.current_resource.running.should be_false
81
+ it "sets resouce enabled state to true" do
82
+ provider.current_resource.enabled.should be_true
83
+ end
106
84
  end
107
85
 
108
- context "and plist for service is not available" do
86
+ describe "running unsupported actions" do
109
87
  before do
110
- Dir.stub!(:glob).and_return([])
111
- provider.load_current_resource
88
+ Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
112
89
  end
113
-
114
- it "sets resouce enabled state to false" do
115
- provider.current_resource.enabled.should be_false
90
+ it "should throw an exception when enable action is attempted" do
91
+ lambda {provider.run_action(:enable)}.should raise_error(Chef::Exceptions::UnsupportedAction)
92
+ end
93
+ it "should throw an exception when reload action is attempted" do
94
+ lambda {provider.run_action(:reload)}.should raise_error(Chef::Exceptions::UnsupportedAction)
95
+ end
96
+ it "should throw an exception when disable action is attempted" do
97
+ lambda {provider.run_action(:disable)}.should raise_error(Chef::Exceptions::UnsupportedAction)
116
98
  end
117
99
  end
100
+ context "when launchctl returns empty service pid" do
101
+ let(:stdout) { StringIO.new <<-SVC_LIST }
102
+ 12761 - 0x100114220.old.machinit.thing
103
+ - - io.redis.redis-server
104
+ - - com.lol.stopped-thing
105
+ SVC_LIST
118
106
 
119
- context "and plist for service is available" do
120
107
  before do
121
- Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
122
108
  provider.load_current_resource
123
109
  end
124
110
 
111
+ it "sets resource running state to false" do
112
+ provider.current_resource.running.should be_false
113
+ end
114
+
125
115
  it "sets resouce enabled state to true" do
126
116
  provider.current_resource.enabled.should be_true
127
117
  end
128
118
  end
129
119
 
130
- describe "and several plists match service name" do
131
- it "throws exception" do
132
- Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist",
133
- "/Users/wtf/something.plist"])
120
+ context "when launchctl doesn't return service entry at all" do
121
+ let(:stdout) { StringIO.new <<-SVC_LIST }
122
+ 12761 - 0x100114220.old.machinit.thing
123
+ - - com.lol.stopped-thing
124
+ SVC_LIST
125
+
126
+ it "sets service running state to false" do
134
127
  provider.load_current_resource
135
- provider.define_resource_requirements
136
- lambda { provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
128
+ provider.current_resource.running.should be_false
129
+ end
130
+
131
+ context "and plist for service is not available" do
132
+ before do
133
+ Dir.stub!(:glob).and_return([])
134
+ provider.load_current_resource
135
+ end
136
+
137
+ it "sets resouce enabled state to false" do
138
+ provider.current_resource.enabled.should be_false
139
+ end
140
+ end
141
+
142
+ context "and plist for service is available" do
143
+ before do
144
+ Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist"], [])
145
+ provider.load_current_resource
146
+ end
147
+
148
+ it "sets resouce enabled state to true" do
149
+ provider.current_resource.enabled.should be_true
150
+ end
151
+ end
152
+
153
+ describe "and several plists match service name" do
154
+ it "throws exception" do
155
+ Dir.stub!(:glob).and_return(["/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist",
156
+ "/Users/wtf/something.plist"])
157
+ provider.load_current_resource
158
+ provider.define_resource_requirements
159
+ lambda { provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Service)
160
+ end
137
161
  end
138
162
  end
139
163
  end
140
- end
141
- describe "#start_service" do
142
- before do
143
- Chef::Resource::Service.stub!(:new).and_return(current_resource)
144
- provider.load_current_resource
145
- current_resource.stub!(:running).and_return(false)
146
- end
164
+ describe "#start_service" do
165
+ before do
166
+ Chef::Resource::Service.stub!(:new).and_return(current_resource)
167
+ provider.load_current_resource
168
+ current_resource.stub!(:running).and_return(false)
169
+ end
147
170
 
148
- it "calls the start command if one is specified and service is not running" do
149
- new_resource.stub!(:start_command).and_return("cowsay dirty")
171
+ it "calls the start command if one is specified and service is not running" do
172
+ new_resource.stub!(:start_command).and_return("cowsay dirty")
150
173
 
151
- provider.should_receive(:shell_out!).with("cowsay dirty")
152
- provider.start_service
153
- end
174
+ provider.should_receive(:shell_out!).with("cowsay dirty")
175
+ provider.start_service
176
+ end
154
177
 
155
- it "shows warning message if service is already running" do
156
- current_resource.stub!(:running).and_return(true)
157
- Chef::Log.should_receive(:debug).with("service[#{service_name}] already running, not starting")
178
+ it "shows warning message if service is already running" do
179
+ current_resource.stub!(:running).and_return(true)
180
+ Chef::Log.should_receive(:debug).with("service[#{service_name}] already running, not starting")
158
181
 
159
- provider.start_service
160
- end
182
+ provider.start_service
183
+ end
161
184
 
162
- it "starts service via launchctl if service found" do
163
- provider.should_receive(:shell_out!).
164
- with("launchctl load -w '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
165
- :group => 1001, :user => 101).
166
- and_return(0)
185
+ it "starts service via launchctl if service found" do
186
+ provider.should_receive(:shell_out!).
187
+ with("launchctl load -w '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
188
+ :group => 1001, :user => 101).
189
+ and_return(0)
167
190
 
168
- provider.start_service
191
+ provider.start_service
192
+ end
169
193
  end
170
- end
171
194
 
172
- describe "#stop_service" do
173
- before do
174
- Chef::Resource::Service.stub!(:new).and_return(current_resource)
195
+ describe "#stop_service" do
196
+ before do
197
+ Chef::Resource::Service.stub!(:new).and_return(current_resource)
175
198
 
176
- provider.load_current_resource
177
- current_resource.stub!(:running).and_return(true)
178
- end
199
+ provider.load_current_resource
200
+ current_resource.stub!(:running).and_return(true)
201
+ end
179
202
 
180
- it "calls the stop command if one is specified and service is running" do
181
- new_resource.stub!(:stop_command).and_return("kill -9 123")
203
+ it "calls the stop command if one is specified and service is running" do
204
+ new_resource.stub!(:stop_command).and_return("kill -9 123")
182
205
 
183
- provider.should_receive(:shell_out!).with("kill -9 123")
184
- provider.stop_service
185
- end
206
+ provider.should_receive(:shell_out!).with("kill -9 123")
207
+ provider.stop_service
208
+ end
186
209
 
187
- it "shows warning message if service is not running" do
188
- current_resource.stub!(:running).and_return(false)
189
- Chef::Log.should_receive(:debug).with("service[#{service_name}] not running, not stopping")
210
+ it "shows warning message if service is not running" do
211
+ current_resource.stub!(:running).and_return(false)
212
+ Chef::Log.should_receive(:debug).with("service[#{service_name}] not running, not stopping")
190
213
 
191
- provider.stop_service
192
- end
214
+ provider.stop_service
215
+ end
193
216
 
194
- it "stops the service via launchctl if service found" do
195
- provider.should_receive(:shell_out!).
196
- with("launchctl unload '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
197
- :group => 1001, :user => 101).
198
- and_return(0)
217
+ it "stops the service via launchctl if service found" do
218
+ provider.should_receive(:shell_out!).
219
+ with("launchctl unload '/Users/igor/Library/LaunchAgents/io.redis.redis-server.plist'",
220
+ :group => 1001, :user => 101).
221
+ and_return(0)
199
222
 
200
- provider.stop_service
223
+ provider.stop_service
224
+ end
201
225
  end
202
- end
203
226
 
204
- describe "#restart_service" do
205
- before do
206
- Chef::Resource::Service.stub!(:new).and_return(current_resource)
227
+ describe "#restart_service" do
228
+ before do
229
+ Chef::Resource::Service.stub!(:new).and_return(current_resource)
207
230
 
208
- provider.load_current_resource
209
- current_resource.stub!(:running).and_return(true)
210
- provider.stub!(:sleep)
211
- end
231
+ provider.load_current_resource
232
+ current_resource.stub!(:running).and_return(true)
233
+ provider.stub!(:sleep)
234
+ end
212
235
 
213
- it "issues a command if given" do
214
- new_resource.stub!(:restart_command).and_return("reload that thing")
236
+ it "issues a command if given" do
237
+ new_resource.stub!(:restart_command).and_return("reload that thing")
215
238
 
216
- provider.should_receive(:shell_out!).with("reload that thing")
217
- provider.restart_service
218
- end
239
+ provider.should_receive(:shell_out!).with("reload that thing")
240
+ provider.restart_service
241
+ end
219
242
 
220
- it "stops and then starts service" do
221
- provider.should_receive(:stop_service)
222
- provider.should_receive(:start_service);
243
+ it "stops and then starts service" do
244
+ provider.should_receive(:stop_service)
245
+ provider.should_receive(:start_service);
223
246
 
224
- provider.restart_service
247
+ provider.restart_service
248
+ end
225
249
  end
226
250
  end
227
251
  end
@@ -37,6 +37,8 @@ describe Chef::Provider::Service::Solaris do
37
37
  @pid = 2342
38
38
  @stdout_string = "state disabled"
39
39
  @stdout.stub!(:gets).and_return(@stdout_string)
40
+ @status = mock("Status", :exitstatus => 0, :stdout => @stdout)
41
+ @provider.stub!(:shell_out!).and_return(@status)
40
42
  end
41
43
 
42
44
  it "should raise an error if /bin/svcs does not exist" do
@@ -84,21 +86,22 @@ describe Chef::Provider::Service::Solaris do
84
86
 
85
87
  describe "when enabling the service" do
86
88
  before(:each) do
87
- #@provider = Chef::Provider::Service::Solaris.new(@node, @new_resource)
88
89
  @provider.current_resource = @current_resource
89
90
  @current_resource.enabled(true)
90
91
  end
91
92
 
92
- it "should call svcadm enable chef" do
93
- @provider.should_receive(:run_command).with({:command => "/usr/sbin/svcadm enable chef"})
94
- @provider.should_receive(:service_status).and_return(@current_resource)
95
- @provider.enable_service.should be_true
93
+ it "should call svcadm enable -s chef" do
94
+ @new_resource.stub!(:enable_command).and_return("#{@new_resource.enable_command}")
95
+ @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
96
+ @provider.enable_service.should be_true
97
+ @current_resource.enabled.should be_true
96
98
  end
97
99
 
98
- it "should call svcadm enable chef for start_service" do
99
- @provider.should_receive(:run_command).with({:command => "/usr/sbin/svcadm enable chef"})
100
- @provider.should_receive(:service_status).and_return(@current_resource)
100
+ it "should call svcadm enable -s chef for start_service" do
101
+ @new_resource.stub!(:start_command).and_return("#{@new_resource.start_command}")
102
+ @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm enable -s #{@current_resource.service_name}").and_return(@status)
101
103
  @provider.start_service.should be_true
104
+ @current_resource.enabled.should be_true
102
105
  end
103
106
 
104
107
  end
@@ -110,16 +113,16 @@ describe Chef::Provider::Service::Solaris do
110
113
  @current_resource.enabled(false)
111
114
  end
112
115
 
113
- it "should call svcadm disable chef" do
114
- @provider.should_receive(:run_command).with({:command => "/usr/sbin/svcadm disable chef"})
115
- @provider.should_receive(:service_status).and_return(@current_resource)
116
- @provider.disable_service.should be_false
116
+ it "should call svcadm disable -s chef" do
117
+ @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef").and_return(@status)
118
+ @provider.disable_service.should be_true
119
+ @current_resource.enabled.should be_false
117
120
  end
118
121
 
119
- it "should call svcadm disable chef for stop_service" do
120
- @provider.should_receive(:run_command).with({:command => "/usr/sbin/svcadm disable chef"})
121
- @provider.should_receive(:service_status).and_return(@current_resource)
122
- @provider.stop_service.should be_false
122
+ it "should call svcadm disable -s chef for stop_service" do
123
+ @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm disable -s chef")
124
+ @provider.stop_service.should be_true
125
+ @current_resource.enabled.should be_false
123
126
  end
124
127
 
125
128
  end
@@ -131,8 +134,8 @@ describe Chef::Provider::Service::Solaris do
131
134
  end
132
135
 
133
136
  it "should call svcadm refresh chef" do
134
- @provider.should_receive(:run_command).with({:command => "/usr/sbin/svcadm refresh chef"}).and_return(@status)
135
- @provider.reload_service.should be_true
137
+ @provider.should_receive(:shell_out!).with("/usr/sbin/svcadm refresh chef").and_return(@status)
138
+ @provider.reload_service
136
139
  end
137
140
 
138
141
  end