chef 12.0.3-x86-mingw32 → 12.1.0.rc.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -1
  3. data/README.md +42 -18
  4. data/distro/common/html/_sources/ctl_chef_client.txt +1 -1
  5. data/distro/common/html/_sources/ctl_chef_server.txt +53 -35
  6. data/distro/common/html/_sources/ctl_chef_solo.txt +1 -1
  7. data/distro/common/html/_sources/knife_bootstrap.txt +1 -1
  8. data/distro/common/html/_sources/knife_cookbook_site.txt +1 -1
  9. data/distro/common/html/_sources/knife_data_bag.txt +4 -4
  10. data/distro/common/html/_sources/knife_status.txt +1 -1
  11. data/distro/common/html/_static/searchtools.js +1 -1
  12. data/distro/common/html/ctl_chef_client.html +55 -7
  13. data/distro/common/html/ctl_chef_server.html +84 -41
  14. data/distro/common/html/ctl_chef_shell.html +45 -1
  15. data/distro/common/html/ctl_chef_solo.html +51 -5
  16. data/distro/common/html/index.html +2 -2
  17. data/distro/common/html/knife.html +1 -1
  18. data/distro/common/html/knife_bootstrap.html +30 -10
  19. data/distro/common/html/knife_cookbook_site.html +2 -0
  20. data/distro/common/html/knife_data_bag.html +4 -4
  21. data/distro/common/html/knife_node.html +2 -2
  22. data/distro/common/html/knife_raw.html +1 -1
  23. data/distro/common/html/knife_role.html +1 -1
  24. data/distro/common/html/knife_search.html +3 -3
  25. data/distro/common/html/knife_status.html +4 -0
  26. data/distro/common/html/searchindex.js +1 -1
  27. data/distro/common/man/man1/chef-shell.1 +72 -1
  28. data/distro/common/man/man1/knife-bootstrap.1 +71 -63
  29. data/distro/common/man/man1/knife-client.1 +1 -1
  30. data/distro/common/man/man1/knife-configure.1 +1 -1
  31. data/distro/common/man/man1/knife-cookbook-site.1 +4 -1
  32. data/distro/common/man/man1/knife-cookbook.1 +1 -1
  33. data/distro/common/man/man1/knife-data-bag.1 +5 -5
  34. data/distro/common/man/man1/knife-delete.1 +1 -1
  35. data/distro/common/man/man1/knife-deps.1 +1 -1
  36. data/distro/common/man/man1/knife-diff.1 +1 -1
  37. data/distro/common/man/man1/knife-download.1 +1 -1
  38. data/distro/common/man/man1/knife-edit.1 +1 -1
  39. data/distro/common/man/man1/knife-environment.1 +1 -1
  40. data/distro/common/man/man1/knife-exec.1 +1 -1
  41. data/distro/common/man/man1/knife-index-rebuild.1 +1 -1
  42. data/distro/common/man/man1/knife-list.1 +1 -1
  43. data/distro/common/man/man1/knife-node.1 +3 -3
  44. data/distro/common/man/man1/knife-raw.1 +2 -2
  45. data/distro/common/man/man1/knife-recipe-list.1 +1 -1
  46. data/distro/common/man/man1/knife-role.1 +2 -2
  47. data/distro/common/man/man1/knife-search.1 +4 -4
  48. data/distro/common/man/man1/knife-serve.1 +1 -1
  49. data/distro/common/man/man1/knife-show.1 +1 -1
  50. data/distro/common/man/man1/knife-ssh.1 +1 -1
  51. data/distro/common/man/man1/knife-ssl-check.1 +1 -1
  52. data/distro/common/man/man1/knife-ssl-fetch.1 +1 -1
  53. data/distro/common/man/man1/knife-status.1 +1 -1
  54. data/distro/common/man/man1/knife-tag.1 +1 -1
  55. data/distro/common/man/man1/knife-upload.1 +1 -1
  56. data/distro/common/man/man1/knife-user.1 +1 -1
  57. data/distro/common/man/man1/knife-xargs.1 +1 -1
  58. data/distro/common/man/man1/knife.1 +1 -1
  59. data/distro/common/man/man8/chef-apply.8 +86 -0
  60. data/distro/common/man/man8/chef-client.8 +76 -5
  61. data/distro/common/man/man8/chef-solo.8 +79 -6
  62. data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
  63. data/distro/common/markdown/man1/knife-cookbook-site.mkd +1 -1
  64. data/distro/common/markdown/man1/knife-data-bag.mkd +1 -1
  65. data/distro/common/markdown/man1/knife-environment.mkd +1 -1
  66. data/distro/common/markdown/man1/knife.mkd +1 -1
  67. data/lib/chef.rb +0 -7
  68. data/lib/chef/api_client.rb +10 -2
  69. data/lib/chef/api_client/registration.rb +7 -9
  70. data/lib/chef/application.rb +28 -12
  71. data/lib/chef/application/apply.rb +17 -1
  72. data/lib/chef/application/client.rb +74 -6
  73. data/lib/chef/application/knife.rb +1 -2
  74. data/lib/chef/application/solo.rb +30 -0
  75. data/lib/chef/application/windows_service.rb +1 -0
  76. data/lib/chef/application/windows_service_manager.rb +8 -2
  77. data/lib/chef/applications.rb +0 -1
  78. data/lib/chef/audit/audit_event_proxy.rb +93 -0
  79. data/lib/chef/audit/audit_reporter.rb +169 -0
  80. data/lib/chef/audit/control_group_data.rb +140 -0
  81. data/lib/chef/audit/rspec_formatter.rb +37 -0
  82. data/lib/chef/audit/runner.rb +178 -0
  83. data/lib/chef/chef_fs/chef_fs_data_store.rb +11 -2
  84. data/lib/chef/chef_fs/config.rb +25 -4
  85. data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +15 -0
  86. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -0
  87. data/lib/chef/chef_fs/file_system.rb +1 -1
  88. data/lib/chef/chef_fs/file_system/base_fs_dir.rb +5 -0
  89. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +3 -2
  90. data/lib/chef/{shef/ext.rb → chef_fs/file_system/chef_repository_file_system_policies_dir.rb} +22 -3
  91. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +4 -0
  92. data/lib/chef/client.rb +81 -52
  93. data/lib/chef/config.rb +35 -3
  94. data/lib/chef/cookbook/metadata.rb +3 -3
  95. data/lib/chef/cookbook_manifest.rb +275 -0
  96. data/lib/chef/cookbook_site_streaming_uploader.rb +24 -23
  97. data/lib/chef/cookbook_uploader.rb +11 -2
  98. data/lib/chef/cookbook_version.rb +71 -194
  99. data/lib/chef/data_bag.rb +5 -2
  100. data/lib/chef/data_bag_item.rb +6 -3
  101. data/lib/chef/deprecation/warnings.rb +5 -4
  102. data/lib/chef/dsl/audit.rb +51 -0
  103. data/lib/chef/dsl/include_recipe.rb +2 -3
  104. data/lib/chef/dsl/reboot_pending.rb +1 -1
  105. data/lib/chef/dsl/recipe.rb +49 -31
  106. data/lib/chef/encrypted_data_bag_item/assertions.rb +0 -3
  107. data/lib/chef/environment.rb +5 -2
  108. data/lib/chef/event_dispatch/base.rb +36 -1
  109. data/lib/chef/event_dispatch/dispatcher.rb +3 -5
  110. data/lib/chef/exceptions.rb +61 -2
  111. data/lib/chef/file_access_control/unix.rb +12 -0
  112. data/lib/chef/file_access_control/windows.rb +14 -0
  113. data/lib/chef/formatters/doc.rb +47 -1
  114. data/{spec/unit/monkey_patches/string_spec.rb → lib/chef/guard_interpreter.rb} +11 -16
  115. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -2
  116. data/lib/chef/http.rb +1 -2
  117. data/lib/chef/knife.rb +5 -3
  118. data/lib/chef/knife/bootstrap.rb +84 -15
  119. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +165 -0
  120. data/lib/chef/knife/bootstrap/client_builder.rb +190 -0
  121. data/lib/chef/knife/bootstrap/{README.md → templates/README.md} +0 -0
  122. data/lib/chef/knife/bootstrap/{archlinux-gems.erb → templates/archlinux-gems.erb} +9 -0
  123. data/lib/chef/knife/bootstrap/{chef-aix.erb → templates/chef-aix.erb} +9 -0
  124. data/lib/chef/knife/bootstrap/{chef-full.erb → templates/chef-full.erb} +10 -1
  125. data/lib/chef/knife/client_create.rb +8 -7
  126. data/lib/chef/knife/cookbook_site_download.rb +1 -1
  127. data/lib/chef/knife/cookbook_site_install.rb +1 -1
  128. data/lib/chef/knife/cookbook_site_list.rb +1 -1
  129. data/lib/chef/knife/cookbook_site_search.rb +1 -1
  130. data/lib/chef/knife/cookbook_site_share.rb +39 -28
  131. data/lib/chef/knife/cookbook_site_show.rb +3 -3
  132. data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
  133. data/lib/chef/knife/cookbook_test.rb +1 -0
  134. data/lib/chef/knife/cookbook_upload.rb +13 -8
  135. data/lib/chef/knife/core/bootstrap_context.rb +14 -3
  136. data/lib/chef/knife/core/generic_presenter.rb +5 -2
  137. data/lib/chef/knife/core/object_loader.rb +1 -1
  138. data/lib/chef/knife/core/subcommand_loader.rb +24 -0
  139. data/lib/chef/knife/core/ui.rb +9 -1
  140. data/lib/chef/knife/node_run_list_remove.rb +11 -3
  141. data/lib/chef/knife/raw.rb +14 -3
  142. data/lib/chef/knife/role_env_run_list_add.rb +86 -0
  143. data/lib/chef/knife/role_env_run_list_clear.rb +55 -0
  144. data/lib/chef/knife/role_env_run_list_remove.rb +57 -0
  145. data/lib/chef/knife/role_env_run_list_replace.rb +59 -0
  146. data/lib/chef/knife/role_env_run_list_set.rb +70 -0
  147. data/lib/chef/knife/role_run_list_add.rb +86 -0
  148. data/lib/chef/knife/role_run_list_clear.rb +55 -0
  149. data/lib/chef/knife/role_run_list_remove.rb +57 -0
  150. data/lib/chef/knife/role_run_list_replace.rb +59 -0
  151. data/lib/chef/knife/role_run_list_set.rb +70 -0
  152. data/lib/chef/knife/search.rb +4 -4
  153. data/lib/chef/knife/serve.rb +3 -0
  154. data/lib/chef/knife/ssh.rb +1 -1
  155. data/lib/chef/knife/ssl_check.rb +2 -2
  156. data/lib/chef/knife/ssl_fetch.rb +14 -1
  157. data/lib/chef/log.rb +10 -1
  158. data/lib/chef/mixin/command.rb +1 -1
  159. data/lib/chef/mixin/command/windows.rb +1 -5
  160. data/lib/chef/mixin/get_source_from_package.rb +1 -0
  161. data/lib/chef/mixin/params_validate.rb +2 -2
  162. data/lib/chef/mixin/securable.rb +1 -7
  163. data/lib/chef/mixin/shell_out.rb +7 -1
  164. data/lib/chef/mixin/template.rb +2 -14
  165. data/lib/chef/mixin/why_run.rb +1 -1
  166. data/lib/chef/monkey_patches/net_http.rb +4 -0
  167. data/lib/chef/monologger.rb +0 -2
  168. data/lib/chef/node.rb +5 -2
  169. data/lib/chef/node/attribute.rb +11 -9
  170. data/lib/chef/node/attribute_collections.rb +8 -12
  171. data/lib/chef/node/immutable_collections.rb +4 -10
  172. data/lib/chef/org.rb +148 -0
  173. data/lib/chef/platform/provider_mapping.rb +3 -2
  174. data/lib/chef/platform/provider_priority_map.rb +2 -0
  175. data/lib/chef/platform/query_helpers.rb +0 -3
  176. data/lib/chef/policy_builder/policyfile.rb +51 -8
  177. data/lib/chef/provider/deploy.rb +1 -2
  178. data/lib/chef/provider/directory.rb +3 -3
  179. data/lib/chef/provider/dsc_script.rb +13 -7
  180. data/lib/chef/provider/env.rb +8 -8
  181. data/lib/chef/provider/execute.rb +55 -36
  182. data/lib/chef/provider/file.rb +8 -0
  183. data/lib/chef/provider/group.rb +2 -0
  184. data/lib/chef/provider/group/dscl.rb +3 -4
  185. data/lib/chef/provider/ifconfig.rb +25 -25
  186. data/lib/chef/provider/ifconfig/aix.rb +25 -27
  187. data/lib/chef/provider/lwrp_base.rb +1 -1
  188. data/lib/chef/provider/mount.rb +2 -2
  189. data/lib/chef/provider/mount/mount.rb +3 -4
  190. data/lib/chef/provider/mount/solaris.rb +1 -1
  191. data/lib/chef/provider/package.rb +297 -48
  192. data/lib/chef/provider/package/aix.rb +25 -30
  193. data/lib/chef/provider/package/apt.rb +63 -19
  194. data/lib/chef/provider/package/dpkg.rb +15 -16
  195. data/lib/chef/provider/package/macports.rb +7 -7
  196. data/lib/chef/provider/package/openbsd.rb +107 -0
  197. data/lib/chef/provider/package/pacman.rb +13 -15
  198. data/lib/chef/provider/package/portage.rb +3 -4
  199. data/lib/chef/provider/package/rpm.rb +28 -17
  200. data/lib/chef/provider/package/rubygems.rb +9 -9
  201. data/lib/chef/provider/package/solaris.rb +17 -21
  202. data/lib/chef/provider/package/windows/msi.rb +1 -1
  203. data/lib/chef/provider/package/yum-dump.py +2 -2
  204. data/lib/chef/provider/package/yum.rb +117 -51
  205. data/lib/chef/provider/package/zypper.rb +17 -18
  206. data/lib/chef/provider/powershell_script.rb +4 -4
  207. data/lib/chef/provider/registry_key.rb +2 -2
  208. data/lib/chef/provider/remote_directory.rb +1 -1
  209. data/lib/chef/provider/script.rb +25 -16
  210. data/lib/chef/provider/service.rb +1 -1
  211. data/lib/chef/provider/service/freebsd.rb +1 -1
  212. data/lib/chef/provider/service/openbsd.rb +216 -0
  213. data/lib/chef/provider/service/upstart.rb +1 -1
  214. data/lib/chef/provider/service/windows.rb +99 -1
  215. data/lib/chef/provider/user.rb +1 -1
  216. data/lib/chef/provider/user/dscl.rb +19 -4
  217. data/lib/chef/providers.rb +2 -0
  218. data/lib/chef/recipe.rb +11 -5
  219. data/lib/chef/request_id.rb +1 -1
  220. data/lib/chef/resource.rb +839 -444
  221. data/lib/chef/resource/chef_gem.rb +20 -3
  222. data/lib/chef/resource/conditional.rb +3 -14
  223. data/lib/chef/resource/dsc_script.rb +14 -0
  224. data/lib/chef/resource/execute.rb +14 -7
  225. data/lib/chef/resource/file.rb +14 -0
  226. data/lib/chef/resource/file/verification.rb +122 -0
  227. data/lib/chef/resource/ips_package.rb +1 -1
  228. data/lib/chef/resource/lwrp_base.rb +2 -11
  229. data/lib/chef/resource/macports_package.rb +2 -1
  230. data/lib/chef/resource/openbsd_package.rb +51 -0
  231. data/lib/chef/resource/package.rb +2 -2
  232. data/lib/chef/resource/paludis_package.rb +1 -1
  233. data/lib/chef/resource/reboot.rb +1 -1
  234. data/lib/chef/resource/remote_file.rb +1 -0
  235. data/lib/chef/resource/rpm_package.rb +9 -0
  236. data/lib/chef/resource/script.rb +11 -0
  237. data/lib/chef/resource/template.rb +2 -3
  238. data/lib/chef/resource/windows_package.rb +1 -1
  239. data/lib/chef/resource/windows_service.rb +18 -0
  240. data/lib/chef/resource_builder.rb +137 -0
  241. data/lib/chef/resource_definition.rb +1 -1
  242. data/lib/chef/resource_reporter.rb +1 -1
  243. data/lib/chef/resources.rb +1 -0
  244. data/lib/chef/role.rb +17 -4
  245. data/lib/chef/run_context.rb +10 -6
  246. data/lib/chef/search/query.rb +66 -87
  247. data/lib/chef/shell/ext.rb +2 -2
  248. data/lib/chef/util/diff.rb +1 -4
  249. data/lib/chef/util/dsc/configuration_generator.rb +30 -6
  250. data/lib/chef/util/dsc/lcm_output_parser.rb +7 -3
  251. data/lib/chef/util/dsc/local_configuration_manager.rb +8 -8
  252. data/lib/chef/util/file_edit.rb +2 -2
  253. data/lib/chef/util/path_helper.rb +1 -4
  254. data/lib/chef/util/windows/net_use.rb +3 -3
  255. data/lib/chef/version.rb +1 -1
  256. data/lib/chef/win32/api.rb +1 -0
  257. data/lib/chef/win32/api/security.rb +26 -0
  258. data/lib/chef/win32/file.rb +21 -0
  259. data/lib/chef/win32/security.rb +46 -0
  260. data/lib/chef/win32/security/token.rb +8 -0
  261. data/lib/chef/win32/version.rb +0 -4
  262. data/spec/data/recipes.tgz +0 -0
  263. data/spec/functional/application_spec.rb +1 -1
  264. data/spec/functional/audit/rspec_formatter_spec.rb +54 -0
  265. data/spec/functional/audit/runner_spec.rb +137 -0
  266. data/spec/functional/dsl/reboot_pending_spec.rb +10 -10
  267. data/spec/functional/dsl/registry_helper_spec.rb +6 -6
  268. data/spec/functional/event_loggers/windows_eventlog_spec.rb +5 -5
  269. data/spec/functional/file_content_management/deploy_strategies_spec.rb +12 -21
  270. data/spec/functional/http/simple_spec.rb +1 -1
  271. data/spec/functional/knife/cookbook_delete_spec.rb +24 -24
  272. data/spec/functional/knife/exec_spec.rb +2 -4
  273. data/spec/functional/knife/smoke_test.rb +1 -1
  274. data/spec/functional/knife/ssh_spec.rb +23 -23
  275. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +8 -8
  276. data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +2 -2
  277. data/spec/functional/rebooter_spec.rb +1 -1
  278. data/spec/functional/resource/aix_service_spec.rb +3 -0
  279. data/spec/functional/resource/aixinit_service_spec.rb +3 -3
  280. data/spec/functional/resource/bash_spec.rb +88 -0
  281. data/spec/functional/resource/deploy_revision_spec.rb +99 -100
  282. data/spec/functional/resource/env_spec.rb +3 -3
  283. data/spec/functional/resource/execute_spec.rb +97 -63
  284. data/spec/functional/resource/file_spec.rb +7 -7
  285. data/spec/functional/resource/git_spec.rb +13 -13
  286. data/spec/functional/resource/group_spec.rb +28 -25
  287. data/spec/functional/resource/ifconfig_spec.rb +2 -2
  288. data/spec/functional/resource/link_spec.rb +77 -78
  289. data/spec/functional/resource/mount_spec.rb +5 -5
  290. data/spec/functional/resource/ohai_spec.rb +1 -1
  291. data/spec/functional/resource/package_spec.rb +22 -22
  292. data/spec/functional/resource/powershell_spec.rb +57 -42
  293. data/spec/functional/resource/reboot_spec.rb +2 -2
  294. data/spec/functional/resource/registry_spec.rb +91 -91
  295. data/spec/functional/resource/remote_directory_spec.rb +19 -19
  296. data/spec/functional/resource/remote_file_spec.rb +18 -18
  297. data/spec/functional/resource/template_spec.rb +4 -4
  298. data/spec/functional/resource/user/dscl_spec.rb +4 -4
  299. data/spec/functional/resource/user/useradd_spec.rb +64 -51
  300. data/spec/functional/resource/windows_service_spec.rb +98 -0
  301. data/spec/functional/run_lock_spec.rb +9 -9
  302. data/spec/functional/shell_spec.rb +3 -3
  303. data/spec/functional/tiny_server_spec.rb +12 -12
  304. data/spec/functional/util/path_helper_spec.rb +1 -1
  305. data/spec/functional/version_spec.rb +1 -1
  306. data/spec/functional/win32/registry_helper_spec.rb +125 -125
  307. data/spec/functional/win32/security_spec.rb +65 -2
  308. data/spec/functional/win32/service_manager_spec.rb +30 -84
  309. data/spec/functional/win32/versions_spec.rb +6 -6
  310. data/spec/integration/client/client_spec.rb +102 -9
  311. data/spec/integration/knife/chef_fs_data_store_spec.rb +12 -8
  312. data/spec/integration/knife/common_options_spec.rb +3 -3
  313. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +2 -2
  314. data/spec/integration/knife/deps_spec.rb +4 -4
  315. data/spec/integration/knife/diff_spec.rb +6 -6
  316. data/spec/integration/knife/download_spec.rb +6 -6
  317. data/spec/integration/knife/list_spec.rb +2 -2
  318. data/spec/integration/knife/raw_spec.rb +5 -5
  319. data/spec/integration/knife/serve_spec.rb +3 -3
  320. data/spec/integration/knife/show_spec.rb +3 -3
  321. data/spec/integration/knife/upload_spec.rb +18 -18
  322. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  323. data/spec/integration/solo/solo_spec.rb +11 -12
  324. data/spec/spec_helper.rb +27 -15
  325. data/spec/stress/win32/file_spec.rb +4 -4
  326. data/spec/stress/win32/security_spec.rb +4 -4
  327. data/spec/support/chef_helpers.rb +3 -3
  328. data/spec/support/matchers/leak.rb +2 -2
  329. data/spec/support/mock/platform.rb +1 -1
  330. data/spec/support/pedant/Gemfile +3 -0
  331. data/spec/support/pedant/pedant_config.rb +9 -2
  332. data/spec/support/pedant/run_pedant.rb +15 -16
  333. data/spec/support/platform_helpers.rb +8 -12
  334. data/spec/support/shared/functional/directory_resource.rb +13 -13
  335. data/spec/support/shared/functional/file_resource.rb +83 -83
  336. data/spec/support/shared/functional/http.rb +1 -1
  337. data/spec/support/shared/functional/securable_resource.rb +64 -64
  338. data/spec/support/shared/functional/securable_resource_with_reporting.rb +43 -41
  339. data/spec/support/shared/functional/win32_service.rb +60 -0
  340. data/spec/support/shared/functional/windows_script.rb +8 -8
  341. data/spec/support/shared/integration/knife_support.rb +8 -5
  342. data/spec/support/shared/matchers/exit_with_code.rb +6 -2
  343. data/spec/support/shared/unit/api_error_inspector.rb +8 -8
  344. data/spec/support/shared/unit/execute_resource.rb +24 -20
  345. data/spec/support/shared/unit/file_system_support.rb +2 -2
  346. data/spec/support/shared/unit/platform_introspector.rb +21 -21
  347. data/spec/support/shared/unit/provider/file.rb +239 -210
  348. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +69 -69
  349. data/spec/support/shared/unit/script_resource.rb +40 -32
  350. data/spec/support/shared/unit/windows_script_resource.rb +8 -8
  351. data/spec/unit/api_client/registration_spec.rb +47 -47
  352. data/spec/unit/api_client_spec.rb +107 -69
  353. data/spec/unit/application/apply_spec.rb +31 -15
  354. data/spec/unit/application/client_spec.rb +146 -45
  355. data/spec/unit/application/knife_spec.rb +31 -31
  356. data/spec/unit/application/solo_spec.rb +59 -43
  357. data/spec/unit/application_spec.rb +109 -74
  358. data/spec/unit/audit/audit_event_proxy_spec.rb +311 -0
  359. data/spec/unit/audit/audit_reporter_spec.rb +393 -0
  360. data/spec/unit/audit/control_group_data_spec.rb +478 -0
  361. data/{lib/chef/monkey_patches/file.rb → spec/unit/audit/rspec_formatter_spec.rb} +11 -8
  362. data/spec/unit/audit/runner_spec.rb +135 -0
  363. data/spec/unit/chef_fs/config_spec.rb +52 -0
  364. data/spec/unit/chef_fs/diff_spec.rb +12 -12
  365. data/spec/unit/chef_fs/file_pattern_spec.rb +276 -277
  366. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +6 -6
  367. data/spec/unit/chef_fs/file_system_spec.rb +26 -13
  368. data/spec/unit/chef_fs/parallelizer.rb +87 -87
  369. data/spec/unit/chef_spec.rb +1 -1
  370. data/spec/unit/client_spec.rb +263 -97
  371. data/spec/unit/config_fetcher_spec.rb +13 -13
  372. data/spec/unit/config_spec.rb +105 -66
  373. data/spec/unit/cookbook/chefignore_spec.rb +6 -6
  374. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +3 -3
  375. data/spec/unit/cookbook/metadata_spec.rb +149 -149
  376. data/spec/unit/cookbook/syntax_check_spec.rb +36 -31
  377. data/spec/unit/cookbook_loader_spec.rb +62 -58
  378. data/spec/unit/cookbook_manifest_spec.rb +141 -468
  379. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +27 -27
  380. data/spec/unit/cookbook_spec.rb +15 -15
  381. data/spec/unit/cookbook_uploader_spec.rb +37 -3
  382. data/spec/unit/cookbook_version_file_specificity_spec.rb +554 -0
  383. data/spec/unit/cookbook_version_spec.rb +98 -240
  384. data/spec/unit/daemon_spec.rb +31 -31
  385. data/spec/unit/data_bag_item_spec.rb +121 -89
  386. data/spec/unit/data_bag_spec.rb +35 -35
  387. data/spec/unit/deprecation_spec.rb +27 -14
  388. data/spec/unit/digester_spec.rb +3 -3
  389. data/spec/unit/dsl/audit_spec.rb +43 -0
  390. data/spec/unit/dsl/data_query_spec.rb +1 -1
  391. data/spec/unit/dsl/platform_introspection_spec.rb +14 -14
  392. data/spec/unit/dsl/reboot_pending_spec.rb +18 -18
  393. data/spec/unit/dsl/regsitry_helper_spec.rb +6 -6
  394. data/spec/unit/encrypted_data_bag_item_spec.rb +58 -82
  395. data/spec/unit/environment_spec.rb +105 -105
  396. data/spec/unit/exceptions_spec.rb +47 -1
  397. data/spec/unit/file_access_control_spec.rb +62 -56
  398. data/spec/unit/file_cache_spec.rb +11 -11
  399. data/spec/unit/file_content_management/deploy/cp_spec.rb +2 -2
  400. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +10 -10
  401. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +23 -23
  402. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +14 -14
  403. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +12 -12
  404. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  405. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +16 -16
  406. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +4 -4
  407. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +103 -13
  408. data/spec/unit/guard_interpreter_spec.rb +41 -0
  409. data/spec/unit/handler/json_file_spec.rb +10 -10
  410. data/spec/unit/handler_spec.rb +39 -39
  411. data/spec/unit/http/basic_client_spec.rb +3 -3
  412. data/spec/unit/http/http_request_spec.rb +10 -10
  413. data/spec/unit/http/simple_spec.rb +3 -3
  414. data/spec/unit/http/ssl_policies_spec.rb +15 -15
  415. data/spec/unit/http/validate_content_length_spec.rb +18 -13
  416. data/spec/unit/http_spec.rb +16 -9
  417. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +153 -0
  418. data/spec/unit/knife/bootstrap/client_builder_spec.rb +178 -0
  419. data/spec/unit/knife/bootstrap_spec.rb +144 -91
  420. data/spec/unit/knife/client_bulk_delete_spec.rb +24 -24
  421. data/spec/unit/knife/client_create_spec.rb +57 -43
  422. data/spec/unit/knife/client_delete_spec.rb +15 -15
  423. data/spec/unit/knife/client_edit_spec.rb +4 -4
  424. data/spec/unit/knife/client_list_spec.rb +2 -2
  425. data/spec/unit/knife/client_reregister_spec.rb +9 -9
  426. data/spec/unit/knife/configure_client_spec.rb +20 -20
  427. data/spec/unit/knife/configure_spec.rb +85 -85
  428. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +15 -15
  429. data/spec/unit/knife/cookbook_create_spec.rb +59 -59
  430. data/spec/unit/knife/cookbook_delete_spec.rb +49 -49
  431. data/spec/unit/knife/cookbook_download_spec.rb +56 -56
  432. data/spec/unit/knife/cookbook_list_spec.rb +9 -9
  433. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +8 -8
  434. data/spec/unit/knife/cookbook_metadata_spec.rb +44 -44
  435. data/spec/unit/knife/cookbook_show_spec.rb +29 -29
  436. data/spec/unit/knife/cookbook_site_download_spec.rb +26 -26
  437. data/spec/unit/knife/cookbook_site_install_spec.rb +5 -1
  438. data/spec/unit/knife/cookbook_site_share_spec.rb +68 -59
  439. data/spec/unit/knife/cookbook_site_unshare_spec.rb +15 -15
  440. data/spec/unit/knife/cookbook_test_spec.rb +16 -16
  441. data/spec/unit/knife/cookbook_upload_spec.rb +105 -71
  442. data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -22
  443. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +36 -36
  444. data/spec/unit/knife/core/object_loader_spec.rb +3 -3
  445. data/spec/unit/knife/core/subcommand_loader_spec.rb +107 -33
  446. data/spec/unit/knife/core/ui_spec.rb +84 -72
  447. data/spec/unit/knife/data_bag_from_file_spec.rb +1 -1
  448. data/spec/unit/knife/environment_compare_spec.rb +12 -12
  449. data/spec/unit/knife/environment_create_spec.rb +16 -16
  450. data/spec/unit/knife/environment_delete_spec.rb +14 -14
  451. data/spec/unit/knife/environment_edit_spec.rb +15 -15
  452. data/spec/unit/knife/environment_from_file_spec.rb +17 -17
  453. data/spec/unit/knife/environment_list_spec.rb +7 -7
  454. data/spec/unit/knife/environment_show_spec.rb +10 -10
  455. data/spec/unit/knife/index_rebuild_spec.rb +17 -17
  456. data/spec/unit/knife/knife_help.rb +24 -24
  457. data/spec/unit/knife/node_bulk_delete_spec.rb +14 -14
  458. data/spec/unit/knife/node_delete_spec.rb +11 -11
  459. data/spec/unit/knife/node_edit_spec.rb +17 -17
  460. data/spec/unit/knife/node_environment_set_spec.rb +12 -12
  461. data/spec/unit/knife/node_from_file_spec.rb +8 -8
  462. data/spec/unit/knife/node_list_spec.rb +9 -9
  463. data/spec/unit/knife/node_run_list_add_spec.rb +29 -29
  464. data/spec/unit/knife/node_run_list_remove_spec.rb +28 -13
  465. data/spec/unit/knife/node_run_list_set_spec.rb +27 -27
  466. data/spec/unit/knife/raw_spec.rb +43 -0
  467. data/spec/unit/knife/role_bulk_delete_spec.rb +12 -12
  468. data/spec/unit/knife/role_create_spec.rb +12 -12
  469. data/spec/unit/knife/role_delete_spec.rb +10 -10
  470. data/spec/unit/knife/role_edit_spec.rb +13 -13
  471. data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -0
  472. data/spec/unit/knife/role_env_run_list_clear_spec.rb +100 -0
  473. data/spec/unit/knife/role_env_run_list_remove_spec.rb +108 -0
  474. data/spec/unit/knife/role_env_run_list_replace_spec.rb +108 -0
  475. data/spec/unit/knife/role_env_run_list_set_spec.rb +102 -0
  476. data/spec/unit/knife/role_from_file_spec.rb +10 -10
  477. data/spec/unit/knife/role_list_spec.rb +7 -7
  478. data/spec/unit/knife/role_run_list_add_spec.rb +179 -0
  479. data/spec/unit/knife/role_run_list_clear_spec.rb +90 -0
  480. data/spec/unit/knife/role_run_list_remove_spec.rb +98 -0
  481. data/spec/unit/knife/role_run_list_replace_spec.rb +101 -0
  482. data/spec/unit/knife/role_run_list_set_spec.rb +92 -0
  483. data/spec/unit/knife/ssh_spec.rb +66 -66
  484. data/spec/unit/knife/ssl_check_spec.rb +27 -27
  485. data/spec/unit/knife/ssl_fetch_spec.rb +45 -12
  486. data/spec/unit/knife/status_spec.rb +5 -5
  487. data/spec/unit/knife/tag_create_spec.rb +5 -5
  488. data/spec/unit/knife/tag_delete_spec.rb +6 -6
  489. data/spec/unit/knife/tag_list_spec.rb +4 -4
  490. data/spec/unit/knife/user_create_spec.rb +18 -18
  491. data/spec/unit/knife/user_delete_spec.rb +4 -4
  492. data/spec/unit/knife/user_edit_spec.rb +7 -7
  493. data/spec/unit/knife/user_list_spec.rb +2 -2
  494. data/spec/unit/knife/user_reregister_spec.rb +10 -10
  495. data/spec/unit/knife/user_show_spec.rb +5 -5
  496. data/spec/unit/knife_spec.rb +36 -36
  497. data/spec/unit/lwrp_spec.rb +63 -39
  498. data/spec/unit/mash_spec.rb +6 -6
  499. data/spec/unit/mixin/checksum_spec.rb +2 -2
  500. data/spec/unit/mixin/command_spec.rb +13 -13
  501. data/spec/unit/mixin/convert_to_class_name_spec.rb +6 -6
  502. data/spec/unit/mixin/deep_merge_spec.rb +49 -49
  503. data/spec/unit/mixin/deprecation_spec.rb +5 -5
  504. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +14 -14
  505. data/spec/unit/mixin/homebrew_user_spec.rb +3 -3
  506. data/spec/unit/mixin/params_validate_spec.rb +71 -71
  507. data/spec/unit/mixin/path_sanity_spec.rb +14 -14
  508. data/spec/unit/mixin/securable_spec.rb +177 -177
  509. data/spec/unit/mixin/shell_out_spec.rb +56 -27
  510. data/spec/unit/mixin/template_spec.rb +31 -31
  511. data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
  512. data/spec/unit/mixin/xml_escape_spec.rb +7 -7
  513. data/spec/unit/monkey_patches/uri_spec.rb +1 -1
  514. data/spec/unit/monologger_spec.rb +3 -3
  515. data/spec/unit/node/attribute_spec.rb +185 -136
  516. data/spec/unit/node/immutable_collections_spec.rb +22 -22
  517. data/spec/unit/node_spec.rb +210 -179
  518. data/spec/unit/org_spec.rb +196 -0
  519. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  520. data/spec/unit/platform_spec.rb +46 -46
  521. data/spec/unit/policy_builder/expand_node_object_spec.rb +17 -18
  522. data/spec/unit/policy_builder/policyfile_spec.rb +159 -71
  523. data/spec/unit/provider/directory_spec.rb +5 -5
  524. data/spec/unit/provider/dsc_script_spec.rb +6 -6
  525. data/spec/unit/provider/env_spec.rb +27 -14
  526. data/spec/unit/provider/execute_spec.rb +139 -68
  527. data/spec/unit/provider/file/content_spec.rb +8 -8
  528. data/spec/unit/provider/git_spec.rb +10 -5
  529. data/spec/unit/provider/group/dscl_spec.rb +8 -11
  530. data/spec/unit/provider/group_spec.rb +13 -13
  531. data/spec/unit/provider/ifconfig/aix_spec.rb +3 -2
  532. data/spec/unit/provider/ifconfig/debian_spec.rb +19 -19
  533. data/spec/unit/provider/ifconfig_spec.rb +2 -2
  534. data/spec/unit/provider/mdadm_spec.rb +2 -2
  535. data/spec/unit/provider/mount/aix_spec.rb +5 -5
  536. data/spec/unit/provider/mount/mount_spec.rb +22 -22
  537. data/spec/unit/provider/mount/solaris_spec.rb +20 -20
  538. data/spec/unit/provider/package/aix_spec.rb +23 -22
  539. data/spec/unit/provider/package/apt_spec.rb +23 -4
  540. data/spec/unit/provider/package/dpkg_spec.rb +14 -15
  541. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  542. data/spec/unit/provider/package/freebsd/port_spec.rb +1 -1
  543. data/spec/unit/provider/package/ips_spec.rb +1 -2
  544. data/spec/unit/provider/package/macports_spec.rb +14 -14
  545. data/spec/unit/provider/package/openbsd_spec.rb +66 -0
  546. data/spec/unit/provider/package/pacman_spec.rb +15 -14
  547. data/spec/unit/provider/package/portage_spec.rb +11 -11
  548. data/spec/unit/provider/package/rpm_spec.rb +132 -84
  549. data/spec/unit/provider/package/rubygems_spec.rb +54 -25
  550. data/spec/unit/provider/package/solaris_spec.rb +22 -25
  551. data/spec/unit/provider/package/yum_spec.rb +237 -36
  552. data/spec/unit/provider/package/zypper_spec.rb +9 -12
  553. data/spec/unit/provider/package_spec.rb +276 -2
  554. data/spec/unit/provider/package_spec.rbe +0 -0
  555. data/spec/unit/provider/remote_directory_spec.rb +25 -25
  556. data/spec/unit/provider/remote_file/ftp_spec.rb +3 -3
  557. data/spec/unit/provider/route_spec.rb +3 -3
  558. data/spec/unit/provider/script_spec.rb +61 -43
  559. data/spec/unit/provider/service/aix_service_spec.rb +5 -5
  560. data/spec/unit/provider/service/arch_service_spec.rb +5 -5
  561. data/spec/unit/provider/service/debian_service_spec.rb +8 -8
  562. data/spec/unit/provider/service/freebsd_service_spec.rb +16 -2
  563. data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
  564. data/spec/unit/provider/service/init_service_spec.rb +5 -5
  565. data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
  566. data/spec/unit/provider/service/invokercd_service_spec.rb +5 -5
  567. data/spec/unit/provider/service/macosx_spec.rb +7 -7
  568. data/spec/unit/provider/service/openbsd_service_spec.rb +543 -0
  569. data/spec/unit/provider/service/redhat_spec.rb +4 -4
  570. data/spec/unit/provider/service/simple_service_spec.rb +2 -2
  571. data/spec/unit/provider/service/solaris_smf_service_spec.rb +14 -14
  572. data/spec/unit/provider/service/systemd_service_spec.rb +15 -7
  573. data/spec/unit/provider/service/upstart_service_spec.rb +4 -4
  574. data/spec/unit/provider/service/windows_spec.rb +119 -25
  575. data/spec/unit/provider/service_spec.rb +1 -1
  576. data/spec/unit/provider/user/dscl_spec.rb +38 -30
  577. data/spec/unit/provider/user_spec.rb +1 -1
  578. data/spec/unit/provider_resolver_spec.rb +7 -7
  579. data/spec/unit/provider_spec.rb +23 -23
  580. data/spec/unit/recipe_spec.rb +194 -83
  581. data/spec/unit/registry_helper_spec.rb +143 -143
  582. data/spec/unit/resource/chef_gem_spec.rb +117 -3
  583. data/spec/unit/resource/conditional_action_not_nothing_spec.rb +2 -2
  584. data/spec/unit/resource/conditional_spec.rb +56 -15
  585. data/spec/unit/resource/deploy_spec.rb +2 -2
  586. data/spec/unit/resource/dsc_script_spec.rb +32 -0
  587. data/spec/unit/resource/execute_spec.rb +4 -0
  588. data/spec/unit/resource/file/verification_spec.rb +111 -0
  589. data/spec/unit/resource/file_spec.rb +14 -0
  590. data/spec/unit/resource/openbsd_package_spec.rb +49 -0
  591. data/spec/unit/resource/remote_file_spec.rb +12 -12
  592. data/spec/unit/resource/resource_notification_spec.rb +18 -18
  593. data/spec/unit/resource/rpm_package_spec.rb +12 -0
  594. data/spec/unit/resource/scm_spec.rb +4 -4
  595. data/spec/unit/resource/script_spec.rb +3 -5
  596. data/spec/unit/resource/subversion_spec.rb +1 -1
  597. data/spec/unit/resource_builder_spec.rb +1 -0
  598. data/spec/unit/resource_collection/resource_list_spec.rb +2 -2
  599. data/spec/unit/resource_collection/resource_set_spec.rb +3 -3
  600. data/spec/unit/resource_collection/stepable_iterator_spec.rb +24 -24
  601. data/spec/unit/resource_collection_spec.rb +52 -52
  602. data/spec/unit/resource_definition_spec.rb +1 -1
  603. data/spec/unit/resource_reporter_spec.rb +118 -118
  604. data/spec/unit/resource_spec.rb +131 -125
  605. data/spec/unit/rest/auth_credentials_spec.rb +73 -73
  606. data/spec/unit/rest_spec.rb +12 -12
  607. data/spec/unit/role_spec.rb +85 -84
  608. data/spec/unit/run_context/cookbook_compiler_spec.rb +18 -18
  609. data/spec/unit/run_context_spec.rb +39 -68
  610. data/spec/unit/run_list/run_list_expansion_spec.rb +21 -21
  611. data/spec/unit/run_list/run_list_item_spec.rb +28 -28
  612. data/spec/unit/run_list/versioned_recipe_list_spec.rb +14 -14
  613. data/spec/unit/run_list_spec.rb +55 -55
  614. data/spec/unit/run_lock_spec.rb +14 -14
  615. data/spec/unit/run_status_spec.rb +24 -24
  616. data/spec/unit/scan_access_control_spec.rb +23 -23
  617. data/spec/unit/search/query_spec.rb +54 -66
  618. data/spec/unit/shell/model_wrapper_spec.rb +13 -13
  619. data/spec/unit/shell/shell_ext_spec.rb +32 -32
  620. data/spec/unit/shell/shell_session_spec.rb +24 -24
  621. data/spec/unit/shell_out_spec.rb +4 -4
  622. data/spec/unit/shell_spec.rb +27 -27
  623. data/spec/unit/user_spec.rb +50 -50
  624. data/spec/unit/util/backup_spec.rb +32 -32
  625. data/spec/unit/util/diff_spec.rb +31 -31
  626. data/spec/unit/util/dsc/configuration_generator_spec.rb +38 -16
  627. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +21 -26
  628. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +10 -10
  629. data/spec/unit/util/editor_spec.rb +10 -10
  630. data/spec/unit/util/file_edit_spec.rb +10 -10
  631. data/spec/unit/util/path_helper_spec.rb +38 -46
  632. data/spec/unit/util/powershell/cmdlet_spec.rb +9 -9
  633. data/spec/unit/util/selinux_spec.rb +30 -30
  634. data/spec/unit/util/threaded_job_queue_spec.rb +6 -6
  635. data/spec/unit/version/platform_spec.rb +5 -5
  636. data/spec/unit/version_class_spec.rb +15 -15
  637. data/spec/unit/version_constraint/platform_spec.rb +7 -7
  638. data/spec/unit/version_constraint_spec.rb +43 -43
  639. data/spec/unit/windows_service_spec.rb +15 -15
  640. data/spec/unit/workstation_config_loader_spec.rb +2 -2
  641. data/tasks/rspec.rb +16 -18
  642. metadata +126 -49
  643. data/bin/shef +0 -35
  644. data/lib/chef/application/agent.rb +0 -18
  645. data/lib/chef/monkey_patches/fileutils.rb +0 -65
  646. data/lib/chef/monkey_patches/numeric.rb +0 -15
  647. data/lib/chef/monkey_patches/object.rb +0 -9
  648. data/lib/chef/monkey_patches/pathname.rb +0 -32
  649. data/lib/chef/monkey_patches/regexp.rb +0 -34
  650. data/lib/chef/monkey_patches/securerandom.rb +0 -44
  651. data/lib/chef/monkey_patches/string.rb +0 -49
  652. data/lib/chef/monkey_patches/tempfile.rb +0 -64
  653. data/lib/chef/monkey_patches/uri.rb +0 -70
