chef 12.10.24-universal-mingw32 → 12.11.18-universal-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 (525) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -38
  3. data/Gemfile +6 -11
  4. data/LICENSE +201 -201
  5. data/README.md +11 -1
  6. data/VERSION +1 -1
  7. data/acceptance/.bundle/config +2 -0
  8. data/acceptance/Gemfile.lock +27 -26
  9. data/acceptance/basics/.kitchen/logs/chef-current-install-ubuntu-1404.log +2 -0
  10. data/acceptance/basics/.kitchen/logs/kitchen.log +3 -0
  11. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +2 -0
  12. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +3 -0
  13. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +2 -0
  14. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +2 -0
  15. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +2 -0
  16. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +16 -0
  17. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +3 -0
  18. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +85 -0
  19. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +3 -0
  20. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +4 -0
  21. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +4 -0
  22. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +2 -0
  23. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +4 -0
  24. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +2 -0
  25. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +7 -0
  26. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +38 -0
  27. data/acceptance/data-collector/.kitchen.yml +9 -0
  28. data/acceptance/data-collector/Berksfile +3 -0
  29. data/acceptance/data-collector/Berksfile.lock +6 -0
  30. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +251 -0
  31. data/acceptance/fips/.kitchen/logs/fips-integration-centos-6.log +3 -0
  32. data/acceptance/fips/.kitchen/logs/fips-integration-windows-2012r2.log +3 -0
  33. data/acceptance/fips/.kitchen/logs/fips-unit-functional-centos-6.log +3 -0
  34. data/acceptance/fips/.kitchen/logs/fips-unit-functional-windows-2012r2.log +3 -0
  35. data/acceptance/fips/.kitchen/logs/kitchen.log +6 -0
  36. data/acceptance/fips/test/integration/fips-integration/serverspec/fips-integration_spec.rb +2 -1
  37. data/acceptance/top-cookbooks/.kitchen.docker.yml +1 -4
  38. data/acceptance/trivial/.kitchen/logs/chef-current-install-windows-2012r2.log +2 -0
  39. data/acceptance/trivial/.kitchen/logs/kitchen.log +3 -0
  40. data/acceptance/windows-service/.kitchen/logs/chef-windows-service-windows-2012r2.log +2 -0
  41. data/acceptance/windows-service/.kitchen/logs/kitchen.log +3 -0
  42. data/bin/chef-apply +0 -0
  43. data/bin/chef-client +0 -0
  44. data/bin/chef-service-manager +0 -0
  45. data/bin/chef-shell +0 -0
  46. data/bin/chef-solo +0 -0
  47. data/bin/chef-windows-service +0 -0
  48. data/bin/knife +0 -0
  49. data/chef.gemspec +1 -0
  50. data/distro/common/html/_sources/ctl_chef_client.txt +35 -35
  51. data/distro/common/html/_sources/ctl_chef_server.txt +341 -341
  52. data/distro/common/html/_sources/ctl_chef_shell.txt +15 -15
  53. data/distro/common/html/_sources/ctl_chef_solo.txt +25 -25
  54. data/distro/common/html/_sources/index.txt +135 -135
  55. data/distro/common/html/_sources/knife.txt +74 -74
  56. data/distro/common/html/_sources/knife_bootstrap.txt +56 -56
  57. data/distro/common/html/_sources/knife_client.txt +150 -150
  58. data/distro/common/html/_sources/knife_common_options.txt +6 -6
  59. data/distro/common/html/_sources/knife_configure.txt +29 -29
  60. data/distro/common/html/_sources/knife_cookbook.txt +236 -236
  61. data/distro/common/html/_sources/knife_cookbook_site.txt +157 -157
  62. data/distro/common/html/_sources/knife_data_bag.txt +159 -159
  63. data/distro/common/html/_sources/knife_delete.txt +26 -26
  64. data/distro/common/html/_sources/knife_deps.txt +61 -61
  65. data/distro/common/html/_sources/knife_diff.txt +34 -34
  66. data/distro/common/html/_sources/knife_download.txt +44 -44
  67. data/distro/common/html/_sources/knife_edit.txt +26 -26
  68. data/distro/common/html/_sources/knife_environment.txt +158 -158
  69. data/distro/common/html/_sources/knife_exec.txt +47 -47
  70. data/distro/common/html/_sources/knife_index_rebuild.txt +20 -20
  71. data/distro/common/html/_sources/knife_list.txt +33 -33
  72. data/distro/common/html/_sources/knife_node.txt +250 -250
  73. data/distro/common/html/_sources/knife_raw.txt +35 -35
  74. data/distro/common/html/_sources/knife_recipe_list.txt +23 -23
  75. data/distro/common/html/_sources/knife_role.txt +157 -157
  76. data/distro/common/html/_sources/knife_search.txt +53 -53
  77. data/distro/common/html/_sources/knife_serve.txt +18 -18
  78. data/distro/common/html/_sources/knife_show.txt +26 -26
  79. data/distro/common/html/_sources/knife_ssh.txt +43 -43
  80. data/distro/common/html/_sources/knife_ssl_check.txt +41 -41
  81. data/distro/common/html/_sources/knife_ssl_fetch.txt +41 -41
  82. data/distro/common/html/_sources/knife_status.txt +37 -37
  83. data/distro/common/html/_sources/knife_tag.txt +69 -69
  84. data/distro/common/html/_sources/knife_upload.txt +49 -49
  85. data/distro/common/html/_sources/knife_user.txt +127 -127
  86. data/distro/common/html/_sources/knife_using.txt +43 -43
  87. data/distro/common/html/_sources/knife_xargs.txt +30 -30
  88. data/distro/common/html/_static/guide.css +504 -504
  89. data/distro/common/html/_static/pygments.css +61 -61
  90. data/distro/common/html/_static/underscore.js +31 -31
  91. data/distro/common/html/ctl_chef_client.html +269 -269
  92. data/distro/common/html/ctl_chef_server.html +727 -727
  93. data/distro/common/html/ctl_chef_shell.html +162 -162
  94. data/distro/common/html/ctl_chef_solo.html +193 -193
  95. data/distro/common/html/index.html +201 -201
  96. data/distro/common/html/knife.html +169 -169
  97. data/distro/common/html/knife_bootstrap.html +284 -284
  98. data/distro/common/html/knife_client.html +284 -284
  99. data/distro/common/html/knife_common_options.html +95 -95
  100. data/distro/common/html/knife_configure.html +104 -104
  101. data/distro/common/html/knife_cookbook.html +486 -486
  102. data/distro/common/html/knife_data_bag.html +373 -373
  103. data/distro/common/html/knife_delete.html +92 -92
  104. data/distro/common/html/knife_deps.html +142 -142
  105. data/distro/common/html/knife_diff.html +122 -122
  106. data/distro/common/html/knife_download.html +144 -144
  107. data/distro/common/html/knife_edit.html +88 -88
  108. data/distro/common/html/knife_environment.html +325 -325
  109. data/distro/common/html/knife_exec.html +219 -219
  110. data/distro/common/html/knife_index_rebuild.html +82 -82
  111. data/distro/common/html/knife_list.html +113 -113
  112. data/distro/common/html/knife_node.html +457 -457
  113. data/distro/common/html/knife_raw.html +109 -109
  114. data/distro/common/html/knife_recipe_list.html +90 -90
  115. data/distro/common/html/knife_role.html +294 -294
  116. data/distro/common/html/knife_search.html +202 -202
  117. data/distro/common/html/knife_serve.html +78 -78
  118. data/distro/common/html/knife_show.html +103 -103
  119. data/distro/common/html/knife_ssh.html +176 -176
  120. data/distro/common/html/knife_ssl_check.html +150 -150
  121. data/distro/common/html/knife_ssl_fetch.html +150 -150
  122. data/distro/common/html/knife_status.html +143 -143
  123. data/distro/common/html/knife_tag.html +137 -137
  124. data/distro/common/html/knife_upload.html +152 -152
  125. data/distro/common/html/knife_user.html +241 -241
  126. data/distro/common/html/knife_using.html +209 -209
  127. data/distro/common/html/knife_xargs.html +121 -121
  128. data/distro/common/html/search.html +81 -81
  129. data/distro/common/man/man1/README.md +58 -58
  130. data/distro/common/man/man1/chef-shell.1 +194 -194
  131. data/distro/common/man/man1/knife-bootstrap.1 +215 -215
  132. data/distro/common/man/man1/knife-client.1 +443 -443
  133. data/distro/common/man/man1/knife-configure.1 +161 -161
  134. data/distro/common/man/man1/knife-cookbook.1 +770 -770
  135. data/distro/common/man/man1/knife-data-bag.1 +617 -617
  136. data/distro/common/man/man1/knife-delete.1 +127 -127
  137. data/distro/common/man/man1/knife-deps.1 +246 -246
  138. data/distro/common/man/man1/knife-diff.1 +226 -226
  139. data/distro/common/man/man1/knife-download.1 +258 -258
  140. data/distro/common/man/man1/knife-edit.1 +121 -121
  141. data/distro/common/man/man1/knife-environment.1 +508 -508
  142. data/distro/common/man/man1/knife-exec.1 +362 -362
  143. data/distro/common/man/man1/knife-index-rebuild.1 +63 -63
  144. data/distro/common/man/man1/knife-list.1 +174 -174
  145. data/distro/common/man/man1/knife-node.1 +716 -716
  146. data/distro/common/man/man1/knife-raw.1 +172 -172
  147. data/distro/common/man/man1/knife-recipe-list.1 +85 -85
  148. data/distro/common/man/man1/knife-role.1 +426 -426
  149. data/distro/common/man/man1/knife-search.1 +359 -359
  150. data/distro/common/man/man1/knife-serve.1 +109 -109
  151. data/distro/common/man/man1/knife-show.1 +160 -160
  152. data/distro/common/man/man1/knife-ssh.1 +284 -284
  153. data/distro/common/man/man1/knife-ssl-check.1 +207 -207
  154. data/distro/common/man/man1/knife-ssl-fetch.1 +207 -207
  155. data/distro/common/man/man1/knife-status.1 +234 -234
  156. data/distro/common/man/man1/knife-tag.1 +189 -189
  157. data/distro/common/man/man1/knife-upload.1 +280 -280
  158. data/distro/common/man/man1/knife-user.1 +356 -356
  159. data/distro/common/man/man1/knife-xargs.1 +189 -189
  160. data/distro/common/man/man1/knife.1 +332 -332
  161. data/distro/common/man/man8/chef-apply.8 +86 -86
  162. data/distro/common/man/man8/chef-client.8 +398 -398
  163. data/distro/common/man/man8/chef-solo.8 +260 -260
  164. data/distro/common/markdown/README +3 -3
  165. data/lib/chef/application.rb +14 -9
  166. data/lib/chef/application/apply.rb +5 -5
  167. data/lib/chef/application/client.rb +3 -3
  168. data/lib/chef/application/exit_code.rb +226 -0
  169. data/lib/chef/application/solo.rb +37 -7
  170. data/lib/chef/application/windows_service.rb +3 -3
  171. data/lib/chef/chef_fs/command_line.rb +7 -0
  172. data/lib/chef/chef_fs/config.rb +1 -1
  173. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +11 -10
  174. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  175. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  176. data/lib/chef/chef_fs/file_system.rb +15 -13
  177. data/lib/chef/chef_fs/file_system/base_fs_object.rb +4 -0
  178. data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +1 -1
  179. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +9 -0
  180. data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +6 -0
  181. data/lib/chef/chef_fs/file_system/chef_server/data_bag_entry.rb +19 -0
  182. data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +1 -1
  183. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +1 -1
  184. data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +4 -0
  185. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +4 -0
  186. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +4 -0
  187. data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +4 -0
  188. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +3 -3
  189. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +15 -4
  190. data/lib/chef/chef_fs/file_system/exceptions.rb +7 -0
  191. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -2
  192. data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +0 -4
  193. data/lib/chef/chef_fs/file_system/repository/acl.rb +7 -0
  194. data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +0 -4
  195. data/lib/chef/chef_fs/file_system/repository/base_file.rb +36 -4
  196. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +4 -0
  197. data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +0 -4
  198. data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +0 -3
  199. data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +0 -4
  200. data/lib/chef/chef_fs/file_system/repository/directory.rb +4 -0
  201. data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +0 -4
  202. data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +0 -4
  203. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +0 -4
  204. data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +0 -4
  205. data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +0 -4
  206. data/lib/chef/chef_fs/file_system/repository/users_dir.rb +0 -4
  207. data/lib/chef/client.rb +11 -3
  208. data/lib/chef/config_fetcher.rb +4 -4
  209. data/lib/chef/cookbook/gem_installer.rb +1 -0
  210. data/lib/chef/cookbook/synchronizer.rb +1 -1
  211. data/lib/chef/data_bag.rb +2 -2
  212. data/lib/chef/data_bag_item.rb +1 -1
  213. data/lib/chef/data_collector.rb +345 -0
  214. data/lib/chef/data_collector/messages.rb +125 -0
  215. data/lib/chef/data_collector/messages/helpers.rb +161 -0
  216. data/lib/chef/data_collector/resource_report.rb +84 -0
  217. data/lib/chef/decorator.rb +81 -0
  218. data/lib/chef/decorator/lazy.rb +60 -0
  219. data/lib/chef/decorator/lazy_array.rb +59 -0
  220. data/lib/chef/deprecation/provider/remote_file.rb +1 -1
  221. data/lib/chef/dsl/core.rb +19 -11
  222. data/lib/chef/dsl/platform_introspection.rb +16 -0
  223. data/lib/chef/dsl/recipe.rb +15 -9
  224. data/lib/chef/dsl/universal.rb +50 -0
  225. data/lib/chef/environment.rb +2 -2
  226. data/lib/chef/exceptions.rb +19 -4
  227. data/lib/chef/handler.rb +33 -0
  228. data/lib/chef/knife/cookbook_show.rb +6 -10
  229. data/lib/chef/knife/cookbook_site_install.rb +7 -2
  230. data/lib/chef/knife/help_topics.rb +4 -4
  231. data/lib/chef/knife/list.rb +1 -2
  232. data/lib/chef/knife/ssl_check.rb +2 -1
  233. data/lib/chef/monkey_patches/win32/registry.rb +11 -0
  234. data/lib/chef/nil_argument.rb +3 -3
  235. data/lib/chef/node.rb +2 -2
  236. data/lib/chef/platform/rebooter.rb +13 -2
  237. data/lib/chef/policy_builder/dynamic.rb +1 -1
  238. data/lib/chef/policy_builder/expand_node_object.rb +3 -3
  239. data/lib/chef/policy_builder/policyfile.rb +1 -1
  240. data/lib/chef/provider/git.rb +43 -41
  241. data/lib/chef/provider/lwrp_base.rb +0 -1
  242. data/lib/chef/provider/osx_profile.rb +2 -3
  243. data/lib/chef/provider/package.rb +51 -13
  244. data/lib/chef/provider/package/apt.rb +97 -103
  245. data/lib/chef/provider/package/chocolatey.rb +9 -10
  246. data/lib/chef/provider/package/dpkg.rb +2 -2
  247. data/lib/chef/provider/package/portage.rb +1 -1
  248. data/lib/chef/provider/package/rubygems.rb +8 -12
  249. data/lib/chef/provider/package/yum.rb +4 -959
  250. data/lib/chef/provider/package/yum/rpm_utils.rb +642 -0
  251. data/lib/chef/provider/package/{yum-dump.py → yum/yum-dump.py} +0 -0
  252. data/lib/chef/provider/package/yum/yum_cache.rb +376 -0
  253. data/lib/chef/provider/resource_update.rb +52 -52
  254. data/lib/chef/provider/systemd_unit.rb +238 -0
  255. data/lib/chef/providers.rb +1 -0
  256. data/lib/chef/reserved_names.rb +9 -9
  257. data/lib/chef/resource.rb +2 -7
  258. data/lib/chef/resource/file.rb +6 -1
  259. data/lib/chef/resource/systemd_unit.rb +63 -0
  260. data/lib/chef/resources.rb +1 -0
  261. data/lib/chef/sandbox.rb +20 -20
  262. data/lib/chef/shell/shell_session.rb +3 -3
  263. data/lib/chef/version.rb +1 -1
  264. data/lib/chef/win32/system.rb +0 -0
  265. data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
  266. data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
  267. data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
  268. data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
  269. data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
  270. data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
  271. data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
  272. data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
  273. data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
  274. data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
  275. data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
  276. data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
  277. data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
  278. data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
  279. data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
  280. data/spec/data/apt/var/www/apt/conf/distributions +7 -7
  281. data/spec/data/apt/var/www/apt/conf/incoming +4 -4
  282. data/spec/data/apt/var/www/apt/conf/pulls +3 -3
  283. data/spec/data/apt/var/www/apt/db/version +4 -4
  284. data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
  285. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
  286. data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
  287. data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
  288. data/spec/data/bootstrap/no_proxy.erb +2 -2
  289. data/spec/data/bootstrap/secret.erb +9 -9
  290. data/spec/data/bootstrap/test-hints.erb +12 -12
  291. data/spec/data/bootstrap/test.erb +1 -1
  292. data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
  293. data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
  294. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
  295. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
  296. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
  297. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
  298. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
  299. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
  300. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
  301. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
  302. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
  303. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
  304. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
  305. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
  306. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
  307. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
  308. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
  309. data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
  310. data/spec/data/config.rb +6 -6
  311. data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
  312. data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
  313. data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
  314. data/spec/data/cookbooks/apache2/metadata.rb +2 -2
  315. data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
  316. data/spec/data/cookbooks/borken/metadata.rb +2 -2
  317. data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
  318. data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
  319. data/spec/data/cookbooks/chefignore +8 -8
  320. data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
  321. data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
  322. data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
  323. data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
  324. data/spec/data/cookbooks/java/files/default/java.response +1 -1
  325. data/spec/data/cookbooks/java/metadata.rb +2 -2
  326. data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
  327. data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
  328. data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
  329. data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
  330. data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
  331. data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
  332. data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
  333. data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
  334. data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
  335. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
  336. data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
  337. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
  338. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
  339. data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
  340. data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
  341. data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
  342. data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
  343. data/spec/data/cookbooks/openldap/metadata.rb +8 -8
  344. data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
  345. data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
  346. data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
  347. data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
  348. data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
  349. data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
  350. data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
  351. data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
  352. data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
  353. data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
  354. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
  355. data/spec/data/cookbooks/preseed/metadata.rb +2 -2
  356. data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
  357. data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
  358. data/spec/data/definitions/test.rb +4 -4
  359. data/spec/data/environment-config.rb +4 -4
  360. data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
  361. data/spec/data/fileedit/hosts +4 -4
  362. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
  363. data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
  364. data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
  365. data/spec/data/kitchen/chefignore +6 -6
  366. data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
  367. data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
  368. data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
  369. data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
  370. data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
  371. data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
  372. data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
  373. data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
  374. data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
  375. data/spec/data/knife_subcommand/test_yourself.rb +21 -21
  376. data/spec/data/lwrp/providers/inline_compiler.rb +26 -26
  377. data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
  378. data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
  379. data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
  380. data/spec/data/lwrp/resources/foo.rb +4 -4
  381. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
  382. data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
  383. data/spec/data/mac_users/10.7-8.plist.xml +559 -559
  384. data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
  385. data/spec/data/mac_users/10.7.plist.xml +559 -559
  386. data/spec/data/mac_users/10.7.shadow.xml +11 -11
  387. data/spec/data/mac_users/10.8.plist.xml +559 -559
  388. data/spec/data/mac_users/10.8.shadow.xml +21 -21
  389. data/spec/data/mac_users/10.9.plist.xml +560 -560
  390. data/spec/data/mac_users/10.9.shadow.xml +21 -21
  391. data/spec/data/metadata/quick_start/metadata.rb +19 -19
  392. data/spec/data/nodes/default.rb +15 -15
  393. data/spec/data/nodes/test.example.com.rb +17 -17
  394. data/spec/data/nodes/test.rb +15 -15
  395. data/spec/data/null_config.rb +1 -1
  396. data/spec/data/object_loader/environments/test.json +7 -7
  397. data/spec/data/object_loader/environments/test.rb +2 -2
  398. data/spec/data/object_loader/environments/test_json_class.json +8 -8
  399. data/spec/data/object_loader/nodes/test.json +7 -7
  400. data/spec/data/object_loader/nodes/test.rb +2 -2
  401. data/spec/data/object_loader/nodes/test_json_class.json +8 -8
  402. data/spec/data/object_loader/roles/test.json +7 -7
  403. data/spec/data/object_loader/roles/test.rb +2 -2
  404. data/spec/data/object_loader/roles/test_json_class.json +8 -8
  405. data/spec/data/partial_one.erb +1 -1
  406. data/spec/data/recipes/test.rb +7 -7
  407. data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -4
  408. data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
  409. data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
  410. data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
  411. data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
  412. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
  413. data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -3
  414. data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
  415. data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
  416. data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
  417. data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
  418. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
  419. data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -2
  420. data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -2
  421. data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -3
  422. data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
  423. data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
  424. data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
  425. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
  426. data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -3
  427. data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
  428. data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
  429. data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
  430. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
  431. data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -3
  432. data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
  433. data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
  434. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
  435. data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -3
  436. data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
  437. data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
  438. data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
  439. data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
  440. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
  441. data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -3
  442. data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
  443. data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
  444. data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
  445. data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
  446. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
  447. data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
  448. data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
  449. data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
  450. data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
  451. data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
  452. data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
  453. data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
  454. data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
  455. data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
  456. data/spec/data/run_context/nodes/run_context.rb +5 -5
  457. data/spec/data/search_queries_to_transform.txt +98 -98
  458. data/spec/data/shef-config.rb +10 -10
  459. data/spec/data/ssl/5e707473.0 +18 -18
  460. data/spec/data/ssl/chef-rspec.cert +27 -27
  461. data/spec/data/ssl/chef-rspec.key +27 -27
  462. data/spec/data/ssl/key.pem +15 -15
  463. data/spec/data/ssl/private_key.pem +27 -27
  464. data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
  465. data/spec/data/standalone_cookbook/chefignore +9 -9
  466. data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
  467. data/spec/data/trusted_certs/example.crt +22 -22
  468. data/spec/data/trusted_certs/intermediate.pem +27 -27
  469. data/spec/data/trusted_certs/root.pem +22 -22
  470. data/spec/functional/assets/chefinittest +34 -34
  471. data/spec/functional/assets/testchefsubsys +10 -10
  472. data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
  473. data/spec/functional/resource/aix_service_spec.rb +0 -0
  474. data/spec/functional/resource/aixinit_service_spec.rb +0 -0
  475. data/spec/functional/resource/chocolatey_package_spec.rb +0 -5
  476. data/spec/functional/resource/env_spec.rb +0 -0
  477. data/spec/functional/win32/registry_spec.rb +1 -0
  478. data/spec/integration/client/exit_code_spec.rb +245 -0
  479. data/spec/integration/knife/deps_spec.rb +7 -7
  480. data/spec/integration/knife/download_spec.rb +19 -0
  481. data/spec/integration/knife/list_spec.rb +0 -8
  482. data/spec/integration/knife/upload_spec.rb +21 -2
  483. data/spec/integration/solo/solo_spec.rb +1 -1
  484. data/spec/rcov.opts +2 -2
  485. data/spec/unit/application/apply_spec.rb +6 -4
  486. data/spec/unit/application/exit_code_spec.rb +231 -0
  487. data/spec/unit/application/solo_spec.rb +143 -88
  488. data/spec/unit/chef_fs/config_spec.rb +129 -0
  489. data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +8 -10
  490. data/spec/unit/client_spec.rb +1 -1
  491. data/spec/unit/config_fetcher_spec.rb +2 -2
  492. data/spec/unit/cookbook/synchronizer_spec.rb +1 -1
  493. data/spec/unit/data_bag_item_spec.rb +2 -2
  494. data/spec/unit/data_bag_spec.rb +2 -2
  495. data/spec/unit/data_collector/messages/helpers_spec.rb +190 -0
  496. data/spec/unit/data_collector/messages_spec.rb +207 -0
  497. data/spec/unit/data_collector_spec.rb +525 -0
  498. data/spec/unit/decorator/lazy_array_spec.rb +58 -0
  499. data/spec/unit/decorator/lazy_spec.rb +39 -0
  500. data/spec/unit/decorator_spec.rb +142 -0
  501. data/spec/unit/environment_spec.rb +4 -4
  502. data/spec/unit/handler_spec.rb +87 -0
  503. data/spec/unit/knife/cookbook_show_spec.rb +89 -90
  504. data/spec/unit/knife/ssl_check_spec.rb +16 -0
  505. data/spec/unit/policy_builder/dynamic_spec.rb +1 -1
  506. data/spec/unit/policy_builder/policyfile_spec.rb +1 -1
  507. data/spec/unit/provider/git_spec.rb +77 -18
  508. data/spec/unit/provider/package/apt_spec.rb +97 -34
  509. data/spec/unit/provider/package/chocolatey_spec.rb +3 -15
  510. data/spec/unit/provider/package/portage_spec.rb +6 -0
  511. data/spec/unit/provider/package/rubygems_spec.rb +38 -4
  512. data/spec/unit/provider/package/yum/yum_cache_spec.rb +27 -0
  513. data/spec/unit/provider/package_spec.rb +20 -7
  514. data/spec/unit/provider/systemd_unit_spec.rb +885 -0
  515. data/spec/unit/resource/systemd_unit_spec.rb +133 -0
  516. data/spec/unit/resource_builder_spec.rb +1 -1
  517. data/tasks/bin/bundle-platform +6 -2
  518. data/tasks/bin/bundle-platform.bat +0 -0
  519. data/tasks/bin/create-override-gemfile +0 -0
  520. data/tasks/bin/run_external_test +0 -0
  521. data/tasks/bundle_util.rb +18 -2
  522. data/tasks/changelog.rb +1 -0
  523. data/tasks/dependencies.rb +47 -57
  524. metadata +847 -7
  525. data/tasks/bin/run_chef_tests +0 -17
