chef 16.1.0-universal-mingw32 → 16.3.38-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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -7
  3. data/README.md +3 -3
  4. data/Rakefile +4 -3
  5. data/chef-universal-mingw32.gemspec +2 -2
  6. data/chef.gemspec +7 -6
  7. data/distro/powershell/chef/chef.psm1 +3 -3
  8. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  9. data/lib/chef/application.rb +12 -0
  10. data/lib/chef/application/apply.rb +2 -1
  11. data/lib/chef/application/base.rb +1 -1
  12. data/lib/chef/application/client.rb +1 -1
  13. data/lib/chef/application/windows_service_manager.rb +1 -1
  14. data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
  15. data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
  16. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  17. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
  18. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
  20. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
  21. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
  22. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  23. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -2
  24. data/lib/chef/chef_fs/path_utils.rb +4 -4
  25. data/lib/chef/client.rb +3 -3
  26. data/lib/chef/cookbook/chefignore.rb +1 -1
  27. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  28. data/lib/chef/cookbook/metadata.rb +2 -2
  29. data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
  30. data/lib/chef/cookbook/syntax_check.rb +1 -2
  31. data/lib/chef/cookbook_loader.rb +16 -30
  32. data/lib/chef/cookbook_manifest.rb +1 -1
  33. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  34. data/lib/chef/cookbook_version.rb +4 -4
  35. data/lib/chef/data_bag.rb +5 -6
  36. data/lib/chef/data_collector.rb +1 -1
  37. data/lib/chef/data_collector/error_handlers.rb +1 -1
  38. data/lib/chef/decorator/lazy_array.rb +2 -2
  39. data/lib/chef/deprecated.rb +12 -0
  40. data/lib/chef/digester.rb +5 -4
  41. data/lib/chef/dsl/declare_resource.rb +1 -1
  42. data/lib/chef/dsl/platform_introspection.rb +2 -0
  43. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  44. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  45. data/lib/chef/environment.rb +1 -2
  46. data/lib/chef/exceptions.rb +3 -0
  47. data/lib/chef/file_access_control.rb +1 -1
  48. data/lib/chef/file_access_control/windows.rb +2 -2
  49. data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
  50. data/lib/chef/formatters/base.rb +1 -1
  51. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  52. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  53. data/lib/chef/http.rb +19 -4
  54. data/lib/chef/http/authenticator.rb +1 -1
  55. data/lib/chef/http/decompressor.rb +1 -1
  56. data/lib/chef/http/http_request.rb +1 -1
  57. data/lib/chef/http/json_output.rb +1 -1
  58. data/lib/chef/http/ssl_policies.rb +18 -0
  59. data/lib/chef/json_compat.rb +1 -1
  60. data/lib/chef/key.rb +1 -1
  61. data/lib/chef/knife.rb +6 -6
  62. data/lib/chef/knife/bootstrap.rb +24 -24
  63. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  64. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  65. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  66. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  67. data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
  68. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  69. data/lib/chef/knife/config_get.rb +2 -1
  70. data/lib/chef/knife/config_list_profiles.rb +4 -1
  71. data/lib/chef/knife/config_use_profile.rb +15 -5
  72. data/lib/chef/knife/configure.rb +1 -1
  73. data/lib/chef/knife/cookbook_delete.rb +1 -1
  74. data/lib/chef/knife/cookbook_upload.rb +6 -14
  75. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  76. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  77. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  78. data/lib/chef/knife/core/hashed_command_loader.rb +2 -1
  79. data/lib/chef/knife/core/node_presenter.rb +1 -1
  80. data/lib/chef/knife/core/status_presenter.rb +1 -1
  81. data/lib/chef/knife/core/subcommand_loader.rb +21 -2
  82. data/lib/chef/knife/core/ui.rb +8 -2
  83. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -4
  84. data/lib/chef/knife/data_bag_create.rb +1 -1
  85. data/lib/chef/knife/key_create_base.rb +1 -1
  86. data/lib/chef/knife/key_edit_base.rb +1 -1
  87. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  88. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  89. data/lib/chef/knife/rehash.rb +3 -21
  90. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  91. data/lib/chef/knife/ssh.rb +7 -3
  92. data/lib/chef/knife/supermarket_share.rb +1 -1
  93. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  94. data/lib/chef/log.rb +8 -3
  95. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  96. data/lib/chef/mixin/checksum.rb +0 -1
  97. data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
  98. data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
  99. data/lib/chef/mixin/openssl_helper.rb +31 -9
  100. data/lib/chef/mixin/path_sanity.rb +5 -4
  101. data/lib/chef/mixin/properties.rb +2 -2
  102. data/lib/chef/mixin/securable.rb +2 -2
  103. data/lib/chef/mixin/shell_out.rb +4 -188
  104. data/lib/chef/mixin/template.rb +1 -0
  105. data/lib/chef/mixin/which.rb +6 -3
  106. data/lib/chef/mixins.rb +1 -0
  107. data/lib/chef/node.rb +36 -12
  108. data/lib/chef/node/attribute.rb +2 -2
  109. data/lib/chef/node/immutable_collections.rb +1 -1
  110. data/lib/chef/node_map.rb +21 -18
  111. data/lib/chef/platform/service_helpers.rb +31 -28
  112. data/lib/chef/policy_builder/policyfile.rb +1 -1
  113. data/lib/chef/powershell.rb +1 -1
  114. data/lib/chef/property.rb +2 -2
  115. data/lib/chef/provider.rb +3 -3
  116. data/lib/chef/provider/batch.rb +3 -10
  117. data/lib/chef/provider/cron.rb +2 -14
  118. data/lib/chef/provider/directory.rb +1 -1
  119. data/lib/chef/provider/execute.rb +2 -1
  120. data/lib/chef/provider/file.rb +1 -1
  121. data/lib/chef/provider/git.rb +12 -4
  122. data/lib/chef/provider/group/dscl.rb +2 -2
  123. data/lib/chef/provider/group/windows.rb +1 -1
  124. data/lib/chef/provider/ifconfig.rb +7 -7
  125. data/lib/chef/provider/mount/aix.rb +1 -1
  126. data/lib/chef/provider/mount/solaris.rb +0 -1
  127. data/lib/chef/provider/mount/windows.rb +2 -2
  128. data/lib/chef/provider/noop.rb +1 -1
  129. data/lib/chef/provider/package/chocolatey.rb +1 -1
  130. data/lib/chef/provider/package/dpkg.rb +1 -1
  131. data/lib/chef/provider/package/openbsd.rb +1 -1
  132. data/lib/chef/provider/package/portage.rb +3 -2
  133. data/lib/chef/provider/package/powershell.rb +6 -2
  134. data/lib/chef/provider/package/rubygems.rb +3 -3
  135. data/lib/chef/provider/package/snap.rb +97 -29
  136. data/lib/chef/provider/package/windows.rb +11 -6
  137. data/lib/chef/provider/package/windows/msi.rb +3 -3
  138. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  139. data/lib/chef/provider/package/yum.rb +1 -1
  140. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  141. data/lib/chef/provider/package/zypper.rb +0 -1
  142. data/lib/chef/provider/powershell_script.rb +10 -14
  143. data/lib/chef/provider/remote_directory.rb +2 -2
  144. data/lib/chef/provider/remote_file/http.rb +4 -1
  145. data/lib/chef/provider/script.rb +4 -75
  146. data/lib/chef/provider/service.rb +2 -2
  147. data/lib/chef/provider/service/arch.rb +2 -2
  148. data/lib/chef/provider/service/debian.rb +2 -2
  149. data/lib/chef/provider/service/openbsd.rb +4 -4
  150. data/lib/chef/provider/service/redhat.rb +1 -1
  151. data/lib/chef/provider/service/upstart.rb +1 -1
  152. data/lib/chef/provider/service/windows.rb +1 -1
  153. data/lib/chef/provider/subversion.rb +2 -2
  154. data/lib/chef/provider/user/aix.rb +1 -1
  155. data/lib/chef/provider/user/dscl.rb +6 -6
  156. data/lib/chef/provider/user/linux.rb +3 -3
  157. data/lib/chef/provider/user/mac.rb +15 -11
  158. data/lib/chef/provider/windows_script.rb +87 -25
  159. data/lib/chef/provider/windows_task.rb +4 -2
  160. data/lib/chef/provider/yum_repository.rb +1 -1
  161. data/lib/chef/provider/zypper_repository.rb +31 -11
  162. data/lib/chef/resource.rb +27 -14
  163. data/lib/chef/resource/alternatives.rb +1 -1
  164. data/lib/chef/resource/apt_package.rb +1 -1
  165. data/lib/chef/resource/archive_file.rb +28 -8
  166. data/lib/chef/resource/bash.rb +0 -1
  167. data/lib/chef/resource/batch.rb +4 -2
  168. data/lib/chef/resource/build_essential.rb +2 -2
  169. data/lib/chef/resource/chef_client_scheduled_task.rb +14 -2
  170. data/lib/chef/resource/chef_gem.rb +57 -21
  171. data/lib/chef/resource/chef_handler.rb +2 -2
  172. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  173. data/lib/chef/resource/chocolatey_feature.rb +1 -2
  174. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  175. data/lib/chef/resource/cron/cron.rb +46 -0
  176. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
  177. data/lib/chef/resource/cron_access.rb +13 -5
  178. data/lib/chef/resource/csh.rb +0 -1
  179. data/lib/chef/resource/dmg_package.rb +2 -2
  180. data/lib/chef/resource/execute.rb +480 -10
  181. data/lib/chef/resource/file.rb +10 -8
  182. data/lib/chef/resource/freebsd_package.rb +1 -1
  183. data/lib/chef/resource/gem_package.rb +35 -2
  184. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  185. data/lib/chef/resource/homebrew_package.rb +30 -1
  186. data/lib/chef/resource/homebrew_update.rb +107 -0
  187. data/lib/chef/resource/hostname.rb +7 -20
  188. data/lib/chef/resource/kernel_module.rb +14 -1
  189. data/lib/chef/resource/launchd.rb +1 -1
  190. data/lib/chef/resource/locale.rb +3 -3
  191. data/lib/chef/resource/lwrp_base.rb +1 -0
  192. data/lib/chef/resource/macos_userdefaults.rb +176 -56
  193. data/lib/chef/resource/mount.rb +1 -1
  194. data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
  195. data/lib/chef/resource/openssl_x509_crl.rb +1 -2
  196. data/lib/chef/resource/perl.rb +0 -1
  197. data/lib/chef/resource/plist.rb +23 -4
  198. data/lib/chef/resource/powershell_script.rb +4 -2
  199. data/lib/chef/resource/python.rb +0 -1
  200. data/lib/chef/resource/remote_file.rb +26 -10
  201. data/lib/chef/resource/ruby.rb +0 -1
  202. data/lib/chef/resource/scm/git.rb +1 -1
  203. data/lib/chef/resource/service.rb +2 -2
  204. data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
  205. data/lib/chef/resource/sudo.rb +30 -3
  206. data/lib/chef/resource/swap_file.rb +17 -0
  207. data/lib/chef/resource/template.rb +1 -1
  208. data/lib/chef/resource/timezone.rb +15 -0
  209. data/lib/chef/resource/user_ulimit.rb +1 -1
  210. data/lib/chef/resource/windows_ad_join.rb +30 -1
  211. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  212. data/lib/chef/resource/windows_auto_run.rb +11 -0
  213. data/lib/chef/resource/windows_certificate.rb +27 -1
  214. data/lib/chef/resource/windows_dfs_server.rb +1 -1
  215. data/lib/chef/resource/windows_dns_record.rb +17 -0
  216. data/lib/chef/resource/windows_firewall_profile.rb +197 -0
  217. data/lib/chef/resource/windows_font.rb +3 -3
  218. data/lib/chef/resource/windows_package.rb +1 -1
  219. data/lib/chef/resource/windows_pagefile.rb +2 -2
  220. data/lib/chef/resource/windows_script.rb +2 -16
  221. data/lib/chef/resource/windows_security_policy.rb +67 -36
  222. data/lib/chef/resource/windows_shortcut.rb +1 -2
  223. data/lib/chef/resource/windows_task.rb +10 -10
  224. data/lib/chef/resource/windows_user_privilege.rb +33 -10
  225. data/lib/chef/resource/yum_repository.rb +9 -9
  226. data/lib/chef/resource_inspector.rb +11 -4
  227. data/lib/chef/resources.rb +5 -2
  228. data/lib/chef/role.rb +1 -2
  229. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  230. data/lib/chef/search/query.rb +1 -1
  231. data/lib/chef/shell/ext.rb +1 -1
  232. data/lib/chef/shell/shell_session.rb +2 -0
  233. data/lib/chef/util/diff.rb +2 -3
  234. data/lib/chef/util/windows/net_user.rb +1 -1
  235. data/lib/chef/util/windows/volume.rb +1 -1
  236. data/lib/chef/version.rb +2 -2
  237. data/lib/chef/win32/api.rb +2 -2
  238. data/lib/chef/win32/api/error.rb +3 -1
  239. data/lib/chef/win32/api/file.rb +1 -1
  240. data/lib/chef/win32/api/net.rb +1 -0
  241. data/lib/chef/win32/file.rb +1 -1
  242. data/lib/chef/win32/mutex.rb +1 -1
  243. data/lib/chef/win32/net.rb +1 -0
  244. data/lib/chef/win32/registry.rb +3 -4
  245. data/lib/chef/win32/security.rb +1 -1
  246. data/lib/chef/win32/security/sid.rb +4 -4
  247. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  248. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  249. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  250. data/spec/functional/knife/configure_spec.rb +1 -1
  251. data/spec/functional/knife/ssh_spec.rb +5 -16
  252. data/spec/functional/resource/aix_service_spec.rb +9 -2
  253. data/spec/functional/resource/aixinit_service_spec.rb +1 -2
  254. data/spec/functional/resource/apt_package_spec.rb +0 -1
  255. data/spec/functional/resource/bash_spec.rb +3 -2
  256. data/spec/functional/resource/bff_spec.rb +1 -1
  257. data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
  258. data/spec/functional/resource/cron_spec.rb +20 -2
  259. data/spec/functional/resource/dnf_package_spec.rb +6 -3
  260. data/spec/functional/resource/execute_spec.rb +1 -1
  261. data/spec/functional/resource/git_spec.rb +29 -7
  262. data/spec/functional/resource/group_spec.rb +15 -3
  263. data/spec/functional/resource/ifconfig_spec.rb +9 -1
  264. data/spec/functional/resource/insserv_spec.rb +3 -3
  265. data/spec/functional/resource/link_spec.rb +2 -5
  266. data/spec/functional/resource/mount_spec.rb +9 -1
  267. data/spec/functional/resource/msu_package_spec.rb +9 -3
  268. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  269. data/spec/functional/resource/remote_file_spec.rb +9 -15
  270. data/spec/functional/resource/rpm_spec.rb +1 -1
  271. data/spec/functional/resource/timezone_spec.rb +2 -0
  272. data/spec/functional/resource/windows_package_spec.rb +0 -1
  273. data/spec/functional/resource/windows_path_spec.rb +4 -0
  274. data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
  275. data/spec/functional/resource/windows_service_spec.rb +4 -0
  276. data/spec/functional/resource/windows_task_spec.rb +16 -15
  277. data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
  278. data/spec/functional/resource/yum_package_spec.rb +4 -1
  279. data/spec/functional/resource/zypper_package_spec.rb +4 -1
  280. data/spec/functional/run_lock_spec.rb +2 -1
  281. data/spec/functional/shell_spec.rb +5 -6
  282. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  283. data/spec/functional/version_spec.rb +1 -1
  284. data/spec/functional/win32/crypto_spec.rb +1 -1
  285. data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
  286. data/spec/integration/knife/config_use_profile_spec.rb +55 -2
  287. data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
  288. data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
  289. data/spec/integration/knife/environment_from_file_spec.rb +1 -1
  290. data/spec/integration/knife/node_from_file_spec.rb +1 -1
  291. data/spec/integration/knife/role_from_file_spec.rb +1 -1
  292. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  293. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  294. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  295. data/spec/integration/recipes/notifies_spec.rb +1 -1
  296. data/spec/integration/recipes/notifying_block_spec.rb +1 -1
  297. data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
  298. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
  299. data/spec/integration/recipes/resource_load_spec.rb +4 -2
  300. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  301. data/spec/integration/recipes/use_partial_spec.rb +1 -1
  302. data/spec/scripts/ssl-serve.rb +1 -1
  303. data/spec/spec_helper.rb +10 -4
  304. data/spec/support/chef_helpers.rb +2 -21
  305. data/spec/support/platform_helpers.rb +1 -3
  306. data/spec/support/platforms/win32/spec_service.rb +1 -1
  307. data/spec/support/shared/functional/execute_resource.rb +1 -1
  308. data/spec/support/shared/functional/file_resource.rb +0 -1
  309. data/spec/support/shared/functional/securable_resource.rb +1 -2
  310. data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
  311. data/spec/support/shared/functional/windows_script.rb +3 -3
  312. data/spec/support/shared/integration/knife_support.rb +2 -9
  313. data/spec/support/shared/unit/application_dot_d.rb +0 -1
  314. data/spec/support/shared/unit/execute_resource.rb +1 -1
  315. data/spec/support/shared/unit/provider/file.rb +12 -8
  316. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  317. data/spec/unit/application/solo_spec.rb +4 -2
  318. data/spec/unit/application_spec.rb +11 -2
  319. data/spec/unit/chef_fs/config_spec.rb +2 -2
  320. data/spec/unit/chef_fs/diff_spec.rb +8 -8
  321. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
  322. data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
  323. data/spec/unit/client_spec.rb +4 -1
  324. data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
  325. data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
  326. data/spec/unit/data_bag_spec.rb +6 -3
  327. data/spec/unit/data_collector_spec.rb +1 -1
  328. data/spec/unit/decorator_spec.rb +23 -23
  329. data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
  330. data/spec/unit/environment_spec.rb +5 -1
  331. data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
  332. data/spec/unit/guard_interpreter_spec.rb +1 -1
  333. data/spec/unit/http/api_versions_spec.rb +1 -1
  334. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  335. data/spec/unit/json_compat_spec.rb +1 -1
  336. data/spec/unit/knife/bootstrap_spec.rb +5 -8
  337. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  338. data/spec/unit/knife/cookbook_show_spec.rb +6 -7
  339. data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
  340. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  341. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  342. data/spec/unit/log/syslog_spec.rb +6 -10
  343. data/spec/unit/log/winevt_spec.rb +21 -13
  344. data/spec/unit/lwrp_spec.rb +9 -6
  345. data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
  346. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  347. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  348. data/spec/unit/mixin/powershell_out_spec.rb +2 -4
  349. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  350. data/spec/unit/mixin/securable_spec.rb +0 -1
  351. data/spec/unit/mixin/shell_out_spec.rb +25 -26
  352. data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
  353. data/spec/unit/mixin/unformatter_spec.rb +2 -2
  354. data/spec/unit/mixin/uris_spec.rb +1 -1
  355. data/spec/unit/mixin/user_context_spec.rb +1 -9
  356. data/spec/unit/mixin/which.rb +8 -0
  357. data/spec/unit/node/attribute_spec.rb +1 -1
  358. data/spec/unit/node_spec.rb +98 -11
  359. data/spec/unit/property_spec.rb +6 -6
  360. data/spec/unit/provider/batch_spec.rb +130 -0
  361. data/spec/unit/provider/cron/unix_spec.rb +1 -1
  362. data/spec/unit/provider/cron_spec.rb +9 -49
  363. data/spec/unit/provider/dsc_resource_spec.rb +22 -38
  364. data/spec/unit/provider/dsc_script_spec.rb +10 -10
  365. data/spec/unit/provider/execute_spec.rb +1 -8
  366. data/spec/unit/provider/git_spec.rb +3 -3
  367. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  368. data/spec/unit/provider/ifconfig_spec.rb +0 -1
  369. data/spec/unit/provider/mdadm_spec.rb +1 -3
  370. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
  371. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  372. data/spec/unit/provider/package/pacman_spec.rb +17 -20
  373. data/spec/unit/provider/package/portage_spec.rb +2 -2
  374. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  375. data/spec/unit/provider/package/rubygems_spec.rb +5 -10
  376. data/spec/unit/provider/package/smartos_spec.rb +1 -1
  377. data/spec/unit/provider/package/snap_spec.rb +1 -1
  378. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
  379. data/spec/unit/provider/package/windows_spec.rb +30 -53
  380. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  381. data/spec/unit/provider/script_spec.rb +20 -110
  382. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  383. data/spec/unit/provider/service/windows_spec.rb +2 -6
  384. data/spec/unit/provider/systemd_unit_spec.rb +28 -24
  385. data/spec/unit/provider/user/dscl_spec.rb +2 -2
  386. data/spec/unit/provider/windows_env_spec.rb +5 -4
  387. data/spec/unit/provider/zypper_repository_spec.rb +60 -10
  388. data/spec/unit/provider_spec.rb +1 -0
  389. data/spec/unit/resource/archive_file_spec.rb +11 -2
  390. data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
  391. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  392. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
  393. data/spec/unit/resource/cron_spec.rb +2 -2
  394. data/spec/unit/resource/execute_spec.rb +10 -0
  395. data/spec/unit/resource/file/verification_spec.rb +2 -1
  396. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  397. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  398. data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
  399. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  400. data/spec/unit/resource/timezone_spec.rb +1 -1
  401. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  402. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  403. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  404. data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
  405. data/spec/unit/resource/windows_package_spec.rb +1 -0
  406. data/spec/unit/resource/windows_task_spec.rb +1 -1
  407. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  408. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  409. data/spec/unit/resource_reporter_spec.rb +1 -1
  410. data/spec/unit/resource_spec.rb +84 -1
  411. data/spec/unit/role_spec.rb +23 -21
  412. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  413. data/spec/unit/run_lock_spec.rb +1 -1
  414. data/spec/unit/scan_access_control_spec.rb +1 -1
  415. data/spec/unit/util/backup_spec.rb +1 -1
  416. data/spec/unit/util/diff_spec.rb +1 -15
  417. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  418. data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
  419. data/spec/unit/util/selinux_spec.rb +2 -1
  420. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  421. data/spec/unit/win32/registry_spec.rb +1 -1
  422. data/spec/unit/win32/security_spec.rb +4 -3
  423. metadata +68 -40
  424. data/lib/chef/resource/cron.rb +0 -157