@@ -180,11 +180,11 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
180
180
  end
181
181
 
182
182
  it "should set the mounted status on the current_resource" do
183
- expect(provider.current_resource.mounted).to be_true
183
+ expect(provider.current_resource.mounted).to be_truthy
184
184
  end
185
185
 
186
186
  it "should set the enabled status on the current_resource" do
187
- expect(provider.current_resource.enabled).to be_true
187
+ expect(provider.current_resource.enabled).to be_truthy
188
188
  end
189
189
 
190
190
  it "should set the fstype field on the current_resource" do
@@ -258,7 +258,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
258
258
  let(:fsck_device) { "-" }
259
259
 
260
260
  it "should work at some point in the future" do
261
- pending "SMBFS mounts on solaris look like they will need some future code work and more investigation"
261
+ skip "SMBFS mounts on solaris look like they will need some future code work and more investigation"
262
262
  end
263
263
  end
264
264
 
@@ -304,11 +304,11 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
304
304
  end
305
305
 
306
306
  it "should set the mounted status on the current_resource" do
307
- expect(provider.current_resource.mounted).to be_true
307
+ expect(provider.current_resource.mounted).to be_truthy
308
308
  end
309
309
 
310
310
  it "should set the enabled status on the current_resource" do
311
- expect(provider.current_resource.enabled).to be_true
311
+ expect(provider.current_resource.enabled).to be_truthy
312
312
  end
