chef 15.17.4-universal-mingw32 → 16.0.257-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 (571) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +14 -20
  3. data/README.md +6 -6
  4. data/Rakefile +18 -23
  5. data/chef-universal-mingw32.gemspec +4 -4
  6. data/chef.gemspec +10 -26
  7. data/distro/powershell/chef/chef.psm1 +3 -3
  8. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  9. data/lib/chef/action_collection.rb +16 -5
  10. data/lib/chef/api_client/registration.rb +2 -2
  11. data/lib/chef/application.rb +33 -54
  12. data/lib/chef/application/apply.rb +20 -3
  13. data/lib/chef/application/base.rb +8 -3
  14. data/lib/chef/application/exit_code.rb +2 -2
  15. data/lib/chef/application/knife.rb +1 -1
  16. data/lib/chef/chef_class.rb +4 -4
  17. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  18. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  20. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
  21. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  22. data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
  23. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  24. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  25. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
  26. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  27. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  28. data/lib/chef/chef_fs/path_utils.rb +3 -3
  29. data/lib/chef/client.rb +16 -14
  30. data/lib/chef/config.rb +1 -1
  31. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  32. data/lib/chef/cookbook/gem_installer.rb +1 -1
  33. data/lib/chef/cookbook/metadata.rb +45 -22
  34. data/lib/chef/cookbook_version.rb +40 -5
  35. data/lib/chef/data_bag.rb +2 -2
  36. data/lib/chef/data_collector/error_handlers.rb +1 -1
  37. data/lib/chef/data_collector/run_end_message.rb +7 -1
  38. data/lib/chef/deprecated.rb +1 -9
  39. data/lib/chef/dist.rb +8 -0
  40. data/lib/chef/dsl/chef_vault.rb +84 -0
  41. data/lib/chef/dsl/declare_resource.rb +7 -5
  42. data/lib/chef/dsl/platform_introspection.rb +2 -3
  43. data/lib/chef/dsl/recipe.rb +7 -12
  44. data/lib/chef/dsl/universal.rb +3 -7
  45. data/lib/chef/environment.rb +2 -2
  46. data/lib/chef/event_dispatch/base.rb +3 -0
  47. data/lib/chef/exceptions.rb +0 -3
  48. data/lib/chef/formatters/doc.rb +1 -1
  49. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  50. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  51. data/lib/chef/formatters/indentable_output_stream.rb +7 -16
  52. data/lib/chef/http.rb +1 -2
  53. data/lib/chef/http/http_request.rb +3 -2
  54. data/lib/chef/knife.rb +1 -3
  55. data/lib/chef/knife/acl_add.rb +57 -0
  56. data/lib/chef/knife/acl_base.rb +183 -0
  57. data/lib/chef/knife/acl_bulk_add.rb +78 -0
  58. data/lib/chef/knife/acl_bulk_remove.rb +83 -0
  59. data/lib/chef/knife/acl_remove.rb +62 -0
  60. data/lib/chef/knife/acl_show.rb +56 -0
  61. data/lib/chef/knife/bootstrap.rb +93 -97
  62. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  63. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  64. data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
  65. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
  66. data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
  67. data/lib/chef/knife/cookbook_download.rb +1 -1
  68. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  69. data/lib/chef/knife/core/bootstrap_context.rb +63 -60
  70. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  71. data/lib/chef/knife/core/generic_presenter.rb +4 -3
  72. data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
  73. data/lib/chef/knife/core/node_presenter.rb +2 -2
  74. data/lib/chef/knife/core/status_presenter.rb +5 -5
  75. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  76. data/lib/chef/knife/core/ui.rb +17 -1
  77. data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
  78. data/lib/chef/knife/data_bag_secret_options.rb +18 -45
  79. data/lib/chef/knife/environment_compare.rb +1 -1
  80. data/lib/chef/knife/exec.rb +2 -2
  81. data/lib/chef/knife/group_add.rb +55 -0
  82. data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
  83. data/lib/chef/knife/group_destroy.rb +53 -0
  84. data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
  85. data/lib/chef/knife/group_remove.rb +56 -0
  86. data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
  87. data/lib/chef/knife/list.rb +1 -1
  88. data/lib/chef/knife/ssh.rb +12 -50
  89. data/lib/chef/knife/status.rb +3 -3
  90. data/lib/chef/knife/supermarket_download.rb +1 -2
  91. data/lib/chef/knife/supermarket_install.rb +1 -2
  92. data/lib/chef/knife/supermarket_list.rb +1 -2
  93. data/lib/chef/knife/supermarket_search.rb +1 -2
  94. data/lib/chef/knife/supermarket_share.rb +1 -2
  95. data/lib/chef/knife/supermarket_show.rb +1 -2
  96. data/lib/chef/knife/supermarket_unshare.rb +1 -2
  97. data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
  98. data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
  99. data/lib/chef/knife/user_invite_list.rb +34 -0
  100. data/lib/chef/knife/user_invite_recind.rb +63 -0
  101. data/lib/chef/knife/yaml_convert.rb +91 -0
  102. data/lib/chef/log.rb +1 -1
  103. data/lib/chef/mixin/create_path.rb +8 -8
  104. data/lib/chef/mixin/openssl_helper.rb +3 -26
  105. data/lib/chef/mixin/powershell_exec.rb +10 -1
  106. data/lib/chef/mixin/powershell_out.rb +1 -1
  107. data/lib/chef/mixin/properties.rb +13 -1
  108. data/lib/chef/mixin/shell_out.rb +0 -4
  109. data/lib/chef/mixin/template.rb +0 -1
  110. data/lib/chef/monkey_patches/net_http.rb +0 -4
  111. data/lib/chef/node.rb +18 -6
  112. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  113. data/lib/chef/node/mixin/immutablize_array.rb +4 -0
  114. data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
  115. data/lib/chef/node_map.rb +7 -36
  116. data/lib/chef/platform/priority_map.rb +4 -4
  117. data/lib/chef/platform/query_helpers.rb +6 -34
  118. data/lib/chef/powershell.rb +14 -0
  119. data/lib/chef/property.rb +22 -4
  120. data/lib/chef/provider.rb +40 -6
  121. data/lib/chef/provider/cron.rb +2 -2
  122. data/lib/chef/provider/directory.rb +2 -2
  123. data/lib/chef/provider/dsc_resource.rb +1 -1
  124. data/lib/chef/provider/dsc_script.rb +1 -1
  125. data/lib/chef/provider/execute.rb +2 -8
  126. data/lib/chef/provider/file.rb +5 -5
  127. data/lib/chef/provider/git.rb +84 -27
  128. data/lib/chef/provider/group.rb +4 -4
  129. data/lib/chef/provider/http_request.rb +6 -6
  130. data/lib/chef/provider/ifconfig.rb +4 -4
  131. data/lib/chef/provider/launchd.rb +36 -51
  132. data/lib/chef/provider/link.rb +2 -2
  133. data/lib/chef/provider/mount.rb +5 -5
  134. data/lib/chef/provider/mount/solaris.rb +1 -0
  135. data/lib/chef/provider/osx_profile.rb +7 -3
  136. data/lib/chef/provider/package.rb +2 -2
  137. data/lib/chef/provider/package/cab.rb +3 -4
  138. data/lib/chef/provider/package/chocolatey.rb +1 -3
  139. data/lib/chef/provider/package/dnf.rb +66 -10
  140. data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
  141. data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
  142. data/lib/chef/provider/package/dnf/version.rb +5 -1
  143. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
  144. data/lib/chef/provider/package/homebrew.rb +106 -42
  145. data/lib/chef/provider/package/msu.rb +3 -1
  146. data/lib/chef/provider/package/pacman.rb +25 -34
  147. data/lib/chef/provider/package/powershell.rb +2 -6
  148. data/lib/chef/provider/package/rubygems.rb +29 -2
  149. data/lib/chef/provider/package/snap.rb +27 -96
  150. data/lib/chef/provider/package/windows.rb +3 -2
  151. data/lib/chef/provider/package/windows/msi.rb +2 -2
  152. data/lib/chef/provider/package/yum.rb +0 -8
  153. data/lib/chef/provider/package/yum/yum_helper.py +0 -4
  154. data/lib/chef/provider/package/zypper.rb +1 -1
  155. data/lib/chef/provider/powershell_script.rb +4 -10
  156. data/lib/chef/provider/registry_key.rb +4 -4
  157. data/lib/chef/provider/remote_directory.rb +3 -3
  158. data/lib/chef/provider/remote_file/ftp.rb +3 -2
  159. data/lib/chef/provider/remote_file/local_file.rb +2 -1
  160. data/lib/chef/provider/remote_file/sftp.rb +3 -2
  161. data/lib/chef/provider/route.rb +5 -3
  162. data/lib/chef/provider/ruby_block.rb +1 -1
  163. data/lib/chef/provider/script.rb +2 -2
  164. data/lib/chef/provider/service.rb +8 -8
  165. data/lib/chef/provider/service/aixinit.rb +1 -1
  166. data/lib/chef/provider/service/arch.rb +2 -2
  167. data/lib/chef/provider/service/debian.rb +31 -29
  168. data/lib/chef/provider/service/gentoo.rb +2 -2
  169. data/lib/chef/provider/service/macosx.rb +7 -12
  170. data/lib/chef/provider/service/openbsd.rb +1 -1
  171. data/lib/chef/provider/service/redhat.rb +2 -2
  172. data/lib/chef/provider/service/simple.rb +3 -3
  173. data/lib/chef/provider/service/systemd.rb +12 -12
  174. data/lib/chef/provider/service/upstart.rb +1 -1
  175. data/lib/chef/provider/service/windows.rb +5 -11
  176. data/lib/chef/provider/subversion.rb +25 -5
  177. data/lib/chef/provider/systemd_unit.rb +26 -25
  178. data/lib/chef/provider/user.rb +6 -6
  179. data/lib/chef/provider/user/dscl.rb +3 -3
  180. data/lib/chef/provider/user/mac.rb +10 -9
  181. data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
  182. data/lib/chef/provider/windows_env.rb +3 -3
  183. data/lib/chef/provider/windows_script.rb +2 -2
  184. data/lib/chef/provider/windows_task.rb +7 -9
  185. data/lib/chef/provider/yum_repository.rb +1 -1
  186. data/lib/chef/provider/zypper_repository.rb +11 -31
  187. data/lib/chef/providers.rb +0 -6
  188. data/lib/chef/recipe.rb +36 -0
  189. data/lib/chef/resource.rb +41 -56
  190. data/lib/chef/resource/action_class.rb +24 -22
  191. data/lib/chef/resource/alternatives.rb +149 -0
  192. data/lib/chef/resource/apt_package.rb +2 -1
  193. data/lib/chef/resource/apt_preference.rb +69 -2
  194. data/lib/chef/resource/apt_repository.rb +337 -5
  195. data/lib/chef/resource/apt_update.rb +52 -1
  196. data/lib/chef/resource/archive_file.rb +9 -29
  197. data/lib/chef/resource/bash.rb +2 -0
  198. data/lib/chef/resource/bff_package.rb +9 -1
  199. data/lib/chef/resource/breakpoint.rb +0 -1
  200. data/lib/chef/resource/build_essential.rb +42 -48
  201. data/lib/chef/resource/cab_package.rb +8 -1
  202. data/lib/chef/resource/chef_client_cron.rb +225 -0
  203. data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
  204. data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
  205. data/lib/chef/resource/chef_gem.rb +9 -16
  206. data/lib/chef/resource/chef_handler.rb +2 -1
  207. data/lib/chef/resource/chef_sleep.rb +0 -1
  208. data/lib/chef/resource/chef_vault_secret.rb +135 -0
  209. data/lib/chef/resource/chocolatey_config.rb +3 -1
  210. data/lib/chef/resource/chocolatey_feature.rb +2 -1
  211. data/lib/chef/resource/chocolatey_package.rb +2 -1
  212. data/lib/chef/resource/chocolatey_source.rb +2 -1
  213. data/lib/chef/resource/cookbook_file.rb +1 -1
  214. data/lib/chef/resource/cron.rb +22 -68
  215. data/lib/chef/resource/cron_access.rb +8 -15
  216. data/lib/chef/resource/cron_d.rb +9 -75
  217. data/lib/chef/resource/csh.rb +2 -0
  218. data/lib/chef/resource/directory.rb +2 -2
  219. data/lib/chef/resource/dmg_package.rb +4 -4
  220. data/lib/chef/resource/dnf_package.rb +2 -3
  221. data/lib/chef/resource/dpkg_package.rb +2 -1
  222. data/lib/chef/resource/dsc_resource.rb +6 -4
  223. data/lib/chef/resource/dsc_script.rb +3 -2
  224. data/lib/chef/resource/execute.rb +13 -12
  225. data/lib/chef/resource/file.rb +3 -1
  226. data/lib/chef/resource/freebsd_package.rb +2 -1
  227. data/lib/chef/resource/gem_package.rb +14 -6
  228. data/lib/chef/resource/group.rb +4 -1
  229. data/lib/chef/resource/helpers/cron_validations.rb +98 -0
  230. data/lib/chef/resource/homebrew_cask.rb +5 -4
  231. data/lib/chef/resource/homebrew_package.rb +4 -2
  232. data/lib/chef/resource/homebrew_tap.rb +2 -1
  233. data/lib/chef/resource/hostname.rb +41 -36
  234. data/lib/chef/resource/http_request.rb +0 -1
  235. data/lib/chef/resource/ifconfig.rb +1 -1
  236. data/lib/chef/resource/ips_package.rb +10 -2
  237. data/lib/chef/resource/kernel_module.rb +29 -29
  238. data/lib/chef/resource/ksh.rb +2 -0
  239. data/lib/chef/resource/launchd.rb +6 -6
  240. data/lib/chef/resource/link.rb +1 -23
  241. data/lib/chef/resource/locale.rb +58 -24
  242. data/lib/chef/resource/log.rb +12 -1
  243. data/lib/chef/resource/lwrp_base.rb +1 -8
  244. data/lib/chef/resource/macos_userdefaults.rb +9 -6
  245. data/lib/chef/resource/macosx_service.rb +2 -1
  246. data/lib/chef/resource/macports_package.rb +10 -2
  247. data/lib/chef/resource/mdadm.rb +62 -2
  248. data/lib/chef/resource/mount.rb +3 -0
  249. data/lib/chef/resource/msu_package.rb +13 -1
  250. data/lib/chef/resource/notify_group.rb +8 -3
  251. data/lib/chef/resource/ohai.rb +19 -3
  252. data/lib/chef/resource/ohai_hint.rb +3 -12
  253. data/lib/chef/resource/openbsd_package.rb +9 -1
  254. data/lib/chef/resource/openssl_dhparam.rb +10 -1
  255. data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
  256. data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
  257. data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
  258. data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
  259. data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
  260. data/lib/chef/resource/openssl_x509_crl.rb +12 -1
  261. data/lib/chef/resource/openssl_x509_request.rb +37 -1
  262. data/lib/chef/resource/osx_profile.rb +3 -2
  263. data/lib/chef/resource/package.rb +2 -1
  264. data/lib/chef/resource/pacman_package.rb +2 -1
  265. data/lib/chef/resource/paludis_package.rb +12 -3
  266. data/lib/chef/resource/perl.rb +2 -0
  267. data/lib/chef/resource/plist.rb +207 -0
  268. data/lib/chef/resource/portage_package.rb +13 -3
  269. data/lib/chef/resource/powershell_package.rb +1 -3
  270. data/lib/chef/resource/powershell_package_source.rb +3 -1
  271. data/lib/chef/resource/powershell_script.rb +7 -17
  272. data/lib/chef/resource/python.rb +2 -0
  273. data/lib/chef/resource/reboot.rb +0 -1
  274. data/lib/chef/resource/registry_key.rb +1 -2
  275. data/lib/chef/resource/remote_directory.rb +2 -0
  276. data/lib/chef/resource/remote_file.rb +2 -0
  277. data/lib/chef/resource/rhsm_errata.rb +0 -1
  278. data/lib/chef/resource/rhsm_errata_level.rb +0 -1
  279. data/lib/chef/resource/rhsm_register.rb +2 -1
  280. data/lib/chef/resource/rhsm_repo.rb +3 -1
  281. data/lib/chef/resource/rhsm_subscription.rb +4 -1
  282. data/lib/chef/resource/route.rb +5 -1
  283. data/lib/chef/resource/rpm_package.rb +9 -2
  284. data/lib/chef/resource/ruby.rb +2 -0
  285. data/lib/chef/resource/ruby_block.rb +1 -1
  286. data/lib/chef/resource/scm/_scm.rb +48 -0
  287. data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
  288. data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
  289. data/lib/chef/resource/script.rb +6 -3
  290. data/lib/chef/resource/service.rb +6 -7
  291. data/lib/chef/resource/smartos_package.rb +9 -1
  292. data/lib/chef/resource/snap_package.rb +3 -1
  293. data/lib/chef/resource/solaris_package.rb +9 -1
  294. data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
  295. data/lib/chef/resource/sudo.rb +9 -9
  296. data/lib/chef/resource/support/cron.d.erb +1 -1
  297. data/lib/chef/resource/support/cron_access.erb +1 -1
  298. data/lib/chef/resource/support/sudoer.erb +1 -2
  299. data/lib/chef/resource/support/ulimit.erb +41 -0
  300. data/lib/chef/resource/swap_file.rb +5 -3
  301. data/lib/chef/resource/sysctl.rb +2 -2
  302. data/lib/chef/resource/systemd_unit.rb +4 -2
  303. data/lib/chef/resource/template.rb +0 -1
  304. data/lib/chef/resource/timezone.rb +7 -18
  305. data/lib/chef/resource/user.rb +1 -3
  306. data/lib/chef/resource/user/aix_user.rb +0 -2
  307. data/lib/chef/resource/user/dscl_user.rb +1 -1
  308. data/lib/chef/resource/user/linux_user.rb +0 -2
  309. data/lib/chef/resource/user/mac_user.rb +1 -1
  310. data/lib/chef/resource/user/pw_user.rb +0 -2
  311. data/lib/chef/resource/user/solaris_user.rb +0 -2
  312. data/lib/chef/resource/user/windows_user.rb +0 -2
  313. data/lib/chef/resource/user_ulimit.rb +114 -0
  314. data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
  315. data/lib/chef/resource/windows_ad_join.rb +19 -6
  316. data/lib/chef/resource/windows_auto_run.rb +0 -1
  317. data/lib/chef/resource/windows_certificate.rb +1 -1
  318. data/lib/chef/resource/windows_dfs_folder.rb +0 -1
  319. data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
  320. data/lib/chef/resource/windows_dfs_server.rb +0 -1
  321. data/lib/chef/resource/windows_dns_record.rb +0 -1
  322. data/lib/chef/resource/windows_dns_zone.rb +0 -1
  323. data/lib/chef/resource/windows_env.rb +2 -3
  324. data/lib/chef/resource/windows_feature.rb +2 -2
  325. data/lib/chef/resource/windows_feature_dism.rb +9 -22
  326. data/lib/chef/resource/windows_feature_powershell.rb +17 -82
  327. data/lib/chef/resource/windows_firewall_rule.rb +119 -10
  328. data/lib/chef/resource/windows_font.rb +1 -3
  329. data/lib/chef/resource/windows_package.rb +13 -4
  330. data/lib/chef/resource/windows_pagefile.rb +0 -1
  331. data/lib/chef/resource/windows_path.rb +0 -1
  332. data/lib/chef/resource/windows_printer.rb +0 -1
  333. data/lib/chef/resource/windows_printer_port.rb +0 -1
  334. data/lib/chef/resource/windows_script.rb +3 -4
  335. data/lib/chef/resource/windows_security_policy.rb +90 -0
  336. data/lib/chef/resource/windows_service.rb +45 -31
  337. data/lib/chef/resource/windows_share.rb +3 -7
  338. data/lib/chef/resource/windows_shortcut.rb +0 -1
  339. data/lib/chef/resource/windows_task.rb +14 -15
  340. data/lib/chef/resource/windows_uac.rb +0 -1
  341. data/lib/chef/resource/windows_user_privilege.rb +157 -0
  342. data/lib/chef/resource/windows_workgroup.rb +0 -1
  343. data/lib/chef/resource/yum_package.rb +3 -1
  344. data/lib/chef/resource/yum_repository.rb +2 -1
  345. data/lib/chef/resource/zypper_package.rb +3 -2
  346. data/lib/chef/resource/zypper_repository.rb +2 -1
  347. data/lib/chef/resource_builder.rb +8 -0
  348. data/lib/chef/resource_inspector.rb +6 -6
  349. data/lib/chef/resource_resolver.rb +7 -14
  350. data/lib/chef/resources.rb +11 -3
  351. data/lib/chef/role.rb +2 -2
  352. data/lib/chef/run_context/cookbook_compiler.rb +29 -5
  353. data/lib/chef/shell.rb +23 -32
  354. data/lib/chef/shell/shell_session.rb +0 -2
  355. data/lib/chef/util/diff.rb +1 -1
  356. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  357. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  358. data/lib/chef/util/powershell/cmdlet.rb +1 -1
  359. data/lib/chef/version.rb +2 -2
  360. data/lib/chef/version_string.rb +1 -1
  361. data/lib/chef/win32/api/file.rb +18 -18
  362. data/lib/chef/win32/api/security.rb +6 -0
  363. data/lib/chef/win32/file.rb +3 -11
  364. data/lib/chef/win32/process.rb +2 -2
  365. data/lib/chef/win32/security.rb +40 -2
  366. data/spec/functional/assets/inittest +8 -7
  367. data/spec/functional/knife/ssh_spec.rb +27 -23
  368. data/spec/functional/resource/aix_service_spec.rb +1 -0
  369. data/spec/functional/resource/aixinit_service_spec.rb +8 -7
  370. data/spec/functional/resource/apt_package_spec.rb +1 -0
  371. data/spec/functional/resource/bff_spec.rb +2 -2
  372. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  373. data/spec/functional/resource/cron_spec.rb +11 -29
  374. data/spec/functional/resource/dnf_package_spec.rb +441 -156
  375. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  376. data/spec/functional/resource/git_spec.rb +184 -134
  377. data/spec/functional/resource/insserv_spec.rb +6 -5
  378. data/spec/functional/resource/link_spec.rb +17 -17
  379. data/spec/functional/resource/locale_spec.rb +13 -2
  380. data/spec/functional/resource/powershell_script_spec.rb +7 -68
  381. data/spec/functional/resource/rpm_spec.rb +2 -2
  382. data/spec/functional/resource/user/dscl_spec.rb +2 -2
  383. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  384. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  385. data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
  386. data/spec/functional/resource/windows_task_spec.rb +8 -8
  387. data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
  388. data/spec/functional/run_lock_spec.rb +1 -2
  389. data/spec/functional/shell_spec.rb +6 -6
  390. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  391. data/spec/functional/version_spec.rb +1 -1
  392. data/spec/functional/win32/registry_spec.rb +0 -6
  393. data/spec/functional/win32/security_spec.rb +22 -0
  394. data/spec/functional/win32/service_manager_spec.rb +1 -1
  395. data/spec/integration/client/client_spec.rb +123 -2
  396. data/spec/integration/knife/cookbook_show_spec.rb +28 -26
  397. data/spec/integration/knife/data_bag_show_spec.rb +1 -1
  398. data/spec/integration/knife/raw_spec.rb +30 -2
  399. data/spec/integration/knife/show_spec.rb +32 -3
  400. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  401. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
  402. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  403. data/spec/integration/recipes/noop_resource_spec.rb +1 -1
  404. data/spec/integration/recipes/notifies_spec.rb +50 -21
  405. data/spec/integration/recipes/notifying_block_spec.rb +9 -6
  406. data/spec/integration/recipes/provider_choice.rb +2 -0
  407. data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
  408. data/spec/integration/recipes/resource_action_spec.rb +16 -11
  409. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
  410. data/spec/integration/recipes/resource_load_spec.rb +133 -13
  411. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  412. data/spec/integration/recipes/use_partial_spec.rb +112 -0
  413. data/spec/integration/solo/solo_spec.rb +3 -3
  414. data/spec/scripts/ssl-serve.rb +1 -1
  415. data/spec/spec_helper.rb +11 -14
  416. data/spec/support/chef_helpers.rb +2 -2
  417. data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
  418. data/spec/support/platform_helpers.rb +44 -19
  419. data/spec/support/platforms/win32/spec_service.rb +1 -1
  420. data/spec/support/recipe_dsl_helper.rb +83 -0
  421. data/spec/support/shared/functional/directory_resource.rb +1 -1
  422. data/spec/support/shared/functional/execute_resource.rb +1 -1
  423. data/spec/support/shared/functional/file_resource.rb +3 -3
  424. data/spec/support/shared/functional/win32_service.rb +1 -1
  425. data/spec/support/shared/functional/windows_script.rb +5 -18
  426. data/spec/support/shared/integration/knife_support.rb +14 -8
  427. data/spec/unit/application/apply_spec.rb +3 -0
  428. data/spec/unit/application/client_spec.rb +5 -1
  429. data/spec/unit/application_spec.rb +1 -9
  430. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
  431. data/spec/unit/client_spec.rb +7 -5
  432. data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
  433. data/spec/unit/cookbook/metadata_spec.rb +38 -19
  434. data/spec/unit/data_bag_spec.rb +1 -1
  435. data/spec/unit/data_collector_spec.rb +38 -17
  436. data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
  437. data/spec/unit/environment_spec.rb +7 -7
  438. data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
  439. data/spec/unit/file_access_control_spec.rb +1 -1
  440. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
  441. data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
  442. data/spec/unit/knife/bootstrap_spec.rb +36 -54
  443. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  444. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  445. data/spec/unit/knife/cookbook_show_spec.rb +1 -0
  446. data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
  447. data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
  448. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  449. data/spec/unit/knife/core/ui_spec.rb +16 -0
  450. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
  451. data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
  452. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  453. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  454. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  455. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  456. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  457. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  458. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  459. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  460. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  461. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  462. data/spec/unit/knife/ssh_spec.rb +10 -113
  463. data/spec/unit/knife/status_spec.rb +1 -1
  464. data/spec/unit/knife/supermarket_share_spec.rb +3 -5
  465. data/spec/unit/knife_spec.rb +18 -0
  466. data/spec/unit/lwrp_spec.rb +4 -4
  467. data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
  468. data/spec/unit/mixin/securable_spec.rb +1 -0
  469. data/spec/unit/mixin/user_context_spec.rb +9 -1
  470. data/spec/unit/node/attribute_spec.rb +2 -2
  471. data/spec/unit/node_spec.rb +24 -0
  472. data/spec/unit/platform/query_helpers_spec.rb +0 -143
  473. data/spec/unit/property/state_spec.rb +12 -7
  474. data/spec/unit/property/validation_spec.rb +25 -1
  475. data/spec/unit/property_spec.rb +18 -15
  476. data/spec/unit/provider/apt_preference_spec.rb +14 -10
  477. data/spec/unit/provider/apt_repository_spec.rb +9 -11
  478. data/spec/unit/provider/apt_update_spec.rb +12 -11
  479. data/spec/unit/provider/cookbook_file_spec.rb +4 -4
  480. data/spec/unit/provider/cron_spec.rb +2 -2
  481. data/spec/unit/provider/directory_spec.rb +4 -15
  482. data/spec/unit/provider/file_spec.rb +4 -4
  483. data/spec/unit/provider/git_spec.rb +44 -4
  484. data/spec/unit/provider/link_spec.rb +0 -1
  485. data/spec/unit/provider/log_spec.rb +3 -3
  486. data/spec/unit/provider/mdadm_spec.rb +3 -3
  487. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  488. data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
  489. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  490. data/spec/unit/provider/package/homebrew_spec.rb +280 -174
  491. data/spec/unit/provider/package/msu_spec.rb +3 -3
  492. data/spec/unit/provider/package/pacman_spec.rb +65 -147
  493. data/spec/unit/provider/package/powershell_spec.rb +88 -96
  494. data/spec/unit/provider/package/rubygems_spec.rb +221 -31
  495. data/spec/unit/provider/package/snap_spec.rb +1 -1
  496. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  497. data/spec/unit/provider/package/windows_spec.rb +53 -30
  498. data/spec/unit/provider/powershell_script_spec.rb +21 -61
  499. data/spec/unit/provider/remote_file_spec.rb +3 -4
  500. data/spec/unit/provider/service/arch_service_spec.rb +2 -3
  501. data/spec/unit/provider/service/debian_service_spec.rb +35 -14
  502. data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
  503. data/spec/unit/provider/service/macosx_spec.rb +210 -214
  504. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  505. data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
  506. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  507. data/spec/unit/provider/service/windows_spec.rb +6 -2
  508. data/spec/unit/provider/subversion_spec.rb +4 -2
  509. data/spec/unit/provider/systemd_unit_spec.rb +24 -28
  510. data/spec/unit/provider/template_spec.rb +3 -4
  511. data/spec/unit/provider/zypper_repository_spec.rb +25 -75
  512. data/spec/unit/provider_resolver_spec.rb +11 -11
  513. data/spec/unit/provider_spec.rb +0 -1
  514. data/spec/unit/recipe_spec.rb +68 -0
  515. data/spec/unit/resource/alternatives_spec.rb +120 -0
  516. data/spec/unit/resource/apt_preference_spec.rb +0 -18
  517. data/spec/unit/resource/apt_repository_spec.rb +0 -18
  518. data/spec/unit/resource/apt_update_spec.rb +0 -18
  519. data/spec/unit/resource/archive_file_spec.rb +2 -11
  520. data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
  521. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
  522. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
  523. data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
  524. data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
  525. data/spec/unit/resource/cron_d_spec.rb +6 -48
  526. data/spec/unit/resource/cron_spec.rb +4 -10
  527. data/spec/unit/resource/gem_package_spec.rb +3 -3
  528. data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
  529. data/spec/unit/resource/link_spec.rb +0 -4
  530. data/spec/unit/resource/locale_spec.rb +0 -34
  531. data/spec/unit/resource/ohai_spec.rb +56 -2
  532. data/spec/unit/resource/plist_spec.rb +130 -0
  533. data/spec/unit/resource/powershell_script_spec.rb +0 -5
  534. data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
  535. data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
  536. data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
  537. data/spec/unit/resource/service_spec.rb +4 -0
  538. data/spec/unit/resource/user_spec.rb +2 -2
  539. data/spec/unit/resource/user_ulimit_spec.rb +53 -0
  540. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  541. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  542. data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
  543. data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
  544. data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
  545. data/spec/unit/resource/windows_package_spec.rb +4 -1
  546. data/spec/unit/resource/windows_service_spec.rb +9 -0
  547. data/spec/unit/resource/windows_task_spec.rb +1 -1
  548. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  549. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  550. data/spec/unit/resource_reporter_spec.rb +1 -5
  551. data/spec/unit/resource_spec.rb +11 -4
  552. data/spec/unit/role_spec.rb +11 -11
  553. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  554. data/spec/unit/run_context_spec.rb +1 -1
  555. data/spec/unit/search/query_spec.rb +1 -1
  556. data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
  557. data/spec/unit/win32/security_spec.rb +3 -4
  558. data/tasks/rspec.rb +1 -1
  559. metadata +116 -87
  560. data/lib/chef/dsl/core.rb +0 -52
  561. data/lib/chef/knife/cookbook_site_share.rb +0 -41
  562. data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
  563. data/lib/chef/provider/apt_preference.rb +0 -93
  564. data/lib/chef/provider/apt_repository.rb +0 -358
  565. data/lib/chef/provider/apt_update.rb +0 -79
  566. data/lib/chef/provider/log.rb +0 -43
  567. data/lib/chef/provider/mdadm.rb +0 -85
  568. data/lib/chef/provider/ohai.rb +0 -45
  569. data/lib/chef/resource/git.rb +0 -37
  570. data/spec/functional/resource/windows_font_spec.rb +0 -49
  571. data/spec/unit/provider/ohai_spec.rb +0 -84
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5c6e82dd6dfdbca6b31abdb8e0274a500e43596747be69367b2660853320740
4
- data.tar.gz: 909f851b91810d0f80e75fc1db451044f09730d796aa88c88063e3fc6adefda0
3
+ metadata.gz: 2ad66f754d1e6094ff88edbf998626e7e746718e5781e86dd4b78ff1d21e75f7
4
+ data.tar.gz: bdb41d8a4bb0377bb2dfb893dd03a633df245007aa1802a28e1c1f96b6e6894e
5
5
  SHA512:
