chef 12.18.31 → 13.0.118

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 (611) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -11
  3. data/README.md +13 -13
  4. data/Rakefile +1 -19
  5. data/VERSION +1 -1
  6. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
  7. data/acceptance/Gemfile +8 -5
  8. data/acceptance/Gemfile.lock +90 -81
  9. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
  10. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
  11. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
  12. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
  13. data/chef-universal-mingw32.gemspec +2 -3
  14. data/chef.gemspec +8 -7
  15. data/lib/chef/api_client.rb +8 -15
  16. data/lib/chef/api_client_v1.rb +9 -11
  17. data/lib/chef/application/apply.rb +8 -10
  18. data/lib/chef/application/client.rb +1 -1
  19. data/lib/chef/application/exit_code.rb +11 -82
  20. data/lib/chef/application/knife.rb +2 -2
  21. data/lib/chef/application/solo.rb +0 -1
  22. data/lib/chef/application/windows_service.rb +36 -37
  23. data/lib/chef/application/windows_service_manager.rb +1 -1
  24. data/lib/chef/application.rb +15 -25
  25. data/lib/chef/audit/audit_event_proxy.rb +2 -2
  26. data/lib/chef/audit/control_group_data.rb +1 -1
  27. data/lib/chef/blacklist.rb +81 -0
  28. data/lib/chef/chef_class.rb +1 -0
  29. data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
  30. data/lib/chef/chef_fs/command_line.rb +15 -16
  31. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
  32. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
  33. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  34. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  35. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  36. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
  37. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
  38. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
  39. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  40. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
  41. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  42. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  43. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
  44. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
  45. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
  46. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
  47. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
  48. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
  49. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
  50. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
  51. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
  52. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
  53. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
  54. data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
  55. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
  56. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
  57. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
  58. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
  59. data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
  60. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
  61. data/lib/chef/chef_fs/file_system.rb +1 -1
  62. data/lib/chef/chef_fs/parallelizer.rb +9 -11
  63. data/lib/chef/client.rb +47 -11
  64. data/lib/chef/config_fetcher.rb +4 -4
  65. data/lib/chef/constants.rb +1 -1
  66. data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
  67. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  68. data/lib/chef/cookbook/gem_installer.rb +10 -6
  69. data/lib/chef/cookbook/manifest_v0.rb +68 -0
  70. data/lib/chef/cookbook/manifest_v2.rb +41 -0
  71. data/lib/chef/cookbook/metadata.rb +25 -134
  72. data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
  73. data/lib/chef/cookbook/synchronizer.rb +24 -21
  74. data/lib/chef/cookbook/syntax_check.rb +1 -1
  75. data/lib/chef/cookbook_manifest.rb +91 -65
  76. data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
  77. data/lib/chef/cookbook_uploader.rb +1 -1
  78. data/lib/chef/cookbook_version.rb +69 -157
  79. data/lib/chef/data_bag.rb +1 -7
  80. data/lib/chef/data_bag_item.rb +5 -10
  81. data/lib/chef/data_collector/messages.rb +2 -0
  82. data/lib/chef/data_collector/resource_report.rb +32 -4
  83. data/lib/chef/data_collector.rb +3 -4
  84. data/lib/chef/decorator/unchain.rb +0 -16
  85. data/lib/chef/decorator.rb +1 -1
  86. data/lib/chef/deprecated.rb +53 -19
  87. data/lib/chef/dsl/audit.rb +2 -2
  88. data/lib/chef/dsl/declare_resource.rb +11 -17
  89. data/lib/chef/dsl/platform_introspection.rb +29 -31
  90. data/lib/chef/dsl/reboot_pending.rb +1 -1
  91. data/lib/chef/dsl/recipe.rb +1 -4
  92. data/lib/chef/dsl/resources.rb +4 -13
  93. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  94. data/lib/chef/environment.rb +9 -16
  95. data/lib/chef/event_dispatch/base.rb +16 -0
  96. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  97. data/lib/chef/exceptions.rb +6 -10
  98. data/lib/chef/file_access_control/unix.rb +14 -14
  99. data/lib/chef/file_access_control/windows.rb +1 -1
  100. data/lib/chef/formatters/error_description.rb +18 -1
  101. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
  102. data/lib/chef/formatters/error_mapper.rb +6 -6
  103. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
  104. data/lib/chef/http/api_versions.rb +54 -0
  105. data/lib/chef/http/authenticator.rb +15 -6
  106. data/lib/chef/http/json_output.rb +4 -1
  107. data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
  108. data/lib/chef/http/validate_content_length.rb +2 -2
  109. data/lib/chef/http.rb +39 -0
  110. data/lib/chef/json_compat.rb +7 -103
  111. data/lib/chef/key.rb +5 -10
  112. data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
  113. data/lib/chef/knife/bootstrap.rb +6 -0
  114. data/lib/chef/knife/configure.rb +1 -3
  115. data/lib/chef/knife/configure_client.rb +1 -3
  116. data/lib/chef/knife/cookbook_create.rb +1 -434
  117. data/lib/chef/knife/cookbook_download.rb +3 -4
  118. data/lib/chef/knife/cookbook_show.rb +7 -3
  119. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  120. data/lib/chef/knife/core/bootstrap_context.rb +8 -7
  121. data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
  122. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  123. data/lib/chef/knife/core/status_presenter.rb +1 -1
  124. data/lib/chef/knife/core/subcommand_loader.rb +2 -32
  125. data/lib/chef/knife/core/ui.rb +20 -27
  126. data/lib/chef/knife/data_bag_create.rb +6 -4
  127. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  128. data/lib/chef/knife/deps.rb +32 -34
  129. data/lib/chef/knife/edit.rb +1 -1
  130. data/lib/chef/knife/help.rb +1 -1
  131. data/lib/chef/knife/list.rb +1 -1
  132. data/lib/chef/knife/search.rb +9 -20
  133. data/lib/chef/knife/ssh.rb +62 -36
  134. data/lib/chef/knife/ssl_check.rb +1 -1
  135. data/lib/chef/knife/user_delete.rb +1 -1
  136. data/lib/chef/knife/xargs.rb +1 -1
  137. data/lib/chef/knife.rb +6 -7
  138. data/lib/chef/mash.rb +1 -1
  139. data/lib/chef/mixin/create_path.rb +3 -5
  140. data/lib/chef/mixin/from_file.rb +2 -2
  141. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  142. data/lib/chef/mixin/notifying_block.rb +7 -9
  143. data/lib/chef/mixin/params_validate.rb +9 -8
  144. data/lib/chef/mixin/path_sanity.rb +17 -19
  145. data/lib/chef/mixin/securable.rb +1 -1
  146. data/lib/chef/mixin/shell_out.rb +33 -29
  147. data/lib/chef/mixin/unformatter.rb +2 -2
  148. data/lib/chef/mixin/uris.rb +4 -6
  149. data/lib/chef/mixin/versioned_api.rb +84 -0
  150. data/lib/chef/mixin/which.rb +25 -8
  151. data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
  152. data/lib/chef/mixin/xml_escape.rb +3 -5
  153. data/lib/chef/mixins.rb +0 -1
  154. data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
  155. data/lib/chef/node/attribute.rb +9 -32
  156. data/lib/chef/node/attribute_collections.rb +1 -19
  157. data/lib/chef/node/common_api.rb +5 -7
  158. data/lib/chef/node/immutable_collections.rb +42 -38
  159. data/lib/chef/node/mixin/immutablize_array.rb +1 -1
  160. data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
  161. data/lib/chef/node.rb +21 -20
  162. data/lib/chef/node_map.rb +2 -5
  163. data/lib/chef/org.rb +10 -17
  164. data/lib/chef/platform/provider_mapping.rb +2 -169
  165. data/lib/chef/platform/query_helpers.rb +1 -1
  166. data/lib/chef/platform/rebooter.rb +1 -2
  167. data/lib/chef/policy_builder/expand_node_object.rb +3 -29
  168. data/lib/chef/policy_builder/policyfile.rb +8 -6
  169. data/lib/chef/property.rb +66 -80
  170. data/lib/chef/provider/apt_repository.rb +6 -10
  171. data/lib/chef/provider/apt_update.rb +1 -7
  172. data/lib/chef/provider/batch.rb +1 -1
  173. data/lib/chef/provider/breakpoint.rb +2 -2
  174. data/lib/chef/provider/cookbook_file.rb +3 -9
  175. data/lib/chef/provider/cron.rb +42 -60
  176. data/lib/chef/provider/deploy/revision.rb +3 -5
  177. data/lib/chef/provider/deploy.rb +82 -88
  178. data/lib/chef/provider/directory.rb +33 -37
  179. data/lib/chef/provider/dsc_resource.rb +23 -11
  180. data/lib/chef/provider/dsc_script.rb +1 -5
  181. data/lib/chef/provider/env/windows.rb +5 -1
  182. data/lib/chef/provider/env.rb +32 -30
  183. data/lib/chef/provider/erl_call.rb +15 -47
  184. data/lib/chef/provider/execute.rb +7 -8
  185. data/lib/chef/provider/file.rb +49 -61
  186. data/lib/chef/provider/git.rb +56 -60
  187. data/lib/chef/provider/group.rb +1 -7
  188. data/lib/chef/provider/http_request.rb +37 -41
  189. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  190. data/lib/chef/provider/ifconfig.rb +0 -6
  191. data/lib/chef/provider/launchd.rb +6 -2
  192. data/lib/chef/provider/link.rb +51 -55
  193. data/lib/chef/provider/log.rb +3 -7
  194. data/lib/chef/provider/lwrp_base.rb +0 -9
  195. data/lib/chef/provider/mdadm.rb +25 -33
  196. data/lib/chef/provider/mount/aix.rb +2 -2
  197. data/lib/chef/provider/mount/mount.rb +2 -2
  198. data/lib/chef/provider/mount.rb +1 -5
  199. data/lib/chef/provider/noop.rb +1 -1
  200. data/lib/chef/provider/ohai.rb +1 -7
  201. data/lib/chef/provider/osx_profile.rb +24 -29
  202. data/lib/chef/provider/package/aix.rb +55 -53
  203. data/lib/chef/provider/package/apt.rb +15 -13
  204. data/lib/chef/provider/package/cab.rb +48 -20
  205. data/lib/chef/provider/package/chocolatey.rb +9 -10
  206. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  207. data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
  208. data/lib/chef/provider/package/dnf/version.rb +1 -1
  209. data/lib/chef/provider/package/dnf.rb +21 -19
  210. data/lib/chef/provider/package/dpkg.rb +8 -9
  211. data/lib/chef/provider/package/freebsd/base.rb +10 -10
  212. data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
  213. data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
  214. data/lib/chef/provider/package/freebsd/port.rb +7 -7
  215. data/lib/chef/provider/package/homebrew.rb +11 -10
  216. data/lib/chef/provider/package/ips.rb +18 -24
  217. data/lib/chef/provider/package/macports.rb +23 -23
  218. data/lib/chef/provider/package/msu.rb +11 -12
  219. data/lib/chef/provider/package/openbsd.rb +25 -22
  220. data/lib/chef/provider/package/pacman.rb +16 -17
  221. data/lib/chef/provider/package/paludis.rb +26 -27
  222. data/lib/chef/provider/package/portage.rb +22 -23
  223. data/lib/chef/provider/package/powershell.rb +17 -17
  224. data/lib/chef/provider/package/rpm.rb +25 -26
  225. data/lib/chef/provider/package/rubygems.rb +64 -62
  226. data/lib/chef/provider/package/smartos.rb +16 -16
  227. data/lib/chef/provider/package/solaris.rb +44 -45
  228. data/lib/chef/provider/package/windows/exe.rb +6 -6
  229. data/lib/chef/provider/package/windows/msi.rb +7 -7
  230. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
  231. data/lib/chef/provider/package/windows.rb +3 -3
  232. data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
  233. data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
  234. data/lib/chef/provider/package/yum.rb +319 -269
  235. data/lib/chef/provider/package/zypper.rb +10 -20
  236. data/lib/chef/provider/package.rb +71 -63
  237. data/lib/chef/provider/powershell_script.rb +15 -7
  238. data/lib/chef/provider/reboot.rb +10 -14
  239. data/lib/chef/provider/registry_key.rb +39 -43
  240. data/lib/chef/provider/remote_directory.rb +3 -15
  241. data/lib/chef/provider/remote_file.rb +3 -9
  242. data/lib/chef/provider/route.rb +1 -7
  243. data/lib/chef/provider/ruby_block.rb +4 -8
  244. data/lib/chef/provider/script.rb +42 -6
  245. data/lib/chef/provider/service/aix.rb +1 -5
  246. data/lib/chef/provider/service/debian.rb +15 -21
  247. data/lib/chef/provider/service/freebsd.rb +0 -1
  248. data/lib/chef/provider/service/gentoo.rb +0 -1
  249. data/lib/chef/provider/service/init.rb +0 -1
  250. data/lib/chef/provider/service/insserv.rb +2 -2
  251. data/lib/chef/provider/service/openbsd.rb +0 -1
  252. data/lib/chef/provider/service/redhat.rb +2 -2
  253. data/lib/chef/provider/service/simple.rb +0 -5
  254. data/lib/chef/provider/service/solaris.rb +5 -4
  255. data/lib/chef/provider/service/systemd.rb +1 -1
  256. data/lib/chef/provider/service/upstart.rb +10 -12
  257. data/lib/chef/provider/service/windows.rb +1 -5
  258. data/lib/chef/provider/service.rb +51 -58
  259. data/lib/chef/provider/subversion.rb +40 -46
  260. data/lib/chef/provider/systemd_unit.rb +2 -0
  261. data/lib/chef/provider/template/content.rb +24 -1
  262. data/lib/chef/provider/template.rb +3 -9
  263. data/lib/chef/provider/user/dscl.rb +3 -3
  264. data/lib/chef/provider/user/linux.rb +6 -5
  265. data/lib/chef/provider/user/pw.rb +4 -10
  266. data/lib/chef/provider/user/solaris.rb +2 -2
  267. data/lib/chef/provider/user/useradd.rb +5 -5
  268. data/lib/chef/provider/user.rb +43 -59
  269. data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
  270. data/lib/chef/provider/windows_task.rb +418 -0
  271. data/lib/chef/provider/yum_repository.rb +3 -6
  272. data/lib/chef/provider.rb +63 -115
  273. data/lib/chef/provider_resolver.rb +8 -34
  274. data/lib/chef/providers.rb +1 -1
  275. data/lib/chef/recipe.rb +9 -1
  276. data/lib/chef/resource/action_class.rb +13 -17
  277. data/lib/chef/resource/apt_repository.rb +0 -1
  278. data/lib/chef/resource/apt_update.rb +3 -1
  279. data/lib/chef/resource/chef_gem.rb +4 -11
  280. data/lib/chef/resource/chocolatey_package.rb +4 -1
  281. data/lib/chef/resource/dnf_package.rb +6 -3
  282. data/lib/chef/resource/dsc_resource.rb +9 -1
  283. data/lib/chef/resource/execute.rb +66 -19
  284. data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
  285. data/lib/chef/resource/file/verification.rb +2 -7
  286. data/lib/chef/resource/freebsd_package.rb +1 -1
  287. data/lib/chef/resource/gem_package.rb +16 -2
  288. data/lib/chef/resource/launchd.rb +3 -3
  289. data/lib/chef/resource/lwrp_base.rb +0 -2
  290. data/lib/chef/resource/mount.rb +5 -12
  291. data/lib/chef/resource/package.rb +2 -2
  292. data/lib/chef/resource/powershell_script.rb +1 -1
  293. data/lib/chef/resource/registry_key.rb +1 -1
  294. data/lib/chef/resource/script.rb +8 -34
  295. data/lib/chef/resource/service.rb +15 -13
  296. data/lib/chef/resource/systemd_unit.rb +5 -0
  297. data/lib/chef/resource/user/aix_user.rb +1 -1
  298. data/lib/chef/resource/user/dscl_user.rb +1 -1
  299. data/lib/chef/resource/user/linux_user.rb +1 -10
  300. data/lib/chef/resource/user/pw_user.rb +1 -1
  301. data/lib/chef/resource/user/solaris_user.rb +1 -1
  302. data/lib/chef/resource/user/windows_user.rb +1 -1
  303. data/lib/chef/resource/user.rb +1 -19
  304. data/lib/chef/resource/windows_package.rb +4 -1
  305. data/lib/chef/resource/windows_task.rb +237 -0
  306. data/lib/chef/resource/yum_package.rb +13 -4
  307. data/lib/chef/resource/yum_repository.rb +0 -1
  308. data/lib/chef/resource/zypper_package.rb +2 -0
  309. data/lib/chef/resource.rb +90 -202
  310. data/lib/chef/resource_builder.rb +1 -65
  311. data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
  312. data/lib/chef/resource_collection/resource_list.rb +6 -0
  313. data/lib/chef/resource_collection/resource_set.rb +44 -17
  314. data/lib/chef/resource_collection.rb +10 -0
  315. data/lib/chef/resource_reporter.rb +1 -1
  316. data/lib/chef/resource_resolver.rb +1 -25
  317. data/lib/chef/resources.rb +1 -1
  318. data/lib/chef/role.rb +0 -6
  319. data/lib/chef/run_context/cookbook_compiler.rb +49 -5
  320. data/lib/chef/run_context.rb +4 -25
  321. data/lib/chef/run_list/run_list_item.rb +1 -1
  322. data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
  323. data/lib/chef/search/query.rb +26 -31
  324. data/lib/chef/server_api.rb +2 -0
  325. data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
  326. data/lib/chef/shell/ext.rb +3 -3
  327. data/lib/chef/shell/shell_session.rb +14 -4
  328. data/lib/chef/shell.rb +32 -7
  329. data/lib/chef/user.rb +9 -16
  330. data/lib/chef/user_v1.rb +9 -16
  331. data/lib/chef/util/diff.rb +1 -1
  332. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  333. data/lib/chef/util/selinux.rb +1 -1
  334. data/lib/chef/util/windows/net_group.rb +18 -30
  335. data/lib/chef/util/windows/net_use.rb +7 -11
  336. data/lib/chef/util/windows/net_user.rb +12 -18
  337. data/lib/chef/util/windows/volume.rb +9 -15
  338. data/lib/chef/version.rb +1 -1
  339. data/lib/chef/version_class.rb +1 -1
  340. data/lib/chef/win32/api/file.rb +25 -31
  341. data/lib/chef/win32/api/installer.rb +2 -2
  342. data/lib/chef/win32/api.rb +4 -6
  343. data/lib/chef/win32/file.rb +4 -6
  344. data/lib/chef/win32/registry.rb +9 -9
  345. data/lib/chef/win32/security/acl.rb +2 -2
  346. data/lib/chef/win32/security/sid.rb +5 -0
  347. data/lib/chef/win32/security.rb +2 -2
  348. data/lib/chef/win32/unicode.rb +2 -2
  349. data/lib/chef/win32/version.rb +1 -1
  350. data/lib/chef.rb +1 -2
  351. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
  352. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  353. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  354. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  355. data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
  356. data/spec/data/lwrp/resources/buck_passer.rb +5 -0
  357. data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
  358. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
  359. data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
  360. data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
  361. data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
  362. data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
  363. data/spec/data/prefer_metadata_json/metadata.json +51 -0
  364. data/spec/data/prefer_metadata_json/metadata.rb +6 -0
  365. data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
  366. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
  367. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
  368. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
  369. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
  370. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
  371. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
  372. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
  373. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
  374. data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
  375. data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
  376. data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
  377. data/spec/data/shef-config.rb +11 -10
  378. data/spec/functional/knife/ssh_spec.rb +34 -6
  379. data/spec/functional/rebooter_spec.rb +1 -0
  380. data/spec/functional/resource/bash_spec.rb +11 -45
  381. data/spec/functional/resource/batch_spec.rb +5 -1
  382. data/spec/functional/resource/cron_spec.rb +2 -2
  383. data/spec/functional/resource/dsc_script_spec.rb +2 -4
  384. data/spec/functional/resource/execute_spec.rb +17 -0
  385. data/spec/functional/resource/link_spec.rb +3 -3
  386. data/spec/functional/resource/template_spec.rb +33 -0
  387. data/spec/functional/resource/user/dscl_spec.rb +2 -4
  388. data/spec/functional/root_alias_spec.rb +78 -0
  389. data/spec/functional/shell_spec.rb +38 -40
  390. data/spec/integration/client/client_spec.rb +109 -16
  391. data/spec/integration/client/exit_code_spec.rb +1 -105
  392. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
  393. data/spec/integration/knife/cookbook_download_spec.rb +0 -24
  394. data/spec/integration/knife/cookbook_show_spec.rb +12 -23
  395. data/spec/integration/knife/deps_spec.rb +5 -9
  396. data/spec/integration/knife/search_node_spec.rb +39 -0
  397. data/spec/integration/knife/serve_spec.rb +58 -22
  398. data/spec/integration/knife/upload_spec.rb +3 -11
  399. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
  400. data/spec/integration/recipes/notifies_spec.rb +60 -0
  401. data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
  402. data/spec/integration/recipes/resource_action_spec.rb +37 -30
  403. data/spec/spec_helper.rb +7 -0
  404. data/spec/support/chef_helpers.rb +5 -7
  405. data/spec/support/platform_helpers.rb +10 -3
  406. data/spec/support/platforms/prof/gc.rb +4 -6
  407. data/spec/support/shared/context/client.rb +9 -2
  408. data/spec/support/shared/functional/execute_resource.rb +150 -0
  409. data/spec/support/shared/functional/windows_script.rb +74 -4
  410. data/spec/support/shared/integration/knife_support.rb +1 -1
  411. data/spec/support/shared/unit/execute_resource.rb +37 -9
  412. data/spec/support/shared/unit/provider/file.rb +10 -0
  413. data/spec/support/shared/unit/script_resource.rb +1 -9
  414. data/spec/unit/application/exit_code_spec.rb +4 -89
  415. data/spec/unit/application_spec.rb +39 -29
  416. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
  417. data/spec/unit/client_spec.rb +72 -31
  418. data/spec/unit/config_fetcher_spec.rb +2 -2
  419. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
  420. data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
  421. data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
  422. data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
  423. data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
  424. data/spec/unit/cookbook/metadata_spec.rb +29 -108
  425. data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
  426. data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
  427. data/spec/unit/cookbook_loader_spec.rb +17 -19
  428. data/spec/unit/cookbook_manifest_spec.rb +12 -44
  429. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
  430. data/spec/unit/cookbook_spec.rb +10 -14
  431. data/spec/unit/cookbook_uploader_spec.rb +1 -1
  432. data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
  433. data/spec/unit/cookbook_version_spec.rb +19 -128
  434. data/spec/unit/data_bag_item_spec.rb +4 -0
  435. data/spec/unit/data_collector/messages_spec.rb +137 -0
  436. data/spec/unit/data_collector/resource_report_spec.rb +145 -0
  437. data/spec/unit/deprecation_spec.rb +0 -14
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
  439. data/spec/unit/formatters/error_description_spec.rb +52 -7
  440. data/spec/unit/http/api_versions_spec.rb +79 -0
  441. data/spec/unit/http/authenticator_spec.rb +20 -0
  442. data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
  443. data/spec/unit/json_compat_spec.rb +0 -32
  444. data/spec/unit/knife/bootstrap_spec.rb +34 -0
  445. data/spec/unit/knife/configure_client_spec.rb +0 -2
  446. data/spec/unit/knife/cookbook_create_spec.rb +1 -220
  447. data/spec/unit/knife/cookbook_download_spec.rb +46 -28
  448. data/spec/unit/knife/cookbook_show_spec.rb +42 -9
  449. data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
  450. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
  451. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
  452. data/spec/unit/knife/core/ui_spec.rb +21 -11
  453. data/spec/unit/knife/data_bag_create_spec.rb +65 -45
  454. data/spec/unit/knife/ssh_spec.rb +34 -36
  455. data/spec/unit/knife_spec.rb +2 -2
  456. data/spec/unit/lwrp_spec.rb +38 -127
  457. data/spec/unit/mixin/path_sanity_spec.rb +7 -7
  458. data/spec/unit/mixin/shell_out_spec.rb +18 -84
  459. data/spec/unit/mixin/versioned_api_spec.rb +128 -0
  460. data/spec/unit/mixin/which.rb +160 -0
  461. data/spec/unit/node/attribute_spec.rb +65 -33
  462. data/spec/unit/node/immutable_collections_spec.rb +104 -1
  463. data/spec/unit/node_map_spec.rb +1 -23
  464. data/spec/unit/node_spec.rb +81 -98
  465. data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
  466. data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
  467. data/spec/unit/property/validation_spec.rb +51 -69
  468. data/spec/unit/property_spec.rb +105 -125
  469. data/spec/unit/provider/apt_repository_spec.rb +33 -27
  470. data/spec/unit/provider/cron_spec.rb +15 -39
  471. data/spec/unit/provider/deploy_spec.rb +1 -1
  472. data/spec/unit/provider/directory_spec.rb +10 -0
  473. data/spec/unit/provider/dsc_resource_spec.rb +175 -0
  474. data/spec/unit/provider/erl_call_spec.rb +5 -13
  475. data/spec/unit/provider/execute_spec.rb +3 -14
  476. data/spec/unit/provider/launchd_spec.rb +2 -2
  477. data/spec/unit/provider/package/aix_spec.rb +22 -22
  478. data/spec/unit/provider/package/apt_spec.rb +37 -27
  479. data/spec/unit/provider/package/cab_spec.rb +59 -5
  480. data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
  481. data/spec/unit/provider/package/dpkg_spec.rb +16 -16
  482. data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
  483. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
  484. data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
  485. data/spec/unit/provider/package/homebrew_spec.rb +9 -9
  486. data/spec/unit/provider/package/ips_spec.rb +37 -31
  487. data/spec/unit/provider/package/macports_spec.rb +10 -10
  488. data/spec/unit/provider/package/openbsd_spec.rb +10 -10
  489. data/spec/unit/provider/package/pacman_spec.rb +6 -6
  490. data/spec/unit/provider/package/paludis_spec.rb +7 -7
  491. data/spec/unit/provider/package/portage_spec.rb +6 -7
  492. data/spec/unit/provider/package/rpm_spec.rb +23 -23
  493. data/spec/unit/provider/package/rubygems_spec.rb +135 -46
  494. data/spec/unit/provider/package/solaris_spec.rb +15 -15
  495. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  496. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
  497. data/spec/unit/provider/package/windows_spec.rb +2 -1
  498. data/spec/unit/provider/package/yum_spec.rb +58 -50
  499. data/spec/unit/provider/package/zypper_spec.rb +54 -97
  500. data/spec/unit/provider/package_spec.rb +8 -0
  501. data/spec/unit/provider/powershell_script_spec.rb +14 -4
  502. data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
  503. data/spec/unit/provider/route_spec.rb +7 -1
  504. data/spec/unit/provider/script_spec.rb +49 -6
  505. data/spec/unit/provider/service/debian_service_spec.rb +14 -20
  506. data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
  507. data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
  508. data/spec/unit/provider/subversion_spec.rb +2 -2
  509. data/spec/unit/provider/user/linux_spec.rb +5 -43
  510. data/spec/unit/provider/user/pw_spec.rb +7 -27
  511. data/spec/unit/provider/windows_task_spec.rb +392 -0
  512. data/spec/unit/provider_resolver_spec.rb +0 -1
  513. data/spec/unit/provider_spec.rb +10 -3
  514. data/spec/unit/recipe_spec.rb +3 -172
  515. data/spec/unit/resource/chef_gem_spec.rb +16 -62
  516. data/spec/unit/resource/conditional_spec.rb +4 -4
  517. data/spec/unit/resource/cookbook_file_spec.rb +2 -2
  518. data/spec/unit/resource/cron_spec.rb +1 -1
  519. data/spec/unit/resource/deploy_spec.rb +4 -4
  520. data/spec/unit/resource/directory_spec.rb +2 -2
  521. data/spec/unit/resource/dsc_resource_spec.rb +6 -0
  522. data/spec/unit/resource/env_spec.rb +1 -1
  523. data/spec/unit/resource/execute_spec.rb +215 -1
  524. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
  525. data/spec/unit/resource/file/verification_spec.rb +8 -14
  526. data/spec/unit/resource/file_spec.rb +3 -3
  527. data/spec/unit/resource/freebsd_package_spec.rb +2 -2
  528. data/spec/unit/resource/group_spec.rb +2 -2
  529. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  530. data/spec/unit/resource/link_spec.rb +2 -2
  531. data/spec/unit/resource/mdadm_spec.rb +1 -1
  532. data/spec/unit/resource/mount_spec.rb +3 -3
  533. data/spec/unit/resource/ohai_spec.rb +1 -1
  534. data/spec/unit/resource/package_spec.rb +14 -4
  535. data/spec/unit/resource/registry_key_spec.rb +2 -2
  536. data/spec/unit/resource/remote_directory_spec.rb +2 -2
  537. data/spec/unit/resource/remote_file_spec.rb +2 -2
  538. data/spec/unit/resource/route_spec.rb +1 -1
  539. data/spec/unit/resource/scm_spec.rb +2 -2
  540. data/spec/unit/resource/script_spec.rb +1 -1
  541. data/spec/unit/resource/service_spec.rb +25 -5
  542. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  543. data/spec/unit/resource/template_spec.rb +2 -2
  544. data/spec/unit/resource/user_spec.rb +6 -6
  545. data/spec/unit/resource/windows_task_spec.rb +213 -0
  546. data/spec/unit/resource/yum_package_spec.rb +42 -1
  547. data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
  548. data/spec/unit/resource_collection_spec.rb +4 -3
  549. data/spec/unit/resource_reporter_spec.rb +6 -6
  550. data/spec/unit/resource_spec.rb +55 -71
  551. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
  552. data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
  553. data/spec/unit/runner_spec.rb +10 -28
  554. data/spec/unit/search/query_spec.rb +32 -34
  555. data/spec/unit/server_api_versions_spec.rb +44 -0
  556. data/spec/unit/shell/shell_session_spec.rb +33 -2
  557. data/spec/unit/util/selinux_spec.rb +3 -14
  558. data/spec/unit/win32/error_spec.rb +67 -0
  559. data/spec/unit/win32/security_spec.rb +66 -0
  560. data/tasks/bundle.rb +36 -52
  561. data/tasks/changelog.rb +1 -1
  562. data/tasks/dependencies.rb +54 -52
  563. data/tasks/version.rb +41 -0
  564. metadata +91 -76
  565. data/lib/chef/deprecation/mixin/template.rb +0 -48
  566. data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
  567. data/lib/chef/deprecation/provider/file.rb +0 -198
  568. data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
  569. data/lib/chef/deprecation/provider/remote_file.rb +0 -85
  570. data/lib/chef/deprecation/provider/template.rb +0 -63
  571. data/lib/chef/dsl/method_missing.rb +0 -75
  572. data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
  573. data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
  574. data/lib/chef/mixin/command/unix.rb +0 -220
  575. data/lib/chef/mixin/command/windows.rb +0 -71
  576. data/lib/chef/mixin/command.rb +0 -194
  577. data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
  578. data/lib/chef/provider/package/easy_install.rb +0 -135
  579. data/lib/chef/rest.rb +0 -210
  580. data/lib/chef/shell_out.rb +0 -13
  581. data/lib/chef/tasks/chef_repo.rake +0 -200
  582. data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
  583. data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
  584. data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
  585. data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
  586. data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
  587. data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
  588. data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
  589. data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
  590. data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
  591. data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
  592. data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
  593. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
  594. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
  595. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
  596. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
  597. data/spec/functional/rest_spec.rb +0 -95
  598. data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
  599. data/spec/unit/lib_backcompat_spec.rb +0 -34
  600. data/spec/unit/mixin/command_spec.rb +0 -107
  601. data/spec/unit/platform_spec.rb +0 -242
  602. data/spec/unit/provider/package/easy_install_spec.rb +0 -114
  603. data/spec/unit/resource/easy_install_package_spec.rb +0 -39
  604. data/spec/unit/rest/auth_credentials_spec.rb +0 -292
  605. data/spec/unit/rest_spec.rb +0 -753
  606. data/spec/unit/shell_out_spec.rb +0 -18
  607. data/tasks/bin/bundle-platform +0 -20
  608. data/tasks/bin/bundle-platform.bat +0 -2
  609. data/tasks/bin/bundler_patch.rb +0 -27
  610. data/tasks/bin/gem-version-diff +0 -37
  611. data/tasks/bundle_util.rb +0 -110
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright:: Copyright 2016 Chef Software, Inc.
2
+ # Copyright:: Copyright 2016-2017, Chef Software Inc.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -66,36 +66,38 @@ class Chef
66
66
  end