313
313
 
314
314
  it "should set the fstype field on the current_resource" do
@@ -322,7 +322,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
322
322
  it "should set the pass field on the current_resource" do
323
323
  # is this correct or should it be nil?
324
324
  #
325
- # vfstab man page says.
325
+ # vfstab man page says.
326
326
  # "A - is used to indicate no entry in a field."
327
327
  # 0 and - could mean different things for some file systems
328
328
  expect(provider.current_resource.pass).to eql(0)
@@ -354,11 +354,11 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
354
354
  end
355
355
 
356
356
  it "should set mounted true if the symlink target of the device is found in the mounts list" do
357
- expect(provider.current_resource.mounted).to be_true
357
+ expect(provider.current_resource.mounted).to be_truthy
358
358
  end
359
359
 
360
360
  it "should set enabled true if the symlink target of the device is found in the vfstab" do
361
- expect(provider.current_resource.enabled).to be_true
361
+ expect(provider.current_resource.enabled).to be_truthy
362
362
  end
363
363
 
364
364
  it "should have the correct mount options" do
@@ -391,11 +391,11 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
391
391
  end
392
392
 
393
393
  it "should set mounted true if the symlink target of the device is found in the mounts list" do
394
- expect(provider.current_resource.mounted).to be_true
394
+ expect(provider.current_resource.mounted).to be_truthy
395
395
  end