6
- metadata.gz: 7a423e6645556ee0f38e290a5fc4de7167dea5f6e73c9b59334805412395d06499f9c27b680222e54366100f3870d2169e62218900b08ff5d8054c797febf1b3
7
- data.tar.gz: 7da75e07367684170ca55bbcada8c72e3cc3101c6910bb21fa28ddd4cf937d8efdf41788690b568dafd854513588485f906e1aa36787cdd81b6d328ab151dfa6
6
+ metadata.gz: 222caf878f4fac2f06bbecc75a3b15e1612b4c6653bf3f4344cf768445c48c9499b47ecfadb7be32ec2fdf1a4111cde31ff8c315b878b34e3fbf77d34f6dc211
7
+ data.tar.gz: 91655f57a638806ef03f768ac2ff639cc746d8ae67a160c970bcf08e62a68ec8f448fe762bb726044eb7f6692e7f9d3c797db19a979d6bfe1f9e536900c3accf
data/Gemfile CHANGED
@@ -7,36 +7,36 @@ source "https://rubygems.org"
7
7
  # of bundler versions prior to 1.12.0 (https://github.com/bundler/bundler/commit/193a14fe5e0d56294c7b370a0e59f93b2c216eed)
8
8
  gem "chef", path: "."
9
9
 
10
- gem "ohai", git: "https://github.com/chef/ohai.git", branch: "15-stable"
10
+ gem "ohai", git: "https://github.com/chef/ohai.git", branch: "master"
11
11
 