@@ -114,6 +114,22 @@ E
114
114
  allow(ssl_check).to receive(:verify_cert_host).and_return(true)
115
115
  end
116
116
 
117
+ context "when the trusted certificates directory is not glob escaped", :windows_only do
118
+ let(:trusted_certs_dir) { File.join(CHEF_SPEC_DATA.tr("/", "\\"), "trusted_certs") }
119
+
120
+ before do
121
+ allow(ssl_check).to receive(:trusted_certificates).and_call_original
122
+ allow(store).to receive(:verify).with(certificate).and_return(true)
123
+ end
124
+
125
+ it "escpaes the trusted certificates directory" do
126
+ expect(Dir).to receive(:glob)
127
+ .with("#{ChefConfig::PathHelper.escape_glob_dir(trusted_certs_dir)}/*.{crt,pem}")
128
+ .and_return([trusted_cert_file])
129
+ ssl_check.run
130
+ end
131
+ end
132
+
117
133
  context "when the trusted certificates have valid X509 properties" do
118
134
  before do
119
135
  allow(store).to receive(:verify).with(certificate).and_return(true)
@@ -254,7 +254,7 @@ describe Chef::PolicyBuilder::Dynamic do
254
254
  context "when running chef solo" do
255
255
 
256
256
  before do
257
- Chef::Config[:solo] = true
257
+ Chef::Config[:solo_legacy_mode] = true
258
258
  expect(Chef::Node).to receive(:build).with(node_name).and_return(node)