@@ -119,7 +119,7 @@ class Chef
119
119
  end
120
120
 
121
121
  def to_h
122
- result = {
122
+ {
123
123
  "name" => @name,
124
124
  "description" => @description,
125
125
  "cookbook_versions" => @cookbook_versions,
@@ -128,7 +128,6 @@ class Chef
128
128
  "default_attributes" => @default_attributes,
129
129
  "override_attributes" => @override_attributes,
130
130
  }
131
- result
132
131
  end
133
132
 
134
133
  alias_method :to_hash, :to_h
@@ -198,6 +198,7 @@ class Chef
198
198
  class MetadataNotFound < StandardError
199
199
  attr_reader :install_path
200
200
  attr_reader :cookbook_name
201
+
201
202
  def initialize(install_path, cookbook_name)
202
203
  @install_path = install_path
203
204
  @cookbook_name = cookbook_name
@@ -448,6 +449,7 @@ class Chef
448
449
  # to correctly populate the backtrace with the wrapped backtraces.
449
450
  class RunFailedWrappingError < RuntimeError
450
451
  attr_reader :wrapped_errors
452
+
451
453
  def initialize(*errors)
452
454
  errors = errors.select { |e| !e.nil? }
453
455
  output = "Found #{errors.size} errors, they are stored in the backtrace"
@@ -488,6 +490,7 @@ class Chef
488
490
 
489
491
  class MultipleDscResourcesFound < RuntimeError
490
492
  attr_reader :resources_found
493
+
491
494
  def initialize(resources_found)
492
495
  @resources_found = resources_found
493
496
  matches_info = @resources_found.each do |r|
@@ -26,7 +26,7 @@ class Chef
26
26
  # the values specified by a value object, usually a Chef::Resource.
27
27
  class FileAccessControl
28
28
 
29
- if RUBY_PLATFORM =~ /mswin|mingw|windows/
29
+ if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
30
30
  require_relative "file_access_control/windows"
31
31
  include FileAccessControl::Windows
32
32
  else
@@ -96,7 +96,7 @@ class Chef
96
96
  self_ace.mask = securable_object.predict_rights_mask(target_ace.mask)
97
97
  new_target_acl << self_ace
98
98
  end
99
- # As there is no inheritence needed in case of WRITE permissions.
99
+ # As there is no inheritance needed in case of WRITE permissions.
100
100
  if target_ace.mask != Chef::ReservedNames::Win32::API::Security::WRITE && target_ace.flags & (CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE) != 0
101
101
  children_ace = target_ace.dup
102
102
  children_ace.flags |= INHERIT_ONLY_ACE
@@ -242,7 +242,7 @@ class Chef
242
242
  flags = 0
243
243
 
244
244
  #
245
- # Configure child inheritence only if the resource is some
245
+ # Configure child inheritance only if the resource is some
246
246
  # type of a directory.
247
247
  #
248
248
  if resource.is_a? Chef::Resource::Directory
@@ -51,7 +51,7 @@ class Chef
51
51
  # in the case where i'm running chef-solo on my homedir as myself and some root-shell
52
52
  # work has caused dotfiles of mine to change to root-owned, i'm fine with this not being
53
53
  # exceptional, and i think most use cases will consider this to not be exceptional, and
54
- # the right thing is to fix the ownership of the file to the user running the commmand
54
+ # the right thing is to fix the ownership of the file to the user running the command
55
55
  # (which requires write perms to the directory, or mv will throw an exception)
56
56
  begin
57
57
  ::File.chown(uid, nil, src)
@@ -142,7 +142,7 @@ class Chef
142
142
 
143
143
  # Generic callback for any attribute/library/lwrp/recipe file in a
144
144
  # cookbook getting loaded. The per-filetype callbacks for file load are
145
- # overriden so that they call this instead. This means that a subclass of
145
+ # overridden so that they call this instead. This means that a subclass of
146
146
  # Formatters::Base can implement #file_loaded to do the same thing for
147
147
  # every kind of file that Chef loads from a recipe instead of
148
148
  # implementing all the per-filetype callbacks.
@@ -41,7 +41,7 @@ class Chef
41
41
 
42
42
  if found_error_in_cookbooks?
43
43
  traceback = filtered_bt.map { |line| " #{line}" }.join("\n")
44
- error_description.section("Cookbook Trace:", traceback)
44
+ error_description.section("Cookbook Trace: (most recent call first)", traceback)
45
45
  error_description.section("Relevant File Content:", context)
46
46
  end
47
47
 
@@ -37,7 +37,7 @@ class Chef
37
37
  error_description.section(exception.class.name, exception.message)
38
38
 
39
39
  unless filtered_bt.empty?
40
- error_description.section("Cookbook Trace:", filtered_bt.join("\n"))
40
+ error_description.section("Cookbook Trace: (most recent call first)", filtered_bt.join("\n"))
41
41
  end
42
42
 
43
43
  unless dynamic_resource?
@@ -79,8 +79,8 @@ class Chef
79
79
  loop do
80
80
 
81
81
  # low rent parser. try to gracefully handle nested blocks in resources
82
- nesting += 1 if lines[current_line] =~ /[\s]+do[\s]*/
83
- nesting -= 1 if lines[current_line] =~ /end[\s]*$/
82
+ nesting += 1 if /[\s]+do[\s]*/.match?(lines[current_line])
83
+ nesting -= 1 if /end[\s]*$/.match?(lines[current_line])
84
84
 
85
85
  relevant_lines << format_line(current_line, lines[current_line])
86
86
 
@@ -52,7 +52,7 @@ class Chef
52
52
 
53
53
  def handle_chunk(next_chunk)
54
54
  # stream handlers handle responses so must be applied in reverse order
55
- # (same as #apply_stream_complete_middleware or #apply_response_midddleware)
55
+ # (same as #apply_stream_complete_middleware or #apply_response_middleware)
56
56
  @stream_handlers.reverse.inject(next_chunk) do |chunk, handler|
57
57
  Chef::Log.trace("Chef::HTTP::StreamHandler calling #{handler.class}#handle_chunk")
58
58
  handler.handle_chunk(chunk)
@@ -269,7 +269,7 @@ class Chef
269
269
  if keepalives && !base_url.nil?
270
270
  # only reuse the http_client if we want keepalives and have a base_url
271
271
  @http_client ||= {}
272
- # the per-host per-port cache here gets peristent connections correct when
272
+ # the per-host per-port cache here gets persistent connections correct when
273
273
  # redirecting to different servers
274
274
  if base_url.is_a?(String) # sigh, this kind of abuse can't happen with strongly typed languages
275
275
  @http_client[base_url] ||= build_http_client(base_url)
@@ -291,6 +291,21 @@ class Chef
291
291
 
292
292
  private
293
293
 
294
+ # @api private
295
+ def ssl_policy
296
+ return Chef::HTTP::APISSLPolicy unless @options[:ssl_verify_mode]
297
+
298
+ case @options[:ssl_verify_mode]
299
+ when :verify_none
300
+ Chef::HTTP::VerifyNoneSSLPolicy
301
+ when :verify_peer
302
+ Chef::HTTP::VerifyPeerSSLPolicy
303
+ else
304
+ Chef::Log.error("Chef::HTTP was passed an ssl_verify_mode of #{@options[:ssl_verify_mode]} which is unsupported. Falling back to the API policy")
305
+ Chef::HTTP::APISSLPolicy
306
+ end
307
+ end
308
+
294
309
  # @api private
295
310
  def build_http_client(base_url)
296
311
  if chef_zero_uri?(base_url)
@@ -304,7 +319,7 @@ class Chef
304
319
 
305
320
  SocketlessChefZeroClient.new(base_url)
306
321
  else
307
- BasicClient.new(base_url, ssl_policy: Chef::HTTP::APISSLPolicy, keepalives: keepalives)
322
+ BasicClient.new(base_url, ssl_policy: ssl_policy, keepalives: keepalives)
308
323
  end
309
324
  end
310
325
 
@@ -312,7 +327,7 @@ class Chef
312
327
  def create_url(path)
313
328
  return path if path.is_a?(URI)
314
329
 
315
- if path =~ %r{^(http|https|chefzero)://}i
330
+ if %r{^(http|https|chefzero)://}i.match?(path)
316
331
  URI.parse(path)
317
332
  elsif path.nil? || path.empty?
318
333
  URI.parse(@url)
@@ -24,7 +24,7 @@ class Chef
24
24
  class HTTP
25
25
  class Authenticator
26
26
 
27
- DEFAULT_SERVER_API_VERSION = "1".freeze
27
+ DEFAULT_SERVER_API_VERSION = "2".freeze
28
28
 
29
29
  attr_reader :signing_key_filename
30
30
  attr_reader :raw_key
@@ -22,7 +22,7 @@ require_relative "http_request"
22
22
  class Chef
23
23
  class HTTP
24
24
 
25
- # Middleware-esque class for handling compression in HTTP responses.
25
+ # Middleware-ish class for handling compression in HTTP responses.
26
26
  class Decompressor
27
27
  class NoopInflater
28
28
  def inflate(chunk)
@@ -128,7 +128,7 @@ class Chef
128
128
  rescue NoMethodError => e
129
129
  # http://redmine.ruby-lang.org/issues/show/2708
130
130
  # http://redmine.ruby-lang.org/issues/show/2758
131
- if e.to_s =~ /#{Regexp.escape(%q{undefined method `closed?' for nil:NilClass})}/
131
+ if /#{Regexp.escape(%q{undefined method `closed?' for nil:NilClass})}/.match?(e.to_s)
132
132
  Chef::Log.trace("Rescued error in http connect, re-raising as Errno::ECONNREFUSED to hide bug in net/http")
133
133
  Chef::Log.trace("#{e.class.name}: #{e}")
134
134
  Chef::Log.trace(e.backtrace.join("\n"))
@@ -47,7 +47,7 @@ class Chef
47
47
  # needed to keep conditional get stuff working correctly.
48
48
  return [http_response, rest_request, return_value] if return_value == false
49
49
 
50
- if http_response["content-type"] =~ /json/
50
+ if /json/.match?(http_response["content-type"])
51
51
  if http_response.body.nil?
52
52
  return_value = nil
53
53
  elsif raw_output
@@ -129,5 +129,23 @@ class Chef
129
129
  end
130
130
  end
131
131
 
132
+ # This policy is used when we want to explicitly turn on verification
133
+ # for a specific request regardless of the API Policy. For example, when
134
+ # doing a `remote_file` where the user specified `verify_mode :verify_peer`
135
+ class VerifyPeerSSLPolicy < DefaultSSLPolicy
136
+ def set_verify_mode
137
+ http_client.verify_mode = OpenSSL::SSL::VERIFY_PEER
138
+ end
139
+ end
140
+
141
+ # This policy is used when we want to explicitly turn off verification
142
+ # for a specific request regardless of the API Policy. For example, when
143
+ # doing a `remote_file` where the user specified `verify_mode :verify_none`
144
+ class VerifyNoneSSLPolicy < DefaultSSLPolicy
145
+ def set_verify_mode
146
+ http_client.verify_mode = OpenSSL::SSL::VERIFY_NONE
147
+ end
148
+ end
149
+
132
150
  end
133
151
  end
@@ -28,7 +28,7 @@ class Chef
28
28
 
29
29
  class <<self
30
30
 
31
- # API to use to avoid create_addtions
31
+ # API to use to avoid create_additions
32
32
  def parse(source, opts = {})
33
33
  FFI_Yajl::Parser.parse(source, opts)
34
34
  rescue FFI_Yajl::ParseError => e
@@ -252,7 +252,7 @@ class Chef
252
252
  OpenSSL::ASN1::Integer.new(openssl_key_object.public_key.n),
253
253
  OpenSSL::ASN1::Integer.new(openssl_key_object.public_key.e),
254
254
  ])
255
- OpenSSL::Digest::SHA1.hexdigest(data_string.to_der).scan(/../).join(":")
255
+ OpenSSL::Digest.hexdigest("SHA1", data_string.to_der).scan(/../).join(":")
256
256
  end
257
257
 
258
258
  def list(keys, actor, load_method_symbol, inflate)
@@ -20,10 +20,10 @@
20
20
  require "forwardable" unless defined?(Forwardable)
21
21
  require_relative "version"
22
22
  require "mixlib/cli" unless defined?(Mixlib::CLI)
23
- require "chef-utils/dsl/path_sanity" unless defined?(ChefUtils::DSL::PathSanity)
23
+ require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
24
24
  require_relative "workstation_config_loader"
25
25
  require_relative "mixin/convert_to_class_name"
26
- require_relative "mixin/path_sanity"
26
+ require_relative "mixin/default_paths"
27
27
  require_relative "knife/core/subcommand_loader"
28
28
  require_relative "knife/core/ui"
29
29
  require_relative "local_mode"
@@ -40,7 +40,7 @@ class Chef
40
40
  Chef::HTTP::HTTPRequest.user_agent = "#{Chef::Dist::PRODUCT} Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
41
41
 
42
42
  include Mixlib::CLI
43
- include ChefUtils::DSL::PathSanity
43
+ include ChefUtils::DSL::DefaultPaths
44
44
  extend Chef::Mixin::ConvertToClassName
45
45
  extend Forwardable
46
46
 
@@ -248,7 +248,7 @@ class Chef
248
248
  category_desc = preferred_category ? preferred_category + " " : ""
249
249
  msg "Available #{category_desc}subcommands: (for details, knife SUB-COMMAND --help)\n\n"
250
250
  subcommand_loader.list_commands(preferred_category).sort.each do |category, commands|
251
- next if category =~ /deprecated/i
251
+ next if /deprecated/i.match?(category)
252
252
 
253
253
  msg "** #{category.upcase} COMMANDS **"
254
254
  commands.sort.each do |command|
@@ -327,7 +327,7 @@ class Chef
327
327
  end
328
328
 
329
329
  # Grab a copy before config merge occurs, so that we can later identify
330
- # whare a given config value is sourced from.
330
+ # where a given config value is sourced from.
331
331
  @original_config = config.dup
332
332
 
333
333
  # copy Mixlib::CLI over so that it can be configured in config.rb/knife.rb
@@ -484,7 +484,7 @@ class Chef
484
484
  unless respond_to?(:run)
485
485
  ui.error "You need to add a #run method to your knife command before you can use it"
486
486
  end
487
- ENV["PATH"] = sanitized_path if Chef::Config[:enforce_path_sanity]
487
+ ENV["PATH"] = default_paths if Chef::Config[:enforce_default_paths] || Chef::Config[:enforce_path_sanity]
488
488
  maybe_setup_fips
489
489
  Chef::LocalMode.with_server_connectivity do
490
490
  run
@@ -94,7 +94,7 @@ class Chef
94
94
  boolean: true
95
95
 
96
96
  # This option was provided in knife bootstrap windows winrm,
97
- # but it is ignored in knife-windows/WinrmSession, and so remains unimplemeneted here.
97
+ # but it is ignored in knife-windows/WinrmSession, and so remains unimplemented here.
98
98
  # option :kerberos_keytab_file,
99
99
  # :short => "-T KEYTAB_FILE",
100
100
  # :long => "--keytab-file KEYTAB_FILE",
@@ -275,7 +275,7 @@ class Chef
275
275
  accumulator
276
276
  }
