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
data/README.md CHANGED
@@ -157,9 +157,19 @@ Additionally, periodically Chef will update the desired versions of chef compone
157
157
  Whenever a change is checked in to `master`, the patch version of `chef` is bumped. To do this, the `lita-versioner` bot listens to github for merged PRs, and when it finds one, takes these actions:
158
158
 
159
159
  1. Bumps the patch version in `lib/chef/version.rb` (e.g. 0.9.14 -> 0.9.15).
160
- 2. Runs `rake dependencies:update_conservative` to update the `Gemfile.lock` to include the new version.
160
+ 2. Runs `rake bundle:install` to update the `Gemfile.lock` to include the new version.
161
161
  3. Pushes to `master` and submits a new build to Chef's Jenkins cluster.
162
162
 
163
+ ## Bumping the minor version of Chef
164
+
165
+ After each "official" stable release we need to bump the minor version. To do this:
166
+
167
+ 1. Manually increment the minor version in the VERSION file that is in the root of this repo. and reset the patch version to 0. Assuming the current version is `12.10.57` you would edit `VERSION` to be `12.11.0`.
168
+ 2. Run `bundle exec rake version` which will copy the version to the respective `version.rb` files in chef and chef-config.
169
+ 3. Run `bundle exec rake bundle:install` to update the base Gemfile.lock
170
+
171
+ Submit a PR with the changes made by the above.
172
+
163
173
  ## Component Versions
164
174
 
165
175
  Chef has two sorts of component: ruby components like `berkshelf` and `test-kitchen`, and binary components like `openssl` and even `ruby` itself.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 12.10.24
1
+ 12.11.18
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_FROZEN: '1'
@@ -1,6 +1,6 @@
1
1
  GIT
2
2
  remote: git://github.com/chef/chef-acceptance.git
3
- revision: 49458ec493dbd12588680eea9f2f9beb76463d09
3
+ revision: e92ddae46d2126864698b9c8e4fc4ec2dcc46c55
4
4
  specs:
5
5
  chef-acceptance (0.2.0)
6
6
  mixlib-shellout (~> 2.0)
@@ -11,13 +11,13 @@ GEM
11
11
  specs:
12
12
  addressable (2.4.0)
13
13
  artifactory (2.3.2)
14
- aws-sdk (2.2.34)
15
- aws-sdk-resources (= 2.2.34)
16
- aws-sdk-core (2.2.34)
14
+ aws-sdk (2.3.9)
15
+ aws-sdk-resources (= 2.3.9)
16
+ aws-sdk-core (2.3.9)
17
17
  jmespath (~> 1.0)
18
- aws-sdk-resources (2.2.34)
19
- aws-sdk-core (= 2.2.34)
20
- berkshelf (4.3.2)
18
+ aws-sdk-resources (2.3.9)
19
+ aws-sdk-core (= 2.3.9)
20
+ berkshelf (4.3.3)
21
21
  addressable (~> 2.3, >= 2.3.4)
22
22
  berkshelf-api-client (~> 2.0, >= 2.0.2)
23
23
  buff-config (~> 1.0)
@@ -52,14 +52,14 @@ GEM
52
52
  celluloid-io (0.16.2)
53
53
  celluloid (>= 0.16.0)
54
54
  nio4r (>= 1.1.0)
55
- chef-config (12.9.38)
55
+ chef-config (12.10.24)
56
56
  fuzzyurl (~> 0.8.0)
57
57
  mixlib-config (~> 2.0)
58
58
  mixlib-shellout (~> 2.0)
59
59
  cleanroom (1.0.0)
60
60
  coderay (1.1.1)
61
61
  diff-lcs (1.2.5)
62
- docker-api (1.26.2)
62
+ docker-api (1.28.0)
63
63
  excon (>= 0.38.0)
64
64
  json
65
65
  erubis (2.7.0)
@@ -72,14 +72,15 @@ GEM
72
72
  ffi (>= 1.0.1)
73
73
  gyoku (1.3.1)
74
74
  builder (>= 2.1.2)