396
396
 
397
397
  it "should set enabled true if the symlink target of the device is found in the vfstab" do
398
- expect(provider.current_resource.enabled).to be_true
398
+ expect(provider.current_resource.enabled).to be_truthy
399
399
  end
400
400
 
401
401
  it "should have the correct mount options" do
@@ -412,7 +412,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
412
412
  }
413
413
  it "should set mounted true" do
414
414
  provider.load_current_resource()
415
- expect(provider.current_resource.mounted).to be_true
415
+ expect(provider.current_resource.mounted).to be_truthy
416
416
  end
417
417
  end
418
418
 
@@ -425,7 +425,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
425
425
  }
426
426
  it "should set mounted false" do
427
427
  provider.load_current_resource()
428
- expect(provider.current_resource.mounted).to be_false
428
+ expect(provider.current_resource.mounted).to be_falsey
429
429
  end
430
430
  end
431
431
 
@@ -437,7 +437,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
437
437
  }
438
438
  it "should set mounted false" do
439
439
  provider.load_current_resource()
440
- expect(provider.current_resource.mounted).to be_false
440
+ expect(provider.current_resource.mounted).to be_falsey
441
441
  end
442
442
  end
443
443
 
@@ -449,7 +449,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
449
449
  }
450
450
  it "should set mounted false" do