277
277
 
278
- # bootstrap override: url of a an installer shell script touse in place of omnitruck
278
+ # bootstrap override: url of a an installer shell script to use in place of omnitruck
279
279
  # Note that the bootstrap template _only_ references this out of Chef::Config, and not from
280
280
  # the provided options to knife bootstrap, so we set the Chef::Config option here.
281
281
  option :bootstrap_url,
@@ -538,7 +538,7 @@ class Chef
538
538
  end
539
539
 
540
540
  def run
541
- check_license
541
+ check_license if ChefConfig::Dist::ENFORCE_LICENSE
542
542
 
543
543
  plugin_setup!
544
544
  validate_name_args!
@@ -580,11 +580,8 @@ class Chef
580
580
 
581
581
  bootstrap_context.client_pem = client_builder.client_path
582
582
  else
583
- ui.info <<~EOM
584
- Performing legacy client registration with the validation key at #{Chef::Config[:validation_key]}...
585
- Delete your validation key in order to use your user credentials for client registration instead.
586
- EOM
587
-
583
+ ui.warn "Performing legacy client registration with the validation key at #{Chef::Config[:validation_key]}..."
584
+ ui.warn "Remove the key file or remove the 'validation_key' configuration option from your config.rb (knife.rb) to use more secure user credentials for client registration."
588
585
  end