67
67
  end
68
68
 
69
- class JsonAutoInflate < Base
69
+ class InternalApi < Base
70
70
  def id
71
- 1
71
+ 0
72
72
  end
73
73
 
74
74
  def target
75
- "json_auto_inflate.html"
75
+ "internal_api.html"
76
76
  end
77
77
  end
78
78
 
79
- class ExitCode < Base
79
+ class JsonAutoInflate < Base
80
80
  def id
81
- 2
81
+ 1
82
82
  end
83
83
 
84
84
  def target
85
- "exit_code.html"
85
+ "json_auto_inflate.html"
86
86
  end
87
87
  end
88
88
 
89
- class ChefGemCompileTime < Base
89
+ class ExitCode < Base
90
90
  def id
91
- 3
91
+ 2
92
92
  end
93
93
 
94
94
  def target
95
- "chef_gem_compile_time.html"
95
+ "exit_code.html"
96
96
  end
97
97
  end
98
98
 
99
+ # id 3 has been deleted
100
+
99
101
  class Attributes < Base
100
102
  def id
101
103
  4
@@ -156,6 +158,36 @@ class Chef
156
158
  end
157
159
  end
158
160
 
161
+ class DnfPackageAllowDowngrade < Base
162
+ def id
163
+ 10
164
+ end
165
+
166
+ def target
167
+ "dnf_package_allow_downgrade.html"
168
+ end
169
+ end
170
+
171
+ class PropertyNameCollision < Base
172
+ def id
173
+ 11
174
+ end
175
+
176
+ def target
177
+ "property_name_collision.html"
178
+ end
179
+ end
180
+
181
+ class LaunchdHashProperty < Base
182
+ def id
183
+ 12
184
+ end
185
+
186
+ def target
187
+ "launchd_hash_property.html"
188
+ end
189
+ end
190
+
159
191
  class ChefPlatformMethods < Base