12
- gem "chef-utils", path: File.expand_path("chef-utils", __dir__) if File.exist?(File.expand_path("chef-utils", __dir__))
13
- gem "chef-config", path: File.expand_path("chef-config", __dir__) if File.exist?(File.expand_path("chef-config", __dir__))
12
+ gem "chef-utils", path: File.expand_path("../chef-utils", __FILE__) if File.exist?(File.expand_path("../chef-utils", __FILE__))
13
+ gem "chef-config", path: File.expand_path("../chef-config", __FILE__) if File.exist?(File.expand_path("../chef-config", __FILE__))
14
14
 
15
- if File.exist?(File.expand_path("chef-bin", __dir__))
15
+ if File.exist?(File.expand_path("../chef-bin", __FILE__))
16
16
  # bundling in a git checkout
17
- gem "chef-bin", path: File.expand_path("chef-bin", __dir__)
17
+ gem "chef-bin", path: File.expand_path("../chef-bin", __FILE__)
18
18
  else
19
19
  # bundling in omnibus
20
20
  gem "chef-bin" # rubocop:disable Bundler/DuplicatedGem
21
21
  end
22
22
 
23
- gem "cheffish", "~> 14"
24
-
25
- gem "chef-telemetry", ">=1.0.8" # 1.0.8 removes the http dep
23
+ gem "cheffish", ">= 14"
26
24
 