589
586
  end
590
587
 
@@ -602,7 +599,7 @@ class Chef
602
599
  end
603
600
 
604
601
  def connect!
605
- ui.info("Connecting to #{ui.color(server_name, :bold)}")
602
+ ui.info("Connecting to #{ui.color(server_name, :bold)} using #{connection_protocol}")
606
603
  opts ||= connection_opts.dup
607
604
  do_connect(opts)
608
605
  rescue Train::Error => e
@@ -633,9 +630,7 @@ class Chef
633
630
  raise
634
631
  else
635
632
  ui.warn("Failed to authenticate #{opts[:user]} to #{server_name} - trying password auth")
636
- password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:") do |q|
637
- q.echo = false
638
- end
633
+ password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:", echo: false)
639
634
  end
640
635
 
641
636
  opts.merge! force_ssh_password_opts(password)
@@ -649,9 +644,7 @@ class Chef
649
644
  raise
650
645
  else
651
646
  ui.warn("Failed to authenticate #{opts[:user]} to #{server_name} - trying password auth")
652
- password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:") do |q|
653
- q.echo = false
654
- end
647
+ password = ui.ask("Enter password for #{opts[:user]}@#{server_name}:", echo: false)
655
648
  end
656
649
 
657
650
  opts.merge! force_winrm_password_opts(password)