160
192
  def id
161
193
  13
@@ -176,36 +208,38 @@ class Chef
176
208
  end
177
209
  end
178
210
 
179
- class ResourceCloning < Base
211
+ class PackageMisc < Base
180
212
  def id
181
- 3694
213
+ 15
182
214
  end
183
215
 
184
216
  def target
185
- "resource_cloning.html"
217
+ "package_misc.html"
186
218
  end
187
219
  end
188
220
 
189
- class InternalApi < Base
221
+ class MultiresourceMatch < Base
190
222
  def id
191
- 0
223
+ 16
192
224
  end
193
225
 
194
226
  def target
195
- "internal_api.html"
227
+ "multiresource_match.html"
196
228
  end
197
229
  end
198
230
 
199
- class DnfPackageAllowDowngrade < Base
231
+ class UseInlineResources < Base
200
232
  def id
201
- 10
233
+ 17
202
234
  end
203
235
 
204
236
  def target
205
- "dnf_package_allow_downgrade.html"
237
+ "use_inline_resources.html"
206
238
  end
207
239
  end
208
240
 
241
+ # id 3694 was deleted
242
+
209
243
  class Generic < Base
210
244
  def url
211
245
  "https://docs.chef.io/chef_deprecations_client.html"
@@ -38,8 +38,8 @@ class Chef
38
38
  cookbook_name = self.cookbook_name