27
25
  group(:omnibus_package) do
28
26
  gem "appbundler"
29
27
  gem "rb-readline"
30
28
  gem "inspec-core", "~> 4.18"
31
- gem "inspec-core-bin", "~> 4.24" # need to provide the binaries for inspec
29
+ gem "inspec-core-bin", "~> 4.18" # need to provide the binaries for inspec
32
30
  gem "chef-vault"
31
+ gem "ed25519" # ed25519 ssh key support done here as it's a native gem we can't put in train
32
+ gem "bcrypt_pbkdf", ">= 1.1.0.rc1" # ed25519 ssh key support done here as it's a native gem we can't put in train
33
33
  end
34
34
 
35
35
  group(:omnibus_package, :pry) do
36
36
  gem "pry"
37
37
  gem "pry-byebug"
38
38
  gem "pry-remote"
39
- gem "pry-stack_explorer", "~> 0.4.0" # pin to allow Ruby 2.5
39
+ gem "pry-stack_explorer"
40
40
  end
41
41
 
42
42
  group(:docgen) do
@@ -55,21 +55,18 @@ group(:ruby_shadow) do
55
55
  end
56
56
 
57
57
  group(:development, :test) do
58
- # we pin rake as a copy of rake is installed from the ruby source
59
- # if you bump the ruby version you should confirm we don't end up with
60
- # two rake gems installed again
61
- gem "rake", "<= 12.3.3"
62
-
58
+ gem "rake"
63
59
  gem "rspec-core", "~> 3.5"