451
451
  provider.load_current_resource()
452
- expect(provider.current_resource.mounted).to be_false
452
+ expect(provider.current_resource.mounted).to be_falsey
453
453
  end
454
454
  end
455
455
 
@@ -463,7 +463,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
463
463
 
464
464
  it "should set enabled to true" do
465
465
  provider.load_current_resource
466
- expect(provider.current_resource.enabled).to be_true
466
+ expect(provider.current_resource.enabled).to be_truthy
467
467
  end
468
468
  end
469
469
 
@@ -477,7 +477,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
477
477
 
478
478
  it "should set enabled to true" do
479
479
  provider.load_current_resource
480
- expect(provider.current_resource.enabled).to be_true
480
+ expect(provider.current_resource.enabled).to be_truthy
481
481
  end
482
482
  end
483
483
 
@@ -491,7 +491,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
491
491
 
492
492
  it "should set enabled to false" do
493
493
  provider.load_current_resource
494
- expect(provider.current_resource.enabled).to be_false
494
+ expect(provider.current_resource.enabled).to be_falsey
495
495
  end
496
496
  end
497
497
 
@@ -504,7 +504,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
504
504
 
505
505
  it "should set enabled to false" do
506
506
  provider.load_current_resource
507
- expect(provider.current_resource.enabled).to be_false
507
+ expect(provider.current_resource.enabled).to be_falsey
508
508
  end