39
39
  metadata = {
40
40
  cookbook_name: cookbook_name,
41
- cookbook_version: self.run_context.cookbook_collection[cookbook_name].version,
42
- recipe_name: self.recipe_name,
41
+ cookbook_version: run_context.cookbook_collection[cookbook_name].version,
42
+ recipe_name: recipe_name,
43
43
  line_number: block.source_location[1],
44
44
  }
45
45
 
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Christopher Walters
4
- # Copyright:: Copyright 2008-2016 Chef Software, Inc.
4
+ # Copyright:: Copyright 2008-2017, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -117,7 +117,7 @@ class Chef
117
117
  # cookbook_name: cookbook_name
118
118
  # end
119
119
  #
120
- def edit_resource!(type, name, created_at = nil, run_context: self.run_context, &resource_attrs_block)
120
+ def edit_resource!(type, name, created_at: nil, run_context: self.run_context, &resource_attrs_block)
121
121
  resource = find_resource!(type, name, run_context: run_context)
122
122
  if resource_attrs_block
123
123
  if defined?(new_resource)
@@ -152,10 +152,10 @@ class Chef
152
152
  # end
153
153
  # resource.variables.merge!({ home: "/home/klowns" })
154
154
  #
155
- def edit_resource(type, name, created_at = nil, run_context: self.run_context, &resource_attrs_block)
156
- edit_resource!(type, name, created_at, run_context: run_context, &resource_attrs_block)
155
+ def edit_resource(type, name, created_at: nil, run_context: self.run_context, &resource_attrs_block)
156
+ edit_resource!(type, name, created_at: created_at, run_context: run_context, &resource_attrs_block)
157
157
  rescue Chef::Exceptions::ResourceNotFound