@@ -684,9 +677,7 @@ class Chef
684
677
  retry
685
678
  elsif config[:use_sudo_password] && (e.reason == :sudo_password_required || e.reason == :bad_sudo_password) && limit < 3
686
679
  ui.warn("Failed to authenticate #{conn_options[:user]} to #{server_name} - #{e.message} \n sudo: #{limit} incorrect password attempt")
687
- sudo_password = ui.ask("Enter sudo password for #{conn_options[:user]}@#{server_name}:") do |q|
688
- q.echo = false
689
- end
680
+ sudo_password = ui.ask("Enter sudo password for #{conn_options[:user]}@#{server_name}:", echo: false)
690
681
  limit += 1
691
682
  conn_options[:sudo_password] = sudo_password
692
683
 
@@ -706,14 +697,23 @@ class Chef
706
697
  true
707
698
  end
708
699
 
700
+ # FIXME: someone needs to clean this up properly: https://github.com/chef/chef/issues/9645
701
+ # This code is deliberately left without an abstraction around deprecating the config options to avoid knife plugins from
702
+ # using those methods (which will need to be deprecated and break them) via inheritance (ruby does not have a true `private`
703
+ # so the lack of any inheritable implementation is because of that).
704
+ #
709
705
  def winrm_auth_method
710
- config_value(:winrm_auth_method, :winrm_authentication_protocol, "negotiate")
706
+ config.key?(:winrm_auth_method) ? config[:winrm_auth_method] : config.key?(:winrm_authentications_protocol) ? config[:winrm_authentication_protocol] : "negotiate" # rubocop:disable Style/NestedTernaryOperator
707
+ end
708
+
709
+ def ssh_verify_host_key
710
+ config.key?(:ssh_verify_host_key) ? config[:ssh_verify_host_key] : config.key?(:host_key_verify) ? config[:host_key_verify] : "always" # rubocop:disable Style/NestedTernaryOperator
711
711
  end