259
259
  expect(policy_builder).to receive(:select_implementation).with(node)
260
260
  expect(implementation).to receive(:finish_load_node).with(node)
@@ -115,7 +115,7 @@ describe Chef::PolicyBuilder::Policyfile do
115
115
  end
116
116
 
117
117
  context "chef-solo" do
118
- before { Chef::Config[:solo] = true }
118
+ before { Chef::Config[:solo_legacy_mode] = true }
119
119
 
120
120
  it "errors on create" do
121
121
  expect { initialize_pb }.to raise_error(err_namespace::UnsupportedFeature)
@@ -58,7 +58,7 @@ describe Chef::Provider::Git do
58
58
  it "determines the current revision when there is one" do
59
59
  expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
60
60
  @stdout = "9b4d8dc38dd471246e7cfb1c3c1ad14b0f2bee13\n"
61
- expect(@provider).to receive(:shell_out!).with("git rev-parse HEAD", { :cwd => "/my/deploy/dir", :returns => [0, 128] }).and_return(double("ShellOut result", :stdout => @stdout))
61
+ expect(@provider).to receive(:shell_out!).with("git rev-parse HEAD", { :cwd => "/my/deploy/dir", :returns => [0, 128], :log_tag => "git[web2.0 app]" }).and_return(double("ShellOut result", :stdout => @stdout))
62
62
  expect(@provider.find_current_revision).to eql("9b4d8dc38dd471246e7cfb1c3c1ad14b0f2bee13")