158
- declare_resource(type, name, created_at, run_context: run_context, &resource_attrs_block)
158
+ declare_resource(type, name, created_at: created_at, run_context: run_context, &resource_attrs_block)
159
159
  end
160
160
 
161
161
  # Lookup a resource in the resource collection by name. If the resource is not
@@ -207,7 +207,7 @@ class Chef
207
207
  find_resource!(type, name, run_context: run_context)
208
208
  rescue Chef::Exceptions::ResourceNotFound
209
209
  if resource_attrs_block
210
- declare_resource(type, name, created_at, run_context: run_context, &resource_attrs_block)
210
+ declare_resource(type, name, created_at: created_at, run_context: run_context, &resource_attrs_block)
211
211
  end # returns nil otherwise
212
212
  end
213
213
 
@@ -236,18 +236,12 @@ class Chef
236
236
  # action :delete
237
237
  # end
238
238
  #
239
- def declare_resource(type, name, created_at = nil, run_context: self.run_context, create_if_missing: false, &resource_attrs_block)
239
+ def declare_resource(type, name, created_at: nil, run_context: self.run_context, &resource_attrs_block)
240
240
  created_at ||= caller[0]
241
241
 
242
- if create_if_missing
243
- Chef::Log.deprecation "build_resource with a create_if_missing flag is deprecated, use edit_resource instead"
244
- # midly goofy since we call edit_resource only to re-call ourselves, but that's why its deprecated...
245
- return edit_resource(type, name, created_at, run_context: run_context, &resource_attrs_block)
246
- end
247
-
248
- resource = build_resource(type, name, created_at, &resource_attrs_block)
242
+ resource = build_resource(type, name, created_at: created_at, &resource_attrs_block)
249
243
 