712
712
 
713
713
  # Fail if using plaintext auth without ssl because
714
714
  # this can expose keys in plaintext on the wire.
715
715
  # TODO test for this method
716
- # TODO check that the protoocol is valid.
716
+ # TODO check that the protocol is valid.
717
717
  def validate_winrm_transport_opts!
718
718
  return true unless winrm?
719
719
 
@@ -908,7 +908,7 @@ class Chef
908
908
  { self_signed: config[:winrm_no_verify_cert] === true }
909
909
  elsif ssh?
910
910
  # Fall back to the old knife config key name for back compat.
911
- { verify_host_key: config_value(:ssh_verify_host_key, :host_key_verify, "always") }
911
+ { verify_host_key: ssh_verify_host_key }
912
912
  else
913
913
  {}
914
914
  end
@@ -967,7 +967,7 @@ class Chef
967
967
  gw_host = split[1]
968
968
  end
969
969
  gw_host, gw_port = gw_host.split(":", 2)
970
- # TODO - validate convertable port in config validation?
970
+ # TODO - validate convertible port in config validation?
971
971
  gw_port = Integer(gw_port) rescue nil
972
972
  opts[:bastion_host] = gw_host
973
973
  opts[:bastion_user] = gw_user
@@ -1054,7 +1054,7 @@ class Chef
1054
1054
  # @api deprecated