63
63
  end
64
64
 
@@ -66,7 +66,7 @@ describe Chef::Provider::Git do
66
66
  expect(::File).to receive(:exist?).with("/my/deploy/dir/.git").and_return(true)
67
67
  @stderr = "fatal: Not a git repository (or any of the parent directories): .git"
68
68
  @stdout = ""
69
- expect(@provider).to receive(:shell_out!).with("git rev-parse HEAD", :cwd => "/my/deploy/dir", :returns => [0, 128]).and_return(double("ShellOut result", :stdout => "", :stderr => @stderr))
69
+ expect(@provider).to receive(:shell_out!).with("git rev-parse HEAD", :cwd => "/my/deploy/dir", :returns => [0, 128], :log_tag => "git[web2.0 app]" ).and_return(double("ShellOut result", :stdout => "", :stderr => @stderr))
70
70
  expect(@provider.find_current_revision).to be_nil
71
71
  end
72
72
  end
@@ -218,7 +218,7 @@ SHAS
218
218
  context "with an ssh wrapper" do
219
219
  let(:deploy_user) { "deployNinja" }
220
220
  let(:wrapper) { "do_it_this_way.sh" }
221
- let(:expected_cmd) { 'git clone "git://github.com/opscode/chef.git" "/my/deploy/dir"' }
221
+ let(:expected_cmd) { 'git clone "git://github.com/opscode/chef.git" "/my/deploy/dir"' }
222
222
  let(:default_options) do