75
- hashie (3.4.3)
76
- hitimes (1.2.3)
77
- httpclient (2.7.1)
78
- inspec (0.19.1)
75
+ hashie (3.4.4)
76
+ hitimes (1.2.4)
77
+ httpclient (2.7.2)
78
+ inspec (0.22.1)
79
+ hashie (~> 3.4)
79
80
  json (~> 1.8)
80
81
  method_source (~> 0.8)
81
82
  pry (~> 0)
82
- r-train (~> 0.10.5)
83
+ r-train (~> 0.12)
83
84
  rainbow (~> 2)
84
85
  rspec (~> 3)
85
86
  rspec-its (~> 1.2)
@@ -95,8 +96,8 @@ GEM
95
96
  multi_json
96
97
  retryable (~> 2.0)
97
98
  test-kitchen (~> 1.4, >= 1.4.1)
98
- kitchen-inspec (0.12.5)
99
- inspec (>= 0.14.1, < 1.0.0)
99
+ kitchen-inspec (0.14.0)
100
+ inspec (>= 0.22.0, < 1.0.0)
100
101
  test-kitchen (~> 1.6)
101
102
  kitchen-vagrant (0.20.0)
102
103
  test-kitchen (~> 1.4)
@@ -112,15 +113,15 @@ GEM
112
113
  rspec-expectations (~> 3.2)
113
114
  rspec-mocks (~> 3.2)
114
115
  mixlib-config (2.2.1)
115
- mixlib-install (1.0.7)
116
+ mixlib-install (1.0.12)
116
117
  artifactory
117
118
  mixlib-shellout
118
119
  mixlib-versioning
119
120
  mixlib-log (1.6.0)
120
121
  mixlib-shellout (2.2.6)
121
122
  mixlib-versioning (1.1.0)
122
- molinillo (0.4.4)
123
- multi_json (1.11.2)
123
+ molinillo (0.4.5)
124
+ multi_json (1.12.1)
124
125
  multipart-post (2.0.0)
125
126
  net-scp (1.2.1)
126
127
  net-ssh (>= 2.6.5)
@@ -133,17 +134,17 @@ GEM
133
134
  coderay (~> 1.1.0)
134
135
  method_source (~> 0.8.1)
135
136
  slop (~> 3.4)
136
- r-train (0.10.5)
137
- docker-api (~> 1.26.2)
137
+ r-train (0.12.1)
138
+ docker-api (~> 1.26)
138
139
  json (~> 1.8)
139
- mixlib-shellout (~> 2.1)
140
+ mixlib-shellout (~> 2.0)
140
141
  net-scp (~> 1.2)
141
142
  net-ssh (>= 2.9, < 4.0)
142
143
  winrm (~> 1.6)
143
144
  winrm-fs (~> 0.3)
144
145
  rainbow (2.1.0)
145
146
  retryable (2.0.3)
146
- ridley (4.5.0)
147
+ ridley (4.5.1)
147
148
  addressable
148
149
  buff-config (~> 1.0)
149
150
  buff-extensions (~> 1.0)
@@ -188,7 +189,7 @@ GEM
188
189
  solve (2.0.3)
189
190
  molinillo (~> 0.4.2)
190
191
  semverse (~> 1.1)
191
- test-kitchen (1.7.3)
192
+ test-kitchen (1.9.0)
192
193
  mixlib-install (~> 1.0, >= 1.0.4)
193
194
  mixlib-shellout (>= 1.2, < 3.0)
194
195
  net-scp (~> 1.1)
@@ -203,7 +204,7 @@ GEM
203
204
  hashie (>= 2.0.2, < 4.0.0)
204
205
  windows_chef_zero (2.0.0)
205
206
  test-kitchen (>= 1.2.1)
206
- winrm (1.7.3)
207
+ winrm (1.8.1)
207
208
  builder (>= 2.1.2)
208
209
  gssapi (~> 1.2)
209
210
  gyoku (~> 1.0)
@@ -232,4 +233,4 @@ DEPENDENCIES
232
233
  winrm-fs
233
234
 
234
235
  BUNDLED WITH