250
- run_context.resource_collection.insert(resource, resource_type: type, instance_name: name)
244
+ run_context.resource_collection.insert(resource, resource_type: resource.declared_type, instance_name: resource.name)
251
245
  resource
252
246
  end
253
247
 
@@ -272,7 +266,7 @@ class Chef
272
266
  # action :delete
273
267
  # end
274
268
  #
275
- def build_resource(type, name, created_at = nil, run_context: self.run_context, &resource_attrs_block)
269
+ def build_resource(type, name, created_at: nil, run_context: self.run_context, &resource_attrs_block)
276
270
  created_at ||= caller[0]
277
271
 
278
272
  # this needs to be lazy in order to avoid circular dependencies since ResourceBuilder
@@ -287,7 +281,7 @@ class Chef
287
281
  run_context: run_context,
288
282
  cookbook_name: cookbook_name,
289
283
  recipe_name: recipe_name,
290
- enclosing_provider: self.is_a?(Chef::Provider) ? self : nil
284
+ enclosing_provider: is_a?(Chef::Provider) ? self : nil
291
285
  ).build(&resource_attrs_block)
292
286
  end
293
287
  end
@@ -68,41 +68,39 @@ class Chef
68
68
  private
69
69
 
70
70
  def match_versions(node)
71
- begin
72
- platform, version = node[:platform].to_s, node[:platform_version].to_s
73
- return nil unless @values.key?(platform)
74
- node_version = Chef::Version::Platform.new(version)
75
- key_matches = []
76
- keys = @values[platform].keys
77
- keys.each do |k|
78
- begin
79
- if Chef::VersionConstraint::Platform.new(k).include?(node_version)
80
- key_matches << k
81
- end
82
- rescue Chef::Exceptions::InvalidVersionConstraint => e
83
- Chef::Log.debug "Caught InvalidVersionConstraint. This means that a key in value_for_platform cannot be interpreted as a Chef::VersionConstraint::Platform."
84
- Chef::Log.debug(e)
71
+ platform, version = node[:platform].to_s, node[:platform_version].to_s
72
+ return nil unless @values.key?(platform)
73
+ node_version = Chef::Version::Platform.new(version)
74
+ key_matches = []
75
+ keys = @values[platform].keys
76
+ keys.each do |k|
77
+ begin
78
+ if Chef::VersionConstraint::Platform.new(k).include?(node_version)
79
+ key_matches << k
85
80
  end
81
+ rescue Chef::Exceptions::InvalidVersionConstraint => e
82
+ Chef::Log.debug "Caught InvalidVersionConstraint. This means that a key in value_for_platform cannot be interpreted as a Chef::VersionConstraint::Platform."
83
+ Chef::Log.debug(e)
86
84
  end
87
- return @values[platform][version] if key_matches.include?(version)
88
- case key_matches.length
89
- when 0
90
- return nil
91
- when 1
92
- return @values[platform][key_matches.first]
93
- else
94
- raise "Multiple matches detected for #{platform} with values #{@values}. The matches are: #{key_matches}"
95
- end
96
- rescue Chef::Exceptions::InvalidCookbookVersion => e
97
- # Lets not break because someone passes a weird string like 'default' :)
98
- Chef::Log.debug(e)
99
- Chef::Log.debug "InvalidCookbookVersion exceptions are common and expected here: the generic constraint matcher attempted to match something which is not a constraint. Moving on to next version or constraint"
100
- return nil
101
- rescue Chef::Exceptions::InvalidPlatformVersion => e
102
- Chef::Log.debug "Caught InvalidPlatformVersion, this means that Chef::Version::Platform does not know how to turn #{node_version} into an x.y.z format"
103
- Chef::Log.debug(e)
85
+ end
86
+ return @values[platform][version] if key_matches.include?(version)
87
+ case key_matches.length
88
+ when 0
104
89
  return nil
90
+ when 1
91
+ return @values[platform][key_matches.first]
92
+ else
93
+ raise "Multiple matches detected for #{platform} with values #{@values}. The matches are: #{key_matches}"
105
94
  end