1055
1055
  #
1056
1056
  def config_value(key, fallback_key = nil, default = nil)
1057
- Chef.deprecated(:knife_bootstrap_apis, "Use of config_value without a fallback_key is deprecated. Knife plugin authors should access the config hash directly, which does correct merging of cli and config options.") if fallback_key.nil?
1057
+ Chef.deprecated(:knife_bootstrap_apis, "Use of config_value is deprecated. Knife plugin authors should access the config hash directly, which does correct merging of cli and config options.")
1058
1058
  if config.key?(key)
1059
1059
  # the first key is the primary key so we check the merged hash first
1060
1060
  config[key]
@@ -1073,7 +1073,7 @@ class Chef
1073
1073
  remote_path
1074
1074
  end
1075
1075
 
1076
- # build the command string for bootrapping
1076
+ # build the command string for bootstrapping
1077
1077
  # @return String
1078
1078
  def bootstrap_command(remote_path)
1079
1079
  if connection.windows?
@@ -102,7 +102,7 @@ class Chef
102
102
  config[:bootstrap_vault_item]
103
103
  end
104
104
 
105
- # Helper to return a ruby object represeting all the data bags and items
105
+ # Helper to return a ruby object representing all the data bags and items
106
106
  # to update via chef-vault.
107
107
  #
108
108
  # @return [Hash] deserialized ruby hash with all the vault items