223
223
  {
224
224
  :user => deploy_user,
@@ -267,16 +267,52 @@ SHAS
267
267
  end
268
268
  end
269
269
 
270
+ context "with a user id" do
271
+ let(:deploy_user) { 123 }
272
+ let(:expected_cmd) { 'git clone "git://github.com/opscode/chef.git" "/my/deploy/dir"' }
273
+ let(:default_options) do
274
+ {
275
+ :user => 123,
276
+ :environment => { "HOME" => "/home/deployNinja" },
277
+ :log_tag => "git[web2.0 app]",
278
+ }
279
+ end
280
+ before do
281
+ @resource.user deploy_user
282
+ allow(Etc).to receive(:getpwuid).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
283
+ end
284
+ context "with a specific home" do
285
+ let (:override_home) do
286
+ { "HOME" => "/home/masterNinja" }
287
+ end
288
+ let(:overrided_options) do
289
+ {
290
+ :user => 123,
291
+ :environment => { "HOME" => "/home/masterNinja" },
292
+ :log_tag => "git[web2.0 app]",
293
+ }
294
+ end
295
+ before do
296
+ @resource.environment(override_home)
297
+ end
298
+ before { @resource.environment(override_home) }
299
+ it "clones a repo with amended git options with specific home" do
300
+ expect(@provider).to receive(:shell_out!).with(expected_cmd, hash_including(overrided_options))
301
+ @provider.clone
302
+ end
303
+ end
304
+ end
305
+
270
306
  it "runs a clone command with escaped destination" do
271
307
  @resource.user "deployNinja"
272
308
  allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/deployNinja"))
273
309
  @resource.destination "/Application Support/with/space"
274
310
  @resource.ssh_wrapper "do_it_this_way.sh"
275
- expected_cmd = "git clone \"git://github.com/opscode/chef.git\" \"/Application Support/with/space\""
311
+ expected_cmd = "git clone \"git://github.com/opscode/chef.git\" \"/Application Support/with/space\""
276
312
  expect(@provider).to receive(:shell_out!).with(expected_cmd, :user => "deployNinja",
277
- :environment => { "GIT_SSH" => "do_it_this_way.sh",
278
- "HOME" => "/home/deployNinja" },
279
- :log_tag => "git[web2.0 app]")
313
+ :log_tag => "git[web2.0 app]",
314
+ :environment => { "HOME" => "/home/deployNinja",
315
+ "GIT_SSH" => "do_it_this_way.sh" })
280
316
  @provider.clone