509
509
  end
510
510
 
@@ -517,7 +517,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
517
517
 
518
518
  it "should set enabled to false" do
519
519
  provider.load_current_resource
520
- expect(provider.current_resource.enabled).to be_false
520
+ expect(provider.current_resource.enabled).to be_falsey
521
521
  end
522
522
  end
523
523
 
@@ -530,7 +530,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
530
530
 
531
531
  it "should set enabled to false" do
532
532
  provider.load_current_resource
533
- expect(provider.current_resource.enabled).to be_false
533
+ expect(provider.current_resource.enabled).to be_falsey
534
534
  end
535
535
  end
536
536
  end
@@ -36,34 +36,33 @@ describe Chef::Provider::Package::Aix do
36
36
  @bffinfo ="/usr/lib/objrepos:samba.base:3.3.12.0::COMMITTED:I:Samba for AIX:
37
37
  /etc/objrepos:samba.base:3.3.12.0::COMMITTED:I:Samba for AIX:"
38
38
 
39
- @status = double("Status", :exitstatus => 0)
39
+ @status = double("Status", :stdout => "", :exitstatus => 0)
40
40
  end
41
41
 
42
42
  it "should create a current resource with the name of new_resource" do
43
- allow(@provider).to receive(:popen4).and_return(@status)
43
+ allow(@provider).to receive(:shell_out).and_return(@status)
44
44
  @provider.load_current_resource