64
60
  gem "rspec-mocks", "~> 3.5"
65
61
  gem "rspec-expectations", "~> 3.5"
66
- gem "rspec_junit_formatter", "~> 0.4.0"
62
+ gem "rspec_junit_formatter", "~> 0.2.0"
67
63
  gem "webmock"
68
64
  gem "fauxhai-ng" # for chef-utils gem
69
65
  end
70
66
 
71
67
  group(:chefstyle) do
72
- gem "chefstyle", "1.2.1" # pinned so we don't have to fixup 2 branches for new rules
68
+ # for testing new chefstyle rules
69
+ gem "chefstyle", git: "https://github.com/chef/chefstyle.git", branch: "master"
73
70
  end
74
71
 
75
72
  instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
@@ -82,9 +79,6 @@ eval_gemfile("./Gemfile.local") if File.exist?("./Gemfile.local")
82
79
  # For FFI to call into PowerShell we need the binaries and assemblies located
83
80
  # in the Ruby bindir.
84
81
  # The Powershell DLL source lives here: https://github.com/chef/chef-powershell-shim
85
- # Every merge into that repo triggers a Habitat build and promotion. Running
86
- # the rake :update_chef_exec_dll task in this (chef/chef) repo will pull down
87
- # the built packages and copy the binaries to distro/ruby_bin_folder.
88
82
  #
89
83
  # We copy (and overwrite) these files every time "bundle <exec|install>" is