281
317
  end
282
318
 
@@ -334,8 +370,12 @@ SHAS
334
370
 
335
371
  it "runs a sync command with default options" do
336
372
  expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
337
- expected_cmd = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
338
- expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
373
+ expected_cmd1 = "git fetch origin"
374
+ expect(@provider).to receive(:shell_out!).with(expected_cmd1, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
375
+ expected_cmd2 = "git fetch origin --tags"
376
+ expect(@provider).to receive(:shell_out!).with(expected_cmd2, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
377
+ expected_cmd3 = "git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
378
+ expect(@provider).to receive(:shell_out!).with(expected_cmd3, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
339
379
  @provider.fetch_updates
340
380
  end
341
381
 
@@ -344,27 +384,46 @@ SHAS
344
384
  allow(Etc).to receive(:getpwnam).and_return(double("Struct::Passwd", :name => @resource.user, :dir => "/home/whois"))
345
385
  @resource.group("thisis")
346
386
  expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
347
- expected_cmd = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
348
- expect(@provider).to receive(:shell_out!).with(expected_cmd, :cwd => "/my/deploy/dir",
349
- :user => "whois", :group => "thisis",
350
- :log_tag => "git[web2.0 app]",
351
- :environment => { "HOME" => "/home/whois" })
387
+
388
+ expected_cmd1 = "git fetch origin"
389
+ expect(@provider).to receive(:shell_out!).with(expected_cmd1, :cwd => "/my/deploy/dir",
390
+ :user => "whois", :group => "thisis",
391
+ :log_tag => "git[web2.0 app]",
392
+ :environment => { "HOME" => "/home/whois" })
393
+ expected_cmd2 = "git fetch origin --tags"
394
+ expect(@provider).to receive(:shell_out!).with(expected_cmd2, :cwd => "/my/deploy/dir",
395
+ :user => "whois", :group => "thisis",
396
+ :log_tag => "git[web2.0 app]",
397
+ :environment => { "HOME" => "/home/whois" })
398
+ expected_cmd3 = "git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
399
+ expect(@provider).to receive(:shell_out!).with(expected_cmd3, :cwd => "/my/deploy/dir",
400
+ :user => "whois", :group => "thisis",
401
+ :log_tag => "git[web2.0 app]",
402
+ :environment => { "HOME" => "/home/whois" })
352
403
  @provider.fetch_updates
353
404
  end
354
405
 
355
406
  it "configures remote tracking branches when remote is ``origin''" do
356
407
  @resource.remote "origin"
357
408
  expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
358
- fetch_command = "git fetch origin && git fetch origin --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
359
- expect(@provider).to receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
409
+ fetch_command1 = "git fetch origin"
410
+ expect(@provider).to receive(:shell_out!).with(fetch_command1, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
411
+ fetch_command2 = "git fetch origin --tags"
412
+ expect(@provider).to receive(:shell_out!).with(fetch_command2, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
413
+ fetch_command3 = "git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
414
+ expect(@provider).to receive(:shell_out!).with(fetch_command3, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
360
415
  @provider.fetch_updates
361
416
  end
362
417
 
363
418
  it "configures remote tracking branches when remote is not ``origin''" do
364
419
  @resource.remote "opscode"
365
420
  expect(@provider).to receive(:setup_remote_tracking_branches).with(@resource.remote, @resource.repository)
366
- fetch_command = "git fetch opscode && git fetch opscode --tags && git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
367
- expect(@provider).to receive(:shell_out!).with(fetch_command, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
421
+ fetch_command1 = "git fetch opscode"
422
+ expect(@provider).to receive(:shell_out!).with(fetch_command1, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
423
+ fetch_command2 = "git fetch opscode --tags"
424
+ expect(@provider).to receive(:shell_out!).with(fetch_command2, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
425
+ fetch_command3 = "git reset --hard d35af14d41ae22b19da05d7d03a0bafc321b244c"
426
+ expect(@provider).to receive(:shell_out!).with(fetch_command3, :cwd => "/my/deploy/dir", :log_tag => "git[web2.0 app]")
368
427
  @provider.fetch_updates
369
428
  end
370
429
 
@@ -52,6 +52,7 @@ irssi:
52
52
  it "should create a current resource with the name of the new_resource" do
53
53
  expect(@provider).to receive(:shell_out!).with(
54
54
  "apt-cache policy #{@new_resource.package_name}",
55
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
55
56
  :timeout => @timeout
56
57
  ).and_return(@shell_out)
57
58
  @provider.load_current_resource
@@ -60,7 +61,7 @@ irssi:
60
61
  expect(current_resource).to be_a(Chef::Resource::Package)
61
62
  expect(current_resource.name).to eq("irssi")
62
63
  expect(current_resource.package_name).to eq("irssi")
63
- expect(current_resource.version).to be_nil
64
+ expect(current_resource.version).to eql([nil])
64
65
  end
65
66
 
66
67
  it "should set the installed version if package has one" do
@@ -78,8 +79,32 @@ sudo:
78
79
  INSTALLED
79
80
  expect(@provider).to receive(:shell_out!).and_return(@shell_out)
80
81
  @provider.load_current_resource
81
- expect(@provider.current_resource.version).to eq("1.7.2p1-1ubuntu5.3")
82
- expect(@provider.candidate_version).to eql("1.7.2p1-1ubuntu5.3")
82
+ expect(@provider.current_resource.version).to eq(["1.7.2p1-1ubuntu5.3"])
83
+ expect(@provider.candidate_version).to eql(["1.7.2p1-1ubuntu5.3"])
84
+ end
85
+
86
+ # it is the superclasses responsibility to throw most exceptions
87
+ it "if the package does not exist in the cache sets installed + candidate version to nil" do
88
+ @new_resource.package_name("conic-smarms")
89
+ policy_out = <<-POLICY_STDOUT
90
+ N: Unable to locate package conic-smarms
91
+ POLICY_STDOUT
92
+ policy = double(:stdout => policy_out, :exitstatus => 0)
93
+ expect(@provider).to receive(:shell_out!).with(
94
+ "apt-cache policy conic-smarms",
95
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
96
+ :timeout => @timeout
97
+ ).and_return(policy)
98
+ showpkg_out = <<-SHOWPKG_STDOUT
99
+ N: Unable to locate package conic-smarms
100
+ SHOWPKG_STDOUT
101
+ showpkg = double(:stdout => showpkg_out, :exitstatus => 0)
102
+ expect(@provider).to receive(:shell_out!).with(
103
+ "apt-cache showpkg conic-smarms",
104
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
105
+ :timeout => @timeout
106
+ ).and_return(showpkg)
107
+ @provider.load_current_resource
83
108
  end
84
109
 
85
110
  # libmysqlclient-dev is a real package in newer versions of debian + ubuntu
@@ -95,6 +120,7 @@ libmysqlclient15-dev:
95
120
  virtual_package = double(:stdout => virtual_package_out, :exitstatus => 0)
96
121
  expect(@provider).to receive(:shell_out!).with(
97
122
  "apt-cache policy libmysqlclient15-dev",
123
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
98
124
  :timeout => @timeout
99
125
  ).and_return(virtual_package)
100
126
  showpkg_out = <<-SHOWPKG_STDOUT
@@ -118,6 +144,7 @@ libmysqlclient-dev 5.1.41-3ubuntu12
118
144
  showpkg = double(:stdout => showpkg_out, :exitstatus => 0)
119
145
  expect(@provider).to receive(:shell_out!).with(
120
146
  "apt-cache showpkg libmysqlclient15-dev",
147
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
121
148
  :timeout => @timeout
122
149
  ).and_return(showpkg)
123
150
  real_package_out = <<-RPKG_STDOUT
@@ -136,6 +163,7 @@ libmysqlclient-dev:
136
163
  real_package = double(:stdout => real_package_out, :exitstatus => 0)
137
164
  expect(@provider).to receive(:shell_out!).with(
138
165
  "apt-cache policy libmysqlclient-dev",
166
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
139
167
  :timeout => @timeout
140
168
  ).and_return(real_package)
141
169
  @provider.load_current_resource
@@ -152,6 +180,7 @@ mp3-decoder:
152
180
  virtual_package = double(:stdout => virtual_package_out, :exitstatus => 0)
153
181
  expect(@provider).to receive(:shell_out!).with(
154
182
  "apt-cache policy mp3-decoder",
183
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
155
184
  :timeout => @timeout
156
185
  ).and_return(virtual_package)
157
186
  showpkg_out = <<-SHOWPKG_STDOUT
@@ -178,6 +207,7 @@ mpg123 1.12.1-0ubuntu1
178
207
  showpkg = double(:stdout => showpkg_out, :exitstatus => 0)
179
208
  expect(@provider).to receive(:shell_out!).with(
180
209
  "apt-cache showpkg mp3-decoder",
210
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
181
211
  :timeout => @timeout
182
212
  ).and_return(showpkg)
183
213
  expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
@@ -191,6 +221,7 @@ mpg123 1.12.1-0ubuntu1
191
221
  allow(@new_resource).to receive(:provider).and_return(nil)
192
222
  expect(@provider).to receive(:shell_out!).with(
193
223
  "apt-cache -o APT::Default-Release=lenny-backports policy irssi",
224
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
194
225
  :timeout => @timeout
195
226
  ).and_return(@shell_out)
196
227
  @provider.load_current_resource
@@ -200,11 +231,9 @@ mpg123 1.12.1-0ubuntu1
200
231
  @new_resource.source "pluto"
201
232
  expect(@provider).to receive(:shell_out!).with(
202
233
  "apt-cache policy #{@new_resource.package_name}",
234
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" } ,
203
235
  :timeout => @timeout
204
236
  ).and_return(@shell_out)
205
- @provider.load_current_resource
206
- @provider.define_resource_requirements
207
- expect(@provider).to receive(:shell_out!).with("apt-cache policy irssi", { :timeout => 900 }).and_return(@shell_out)
208
237
  expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
209
238
  end
210
239
  end
@@ -213,26 +242,38 @@ mpg123 1.12.1-0ubuntu1
213
242
  before do
214
243
  @current_resource = resource_klass.new("irssi", @run_context)
215
244
  @provider.current_resource = @current_resource
245
+ allow(@provider).to receive(:package_data).and_return({
246
+ "irssi" => {
247
+ virtual: false,
248
+ candidate_version: "0.8.12-7",
249
+ installed_version: nil,
250
+ },
251
+ "libmysqlclient15-dev" => {
252
+ virtual: true,
253
+ candidate_version: nil,
254
+ installed_version: nil,
255
+ },
256
+ })
216
257
  end
217
258
 
218
259
  describe "install_package" do
219
260
  it "should run apt-get install with the package name and version" do
220
261
  expect(@provider).to receive(:shell_out!). with(
221
262
  "apt-get -q -y install irssi=0.8.12-7",
222
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
263
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
223
264
  :timeout => @timeout
224
265
  )
225
- @provider.install_package("irssi", "0.8.12-7")
266
+ @provider.install_package(["irssi"], ["0.8.12-7"])
226
267
  end
227
268
 
228
269
  it "should run apt-get install with the package name and version and options if specified" do
229
270
  expect(@provider).to receive(:shell_out!).with(
230
271
  "apt-get -q -y --force-yes install irssi=0.8.12-7",
231
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
272
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
232
273
  :timeout => @timeout
233
274
  )
234
275
  @new_resource.options("--force-yes")
235
- @provider.install_package("irssi", "0.8.12-7")
276
+ @provider.install_package(["irssi"], ["0.8.12-7"])
236
277
  end
237
278
 
238
279
  it "should run apt-get install with the package name and version and default_release if there is one and provider is explicitly defined" do
@@ -244,19 +285,19 @@ mpg123 1.12.1-0ubuntu1
244
285
 
245
286
  expect(@provider).to receive(:shell_out!).with(
246
287
  "apt-get -q -y -o APT::Default-Release=lenny-backports install irssi=0.8.12-7",
247
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
288
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
248
289
  :timeout => @timeout
249
290
  )
250
291
 
251
- @provider.install_package("irssi", "0.8.12-7")
292
+ @provider.install_package(["irssi"], ["0.8.12-7"])
252
293
  end
253
294
  end
254
295
 
255
296
  describe resource_klass, "upgrade_package" do
256
297
 
257
298
  it "should run install_package with the name and version" do
258
- expect(@provider).to receive(:install_package).with("irssi", "0.8.12-7")
259
- @provider.upgrade_package("irssi", "0.8.12-7")
299
+ expect(@provider).to receive(:install_package).with(["irssi"], ["0.8.12-7"])
300
+ @provider.upgrade_package(["irssi"], ["0.8.12-7"])
260
301
  end
261
302
  end
262
303
 
@@ -265,21 +306,21 @@ mpg123 1.12.1-0ubuntu1
265
306
  it "should run apt-get remove with the package name" do
266
307
  expect(@provider).to receive(:shell_out!).with(
267
308
  "apt-get -q -y remove irssi",
268
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
309
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
269
310
  :timeout => @timeout
270
311
  )
271
- @provider.remove_package("irssi", "0.8.12-7")
312
+ @provider.remove_package(["irssi"], ["0.8.12-7"])
272
313
  end
273
314
 
274
315
  it "should run apt-get remove with the package name and options if specified" do
275
316
  expect(@provider).to receive(:shell_out!).with(
276
317
  "apt-get -q -y --force-yes remove irssi",
277
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
318
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
278
319
  :timeout => @timeout
279
320
  )
280
321
  @new_resource.options("--force-yes")
281
322
 
282
- @provider.remove_package("irssi", "0.8.12-7")
323
+ @provider.remove_package(["irssi"], ["0.8.12-7"])
283
324
  end
284
325
  end
285
326
 
@@ -288,21 +329,21 @@ mpg123 1.12.1-0ubuntu1
288
329
  it "should run apt-get purge with the package name" do
289
330
  expect(@provider).to receive(:shell_out!).with(
290
331
  "apt-get -q -y purge irssi",
291
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
332
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
292
333
  :timeout => @timeout
293
334
  )
294
- @provider.purge_package("irssi", "0.8.12-7")
335
+ @provider.purge_package(["irssi"], ["0.8.12-7"])
295
336
  end
296
337
 
297
338
  it "should run apt-get purge with the package name and options if specified" do
298
339
  expect(@provider).to receive(:shell_out!).with(
299
340
  "apt-get -q -y --force-yes purge irssi",
300
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
341
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
301
342
  :timeout => @timeout
302
343
  )
303
344
  @new_resource.options("--force-yes")
304
345
 
305
- @provider.purge_package("irssi", "0.8.12-7")
346
+ @provider.purge_package(["irssi"], ["0.8.12-7"])
306
347
  end
307
348
  end
308
349
 
@@ -316,7 +357,7 @@ mpg123 1.12.1-0ubuntu1
316
357
 
317
358
  expect(@provider).to receive(:shell_out!).with(
318
359
  "debconf-set-selections /tmp/irssi-0.8.12-7.seed",
319
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
360
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
320
361
  :timeout => @timeout
321
362
  )
322
363
 
@@ -326,7 +367,7 @@ mpg123 1.12.1-0ubuntu1
326
367
  it "should run debconf-set-selections on the preseed file if it has changed" do
327
368
  expect(@provider).to receive(:shell_out!).with(
328
369
  "debconf-set-selections /tmp/irssi-0.8.12-7.seed",
329
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
370
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
330
371
  :timeout => @timeout
331
372
  )
332
373
  file = @provider.get_preseed_file("irssi", "0.8.12-7")
@@ -347,7 +388,7 @@ mpg123 1.12.1-0ubuntu1
347
388
  it "should run dpkg-reconfigure package" do
348
389
  expect(@provider).to receive(:shell_out!).with(
349
390
  "dpkg-reconfigure irssi",
350
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
391
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
351
392
  :timeout => @timeout
352
393
  )
353
394
  @provider.reconfig_package("irssi", "0.8.12-7")
@@ -356,27 +397,49 @@ mpg123 1.12.1-0ubuntu1
356
397
 
357
398
  describe "when installing a virtual package" do
358
399
  it "should install the package without specifying a version" do
359
- @provider.is_virtual_package["libmysqlclient-dev"] = true
400
+ @provider.package_data["libmysqlclient15-dev"][:virtual] = true
401
+ expect(@provider).to receive(:shell_out!).with(
402
+ "apt-get -q -y install libmysqlclient15-dev",
403
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
404
+ :timeout => @timeout
405
+ )
406
+ @provider.install_package(["libmysqlclient15-dev"], ["not_a_real_version"])
407
+ end
408
+ end
409
+
410
+ describe "when removing a virtual package" do
411
+ it "should remove the resolved name instead of the virtual package name" do
412
+ expect(@provider).to receive(:resolve_virtual_package_name).with("libmysqlclient15-dev").and_return("libmysqlclient-dev")
413
+ expect(@provider).to receive(:shell_out!).with(
414
+ "apt-get -q -y remove libmysqlclient-dev",
415
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
416
+ :timeout => @timeout
417
+ )
418
+ @provider.remove_package(["libmysqlclient15-dev"], ["not_a_real_version"])
419
+ end
420
+ end
421
+
422
+ describe "when purging a virtual package" do
423
+ it "should purge the resolved name instead of the virtual package name" do
424
+ expect(@provider).to receive(:resolve_virtual_package_name).with("libmysqlclient15-dev").and_return("libmysqlclient-dev")
360
425
  expect(@provider).to receive(:shell_out!).with(
361
- "apt-get -q -y install libmysqlclient-dev",
362
- :env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
426
+ "apt-get -q -y purge libmysqlclient-dev",
427
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
363
428
  :timeout => @timeout
364
429
  )
365
- @provider.install_package("libmysqlclient-dev", "not_a_real_version")
430
+ @provider.purge_package(["libmysqlclient15-dev"], ["not_a_real_version"])
366
431
  end
367
432
  end
368
433
 
369
434
  describe "when installing multiple packages" do
370
435
  it "can install a virtual package followed by a non-virtual package" do
371
436
  # https://github.com/chef/chef/issues/2914
372
- @provider.is_virtual_package["libmysqlclient-dev"] = true
373
- @provider.is_virtual_package["irssi"] = false
374
437
  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 },
438
+ "apt-get -q -y install libmysqlclient15-dev irssi=0.8.12-7",
439
+ :env => { "DEBIAN_FRONTEND" => "noninteractive" },
377
440
  :timeout => @timeout
378
441
  )
379
- @provider.install_package(["libmysqlclient-dev", "irssi"], ["not_a_real_version", "0.8.12-7"])
442
+ @provider.install_package(["libmysqlclient15-dev", "irssi"], ["not_a_real_version", "0.8.12-7"])
380
443
  end
381
444
  end
382
445