95
+ rescue Chef::Exceptions::InvalidCookbookVersion => e
96
+ # Lets not break because someone passes a weird string like 'default' :)
97
+ Chef::Log.debug(e)
98
+ Chef::Log.debug "InvalidCookbookVersion exceptions are common and expected here: the generic constraint matcher attempted to match something which is not a constraint. Moving on to next version or constraint"
99
+ return nil
100
+ rescue Chef::Exceptions::InvalidPlatformVersion => e
101
+ Chef::Log.debug "Caught InvalidPlatformVersion, this means that Chef::Version::Platform does not know how to turn #{node_version} into an x.y.z format"
102
+ Chef::Log.debug(e)
103
+ return nil
106
104
  end
107
105
 
108
106
  def set(platforms, value)
@@ -30,7 +30,7 @@ class Chef
30
30
  # Note that we will silently miss any other platform-specific reboot notices besides Windows+Ubuntu.
31
31
  def reboot_pending?
32
32
  # don't break when used as a mixin in contexts without #node (e.g. specs).
33
- if self.respond_to?(:node, true) && node.run_context.reboot_requested?
33
+ if respond_to?(:node, true) && node.run_context.reboot_requested?
34
34
  true
35
35
  elsif platform?("windows")
36
36
  # PendingFileRenameOperations contains pairs (REG_MULTI_SZ) of filenames that cannot be updated
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Christopher Walters (<cw@chef.io>)
4
- # Copyright:: Copyright 2008-2016 Chef Software, Inc.
4
+ # Copyright:: Copyright 2008-2017, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,7 +27,6 @@ require "chef/dsl/reboot_pending"
27
27
  require "chef/dsl/audit"
28
28
  require "chef/dsl/powershell"
29
29
  require "chef/dsl/core"
30
- require "chef/dsl/method_missing"
31
30
  require "chef/mixin/lazy_module_include"
32
31
 
33
32
  class Chef
@@ -60,8 +59,6 @@ class Chef
60
59
  include Chef::DSL::Powershell
61
60
  include Chef::DSL::Resources
62
61
  include Chef::DSL::Definitions
63
- # method_missing will disappear in Chef 13
64
- include Chef::DSL::MethodMissing
65
62
  extend Chef::Mixin::LazyModuleInclude
66
63
 
67
64
  def resource_class_for(snake_case_name)
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: John Keiser <jkeiser@chef.io>
3
- # Copyright:: Copyright 2015-2016, Chef Software, Inc.
3
+ # Copyright:: Copyright 2015-2017, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -33,20 +33,11 @@ class Chef
33
33
  include Chef::DSL::ChefProvisioning
34
34
 
35
35
  def self.add_resource_dsl(dsl_name)