90
84
  # executed, just in case they have changed.
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Chef Infra
2
2
  [![Code Climate](https://codeclimate.com/github/chef/chef.svg)](https://codeclimate.com/github/chef/chef)
3
- [![Build status](https://badge.buildkite.com/13b36bf2d9116e3527ff9893e7edd82cb183027941fef3d24e.svg)](https://buildkite.com/chef-oss/chef-chef-chef-15-verify)
3
+ [![Build Status](https://badge.buildkite.com/c82093430ceec7d27af05febb9dcafe3aa331fff9d74c0ab9d.svg?branch=master)](https://buildkite.com/chef-oss/chef-chef-master-verify)
4
4
  [![Gem Version](https://badge.fury.io/rb/chef.svg)](https://badge.fury.io/rb/chef)
5
- [![](https://img.shields.io/badge/Release%20Policy-Cadence%20Release-brightgreen.svg)](https://github.com/chef/chef/blob/chef-15/docs/dev/design_documents/client_release_cadence.md)
5
+ [![](https://img.shields.io/badge/Release%20Policy-Cadence%20Release-brightgreen.svg)](https://github.com/chef/chef/blob/v15.2.21/docs/dev/design_documents/client_release_cadence.md)
6
6
 
7
7
  **Umbrella Project**: [Chef Infra](https://github.com/chef/chef-oss-practices/blob/master/projects/chef-infra.md)
8
8
 
@@ -18,7 +18,7 @@ Chef Infra is a configuration management tool designed to bring automation to yo
18
18
 
19
19
  ### Want to try Chef Infra?
20
20
 
21
- For Chef Infra usage, please refer to [Learn Chef](https://learn.chef.io/), our self-paced, entirely free learning platform. Learn Chef also includes module-based training for Chef Infra, as well as Chef Automate, Chef Habitat, and Chef InSpec.
21
+ For Chef Infra usage, please refer to our [Learn Chef Rally](https://learn.chef.io/) website, which includes module-based training for Chef Infra, as well as Automate, Habitat, and InSpec.
22
22
 
23
23
  Other useful resources for Chef Infra users:
24
24
 
@@ -26,13 +26,13 @@ Other useful resources for Chef Infra users:
26
26
  - Source: <https://github.com/chef/chef/tree/master>
27
27
  - Tickets/Issues: <https://github.com/chef/chef/issues>
28
28
  - Slack: [Chef Community Slack](https://community-slack.chef.io/)
29
- - Mailing list/Forum: <https://discourse.chef.io/>
29
+ - Mailing list: <https://discourse.chef.io>
30
30
 
31
31
  ## Reporting Issues
32
32
 
33
33
  Issues can be reported by using [GitHub Issues](https://github.com/chef/chef/issues).
34
34
 
35
- Note that this repository is primarily for reporting issues in the chef-client itself. For reporting issues against other Chef projects, please look up the appropriate repository. If you're unsure where to submit an issue, please ask in the #chef-dev channel in [Chef Community Slack](https://community-slack.chef.io/).
35
+ Note that this repository is primarily for reporting issues in the chef-client itself. For reporting issues against other Chef projects, please look up the appropriate repository. If you're unsure where to submit an issue, please ask in the #chef-dev channel in [Chef Community Slack](https://community-slack.chef.io/).
36
36
 
37
37
  ## How We Build & Release Chef
38
38
 
@@ -46,7 +46,7 @@ We'd love to have your help developing Chef Infra. See our [Contributing Documen
46
46
 
47
47
  ## License and Copyright
48
48
 
49
- Copyright 2008-2021, Chef Software, Inc.
49
+ Copyright 2008-2019, Chef Software, Inc.
50
50
 
51
51
  ```
52
52
  Licensed under the Apache License, Version 2.0 (the "License");
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Daniel DeLeo (<dan@chef.io>)
4
- # Copyright:: Copyright, Chef Software Inc.
4
+ # Copyright:: Copyright 2008-2019, 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");
@@ -17,20 +17,16 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- # we need this to resolve files required by lib/chef/dist
21
- $LOAD_PATH.unshift(File.expand_path("chef-config/lib", __dir__))
22
-
23
20
  begin
24
21
  require_relative "tasks/rspec"
25
22
  require_relative "tasks/dependencies"
23
+ require_relative "tasks/announce"
26
24
  require_relative "tasks/docs"
27
- require_relative "lib/chef/dist" unless defined?(Chef::Dist)
25
+ require_relative "lib/chef/dist"
28
26
  rescue LoadError => e
29
27
  puts "Skipping missing rake dep: #{e}"
30
28
  end
31
29
 
32
- require "bundler/gem_helper"
33
-
34
30
  ENV["CHEF_LICENSE"] = "accept-no-persist"
35
31
 
36
32
  # hack the chef-config install to run before the traditional install task
@@ -41,8 +37,7 @@ task :super_install do
41
37
  sh("rake install")
42
38
  end
43
39
 
44
- # Templating the powershell extensions so we can inject distro constants
45
- require "erb"
40
+ # Templating the powershell extensions so we can inject distro constants
46
41
  template_file = ::File.join(::File.dirname(__FILE__), "distro", "templates", "powershell", "chef", "chef.psm1.erb")
47
42
  psm1_path = ::File.join(::File.dirname(__FILE__), "distro", "powershell", "chef")
48
43
  FileUtils.mkdir_p psm1_path
@@ -60,20 +55,8 @@ Bundler::GemHelper.install_tasks name: gemspec
60
55
  # this gets appended to the normal bundler install helper
61
56
  task :install do
62
57
  chef_bin_path = ::File.join(::File.dirname(__FILE__), "chef-bin")
63
- Dir.chdir(chef_bin_path) do
64
- sh("rake install:force")
65
- end
66
- end
67
-
68
- namespace :install do
69
- task local: "super_install"
70
-
71
- task :local do
72
- chef_bin_path = ::File.join(::File.dirname(__FILE__), "chef-bin")
73
- Dir.chdir(chef_bin_path) do
74
- sh("rake install:local")
75
- end
76
- end
58
+ Dir.chdir(chef_bin_path)
59
+ sh("rake install:force")
77
60
  end
78
61
 
79
62
  task :pedant, :chef_zero_spec
@@ -99,3 +82,15 @@ begin
99
82
  rescue LoadError
100
83
  puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
101
84
  end
85
+
86
+ begin
87
+ require "yard"
88
+ DOC_FILES = [ "spec/tiny_server.rb", "lib/**/*.rb" ].freeze
89
+
90
+ YARD::Rake::YardocTask.new(:docs) do |t|
91
+ t.files = DOC_FILES
92
+ t.options = ["--format", "html"]
93
+ end
94
+ rescue LoadError
95
+ puts "yard is not available. bundle install first to make sure all dependencies are installed."
96
+ end
@@ -1,4 +1,4 @@
1
- gemspec = eval(IO.read(File.expand_path("chef.gemspec", __dir__)))
1
+ gemspec = eval(IO.read(File.expand_path("../chef.gemspec", __FILE__)))
2
2
 
3
3
  gemspec.platform = Gem::Platform.new(%w{universal mingw32})
4
4
 
@@ -10,12 +10,12 @@ gemspec.add_dependency "win32-event", "~> 0.6.1"
10
10
  gemspec.add_dependency "win32-eventlog", "0.6.3"
11
11
  gemspec.add_dependency "win32-mmap", "~> 0.4.1"
12
12
  gemspec.add_dependency "win32-mutex", "~> 0.4.2"
13
- gemspec.add_dependency "win32-process", "~> 0.9"
13
+ gemspec.add_dependency "win32-process", "~> 0.8.2"
14
14
  gemspec.add_dependency "win32-service", ">= 2.1.5", "< 3.0"
15
15
  gemspec.add_dependency "wmi-lite", "~> 1.0"
16
16
  gemspec.add_dependency "win32-taskscheduler", "~> 2.0"
17
- gemspec.add_dependency "iso8601", ">= 0.12.1", "< 0.14" # validate 0.14 when it comes out
18
- gemspec.add_dependency "win32-certstore", "~> 0.5.0" # 0.5+ required for specifying user vs. system store
17
+ gemspec.add_dependency "iso8601", "~> 0.12.1"
18
+ gemspec.add_dependency "win32-certstore", "~> 0.3"
19
19
  gemspec.extensions << "ext/win32-eventlog/Rakefile"
20
20
  gemspec.files += Dir.glob("{distro,ext}/**/*")
21
21
 
data/chef.gemspec CHANGED
@@ -1,13 +1,4 @@
1
1
  $:.unshift(File.dirname(__FILE__) + "/lib")
2
- vs_path = File.expand_path("chef-utils/lib/chef-utils/version_string.rb", __dir__)
3
-
4
- if File.exist?(vs_path)
5
- # this is the moral equivalent of a require_relative since bundler makes require_relative here fail hard
6
- eval(IO.read(vs_path))
7
- else
8
- # if the path doesn't exist then we're just in the wild gem and not in the git repo
9
- require "chef-utils/version_string"
10
- end
11
2
  require "chef/version"
12
3
 
13
4
  Gem::Specification.new do |s|
@@ -22,40 +13,42 @@ Gem::Specification.new do |s|
22
13
  s.email = "adam@chef.io"
23
14
  s.homepage = "https://www.chef.io"
24
15
 
25
- s.required_ruby_version = ">= 2.5.0"
16
+ s.required_ruby_version = ">= 2.6.0"
26
17
 
27
18
  s.add_dependency "chef-config", "= #{Chef::VERSION}"
28
19
  s.add_dependency "chef-utils", "= #{Chef::VERSION}"
29
20
  s.add_dependency "train-core", "~> 3.2", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
30
21
  s.add_dependency "train-winrm", ">= 0.2.5"
31
22
 
32
- s.add_dependency "license-acceptance", ">= 1.0.5", "< 3"
23
+ s.add_dependency "license-acceptance", "~> 1.0", ">= 1.0.5"
33
24
  s.add_dependency "mixlib-cli", ">= 2.1.1", "< 3.0"
34
25
  s.add_dependency "mixlib-log", ">= 2.0.3", "< 4.0"
35
26
  s.add_dependency "mixlib-authentication", ">= 2.1", "< 4"
36
27
  s.add_dependency "mixlib-shellout", ">= 3.0.3", "< 4.0"
37
28
  s.add_dependency "mixlib-archive", ">= 0.4", "< 2.0"
38
- s.add_dependency "ohai", "~> 15.0"
29
+ s.add_dependency "ohai", "~> 16.0"
39
30
 
40
31
  s.add_dependency "ffi", "~> 1.9", ">= 1.9.25"
41
32
  s.add_dependency "ffi-yajl", "~> 2.2"
42
- s.add_dependency "net-ssh", ">= 4.2", "< 7"
33
+ s.add_dependency "net-ssh", ">= 4.2", "< 6"
43
34
  s.add_dependency "net-ssh-multi", "~> 1.2", ">= 1.2.1"
44
- s.add_dependency "net-sftp", ">= 2.1.2", "< 4.0"
35
+ s.add_dependency "net-sftp", "~> 2.1", ">= 2.1.2"
45
36
  s.add_dependency "ed25519", "~> 1.2" # ed25519 ssh key support
46
37
  s.add_dependency "bcrypt_pbkdf", "~> 1.0" # ed25519 ssh key support
47
38
  s.add_dependency "highline", ">= 1.6.9", "< 3"
48
39
  s.add_dependency "tty-screen", "~> 0.6" # knife list
40
+ s.add_dependency "pastel" # knife ui.color
49
41
  s.add_dependency "erubis", "~> 2.7"
50
- s.add_dependency "diff-lcs", ">= 1.2.4", "< 1.4.0" # 1.4 breaks output
51
- s.add_dependency "ffi-libarchive", "~> 1.0", ">= 1.0.3"
42
+ s.add_dependency "diff-lcs", "~> 1.2", ">= 1.2.4"
43
+ s.add_dependency "ffi-libarchive"
52
44
  s.add_dependency "chef-zero", ">= 14.0.11"
45
+ s.add_dependency "chef-vault"
53
46
 
54
47
  s.add_dependency "plist", "~> 3.2"
55
48
  s.add_dependency "iniparse", "~> 1.4"
56
49
  s.add_dependency "addressable"
57
50
  s.add_dependency "syslog-logger", "~> 1.6"
58
- s.add_dependency "uuidtools", ">= 2.1.5", "< 3.0"
51
+ s.add_dependency "uuidtools", "~> 2.1.5"
59
52
 
60
53
  s.add_dependency "proxifier", "~> 1.0"
61
54
 
@@ -71,13 +64,4 @@ Gem::Specification.new do |s|
71
64
  Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) } +
72
65
  Dir.glob("*.gemspec") +
73
66
  Dir.glob("tasks/rspec.rb")
74
-
75
- s.metadata = {
76
- "bug_tracker_uri" => "https://github.com/chef/chef/issues",
77
- "changelog_uri" => "https://github.com/chef/chef/blob/master/CHANGELOG.md",
78
- "documentation_uri" => "https://docs.chef.io/",
79
- "homepage_uri" => "https://www.chef.io",
80
- "mailing_list_uri" => "https://discourse.chef.io/",
81
- "source_code_uri" => "https://github.com/chef/chef/",
82
- }
83
67
  end
@@ -358,7 +358,7 @@ function Run-RubyCommand($command, $argList) {
358
358
  # When arguments come into this method, the standard PS rules for interpreting cmdlet arguments
359
359
  # apply. When using & (call operator) and providing an array of arguments, powershell (verified
360
360
  # on PS 4.0 on Windows Server 2012R2) will not evaluate them but (contrary to documentation),
361
- # it will still marginally interpret them. The behavior of PS 5.0 seems to be different but
361
+ # it will still marginally interpret them. The behaviour of PS 5.0 seems to be different but
362
362
  # ignore that for now. If any of the provided arguments has a space in it, powershell checks
363
363
  # the first and last character to ensure that they are " characters (and that's all it checks).
364
364
  # If they are not, it will blindly surround that argument with " characters. It won't do this
@@ -381,10 +381,10 @@ function Run-RubyCommand($command, $argList) {
381
381
  # Command line:
382
382
  # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" "foo '' bar "baz"" "foo '' bar "baz""
383
383
  #
384
- # $x = "abc'123'nospace`"lol`"!!!"
384
+ # $x = "abc'123'nospace`"lulz`"!!!"
385
385
  # & EchoArgs @($x, $x)
386
386
  # Command line:
387
- # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lol"!!! abc'123'nospace"lol"!!!
387
+ # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lulz"!!! abc'123'nospace"lulz"!!!
388
388
  #
389
389
  # $x = "`"`"Look ma! Tonnes of spaces! 'foo' 'bar'`"`""
390
390
  # & EchoArgs @($x, $x)
@@ -358,7 +358,7 @@ function Run-RubyCommand($command, $argList) {
358
358
  # When arguments come into this method, the standard PS rules for interpreting cmdlet arguments
359
359
  # apply. When using & (call operator) and providing an array of arguments, powershell (verified
360
360
  # on PS 4.0 on Windows Server 2012R2) will not evaluate them but (contrary to documentation),
361
- # it will still marginally interpret them. The behavior of PS 5.0 seems to be different but
361
+ # it will still marginally interpret them. The behaviour of PS 5.0 seems to be different but
362
362
  # ignore that for now. If any of the provided arguments has a space in it, powershell checks
363
363
  # the first and last character to ensure that they are " characters (and that's all it checks).
364
364
  # If they are not, it will blindly surround that argument with " characters. It won't do this
@@ -381,10 +381,10 @@ function Run-RubyCommand($command, $argList) {
381
381
  # Command line:
382
382
  # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" "foo '' bar "baz"" "foo '' bar "baz""
383
383
  #
384
- # $x = "abc'123'nospace`"lol`"!!!"
384
+ # $x = "abc'123'nospace`"lulz`"!!!"
385
385
  # & EchoArgs @($x, $x)
386
386
  # Command line:
387
- # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lol"!!! abc'123'nospace"lol"!!!
387
+ # "C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe" abc'123'nospace"lulz"!!! abc'123'nospace"lulz"!!!
388
388
  #
389
389
  # $x = "`"`"Look ma! Tonnes of spaces! 'foo' 'bar'`"`""
390
390
  # & EchoArgs @($x, $x)
@@ -24,10 +24,6 @@ class Chef
24
24
 
25
25
  class ActionRecord
26
26
 
27
- # XXX: this is buggy since we (ab)use this resource for "after" state and it may be
28
- # inaccurate and it may be mutated by the user. A third after_resource should be added
29
- # to new_resource + current_resource to properly implement this.
30
- #
31
27
  # @return [Chef::Resource] The declared resource state.
32
28
  #
33
29
  attr_accessor :new_resource
@@ -38,6 +34,10 @@ class Chef
38
34
  # implementation, but must be handled), or for unprocessed resources.
39
35
  attr_accessor :current_resource
40
36
 
37
+ # @return [Chef::Resource] the after_resource object (after-state). This can be nil for
38
+ # non custom-resources or resources that do not implement load_after_resource.
39
+ attr_accessor :after_resource
40
+
41
41
  # @return [Symbol] # The action that was run (or scheduled to run in the case of "unprocessed" resources).
42
42
  attr_accessor :action
43
43
 
@@ -161,7 +161,7 @@ class Chef
161
161
  pending_updates << ActionRecord.new(new_resource, action, pending_updates.length)
162
162
  end
163
163
 
164
- # Hook called after a resource is loaded. If load_current_resource fails, this hook will
164
+ # Hook called after a current resource is loaded. If load_current_resource fails, this hook will
165
165
  # not be called and current_resource will be nil, and the resource_failed hook will be called.
166
166
  #
167
167
  # (see EventDispatch::Base#)
@@ -172,6 +172,17 @@ class Chef
172
172
  current_record.current_resource = current_resource
173
173
  end
174
174
 
175
+ # Hook called after an after resource is loaded. If load_after_resource fails, this hook will
176
+ # not be called and after_resource will be nil, and the resource_failed hook will be called.
177
+ #
178
+ # (see EventDispatch::Base#)
179
+ #
180
+ def resource_after_state_loaded(new_resource, action, after_resource)
181
+ return if consumers.empty?
182
+
183
+ current_record.after_resource = after_resource
184
+ end
185
+
175
186
  # Hook called after an action is determined to be up to date.
176
187
  #
177
188
  # (see EventDispatch::Base#)
@@ -72,14 +72,14 @@ class Chef
72
72
 
73
73
  def assert_destination_writable!
74
74
  abs_path = File.expand_path(destination)
75
- unless File.exist?(File.dirname(abs_path))
75
+ unless File.exists?(File.dirname(abs_path))
76
76
  begin
77
77
  FileUtils.mkdir_p(File.dirname(abs_path))
78
78
  rescue Errno::EACCES
79
79
  raise Chef::Exceptions::CannotWritePrivateKey, "I can't create the configuration directory at #{File.dirname(abs_path)} - check permissions?"
80
80
  end
81
81
  end
82
- if (File.exist?(abs_path) && !File.writable?(abs_path)) || !File.writable?(File.dirname(abs_path))
82
+ if (File.exists?(abs_path) && !File.writable?(abs_path)) || !File.writable?(File.dirname(abs_path))
83
83
  raise Chef::Exceptions::CannotWritePrivateKey, "I can't write your private key to #{abs_path} - check permissions?"
84
84
  end
85
85
  end
@@ -168,28 +168,11 @@ class Chef
168
168
  end
169
169
  end
170
170
 
171
- # Initialize and configure the logger.
172
- # === Loggers and Formatters
173
- # In Chef 10.x and previous, the Logger was the primary/only way that Chef
174
- # communicated information to the user. In Chef 10.14, a new system, "output
175
- # formatters" was added, and in Chef 11.0+ it is the default when running
176
- # chef in a console (detected by `STDOUT.tty?`). Because output formatters
177
- # are more complex than the logger system and users have less experience with
178
- # them, the config option `force_logger` is provided to restore the Chef 10.x
179
- # behavior.
180
- #
181
- # Conversely, for users who want formatter output even when chef is running
182
- # unattended, the `force_formatter` option is provided.
183
- #
184
- # === Auto Log Level
185
- # The `log_level` of `:auto` means `:warn` in the formatter and `:info` in
186
- # the logger.
187
- #
188
171
  def configure_logging
189
172
  configure_log_location
190
- logger.init(MonoLogger.new(chef_config[:log_location]))
191
- if want_additional_logger?
192
- configure_stdout_logger
173
+ logger.init(MonoLogger.new(chef_config[:log_location][0]))
174
+ chef_config[:log_location][1..-1].each do |log_location|
175
+ logger.loggers << MonoLogger.new(log_location)
193
176
  end
194
177
  logger.level = resolve_log_level
195
178
  rescue StandardError => error
@@ -197,30 +180,28 @@ class Chef
197
180
  Chef::Application.fatal!("Aborting due to invalid 'log_location' configuration", error)
198
181
  end
199
182
 
200
- # Turn `log_location :syslog` and `log_location :win_evt` into the
201
- # appropriate loggers.
183
+ # merge Chef::Config[:log_location] and config[:log_location_cli]
184
+ # - the nil default value of log_location_cli means STDOUT
185
+ # - the nil default value of log_location is removed
186
+ # - Arrays are supported
187
+ # - syslog + winevt are converted to those specific logger objects
188
+ #
202
189
  def configure_log_location
203
- log_location = chef_config[:log_location]
204
- return unless log_location.respond_to?(:to_sym)
205
-
206
- chef_config[:log_location] =
207
- case log_location.to_sym
208
- when :syslog then logger::Syslog.new
209
- when :win_evt then logger::WinEvt.new
210
- else log_location # Probably a path; let MonoLogger sort it out
211
- end
212
- end
190
+ log_location_cli = [ config[:log_location_cli] ].flatten.map { |log_location| log_location.nil? ? STDOUT : log_location }
213
191
 
214
- # Based on config and whether or not STDOUT is a tty, should we setup a
215
- # secondary logger for stdout?
216
- def want_additional_logger?
217
- ( Chef::Config[:log_location].class != IO ) && STDOUT.tty? && !Chef::Config[:daemonize]
218
- end
192
+ chef_config[:log_location] = [ chef_config[:log_location], log_location_cli ].flatten.compact.uniq
219
193
 
220
- def configure_stdout_logger
221
- stdout_logger = MonoLogger.new(STDOUT)
222
- stdout_logger.formatter = logger.logger.formatter
223
- logger.loggers << stdout_logger
194
+ chef_config[:log_location].map! do |log_location|
195
+ case log_location
196
+ when :syslog, "syslog"
197
+ logger::Syslog.new
198
+ when :win_evt, "win_evt"
199
+ logger::WinEvt.new
200
+ else
201
+ # should be a path or STDOUT
202
+ log_location
203
+ end
204
+ end
224
205
  end
225
206
 
226
207
  # Use of output formatters is assumed if `force_formatter` is set or if `force_logger` is not set
@@ -228,19 +209,10 @@ class Chef
228
209
  chef_config[:force_formatter] || !chef_config[:force_logger]
229
210
  end
230
211
 
231
- def auto_log_level?
232
- chef_config[:log_level] == :auto
233
- end
234
-
235
- # if log_level is `:auto`, convert it to :warn (when using output formatter)
236
- # or :info (no output formatter). See also +using_output_formatter?+
212
+ # The :auto formatter defaults to :warn with the formatter and :info with the logger
237
213
  def resolve_log_level
238
- if auto_log_level?
239
- if using_output_formatter?
240
- :warn
241
- else
242
- :info
243
- end
214
+ if chef_config[:log_level] == :auto
215
+ using_output_formatter? ? :warn : :info
244
216
  else
245
217
  chef_config[:log_level]
246
218
  end
@@ -392,7 +364,11 @@ class Chef
392
364
  Chef::FileCache.store("#{Chef::Dist::SHORT}-stacktrace.out", chef_stacktrace_out)
393
365
  logger.fatal("Stacktrace dumped to #{Chef::FileCache.load("#{Chef::Dist::SHORT}-stacktrace.out", false)}")
394
366
  logger.fatal("Please provide the contents of the stacktrace.out file if you file a bug report")
395
- logger.debug(message)
367
+ if Chef::Config[:always_dump_stacktrace]
368
+ logger.fatal(message)
369
+ else
370
+ logger.debug(message)
371
+ end
396
372
  true
397
373
  end
398
374
 
@@ -402,6 +378,9 @@ class Chef
402
378
 
403
379
  # Log a fatal error message to both STDERR and the Logger, exit the application
404
380
  def fatal!(msg, err = nil)
381
+ if Chef::Config[:always_dump_stacktrace]
382
+ msg << "\n#{err.backtrace.join("\n")}"
383
+ end
405
384
  logger.fatal(msg)
406
385
  Process.exit(normalize_exit_code(err))
407
386
  end