235
- 1.11.2
236
+ 1.12.5
@@ -0,0 +1,2 @@
1
+ I, [2016-05-17T16:57:08.264892 #99884] INFO -- chef-current-install-ubuntu-1404: -----> Destroying <chef-current-install-ubuntu-1404>...
2
+ I, [2016-05-17T16:57:08.268893 #99884] INFO -- chef-current-install-ubuntu-1404: Finished destroying <chef-current-install-ubuntu-1404> (0m0.00s).
@@ -0,0 +1,3 @@
1
+ I, [2016-05-17T16:57:07.751600 #99884] INFO -- Kitchen: -----> Starting Kitchen (v1.8.0)
2
+ I, [2016-05-17T16:57:08.264892 #99884] INFO -- Kitchen: -----> Destroying <chef-current-install-ubuntu-1404>...
3
+ I, [2016-05-17T16:57:08.269892 #99884] INFO -- Kitchen: -----> Kitchen is finished. (0m0.52s)
@@ -0,0 +1,3 @@
1
+ name 'acceptance-cookbook'
2
+ depends "kitchen_acceptance"
3
+ depends "data-collector-test"
@@ -0,0 +1,2 @@
1
+ log "Running 'destroy' recipe from the acceptance-cookbook in directory '#{node['chef-acceptance']['suite-dir']}'"
2
+ kitchen "destroy"
@@ -0,0 +1,2 @@
1
+ log "Running 'provision' recipe from the acceptance-cookbook in directory '#{node['chef-acceptance']['suite-dir']}'"
2
+ kitchen "converge"
@@ -0,0 +1,2 @@
1
+ log "Running 'verify' recipe from the acceptance-cookbook in directory '#{node['chef-acceptance']['suite-dir']}'"
2
+ kitchen "verify"
@@ -0,0 +1,16 @@
1
+ .vagrant
2
+ Berksfile.lock
3
+ *~
4
+ *#
5
+ .#*
6
+ \#*#
7
+ .*.sw[a-z]
8
+ *.un~
9
+
10
+ # Bundler
11
+ Gemfile.lock
12
+ bin/*
13
+ .bundle/*
14
+
15
+ .kitchen/
16
+ .kitchen.local.yml
@@ -0,0 +1,3 @@
1
+ source 'https://supermarket.chef.io'
2
+
3
+ metadata
@@ -0,0 +1,85 @@
1
+ require "json"
2
+ require "sinatra"
3
+
4
+ class Chef
5
+ class Node
6
+ # dummy class for JSON parsing
7
+ end
8
+ end
9
+
10
+ module ApiHelpers
11
+ def self.payload_type(payload)
12
+ message_type = payload["message_type"]
13
+ status = payload["status"]
14
+
15
+ message_type == "run_converge" ? "#{message_type}.#{status}" : message_type
16
+ end
17
+ end
18
+
19
+ class Counter
20
+ def self.reset
21
+ @@counters = Hash.new { |h, k| h[k] = 0 }
22
+ end
23
+
24
+ def self.increment(payload)
25
+ counter_name = ApiHelpers.payload_type(payload)
26
+ @@counters[counter_name] += 1
27
+ end
28
+
29
+ def self.to_json
30
+ @@counters.to_json
31
+ end
32
+ end
33
+
34
+ class MessageCache
35
+ include ApiHelpers
36
+
37
+ def self.reset
38
+ @@message_cache = {}
39
+ end
40
+
41
+ def self.store(payload)
42
+ cache_key = ApiHelpers.payload_type(payload)
43
+
44
+ @@message_cache[cache_key] = payload
45
+ end
46
+
47
+ def self.fetch(cache_key)
48
+ @@message_cache[cache_key].to_json
49
+ end
50
+ end
51
+
52
+ Counter.reset
53
+
54
+ get "/" do
55
+ "Data Collector API server"
56
+ end
57
+
58
+ get "/reset-counters" do
59
+ Counter.reset
60
+ "counters reset"
61
+ end
62
+
63
+ get "/counters" do
64
+ Counter.to_json
65
+ end
66
+
67
+ get "/cache/:key" do |cache_key|
68
+ MessageCache.fetch(cache_key)
69
+ end
70
+
71
+ get "/reset-cache" do
72
+ MessageCache.reset
73
+ "cache reset"
74
+ end
75
+
76
+ post "/data-collector/v0" do
77
+ body = request.body.read
78
+ payload = JSON.load(body)
79
+
80
+ Counter.increment(payload)
81
+ MessageCache.store(payload)
82
+
83
+ status 201
84
+ "message received"
85
+ end
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "sinatra"
@@ -0,0 +1,4 @@
1
+ chef_server_url "http://localhost:8889"
2
+ node_name "data-collector-test"
3
+ data_collector.server_url "http://localhost:9292/data-collector/v0"
4
+ data_collector.mode :both
@@ -0,0 +1,4 @@
1
+ chef_server_url "http://localhost:8889"
2
+ node_name "data-collector-test"
3
+ data_collector.server_url "http://localhost:9292/data-collector/v0"
4
+ data_collector.mode :client
@@ -0,0 +1,2 @@
1
+ chef_server_url "http://localhost:8889"
2
+ node_name "data-collector-test"
@@ -0,0 +1,4 @@
1
+ chef_server_url "http://localhost:8889"
2
+ node_name "data-collector-test"
3
+ data_collector.server_url "http://localhost:9292/data-collector/v0"
4
+ data_collector.mode :solo
@@ -0,0 +1,2 @@
1
+ require_relative "./api"
2
+ run Sinatra::Application
@@ -0,0 +1,7 @@
1
+ name 'data-collector-test'
2
+ maintainer 'Adam Leff'
3
+ maintainer_email 'adamleff@chef.io'
4
+ license 'Apache 2.0'
5
+ description 'Installs/Configures data-collector-test'
6
+ long_description 'Installs/Configures data-collector-test'
7
+ version '0.1.0'
@@ -0,0 +1,38 @@
1
+ api_root_dir = "/var/opt/data_collector_api"
2
+
3
+ directory api_root_dir do
4
+ recursive true
5
+ end
6
+
7
+ cookbook_file ::File.join(api_root_dir, "Gemfile") do
8
+ source "apigemfile"
9
+ end
10
+
11
+ cookbook_file ::File.join(api_root_dir, "config.ru")
12
+
13
+ cookbook_file ::File.join(api_root_dir, "api.rb")
14
+
15
+ execute "bundle install --binstubs" do
16
+ cwd api_root_dir
17
+ end
18
+
19
+ pid_file = "/var/run/api.pid"
20
+ running_pid = ::File.exist?(pid_file) ? ::File.read(pid_file).strip : nil
21
+
22
+ execute "kill existing API process" do
23
+ command "kill #{running_pid}"
24
+ not_if { running_pid.nil? }
25
+ end
26
+
27
+ execute "start API" do
28
+ command "bin/rackup -D -P #{pid_file}"
29
+ cwd api_root_dir
30
+ end
31
+
32
+ directory "/etc/chef"
33
+
34
+ ["both-mode", "client-mode", "no-endpoint", "solo-mode"].each do |config_file|
35
+ cookbook_file "/etc/chef/#{config_file}.rb" do
36
+ source "client-rb-#{config_file}.rb"
37
+ end
38
+ end
@@ -0,0 +1,9 @@
1
+ verifier:
2
+ name: busser
3
+
4
+ suites:
5
+ - name: default
6
+ includes:
7
+ - ubuntu-14.04
8
+ run_list:
9
+ - recipe[data-collector-test::default]
@@ -0,0 +1,3 @@
1
+ source "https://supermarket.chef.io"
2
+
3
+ cookbook "data-collector-test", path: File.join(File.expand_path(File.dirname(__FILE__)), ".acceptance", "data-collector-test")
@@ -0,0 +1,6 @@
1
+ DEPENDENCIES
2
+ data-collector-test
3
+ path: .acceptance/data-collector-test
4
+
5
+ GRAPH
6
+ data-collector-test (0.1.0)
@@ -0,0 +1,251 @@
1
+ #
2
+ # Author:: Adam Leff (<adamleff@chef.io)
3
+ #
4
+ # Copyright:: Copyright 2012-2016, Chef Software Inc.
5
+ # License:: Apache License, Version 2.0
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ require "json"
21
+ require "serverspec"
22
+
23
+ set :backend, :exec
24
+
25
+ class Chef
26
+ class Node
27
+ # dummy class for parsing JSON action messages
28
+ end
29
+ end
30
+
31
+ shared_examples_for "reset counters" do
32
+ it "resets the counters" do
33
+ expect(command("curl http://localhost:9292/reset-counters").exit_status).to eq(0)
34
+ end
35
+ end
36
+
37
+ shared_examples_for "reset cache" do
38
+ it "resets the message cache" do
39
+ expect(command("curl http://localhost:9292/reset-cache").exit_status).to eq(0)
40
+ end
41
+ end
42
+
43
+ shared_examples_for "successful chef run" do |cmd|
44
+ include_examples "reset counters"
45
+ include_examples "reset cache"
46
+
47
+ it "runs chef and expects a zero exit status" do
48
+ expect(command(cmd).exit_status).to eq(0)
49
+ end
50
+ end
51
+
52
+ shared_examples_for "unsuccessful chef run" do |cmd|
53
+ include_examples "reset counters"
54
+ include_examples "reset cache"
55
+
56
+ it "runs chef and expects a non-zero exit status" do
57
+ expect(command(cmd).exit_status).not_to eq(0)
58
+ end
59
+ end
60
+
61
+ shared_examples_for "counter checks" do |counters_to_check|
62
+ counters_to_check.each do |counter, value|
63
+ it "counter #{counter} should equal #{value}" do
64
+ counter_values = JSON.load(command("curl http://localhost:9292/counters").stdout)
65
+ expect(counter_values[counter]).to eq(value)
66
+ end
67
+ end
68
+ end
69
+
70
+ shared_examples_for "run_start payload check" do
71
+ describe "run_start message" do
72
+ let(:required_fields) do
73
+ %w{
74
+ chef_server_fqdn
75
+ entity_uuid
76
+ id
77
+ message_version
78
+ message_type
79
+ node_name
80
+ organization_name
81
+ run_id
82
+ source
83
+ start_time
84
+ }
85
+ end
86
+ let(:optional_fields) { [] }
87
+
88
+ it "is not missing any required fields" do
89
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_start").stdout)
90
+ missing_fields = required_fields.select { |key| !payload.key?(key) }
91
+ expect(missing_fields).to eq([])
92
+ end
93
+
94
+ it "does not have any extra fields" do
95
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_start").stdout)
96
+ extra_fields = payload.keys.select { |key| !required_fields.include?(key) && !optional_fields.include?(key) }
97
+ expect(extra_fields).to eq([])
98
+ end
99
+ end
100
+ end
101
+
102
+ shared_examples_for "run_converge.success payload check" do
103
+ describe "run_converge success message" do
104
+ let(:required_fields) do
105
+ %w{
106
+ chef_server_fqdn
107
+ entity_uuid
108
+ id
109
+ end_time
110
+ expanded_run_list
111
+ message_type
112
+ message_version
113
+ node_name
114
+ organization_name
115
+ resources
116
+ run_id
117
+ run_list
118
+ source
119
+ start_time
120
+ status
121
+ total_resource_count
122
+ updated_resource_count
123
+ }
124
+ end
125
+ let(:optional_fields) { [] }
126
+
127
+ it "is not missing any required fields" do
128
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_converge.success").stdout)
129
+ missing_fields = required_fields.select { |key| !payload.key?(key) }
130
+ expect(missing_fields).to eq([])
131
+ end
132
+
133
+ it "does not have any extra fields" do
134
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_converge.success").stdout)
135
+ extra_fields = payload.keys.select { |key| !required_fields.include?(key) && !optional_fields.include?(key) }
136
+ expect(extra_fields).to eq([])
137
+ end
138
+ end
139
+ end
140
+
141
+ shared_examples_for "run_converge.failure payload check" do
142
+ describe "run_converge failure message" do
143
+ let(:required_fields) do
144
+ %w{
145
+ chef_server_fqdn
146
+ entity_uuid
147
+ error
148
+ id
149
+ end_time
150
+ expanded_run_list
151
+ message_type
152
+ message_version
153
+ node_name
154
+ organization_name
155
+ resources
156
+ run_id
157
+ run_list
158
+ source
159
+ start_time
160
+ status
161
+ total_resource_count
162
+ updated_resource_count
163
+ }
164
+ end
165
+ let(:optional_fields) { [] }
166
+
167
+ it "is not missing any required fields" do
168
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_converge.failure").stdout)
169
+ missing_fields = required_fields.select { |key| !payload.key?(key) }
170
+ expect(missing_fields).to eq([])
171
+ end
172
+
173
+ it "does not have any extra fields" do
174
+ payload = JSON.load(command("curl http://localhost:9292/cache/run_converge.failure").stdout)
175
+ extra_fields = payload.keys.select { |key| !required_fields.include?(key) && !optional_fields.include?(key) }
176
+ expect(extra_fields).to eq([])
177
+ end
178
+ end
179
+ end
180
+
181
+ shared_examples_for "node-update payload check" do
182
+ describe "node update message" do
183
+ let(:required_fields) do
184
+ %w{
185
+ entity_name
186
+ entity_type
187
+ entity_uuid
188
+ id
189
+ message_type
190
+ message_version
191
+ organization_name
192
+ recorded_at
193
+ remote_hostname
194
+ requestor_name
195
+ requestor_type
196
+ run_id
197
+ service_hostname
198
+ source
199
+ task
200
+ user_agent
201
+ }
202
+ end
203
+ let(:optional_fields) { %{data} }
204
+
205
+ it "is not missing any required fields" do
206
+ payload = JSON.load(command("curl http://localhost:9292/cache/action").stdout)
207
+ missing_fields = required_fields.select { |key| !payload.key?(key) }
208
+ expect(missing_fields).to eq([])
209
+ end
210
+
211
+ it "does not have any extra fields" do
212
+ payload = JSON.load(command("curl http://localhost:9292/cache/action").stdout)
213
+ extra_fields = payload.keys.select { |key| !required_fields.include?(key) && !optional_fields.include?(key) }
214
+ expect(extra_fields).to eq([])
215
+ end
216
+ end
217
+ end
218
+
219
+ describe "CCR with no data collector URL configured" do
220
+ include_examples "successful chef run", "chef-client -z -c /etc/chef/no-endpoint.rb"
221
+ include_examples "counter checks", { "run_start" => nil, "run_converge.success" => nil, "run_converge.failure" => nil }
222
+ end
223
+
224
+ describe "CCR, local mode, config in solo mode" do
225
+ include_examples "successful chef run", "chef-client -z -c /etc/chef/solo-mode.rb"
226
+ include_examples "counter checks", { "run_start" => 1, "run_converge.success" => 1, "run_converge.failure" => nil }
227
+ include_examples "run_start payload check"
228
+ include_examples "run_converge.success payload check"
229
+ include_examples "node-update payload check"
230
+ end
231
+
232
+ describe "CCR, local mode, config in client mode" do
233
+ include_examples "successful chef run", "chef-client -z -c /etc/chef/client-mode.rb"
234
+ include_examples "counter checks", { "run_start" => nil, "run_converge.success" => nil, "run_converge.failure" => nil }
235
+ end
236
+
237
+ describe "CCR, local mode, config in both mode" do
238
+ include_examples "successful chef run", "chef-client -z -c /etc/chef/both-mode.rb"
239
+ include_examples "counter checks", { "run_start" => 1, "run_converge.success" => 1, "run_converge.failure" => nil }
240
+ include_examples "run_start payload check"
241
+ include_examples "run_converge.success payload check"
242
+ include_examples "node-update payload check"
243
+ end
244
+
245
+ describe "CCR, local mode, config in solo mode, failed run" do
246
+ include_examples "unsuccessful chef run", "chef-client -z -c /etc/chef/solo-mode.rb -r 'recipe[cookbook-that-does-not-exist::default]'"
247
+ include_examples "counter checks", { "run_start" => 1, "run_converge.success" => nil, "run_converge.failure" => 1 }
248
+ include_examples "run_start payload check"
249
+ include_examples "run_converge.failure payload check"
250
+ include_examples "node-update payload check"
251
+ end