36
- begin
37
- module_eval(<<-EOM, __FILE__, __LINE__ + 1)
38
- def #{dsl_name}(*args, &block)
39
- Chef.deprecated(:internal_api, "Cannot create resource #{dsl_name} with more than one argument. All arguments except the name (\#{args[0].inspect}) will be ignored. This will cause an error in Chef 13. Arguments: \#{args}") if args.size > 1
40
- declare_resource(#{dsl_name.inspect}, args[0], caller[0], &block)
36
+ module_eval(<<-EOM, __FILE__, __LINE__ + 1)
37
+ def #{dsl_name}(args = nil, &block)
38
+ declare_resource(#{dsl_name.inspect}, args, created_at: caller[0], &block)
41
39
  end
42
40
  EOM
43
- rescue SyntaxError
44
- # Handle the case where dsl_name has spaces, etc.
45
- define_method(dsl_name.to_sym) do |*args, &block|
46
- Chef.deprecated(:internal_api, "Cannot create resource #{dsl_name} with more than one argument. All arguments except the name (#{args[0].inspect}) will be ignored. This will cause an error in Chef 13. Arguments: #{args}") if args.size > 1
47
- declare_resource(dsl_name, args[0], caller[0], &block)
48
- end
49
- end
50
41
  end
51
42
 
52
43
  def self.remove_resource_dsl(dsl_name)
@@ -121,8 +121,8 @@ class Chef::EncryptedDataBagItem
121
121
  #
122
122
  def self.load(data_bag, name, secret = nil)
123
123
  raw_hash = Chef::DataBagItem.load(data_bag, name)
124
- secret ||= self.load_secret
125
- self.new(raw_hash, secret)
124
+ secret ||= load_secret
125
+ new(raw_hash, secret)
126
126
  end
127
127
 
128
128
  def self.load_secret(path = nil)
@@ -216,11 +216,6 @@ class Chef
216
216
  end
217
217
  end
218
218
 
219
- def self.json_create(o)
220
- Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::Environment#from_hash")
221
- from_hash(o)
222
- end
223
-
224
219
  def self.from_hash(o)
225
220
  environment = new
226
221
  environment.name(o["name"])
@@ -247,7 +242,7 @@ class Chef
247
242
  if Chef::Config[:solo_legacy_mode]
248
243
  load_from_file(name)
249
244
  else
250
- self.from_hash(chef_server_rest.get("environments/#{name}"))
245
+ from_hash(chef_server_rest.get("environments/#{name}"))
251
246
  end
252
247
  end
253
248
 
@@ -309,17 +304,15 @@ class Chef
309
304
  end
310
305
 
311
306
  def self.validate_cookbook_version(version)
312
- begin
313
- if Chef::Config[:solo_legacy_mode]
314
- raise Chef::Exceptions::IllegalVersionConstraint,
315
- "Environment cookbook version constraints not allowed in chef-solo"
316
- else
317
- Chef::VersionConstraint.new version
318
- true
319
- end
320
- rescue ArgumentError
321
- false
307
+ if Chef::Config[:solo_legacy_mode]
308
+ raise Chef::Exceptions::IllegalVersionConstraint,
309
+ "Environment cookbook version constraints not allowed in chef-solo"
310
+ else
311
+ Chef::VersionConstraint.new version
312
+ true
322
313
  end
314
+ rescue ArgumentError
315
+ false
323
316
  end
324
317
 
325
318
  end
@@ -195,6 +195,22 @@ class Chef
195
195
  def lwrp_load_complete
196
196
  end
197
197
 
198
+ # Called when an ohai plugin file loading starts
199
+ def ohai_plugin_load_start(file_count)
200
+ end
201
+
202
+ # Called when an ohai plugin file has been loaded
203
+ def ohai_plugin_file_loaded(path)
204
+ end
205
+
206
+ # Called when an ohai plugin file has an error on load.
207
+ def ohai_plugin_file_load_failed(path, exception)
208
+ end
209
+
210
+ # Called when an ohai plugin file loading has finished
211
+ def ohai_plugin_load_complete
212
+ end
213
+
198
214
  # Called before attribute files are loaded
199
215
  def attribute_load_start(attribute_file_count)
200
216
  end
@@ -38,7 +38,7 @@ class Chef
38
38
  SOURCE = "Chef"
39
39
 
40
40
  def self.available?
41
- return Chef::Platform.windows?
41
+ Chef::Platform.windows?
42
42
  end
43
43
 
44
44
  def initialize
@@ -2,7 +2,7 @@
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Seth Falcon (<seth@chef.io>)
4
4
  # Author:: Kyle Goodwin (<kgoodwin@primerevenue.com>)
5
- # Copyright:: Copyright 2008-2016, Chef Software, Inc.
5
+ # Copyright:: Copyright 2008-2017, Chef Software Inc.
6
6
  # License:: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -47,6 +47,7 @@ class Chef
47
47
  class Cron < RuntimeError; end
48
48
  class Env < RuntimeError; end
49
49
  class Exec < RuntimeError; end
50
+ class Execute < RuntimeError; end
50
51
  class ErlCall < RuntimeError; end
51
52
  class FileNotFound < RuntimeError; end
52
53
  class Package < RuntimeError; end
@@ -58,14 +59,6 @@ class Chef
58
59
  class UnsupportedAction < RuntimeError; end
59
60
  class MissingLibrary < RuntimeError; end
60
61
 
61
- class DeprecatedExitCode < RuntimeError
62
- def initalize
63
- super "Exiting with a non RFC 062 Exit Code."
64
- require "chef/application/exit_code"
65
- Chef::Application::ExitCode.notify_deprecated_exit_code
66
- end
67
- end
68
-
69
62
  class CannotDetermineNodeName < RuntimeError
70
63
  def initialize
71
64
  super "Unable to determine node name: configure node_name or configure the system's hostname and fqdn"
@@ -315,7 +308,7 @@ class Chef
315
308
 
316
309
  def raise!
317
310
  unless empty?
318
- raise self.for_raise
311
+ raise for_raise
319
312
  end
320
313
  end
321
314
 
@@ -525,5 +518,8 @@ This error is most often caused by network issues (proxies, etc) outside of chef
525
518
  super "Found multiple matching resources. #{matches_info.join("\n")}"
526
519
  end
527
520
  end
521
+
522
+ # exception specific to invalid usage of 'dsc_resource' resource
523
+ class DSCModuleNameMissing < ArgumentError; end
528
524
  end
529
525
  end
@@ -80,19 +80,19 @@ class Chef
80
80
  if target_uid.nil?
81
81
  # the user has not specified a permission on the new resource, so we never manage it with FAC
82
82
  Chef::Log.debug("Found target_uid == nil, so no owner was specified on resource, not managing owner")
83
- return false
83
+ false
84
84
  elsif current_uid.nil?
85
85
  # the user has specified a permission, and we are creating a file, so always enforce permissions
86
86
  Chef::Log.debug("Found current_uid == nil, so we are creating a new file, updating owner")
87
- return true
87
+ true
88
88
  elsif target_uid != current_uid
89
89
  # the user has specified a permission, and it does not match the file, so fix the permission
90
90
  Chef::Log.debug("Found target_uid != current_uid, updating owner")
91
- return true
91
+ true
92
92
  else
93
93
  Chef::Log.debug("Found target_uid == current_uid, not updating owner")
94
94
  # the user has specified a permission, but it matches the file, so behave idempotently
95
- return false
95
+ false
96
96
  end
97
97
  end
98
98
 
@@ -139,19 +139,19 @@ class Chef
139
139
  if target_gid.nil?
140
140
  # the user has not specified a permission on the new resource, so we never manage it with FAC
141
141
  Chef::Log.debug("Found target_gid == nil, so no group was specified on resource, not managing group")
142
- return false
142
+ false
143
143
  elsif current_gid.nil?
144
144
  # the user has specified a permission, and we are creating a file, so always enforce permissions
145
145
  Chef::Log.debug("Found current_gid == nil, so we are creating a new file, updating group")
146
- return true
146
+ true
147
147
  elsif target_gid != current_gid
148
148
  # the user has specified a permission, and it does not match the file, so fix the permission
149
149
  Chef::Log.debug("Found target_gid != current_gid, updating group")
150
- return true
150
+ true
151
151
  else
152
152
  Chef::Log.debug("Found target_gid == current_gid, not updating group")
153
153
  # the user has specified a permission, but it matches the file, so behave idempotently
154
- return false
154
+ false
155
155
  end
156
156
  end
157
157
 
@@ -188,21 +188,21 @@ class Chef
188
188
  if target_mode.nil?
189
189
  # the user has not specified a permission on the new resource, so we never manage it with FAC
190
190
  Chef::Log.debug("Found target_mode == nil, so no mode was specified on resource, not managing mode")
191
- return false
191
+ false
192
192
  elsif current_mode.nil?
193
193
  # the user has specified a permission, and we are creating a file, so always enforce permissions
194
194
  Chef::Log.debug("Found current_mode == nil, so we are creating a new file, updating mode")
195
- return true
195
+ true
196
196
  elsif target_mode != current_mode
197
197
  # the user has specified a permission, and it does not match the file, so fix the permission
198
198
  Chef::Log.debug("Found target_mode != current_mode, updating mode")
199
- return true
199
+ true
200
200
  elsif suid_bit_set? && (should_update_group? || should_update_owner?)
201
- return true
201
+ true
202
202
  else
203
203
  Chef::Log.debug("Found target_mode == current_mode, not updating mode")
204
204
  # the user has specified a permission, but it matches the file, so behave idempotently
205
- return false
205
+ false
206
206
  end
207
207
  end
208
208
 
@@ -283,7 +283,7 @@ class Chef
283
283
  end
284
284
 
285
285
  def suid_bit_set?
286
- return target_mode & 04000 > 0
286
+ target_mode & 04000 > 0
287
287
  end
288
288
  end
289
289
  end
@@ -100,7 +100,7 @@ class Chef
100
100
  new_target_acl << children_ace
101
101
  end
102
102
  end
103
- return actual_acl == new_target_acl
103
+ actual_acl == new_target_acl
104
104
  end
105
105
 
106
106
  def existing_descriptor
@@ -17,6 +17,8 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
+ require "chef/version"
21
+
20
22
  class Chef
21
23
  module Formatters
22
24
  # == Formatters::ErrorDescription
@@ -45,7 +47,7 @@ class Chef
45
47
  display_section(heading, text, out)
46
48
  end
47
49
  end
48
- display_section("Platform:", RUBY_PLATFORM, out)
50
+ display_section("System Info:", error_context_info, out)
49
51
  end
50
52
 
51
53
  def for_json
@@ -64,6 +66,21 @@ class Chef
64
66
  out.puts "\n"
65
67
  end
66
68
 
69
+ def error_context_info
70
+ context_info = { chef_version: Chef::VERSION }
71
+ if Chef.node
72
+ context_info[:platform] = Chef.node["platform"]
73
+ context_info[:platform_version] = Chef.node["platform_version"]
74
+ end
75
+ # A string like "ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]"
76
+ context_info[:ruby] = RUBY_DESCRIPTION
77
+ # The argv[0] value.
78
+ context_info[:program_name] = $PROGRAM_NAME
79
+ # This is kind of wonky but it's the only way to get the entry path script.
80
+ context_info[:executable] = File.realpath(caller.last[/^(.*):\d+:in /, 1])
81
+ context_info.map { |k, v| "#{k}=#{v}" }.join("\n")
82
+ end
83
+
67
84
  end
68
85
  end
69
86
  end
@@ -172,11 +172,10 @@ E
172
172
  # .../lib/ruby/1.9.1/net/http.rb:2709:in `read_body'
173
173
  # .../lib/ruby/1.9.1/net/http.rb:2736:in `body'
174
174
  # .../lib/chef/formatters/error_inspectors/api_error_formatting.rb:91:in `rescue in format_rest_error'
175
- begin
176
- exception.response.body
177
- rescue Exception
178
- "Cannot fetch the contents of the response."
179
- end
175
+
176
+ exception.response.body
177
+ rescue Exception
178
+ "Cannot fetch the contents of the response."
180
179
  end
181
180
 
182
181
  end