45
45
  expect(@provider.current_resource.name).to eq("samba.base")
46
46
  end
47
47
 
48
48
  it "should set the current resource bff package name to the new resource bff package name" do
49
- allow(@provider).to receive(:popen4).and_return(@status)
49
+ allow(@provider).to receive(:shell_out).and_return(@status)
50
50
  @provider.load_current_resource
51
51
  expect(@provider.current_resource.package_name).to eq("samba.base")
52
52
  end
53
53
 
54
54
  it "should raise an exception if a source is supplied but not found" do
55
- allow(@provider).to receive(:popen4).and_return(@status)
55
+ allow(@provider).to receive(:shell_out).and_return(@status)
56
56
  allow(::File).to receive(:exists?).and_return(false)
57
- @provider.define_resource_requirements
58
57
  @provider.load_current_resource
58
+ @provider.define_resource_requirements
59
59
  expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package)
60
60
  end
61
61
 
62
62
  it "should get the source package version from lslpp if provided" do
63
- @stdout = StringIO.new(@bffinfo)
64
- @stdin, @stderr = StringIO.new, StringIO.new
65
- expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
66
- expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_return(@status)
63
+ status = double("Status", :stdout => @bffinfo, :exitstatus => 0)
64
+ expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(status)
65
+ expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(@status)
67
66
  @provider.load_current_resource
68
67
 
69
68
  expect(@provider.current_resource.package_name).to eq("samba.base")
@@ -71,31 +70,33 @@ describe Chef::Provider::Package::Aix do
71
70
  end
72
71
 
73
72
  it "should return the current version installed if found by lslpp" do
73
+ status = double("Status", :stdout => @bffinfo, :exitstatus => 0)
74
74
  @stdout = StringIO.new(@bffinfo)
75
75
  @stdin, @stderr = StringIO.new, StringIO.new
76
- expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
77
- expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
76
+ expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(@status)
77
+ expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(status)
78
78
  @provider.load_current_resource
79
79
  expect(@provider.current_resource.version).to eq("3.3.12.0")
80
80
  end
81
81
 
82
82
  it "should raise an exception if the source is not set but we are installing" do
83
+ status = double("Status", :stdout => "", :exitstatus => 1, :format_for_exception => "")
83
84
  @new_resource = Chef::Resource::Package.new("samba.base")
84
85
  @provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
85
- allow(@provider).to receive(:popen4).and_return(@status)
86
+ allow(@provider).to receive(:shell_out).and_return(status)
86
87
  expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
87
88
  end
88
89
 
89
90
  it "should raise an exception if installp/lslpp fails to run" do
90
- @status = double("Status", :exitstatus => -1)
91
- allow(@provider).to receive(:popen4).and_return(@status)
91
+ status = double(:stdout => "", :exitstatus => -1, :format_for_exception => "")
92
+ allow(@provider).to receive(:shell_out).and_return(status)
92
93
  expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
93
94
  end
94
95
 
95
96
  it "should return a current resource with a nil version if the package is not found" do
96
- @stdout = StringIO.new
97
- expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
98
- expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
97
+ status = double(:stdout => "", :exitstatus => 0)
98
+ expect(@provider).to receive(:shell_out).with("installp -L -d /tmp/samba.base").and_return(status)
99
+ expect(@provider).to receive(:shell_out).with("lslpp -lcq samba.base").and_return(status)
99
100
  @provider.load_current_resource
100
101
  expect(@provider.current_resource.version).to be_nil
101
102
  end
@@ -104,19 +105,19 @@ describe Chef::Provider::Package::Aix do
104
105
  describe "candidate_version" do
105
106
  it "should return the candidate_version variable if already setup" do
106
107
  @provider.candidate_version = "3.3.12.0"
107
- expect(@provider).not_to receive(:popen4)
108
+ expect(@provider).not_to receive(:shell_out )
108
109
  @provider.candidate_version
109
110
  end
110
111
 
111
112
  it "should lookup the candidate_version if the variable is not already set" do
112
- @status = double("Status", :exitstatus => 0)
113
- expect(@provider).to receive(:popen4).and_return(@status)
113
+ status = double(:stdout => "", :exitstatus => 0)
114
+ expect(@provider).to receive(:shell_out).and_return(status)
114
115
  @provider.candidate_version
115
116
  end
116
117
 
117
118
  it "should throw and exception if the exitstatus is not 0" do
118
- @status = double("Status", :exitstatus => 1)
119
- allow(@provider).to receive(:popen4).and_return(@status)
119
+ @status = double(:stdout => "", :exitstatus => 1, :format_for_exception => "")
120
+ allow(@provider).to receive(:shell_out).and_return(@status)
120
121
  expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
121
122
  end
122
123
 
@@ -198,6 +198,11 @@ mpg123 1.12.1-0ubuntu1
198
198
 
199
199
  it "raises an exception if a source is specified (CHEF-5113)" do
200
200
  @new_resource.source "pluto"
201
+ expect(@provider).to receive(:shell_out!).with(
202
+ "apt-cache policy #{@new_resource.package_name}",
203
+ :timeout => @timeout
204
+ ).and_return(@shell_out)
205
+ @provider.load_current_resource
201
206
  @provider.define_resource_requirements
202
207
  expect(@provider).to receive(:shell_out!).with("apt-cache policy irssi", {:timeout=>900}).and_return(@shell_out)
203
208
  expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
@@ -307,8 +312,7 @@ mpg123 1.12.1-0ubuntu1
307
312
  end
308
313
 
309
314
  it "should get the full path to the preseed response file" do
310
- expect(@provider).to receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
311
- file = @provider.get_preseed_file("irssi", "0.8.12-7")
315
+ file = "/tmp/irssi-0.8.12-7.seed"
312
316
 
313
317
  expect(@provider).to receive(:shell_out!).with(
314
318
  "debconf-set-selections /tmp/irssi-0.8.12-7.seed",
@@ -330,7 +334,7 @@ mpg123 1.12.1-0ubuntu1
330
334
  end
331
335
 
332
336
  it "should not run debconf-set-selections if the preseed file has not changed" do
333
- allow(@provider).to receive(:check_package_state)
337
+ allow(@provider).to receive(:check_all_packages_state)
334
338
  @current_resource.version "0.8.11"
335
339
  @new_resource.response_file "/tmp/file"
336
340
  allow(@provider).to receive(:get_preseed_file).and_return(false)
@@ -352,7 +356,7 @@ mpg123 1.12.1-0ubuntu1
352
356
 
353
357
  describe "when installing a virtual package" do
354
358
  it "should install the package without specifying a version" do
355
- @provider.is_virtual_package = true
359
+ @provider.is_virtual_package['libmysqlclient-dev'] = true
356
360
  expect(@provider).to receive(:shell_out!).with(
357
361
  "apt-get -q -y install libmysqlclient-dev",
358
362
  :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
@@ -361,6 +365,21 @@ mpg123 1.12.1-0ubuntu1
361
365
  @provider.install_package("libmysqlclient-dev", "not_a_real_version")
362
366
  end
363
367
  end
368
+
369
+ describe "when installing multiple packages" do
370
+ it "can install a virtual package followed by a non-virtual package" do
371
+ # https://github.com/chef/chef/issues/2914
372
+ @provider.is_virtual_package['libmysqlclient-dev'] = true
373
+ @provider.is_virtual_package['irssi'] = false
374
+ expect(@provider).to receive(:shell_out!).with(
375
+ "apt-get -q -y install libmysqlclient-dev irssi=0.8.12-7",
376
+ :env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
377
+ :timeout => @timeout
378
+ )
379
+ @provider.install_package(["libmysqlclient-dev", "irssi"], ["not_a_real_version", "0.8.12-7"])
380
+ end
381
+ end
382
+
364
383
  end
365
384
  end
366
385
  end
@@ -28,12 +28,8 @@ describe Chef::Provider::Package::Dpkg do
28
28
 
29
29
  @provider = Chef::Provider::Package::Dpkg.new(@new_resource, @run_context)
30
30
 
31
- @stdin = StringIO.new
32
- @stdout = StringIO.new
33
- @status = double("Status", :exitstatus => 0)
34
- @stderr = StringIO.new
35
- @pid = double("PID")
36
- allow(@provider).to receive(:popen4).and_return(@status)
31
+ @status = double(:stdout => "", :exitstatus => 0)
32
+ allow(@provider).to receive(:shell_out).and_return(@status)
37
33
 
38
34
  allow(::File).to receive(:exists?).and_return(true)
39
35
  end
@@ -54,11 +50,12 @@ describe Chef::Provider::Package::Dpkg do
54
50
 
55
51
  describe 'gets the source package version from dpkg-deb' do
56
52
  def check_version(version)
57
- @stdout = StringIO.new("wget\t#{version}")
58
- allow(@provider).to receive(:popen4).with("dpkg-deb -W #{@new_resource.source}").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
53
+ @status = double(:stdout => "wget\t#{version}", :exitstatus => 0)
54
+ allow(@provider).to receive(:shell_out).with("dpkg-deb -W #{@new_resource.source}").and_return(@status)
59
55
  @provider.load_current_resource
60
56
  expect(@provider.current_resource.package_name).to eq("wget")
61
57
  expect(@new_resource.version).to eq(version)
58
+ expect(@provider.candidate_version).to eq(version)
62
59
  end
63
60
 
64
61
  it 'if short version provided' do
@@ -79,8 +76,9 @@ describe Chef::Provider::Package::Dpkg do
79
76
  end
80
77
 
81
78
  it "gets the source package name from dpkg-deb correctly when the package name has `-', `+' or `.' characters" do
82
- @stdout = StringIO.new("f.o.o-pkg++2\t1.11.4-1ubuntu1")
83
- allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
79
+ stdout = "f.o.o-pkg++2\t1.11.4-1ubuntu1"
80
+ status = double(:stdout => stdout, :exitstatus => 1)
81
+ allow(@provider).to receive(:shell_out).and_return(status)
84
82
  @provider.load_current_resource
85
83
  expect(@provider.current_resource.package_name).to eq("f.o.o-pkg++2")
86
84
  end
@@ -88,13 +86,13 @@ describe Chef::Provider::Package::Dpkg do
88
86
  it "should raise an exception if the source is not set but we are installing" do
89
87
  @new_resource = Chef::Resource::Package.new("wget")
90
88
  @provider.new_resource = @new_resource
91
- @provider.define_resource_requirements
92
89
  @provider.load_current_resource
90
+ @provider.define_resource_requirements
93
91
  expect { @provider.run_action(:install)}.to raise_error(Chef::Exceptions::Package)
94
92
  end
95
93
 
96
94
  it "should return the current version installed if found by dpkg" do
97
- @stdout = StringIO.new(<<-DPKG_S)
95
+ stdout = <<-DPKG_S
98
96
  Package: wget
99
97
  Status: install ok installed
100
98
  Priority: important
@@ -107,15 +105,16 @@ Config-Version: 1.11.4-1ubuntu1
107
105
  Depends: libc6 (>= 2.8~20080505), libssl0.9.8 (>= 0.9.8f-5)
108
106
  Conflicts: wget-ssl
109
107
  DPKG_S
110
- allow(@provider).to receive(:popen4).with("dpkg -s wget").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
108
+ status = double(:stdout => stdout, :exitstatus => 1)
109
+ allow(@provider).to receive(:shell_out).with("dpkg -s wget").and_return(status)
111
110
 
112
111
  @provider.load_current_resource
113
112
  expect(@provider.current_resource.version).to eq("1.11.4-1ubuntu1")
114
113
  end
115
114
 
116
115
  it "should raise an exception if dpkg fails to run" do
117
- @status = double("Status", :exitstatus => -1)
118
- allow(@provider).to receive(:popen4).and_return(@status)
116
+ status = double(:stdout => "", :exitstatus => -1)
117
+ allow(@provider).to receive(:shell_out).and_return(status)
119
118
  expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
120
119
  end
121
120
  end
@@ -33,7 +33,7 @@ describe Chef::Provider::Package::Freebsd::Port do
33
33
 
34
34
  describe "initialization" do
35
35
  it "should create a current resource with the name of the new resource" do
36
- expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
36
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_truthy
37
37
  expect(@provider.current_resource.name).to eq('zsh')
38
38
  end
39
39
  end
@@ -33,7 +33,7 @@ describe Chef::Provider::Package::Freebsd::Port do
33
33
 
34
34
  describe "initialization" do
35
35
  it "should create a current resource with the name of the new resource" do
36
- expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
36
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_truthy
37
37
  expect(@provider.current_resource.name).to eq('zsh')
38
38
  end
39
39
  end
@@ -190,9 +190,8 @@ REMOTE
190
190
 
191
191
  expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
192
192
  expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
193
- @provider.load_current_resource
194
193
  expect(@provider).to receive(:install_package).exactly(0).times
195
- @provider.action_install
194
+ @provider.run_action(:install)
196
195
  end
197
196
 
198
197
  context "when accept_license is true" do
@@ -29,11 +29,11 @@ describe Chef::Provider::Package::Macports do
29
29
  @provider = Chef::Provider::Package::Macports.new(@new_resource, @run_context)
30
30
  allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
31
31
 
32
- @status = double("Status", :exitstatus => 0)
33
- @stdin = StringIO.new
34
- @stdout = StringIO.new
35
- @stderr = StringIO.new
36
- @pid = 2342
32
+ # @status = double(:stdout => "", :exitstatus => 0)
33
+ # @stdin = StringIO.new
34
+ # @stdout = StringIO.new
35
+ # @stderr = StringIO.new
36
+ # @pid = 2342
37
37
  end
38
38
 
39
39
  describe "load_current_resource" do
@@ -70,33 +70,33 @@ describe Chef::Provider::Package::Macports do
70
70
 
71
71
  describe "current_installed_version" do
72
72
  it "should return the current version if the package is installed" do
73
- expect(@stdout).to receive(:read).and_return(<<EOF
73
+ stdout = <<EOF
74
74
  The following ports are currently installed:
75
75
  openssl @0.9.8k_0 (active)
76
76
  EOF
77
- )
78
77
 
79
- expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
78
+ status = double(:stdout => stdout, :exitstatus => 0)
79
+ expect(@provider).to receive(:shell_out).and_return(status)
80
80
  expect(@provider.current_installed_version).to eq("0.9.8k_0")
81
81
  end
82
82
 
83
83
  it "should return nil if a package is not currently installed" do
84
- expect(@stdout).to receive(:read).and_return(" \n")
85
- expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
84
+ status = double(:stdout => " \n", :exitstatus => 0)
85
+ expect(@provider).to receive(:shell_out).and_return(status)
86
86
  expect(@provider.current_installed_version).to be_nil
87
87
  end
88
88
  end
89
89
 
90
90
  describe "macports_candidate_version" do
91
91
  it "should return the latest available version of a given package" do
92
- expect(@stdout).to receive(:read).and_return("version: 4.2.7\n")
93
- expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
92
+ status = double(:stdout => "version: 4.2.7\n", :exitstatus => 0)
93
+ expect(@provider).to receive(:shell_out).and_return(status)
94
94
  expect(@provider.macports_candidate_version).to eq("4.2.7")
95
95
  end
96
96
 
97
97
  it "should return nil if there is no version for a given package" do
98
- expect(@stdout).to receive(:read).and_return("Error: port fadsfadsfads not found\n")
99
- expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
98
+ status = double(:stdout => "Error: port fadsfadsfads not found\n", :exitstatus => 0)
99
+ expect(@provider).to receive(:shell_out).and_return(status)
100
100
  expect(@provider.macports_candidate_version).to be_nil
101
101
  end
102
102
  end