chef 16.1.16-universal-mingw32 → 16.3.45-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (364) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -7
  3. data/README.md +3 -3
  4. data/Rakefile +3 -16
  5. data/chef-universal-mingw32.gemspec +2 -2
  6. data/chef.gemspec +7 -6
  7. data/lib/chef/application.rb +12 -0
  8. data/lib/chef/application/apply.rb +2 -1
  9. data/lib/chef/application/base.rb +1 -1
  10. data/lib/chef/application/client.rb +1 -1
  11. data/lib/chef/application/windows_service_manager.rb +1 -1
  12. data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
  13. data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
  14. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  15. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
  16. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
  17. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
  18. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
  19. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  20. data/lib/chef/chef_fs/path_utils.rb +1 -1
  21. data/lib/chef/client.rb +3 -3
  22. data/lib/chef/cookbook/chefignore.rb +1 -1
  23. data/lib/chef/cookbook/metadata.rb +1 -1
  24. data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
  25. data/lib/chef/cookbook/syntax_check.rb +1 -2
  26. data/lib/chef/cookbook_loader.rb +15 -29
  27. data/lib/chef/cookbook_version.rb +2 -2
  28. data/lib/chef/data_bag.rb +5 -6
  29. data/lib/chef/deprecated.rb +12 -0
  30. data/lib/chef/digester.rb +3 -2
  31. data/lib/chef/dsl/platform_introspection.rb +2 -0
  32. data/lib/chef/environment.rb +1 -2
  33. data/lib/chef/exceptions.rb +3 -0
  34. data/lib/chef/file_access_control.rb +1 -1
  35. data/lib/chef/file_access_control/windows.rb +2 -2
  36. data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
  37. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  38. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  39. data/lib/chef/handler.rb +2 -0
  40. data/lib/chef/http.rb +27 -13
  41. data/lib/chef/http/authenticator.rb +3 -1
  42. data/lib/chef/http/http_request.rb +1 -1
  43. data/lib/chef/http/json_output.rb +1 -1
  44. data/lib/chef/http/ssl_policies.rb +18 -0
  45. data/lib/chef/knife.rb +5 -5
  46. data/lib/chef/knife/bootstrap.rb +19 -19
  47. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  48. data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
  49. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  50. data/lib/chef/knife/config_get.rb +2 -1
  51. data/lib/chef/knife/config_list_profiles.rb +4 -1
  52. data/lib/chef/knife/config_use_profile.rb +15 -5
  53. data/lib/chef/knife/configure.rb +1 -1
  54. data/lib/chef/knife/cookbook_delete.rb +1 -1
  55. data/lib/chef/knife/cookbook_upload.rb +6 -14
  56. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  57. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  58. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  59. data/lib/chef/knife/core/hashed_command_loader.rb +1 -0
  60. data/lib/chef/knife/core/subcommand_loader.rb +20 -1
  61. data/lib/chef/knife/core/ui.rb +8 -2
  62. data/lib/chef/knife/core/windows_bootstrap_context.rb +2 -3
  63. data/lib/chef/knife/data_bag_create.rb +1 -1
  64. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  65. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  66. data/lib/chef/knife/rehash.rb +3 -21
  67. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  68. data/lib/chef/knife/ssh.rb +6 -2
  69. data/lib/chef/knife/supermarket_share.rb +1 -1
  70. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  71. data/lib/chef/log.rb +8 -3
  72. data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
  73. data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
  74. data/lib/chef/mixin/openssl_helper.rb +27 -5
  75. data/lib/chef/mixin/path_sanity.rb +5 -4
  76. data/lib/chef/mixin/securable.rb +2 -2
  77. data/lib/chef/mixin/shell_out.rb +4 -188
  78. data/lib/chef/mixin/template.rb +1 -0
  79. data/lib/chef/mixin/which.rb +6 -3
  80. data/lib/chef/mixins.rb +1 -0
  81. data/lib/chef/node.rb +36 -12
  82. data/lib/chef/node_map.rb +21 -18
  83. data/lib/chef/platform/service_helpers.rb +31 -28
  84. data/lib/chef/powershell.rb +1 -1
  85. data/lib/chef/provider/batch.rb +3 -10
  86. data/lib/chef/provider/cron.rb +2 -14
  87. data/lib/chef/provider/execute.rb +2 -1
  88. data/lib/chef/provider/git.rb +12 -4
  89. data/lib/chef/provider/group/dscl.rb +2 -2
  90. data/lib/chef/provider/group/windows.rb +1 -1
  91. data/lib/chef/provider/ifconfig.rb +7 -7
  92. data/lib/chef/provider/mount/aix.rb +1 -1
  93. data/lib/chef/provider/mount/solaris.rb +0 -1
  94. data/lib/chef/provider/mount/windows.rb +2 -2
  95. data/lib/chef/provider/noop.rb +1 -1
  96. data/lib/chef/provider/package/openbsd.rb +1 -1
  97. data/lib/chef/provider/package/portage.rb +2 -2
  98. data/lib/chef/provider/package/powershell.rb +6 -2
  99. data/lib/chef/provider/package/rubygems.rb +2 -2
  100. data/lib/chef/provider/package/snap.rb +97 -29
  101. data/lib/chef/provider/package/windows.rb +9 -4
  102. data/lib/chef/provider/package/windows/msi.rb +3 -3
  103. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  104. data/lib/chef/provider/package/zypper.rb +0 -1
  105. data/lib/chef/provider/powershell_script.rb +10 -14
  106. data/lib/chef/provider/remote_file/http.rb +4 -1
  107. data/lib/chef/provider/script.rb +4 -75
  108. data/lib/chef/provider/service.rb +2 -2
  109. data/lib/chef/provider/service/arch.rb +1 -1
  110. data/lib/chef/provider/service/debian.rb +2 -2
  111. data/lib/chef/provider/service/openbsd.rb +4 -4
  112. data/lib/chef/provider/service/redhat.rb +1 -1
  113. data/lib/chef/provider/service/windows.rb +1 -1
  114. data/lib/chef/provider/subversion.rb +2 -2
  115. data/lib/chef/provider/user/dscl.rb +4 -4
  116. data/lib/chef/provider/user/linux.rb +3 -3
  117. data/lib/chef/provider/user/mac.rb +5 -5
  118. data/lib/chef/provider/windows_script.rb +87 -25
  119. data/lib/chef/provider/yum_repository.rb +1 -1
  120. data/lib/chef/provider/zypper_repository.rb +31 -11
  121. data/lib/chef/resource.rb +24 -11
  122. data/lib/chef/resource/alternatives.rb +1 -1
  123. data/lib/chef/resource/apt_package.rb +1 -1
  124. data/lib/chef/resource/archive_file.rb +28 -8
  125. data/lib/chef/resource/bash.rb +0 -1
  126. data/lib/chef/resource/batch.rb +4 -2
  127. data/lib/chef/resource/build_essential.rb +2 -2
  128. data/lib/chef/resource/chef_client_scheduled_task.rb +14 -2
  129. data/lib/chef/resource/chef_gem.rb +57 -21
  130. data/lib/chef/resource/chocolatey_feature.rb +1 -2
  131. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  132. data/lib/chef/resource/cron/cron.rb +46 -0
  133. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
  134. data/lib/chef/resource/cron_access.rb +13 -5
  135. data/lib/chef/resource/csh.rb +0 -1
  136. data/lib/chef/resource/dmg_package.rb +2 -2
  137. data/lib/chef/resource/execute.rb +479 -9
  138. data/lib/chef/resource/file.rb +1 -1
  139. data/lib/chef/resource/freebsd_package.rb +1 -1
  140. data/lib/chef/resource/gem_package.rb +35 -2
  141. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  142. data/lib/chef/resource/homebrew_package.rb +30 -1
  143. data/lib/chef/resource/homebrew_update.rb +107 -0
  144. data/lib/chef/resource/hostname.rb +23 -36
  145. data/lib/chef/resource/kernel_module.rb +14 -1
  146. data/lib/chef/resource/launchd.rb +1 -1
  147. data/lib/chef/resource/lwrp_base.rb +1 -0
  148. data/lib/chef/resource/macos_userdefaults.rb +176 -61
  149. data/lib/chef/resource/mount.rb +1 -1
  150. data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
  151. data/lib/chef/resource/openssl_x509_crl.rb +1 -2
  152. data/lib/chef/resource/perl.rb +0 -1
  153. data/lib/chef/resource/plist.rb +23 -4
  154. data/lib/chef/resource/powershell_script.rb +4 -2
  155. data/lib/chef/resource/python.rb +0 -1
  156. data/lib/chef/resource/remote_file.rb +26 -10
  157. data/lib/chef/resource/ruby.rb +0 -1
  158. data/lib/chef/resource/service.rb +2 -2
  159. data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
  160. data/lib/chef/resource/sudo.rb +30 -3
  161. data/lib/chef/resource/swap_file.rb +17 -0
  162. data/lib/chef/resource/template.rb +1 -1
  163. data/lib/chef/resource/timezone.rb +15 -0
  164. data/lib/chef/resource/user_ulimit.rb +1 -1
  165. data/lib/chef/resource/windows_ad_join.rb +30 -1
  166. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  167. data/lib/chef/resource/windows_auto_run.rb +11 -0
  168. data/lib/chef/resource/windows_certificate.rb +26 -0
  169. data/lib/chef/resource/windows_dns_record.rb +17 -0
  170. data/lib/chef/resource/windows_firewall_profile.rb +197 -0
  171. data/lib/chef/resource/windows_font.rb +3 -3
  172. data/lib/chef/resource/windows_package.rb +1 -1
  173. data/lib/chef/resource/windows_pagefile.rb +1 -1
  174. data/lib/chef/resource/windows_script.rb +2 -16
  175. data/lib/chef/resource/windows_security_policy.rb +67 -36
  176. data/lib/chef/resource/windows_shortcut.rb +1 -2
  177. data/lib/chef/resource/windows_task.rb +4 -4
  178. data/lib/chef/resource/windows_user_privilege.rb +30 -7
  179. data/lib/chef/resource/yum_repository.rb +9 -9
  180. data/lib/chef/resource_inspector.rb +7 -1
  181. data/lib/chef/resources.rb +5 -2
  182. data/lib/chef/role.rb +1 -2
  183. data/lib/chef/search/query.rb +1 -1
  184. data/lib/chef/server_api_versions.rb +4 -0
  185. data/lib/chef/shell/shell_session.rb +2 -0
  186. data/lib/chef/util/diff.rb +2 -3
  187. data/lib/chef/util/windows/net_user.rb +1 -1
  188. data/lib/chef/util/windows/volume.rb +1 -1
  189. data/lib/chef/version.rb +2 -2
  190. data/lib/chef/win32/file.rb +1 -1
  191. data/lib/chef/win32/registry.rb +3 -4
  192. data/lib/chef/win32/security.rb +1 -1
  193. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  194. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  195. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  196. data/spec/functional/knife/configure_spec.rb +1 -1
  197. data/spec/functional/knife/ssh_spec.rb +5 -16
  198. data/spec/functional/resource/aix_service_spec.rb +9 -2
  199. data/spec/functional/resource/aixinit_service_spec.rb +1 -2
  200. data/spec/functional/resource/apt_package_spec.rb +0 -1
  201. data/spec/functional/resource/bash_spec.rb +3 -2
  202. data/spec/functional/resource/bff_spec.rb +1 -1
  203. data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
  204. data/spec/functional/resource/cron_spec.rb +20 -2
  205. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  206. data/spec/functional/resource/execute_spec.rb +1 -1
  207. data/spec/functional/resource/git_spec.rb +23 -1
  208. data/spec/functional/resource/group_spec.rb +15 -3
  209. data/spec/functional/resource/ifconfig_spec.rb +9 -1
  210. data/spec/functional/resource/insserv_spec.rb +3 -3
  211. data/spec/functional/resource/link_spec.rb +2 -5
  212. data/spec/functional/resource/mount_spec.rb +9 -1
  213. data/spec/functional/resource/msu_package_spec.rb +9 -3
  214. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  215. data/spec/functional/resource/remote_file_spec.rb +9 -15
  216. data/spec/functional/resource/rpm_spec.rb +1 -1
  217. data/spec/functional/resource/timezone_spec.rb +2 -0
  218. data/spec/functional/resource/windows_package_spec.rb +0 -1
  219. data/spec/functional/resource/windows_path_spec.rb +4 -0
  220. data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
  221. data/spec/functional/resource/windows_service_spec.rb +4 -0
  222. data/spec/functional/resource/windows_task_spec.rb +12 -11
  223. data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
  224. data/spec/functional/resource/yum_package_spec.rb +4 -1
  225. data/spec/functional/resource/zypper_package_spec.rb +4 -1
  226. data/spec/functional/run_lock_spec.rb +2 -1
  227. data/spec/functional/shell_spec.rb +5 -6
  228. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  229. data/spec/functional/version_spec.rb +1 -1
  230. data/spec/functional/win32/crypto_spec.rb +1 -1
  231. data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
  232. data/spec/integration/knife/config_use_profile_spec.rb +55 -2
  233. data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
  234. data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
  235. data/spec/integration/knife/environment_from_file_spec.rb +1 -1
  236. data/spec/integration/knife/node_from_file_spec.rb +1 -1
  237. data/spec/integration/knife/role_from_file_spec.rb +1 -1
  238. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  239. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  240. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  241. data/spec/integration/recipes/notifies_spec.rb +1 -1
  242. data/spec/integration/recipes/notifying_block_spec.rb +1 -1
  243. data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
  244. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
  245. data/spec/integration/recipes/resource_load_spec.rb +4 -2
  246. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  247. data/spec/integration/recipes/use_partial_spec.rb +1 -1
  248. data/spec/scripts/ssl-serve.rb +1 -1
  249. data/spec/spec_helper.rb +10 -4
  250. data/spec/support/chef_helpers.rb +1 -20
  251. data/spec/support/platform_helpers.rb +1 -3
  252. data/spec/support/platforms/win32/spec_service.rb +1 -1
  253. data/spec/support/shared/functional/execute_resource.rb +1 -1
  254. data/spec/support/shared/functional/file_resource.rb +0 -1
  255. data/spec/support/shared/functional/securable_resource.rb +1 -2
  256. data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
  257. data/spec/support/shared/functional/windows_script.rb +2 -2
  258. data/spec/support/shared/integration/knife_support.rb +2 -9
  259. data/spec/support/shared/unit/application_dot_d.rb +0 -1
  260. data/spec/support/shared/unit/execute_resource.rb +1 -1
  261. data/spec/support/shared/unit/provider/file.rb +12 -8
  262. data/spec/unit/application/solo_spec.rb +4 -2
  263. data/spec/unit/application_spec.rb +11 -2
  264. data/spec/unit/chef_fs/config_spec.rb +2 -2
  265. data/spec/unit/chef_fs/diff_spec.rb +8 -8
  266. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
  267. data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
  268. data/spec/unit/client_spec.rb +4 -1
  269. data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
  270. data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
  271. data/spec/unit/data_bag_spec.rb +6 -3
  272. data/spec/unit/data_collector_spec.rb +1 -1
  273. data/spec/unit/decorator_spec.rb +23 -23
  274. data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
  275. data/spec/unit/environment_spec.rb +5 -1
  276. data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
  277. data/spec/unit/guard_interpreter_spec.rb +1 -1
  278. data/spec/unit/http/api_versions_spec.rb +20 -2
  279. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  280. data/spec/unit/json_compat_spec.rb +1 -1
  281. data/spec/unit/knife/bootstrap_spec.rb +5 -8
  282. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  283. data/spec/unit/knife/cookbook_show_spec.rb +6 -7
  284. data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
  285. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  286. data/spec/unit/log/syslog_spec.rb +6 -10
  287. data/spec/unit/log/winevt_spec.rb +21 -13
  288. data/spec/unit/lwrp_spec.rb +9 -6
  289. data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
  290. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  291. data/spec/unit/mixin/powershell_out_spec.rb +2 -4
  292. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  293. data/spec/unit/mixin/securable_spec.rb +0 -1
  294. data/spec/unit/mixin/shell_out_spec.rb +25 -26
  295. data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
  296. data/spec/unit/mixin/unformatter_spec.rb +2 -2
  297. data/spec/unit/mixin/uris_spec.rb +1 -1
  298. data/spec/unit/mixin/user_context_spec.rb +1 -9
  299. data/spec/unit/mixin/which.rb +8 -0
  300. data/spec/unit/node_spec.rb +98 -11
  301. data/spec/unit/property_spec.rb +6 -6
  302. data/spec/unit/provider/batch_spec.rb +130 -0
  303. data/spec/unit/provider/cron/unix_spec.rb +1 -1
  304. data/spec/unit/provider/cron_spec.rb +9 -49
  305. data/spec/unit/provider/dsc_resource_spec.rb +22 -38
  306. data/spec/unit/provider/dsc_script_spec.rb +10 -10
  307. data/spec/unit/provider/execute_spec.rb +1 -8
  308. data/spec/unit/provider/git_spec.rb +3 -3
  309. data/spec/unit/provider/ifconfig_spec.rb +0 -1
  310. data/spec/unit/provider/mdadm_spec.rb +1 -3
  311. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
  312. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  313. data/spec/unit/provider/package/pacman_spec.rb +17 -20
  314. data/spec/unit/provider/package/powershell_spec.rb +95 -86
  315. data/spec/unit/provider/package/rubygems_spec.rb +5 -10
  316. data/spec/unit/provider/package/smartos_spec.rb +1 -1
  317. data/spec/unit/provider/package/snap_spec.rb +1 -1
  318. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
  319. data/spec/unit/provider/package/windows_spec.rb +30 -53
  320. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  321. data/spec/unit/provider/script_spec.rb +20 -110
  322. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  323. data/spec/unit/provider/service/windows_spec.rb +2 -6
  324. data/spec/unit/provider/systemd_unit_spec.rb +28 -24
  325. data/spec/unit/provider/user/dscl_spec.rb +2 -2
  326. data/spec/unit/provider/windows_env_spec.rb +5 -4
  327. data/spec/unit/provider/zypper_repository_spec.rb +60 -10
  328. data/spec/unit/provider_spec.rb +1 -0
  329. data/spec/unit/resource/archive_file_spec.rb +11 -2
  330. data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
  331. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  332. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
  333. data/spec/unit/resource/cron_spec.rb +2 -2
  334. data/spec/unit/resource/execute_spec.rb +10 -0
  335. data/spec/unit/resource/file/verification_spec.rb +2 -1
  336. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  337. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  338. data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
  339. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  340. data/spec/unit/resource/timezone_spec.rb +1 -1
  341. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  342. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  343. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  344. data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
  345. data/spec/unit/resource/windows_package_spec.rb +1 -0
  346. data/spec/unit/resource/windows_task_spec.rb +1 -1
  347. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  348. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  349. data/spec/unit/resource_reporter_spec.rb +1 -1
  350. data/spec/unit/resource_spec.rb +84 -1
  351. data/spec/unit/role_spec.rb +23 -21
  352. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  353. data/spec/unit/run_lock_spec.rb +1 -1
  354. data/spec/unit/scan_access_control_spec.rb +1 -1
  355. data/spec/unit/server_api_spec.rb +43 -16
  356. data/spec/unit/util/backup_spec.rb +1 -1
  357. data/spec/unit/util/diff_spec.rb +1 -15
  358. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  359. data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
  360. data/spec/unit/util/selinux_spec.rb +2 -1
  361. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  362. data/spec/unit/win32/security_spec.rb +4 -3
  363. metadata +68 -40
  364. data/lib/chef/resource/cron.rb +0 -157
@@ -34,7 +34,6 @@ class Chef
34
34
  description 'Make a shortcut to C:\\original_dir'
35
35
  end
36
36
  ```
37
-
38
37
  DOC
39
38
 
40
39
  property :shortcut_name, String,
@@ -57,7 +56,7 @@ class Chef
57
56
  description: "Icon to use for the shortcut. Accepts the format of `path, index`, where index is the icon file to use. See Microsoft's [documentation](https://msdn.microsoft.com/en-us/library/3s9bx7at.aspx) for details"
58
57
 
59
58
  load_current_value do |desired|
60
- require "win32ole" if RUBY_PLATFORM =~ /mswin|mingw32|windows/
59
+ require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
61
60
 
62
61
  link = WIN32OLE.new("WScript.Shell").CreateShortcut(desired.shortcut_name)
63
62
  name desired.shortcut_name
@@ -189,11 +189,11 @@ class Chef
189
189
  description: "The frequency with which to run the task."
190
190
 
191
191
  property :start_day, String,
192
- description: "Specifies the first date on which the task runs in MM/DD/YYYY format.",
192
+ description: "Specifies the first date on which the task runs in **MM/DD/YYYY** format.",
193
193
  default_description: "The current date."
194
194
 
195
195
  property :start_time, String,
196
- description: "Specifies the start time to run the task, in HH:mm format."
196
+ description: "Specifies the start time to run the task, in **HH:mm** format."
197
197
 
198
198
  property :day, [String, Integer],
199
199
  description: "The day(s) on which the task runs."
@@ -330,7 +330,7 @@ class Chef
330
330
 
331
331
  # make sure the start_day is in MM/DD/YYYY format: http://rubular.com/r/cgjHemtWl5
332
332
  if start_day
333
- raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$} =~ start_day
333
+ raise ArgumentError, "`start_day` property must be in the MM/DD/YYYY format." unless %r{^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$}.match?(start_day)
334
334
  end
335
335
  end
336
336
 
@@ -338,7 +338,7 @@ class Chef
338
338
  def validate_start_time(start_time, frequency)
339
339
  if start_time
340
340
  raise ArgumentError, "`start_time` property is not supported with `frequency :none`" if frequency == :none
341
- raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]$/ =~ start_time
341
+ raise ArgumentError, "`start_time` property must be in the HH:mm format (e.g. 6:20pm -> 18:20)." unless /^[0-2][0-9]:[0-5][0-9]$/.match?(start_time)
342
342
  else
343
343
  raise ArgumentError, "`start_time` needs to be provided with `frequency :once`" if frequency == :once
344
344
  end
@@ -68,7 +68,7 @@ class Chef
68
68
  }
69
69
 
70
70
  provides :windows_user_privilege
71
- description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege. \n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
71
+ description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
72
72
 
73
73
  introduced "16.0"
74
74
 
@@ -78,7 +78,7 @@ class Chef
78
78
  ```ruby
79
79
  windows_user_privilege 'Network Logon Rights' do
80
80
  privilege 'SeNetworkLogonRight'
81
- users ['BUILTIN\Administrators', 'NT AUTHORITY\Authenticated Users']
81
+ users ['BUILTIN\\Administrators', 'NT AUTHORITY\\Authenticated Users']
82
82
  action :set
83
83
  end
84
84
  ```
@@ -88,7 +88,7 @@ class Chef
88
88
  ```ruby
89
89
  windows_user_privilege 'Remote interactive logon' do
90
90
  privilege 'SeDenyRemoteInteractiveLogonRight'
91
- users ['Builtin\Guests', 'NT AUTHORITY\Local Account']
91
+ users ['Builtin\\Guests', 'NT AUTHORITY\\Local Account']
92
92
  action :add
93
93
  end
94
94
  ```
@@ -98,7 +98,7 @@ class Chef
98
98
  ```ruby
99
99
  windows_user_privilege 'Create Pagefile' do
100
100
  privilege 'SeCreatePagefilePrivilege'
101
- users ['BUILTIN\Guests', 'BUILTIN\Administrators']
101
+ users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
102
102
  action :set
103
103
  end
104
104
  ```
@@ -108,10 +108,19 @@ class Chef
108
108
  ```ruby
109
109
  windows_user_privilege 'Create Pagefile' do
110
110
  privilege 'SeCreatePagefilePrivilege'
111
- users ['BUILTIN\Guests']
111
+ users ['BUILTIN\\Guests']
112
112
  action :remove
113
113
  end
114
114
  ```
115
+
116
+ **Clear all users from the SeDenyNetworkLogonRight Privilege**:
117
+
118
+ ```ruby
119
+ windows_user_privilege 'Allow any user the Network Logon right' do
120
+ privilege 'SeDenyNetworkLogonRight'
121
+ action :clear
122
+ end
123
+ ```
115
124
  DOC
116
125
 
117
126
  property :principal, String,
@@ -132,8 +141,8 @@ class Chef
132
141
  }
133
142
 
134
143
  load_current_value do |new_resource|
135
- unless new_resource.principal.nil?
136
- privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal) unless new_resource.action.include?(:set)
144
+ if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
145
+ privilege Chef::ReservedNames::Win32::Security.get_account_right(new_resource.principal)
137
146
  end
138
147
  end
139
148
 
@@ -180,6 +189,20 @@ class Chef
180
189
  end
181
190
  end
182
191
 
192
+ action :clear do
193
+ new_resource.privilege.each do |privilege|
194
+ accounts = Chef::ReservedNames::Win32::Security.get_account_with_user_rights(privilege)
195
+
196
+ # comparing the existing accounts for privilege with users
197
+ # Removing only accounts which is not matching with users in new_resource
198
+ accounts.each do |account|
199
+ converge_by("removing user '#{account}' from privilege #{privilege}") do
200
+ Chef::ReservedNames::Win32::Security.remove_account_right(account, privilege)
201
+ end
202
+ end
203
+ end
204
+ end
205
+
183
206
  action :remove do
184
207
  curr_res_privilege = current_resource.privilege
185
208
  missing_res_privileges = (new_resource.privilege - curr_res_privilege)
@@ -95,7 +95,7 @@ class Chef
95
95
  description: "URL pointing to the ASCII-armored GPG key file for the repository. This is used if Yum needs a public key to verify a package and the required key hasn't been imported into the RPM database. If this option is set, Yum will automatically import the key from the specified URL. Multiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed.\nMultiple URLs may be specified in the same manner as the baseurl option. If a GPG key is required to install a package from a repository, all keys specified for that repository will be installed."
96
96
 
97
97
  property :http_caching, String, equal_to: %w{packages all none},
98
- description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values: all (all HTTP downloads should be cached), packages (only RPM package downloads should be cached, but not repository metadata downloads), or none (no HTTP downloads should be cached)"
98
+ description: "Determines how upstream HTTP caches are instructed to handle any HTTP downloads that Yum does. This option can take the following values:\n - `all` means all HTTP downloads should be cached\n - `packages` means only RPM package downloads should be cached, but not repository metadata downloads\n - `none` means no HTTP downloads should be cached.\n\nThe default value of `all` is recommended unless you are experiencing caching related issues."
99
99
 
100
100
  property :include_config, String,
101
101
  description: "An external configuration file using the format `url://to/some/location`."
@@ -114,25 +114,25 @@ class Chef
114
114
  description: "Number of times any attempt to retrieve a file should retry before returning an error. Setting this to `0` makes Yum try forever."
115
115
 
116
116
  property :metadata_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/, /never/],
117
- description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a 'd', 'h' or 'm' respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word `never`, meaning that the metadata will never expire. Note: When using a metalink file, the metalink must always be newer than the metadata for the repository due to the validation, so this timeout also applies to the metalink file.",
118
- validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with 'd', 'h', or 'm'!"
117
+ description: "Time (in seconds) after which the metadata will expire. If the current metadata downloaded is less than the value specified, then Yum will not update the metadata against the repository. If you find that Yum is not downloading information on updates as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively. The default is six hours to compliment yum-updates running once per hour. It is also possible to use the word `never`, meaning that the metadata will never expire. Note: When using a metalink file, the metalink must always be newer than the metadata for the repository due to the validation, so this timeout also applies to the metalink file.",
118
+ validation_message: "The metadata_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
119
119
 
120
120
  property :metalink, String,
121
121
  description: "Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for the entire repository are generated by converting the mirrors for the repomd.xml file to a baseurl."
122
122
 
123
123
  property :mirror_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
124
- description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a 'd', 'h' or 'm' respectively.",
125
- validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with 'd', 'h', or 'm'!"
124
+ description: "Time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than this many seconds old then Yum will not download another copy of the mirrorlist, it has the same extra format as metadata_expire. If you find that Yum is not downloading the mirrorlists as often as you would like lower the value of this option. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
125
+ validation_message: "The mirror_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
126
126
 
127
127
  property :mirrorlist_expire, String, regex: [/^\d+$/, /^\d+[mhd]$/],
128
- description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a 'd', 'h' or 'm' respectively.",
129
- validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with 'd', 'h', or 'm'!"
128
+ description: "Specifies the time (in seconds) after which the mirrorlist locally cached will expire. If the current mirrorlist is less than the value specified, then Yum will not download another copy of the mirrorlist. You can also change from the default of using seconds to using days, hours or minutes by appending a `d`, `h` or `m` respectively.",
129
+ validation_message: "The mirrorlist_expire property must be a numeric value for time in seconds, the string 'never', or a numeric value appended with with `d`, `h`, or `m`!"
130
130
 
131
131
  property :mirrorlist, String,
132
132
  description: "URL to a file containing a list of baseurls. This can be used instead of or with the baseurl option. Substitution variables, described below, can be used with this option."
133
133
 
134
134
  property :mode, [String, Integer],
135
- description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to '600', normal users will not be able to use Yum search, Yum info, etc.",
135
+ description: "Permissions mode of .repo file on disk. This is useful for scenarios where secrets are in the repo file. If this value is set to `600`, normal users will not be able to use Yum search, Yum info, etc.",
136
136
  default: "0644"
137
137
 
138
138
  property :options, Hash,
@@ -142,7 +142,7 @@ class Chef
142
142
  description: "Password to use with the username for basic authentication."
143
143
 
144
144
  property :priority, String, regex: /^(\d?[1-9]|[0-9][0-9])$/,
145
- description: "Assigns a priority to a repository where the priority value is between '1' and '99' inclusive. Priorities are used to enforce ordered protection of repositories. Packages from repositories with a lower priority (higher numerical value) will never be used to upgrade packages that were installed from a repository with a higher priority (lower numerical value). The repositories with the lowest numerical priority number have the highest priority.",
145
+ description: "Assigns a priority to a repository where the priority value is between `1` and `99` inclusive. Priorities are used to enforce ordered protection of repositories. Packages from repositories with a lower priority (higher numerical value) will never be used to upgrade packages that were installed from a repository with a higher priority (lower numerical value). The repositories with the lowest numerical priority number have the highest priority.",
146
146
  validation_message: "The priority property must be a numeric value from 1-99!"
147
147
 
148
148
  property :proxy_password, String,
@@ -59,11 +59,17 @@ module ResourceInspector
59
59
  required: opts[:required] || false,
60
60
  default: opts[:default_description] || get_default(opts[:default]),
61
61
  name_property: opts[:name_property] || false,
62
- equal_to: Array(opts[:equal_to]).sort.map(&:inspect) }
62
+ equal_to: sort_equal_to(opts[:equal_to]) }
63
63
  end
64
64
  data
65
65
  end
66
66
 
67
+ def self.sort_equal_to(equal_to)
68
+ Array(equal_to).sort.map(&:inspect)
69
+ rescue ArgumentError
70
+ Array(equal_to).map(&:inspect)
71
+ end
72
+
67
73
  def self.extract_cookbook(path, complete)
68
74
  path = File.expand_path(path)
69
75
  dir, name = File.split(path)
@@ -38,9 +38,9 @@ require_relative "resource/chocolatey_config"
38
38
  require_relative "resource/chocolatey_feature"
39
39
  require_relative "resource/chocolatey_package"
40
40
  require_relative "resource/chocolatey_source"
41
- require_relative "resource/cron"
41
+ require_relative "resource/cron/cron"
42
42
  require_relative "resource/cron_access"
43
- require_relative "resource/cron_d"
43
+ require_relative "resource/cron/cron_d"
44
44
  require_relative "resource/csh"
45
45
  require_relative "resource/directory"
46
46
  require_relative "resource/dmg_package"
@@ -60,6 +60,7 @@ require_relative "resource/hostname"
60
60
  require_relative "resource/homebrew_cask"
61
61
  require_relative "resource/homebrew_package"
62
62
  require_relative "resource/homebrew_tap"
63
+ require_relative "resource/homebrew_update"
63
64
  require_relative "resource/ifconfig"
64
65
  require_relative "resource/kernel_module"
65
66
  require_relative "resource/ksh"
@@ -141,6 +142,7 @@ require_relative "resource/cab_package"
141
142
  require_relative "resource/powershell_package"
142
143
  require_relative "resource/msu_package"
143
144
  require_relative "resource/windows_ad_join"
145
+ require_relative "resource/windows_audit_policy"
144
146
  require_relative "resource/windows_auto_run"
145
147
  require_relative "resource/windows_certificate"
146
148
  require_relative "resource/windows_dfs_folder"
@@ -151,6 +153,7 @@ require_relative "resource/windows_dns_zone"
151
153
  require_relative "resource/windows_feature"
152
154
  require_relative "resource/windows_feature_dism"
153
155
  require_relative "resource/windows_feature_powershell"
156
+ require_relative "resource/windows_firewall_profile"
154
157
  require_relative "resource/windows_firewall_rule"
155
158
  require_relative "resource/windows_font"
156
159
  require_relative "resource/windows_pagefile"
@@ -133,7 +133,7 @@ class Chef
133
133
  def to_h
134
134
  env_run_lists_without_default = @env_run_lists.dup
135
135
  env_run_lists_without_default.delete("_default")
136
- result = {
136
+ {
137
137
  "name" => @name,
138
138
  "description" => @description,
139
139
  "json_class" => self.class.name,
@@ -149,7 +149,6 @@ class Chef
149
149
  accumulator
150
150
  end,
151
151
  }
152
- result
153
152
  end
154
153
 
155
154
  alias_method :to_hash, :to_h
@@ -105,7 +105,7 @@ class Chef
105
105
  private
106
106
 
107
107
  def fuzzify_node_query(query)
108
- if query !~ /:/
108
+ if !/:/.match?(query)
109
109
  "tags:*#{query}* OR roles:*#{query}* OR fqdn:*#{query}* OR addresses:*#{query}* OR policy_name:*#{query}* OR policy_group:*#{query}*"
110
110
  else
111
111
  query
@@ -51,6 +51,10 @@ class Chef
51
51
  @unversioned
52
52
  end
53
53
 
54
+ def negotiated?
55
+ !@versions.nil? || unversioned?
56
+ end
57
+
54
58
  def reset!
55
59
  @versions = nil
56
60
  @unversioned = false
@@ -41,6 +41,7 @@ module Shell
41
41
 
42
42
  attr_accessor :node, :compile, :recipe, :json_configuration
43
43
  attr_reader :node_attributes, :client
44
+
44
45
  def initialize
45
46
  @node_built = false
46
47
  formatter = Chef::Formatters.new(Chef::Config.formatter, STDOUT, STDERR)
@@ -75,6 +76,7 @@ module Shell
75
76
  end
76
77
 
77
78
  attr_writer :run_context
79
+
78
80
  def run_context
79
81
  @run_context ||= rebuild_context
80
82
  end
@@ -48,7 +48,6 @@ class Chef
48
48
  class Diff
49
49
  # @todo: to_a, to_s, to_json, inspect defs, accessors for @diff and @error
50
50
  # @todo: move coercion to UTF-8 into to_json
51
- # @todo: replace shellout to diff -u with diff-lcs gem
52
51
 
53
52
  def for_output
54
53
  # formatted output to a terminal uses arrays of strings and returns error strings
@@ -136,7 +135,7 @@ class Chef
136
135
  return "(file sizes exceed #{diff_filesize_threshold} bytes, diff output suppressed)"
137
136
  end
138
137
 
139
- # MacOSX(BSD?) diff will *sometimes* happily spit out nasty binary diffs
138
+ # macOS(BSD?) diff will *sometimes* happily spit out nasty binary diffs
140
139
  return "(current file is binary, diff output suppressed)" if is_binary?(old_file)
141
140
  return "(new content is binary, diff output suppressed)" if is_binary?(new_file)
142
141
 
@@ -171,7 +170,7 @@ class Chef
171
170
  begin
172
171
  return buff !~ /\A[\s[:print:]]*\z/m
173
172
  rescue ArgumentError => e
174
- return true if e.message =~ /invalid byte sequence/
173
+ return true if /invalid byte sequence/.match?(e.message)
175
174
 
176
175
  raise
177
176
  end
@@ -100,7 +100,7 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
100
100
  rescue Chef::Exceptions::Win32APIError => e
101
101
  Chef::Log.trace(e)
102
102
  # we're only interested in the incorrect password failures
103
- if e.to_s =~ /System Error Code: 1326/
103
+ if /System Error Code: 1326/.match?(e.to_s)
104
104
  return false
105
105
  end
106
106
 
@@ -25,7 +25,7 @@ class Chef::Util::Windows::Volume < Chef::Util::Windows
25
25
  attr_reader :mount_point
26
26
 
27
27
  def initialize(name)
28
- name += "\\" unless name =~ /\\$/ # trailing slash required
28
+ name += "\\" unless /\\$/.match?(name) # trailing slash required
29
29
  @mount_point = name
30
30
  end
31
31
 
@@ -22,8 +22,8 @@
22
22
  require_relative "version_string"
23
23
 
24
24
  class Chef
25
- CHEF_ROOT = File.expand_path("../..", __FILE__)
26
- VERSION = Chef::VersionString.new("16.1.16")
25
+ CHEF_ROOT = File.expand_path("..", __dir__)
26
+ VERSION = Chef::VersionString.new("16.3.45")
27
27
  end
28
28
 
29
29
  #
@@ -123,7 +123,7 @@ class Chef
123
123
 
124
124
  # Return the link destination (strip off \??\ at the beginning, which is a local filesystem thing)
125
125
  link_dest = reparse_buffer.reparse_buffer.substitute_name
126
- if link_dest =~ /^\\\?\?\\/
126
+ if /^\\\?\?\\/.match?(link_dest)
127
127
  link_dest = link_dest[4..-1]
128
128
  end
129
129
  link_dest
@@ -20,7 +20,7 @@ require_relative "../reserved_names"
20
20
  require_relative "api"
21
21
  require_relative "../mixin/wide_string"
22
22
 
23
- if RUBY_PLATFORM =~ /mswin|mingw32|windows/
23
+ if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
24
24
  require_relative "../monkey_patches/win32/registry"
25
25
  require_relative "api/registry"
26
26
  require "win32/registry" unless defined?(Win32::Registry)
@@ -31,7 +31,7 @@ class Chef
31
31
  class Win32
32
32
  class Registry
33
33
 
34
- if RUBY_PLATFORM =~ /mswin|mingw32|windows/
34
+ if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
35
35
  include Chef::ReservedNames::Win32::API::Registry
36
36
  extend Chef::ReservedNames::Win32::API::Registry
37
37
  end
@@ -341,7 +341,7 @@ class Chef
341
341
  end
342
342
 
343
343
  def get_type_from_num(val_type)
344
- value = {
344
+ {
345
345
  3 => ::Win32::Registry::REG_BINARY,
346
346
  1 => ::Win32::Registry::REG_SZ,
347
347
  7 => ::Win32::Registry::REG_MULTI_SZ,
@@ -350,7 +350,6 @@ class Chef
350
350
  5 => ::Win32::Registry::REG_DWORD_BIG_ENDIAN,
351
351
  11 => ::Win32::Registry::REG_QWORD,
352
352
  }[val_type]
353
- value
354
353
  end
355
354
 
356
355
  def create_missing(key_path)
@@ -694,7 +694,7 @@ class Chef
694
694
  begin
695
695
  process_token = open_current_process_token(TOKEN_READ)
696
696
  rescue Exception => run_error
697
- return false if run_error.message =~ /Access is denied/
697
+ return false if /Access is denied/.match?(run_error.message)
698
698
 
699
699
  Chef::ReservedNames::Win32::Error.raise!
700
700
  end
@@ -4,7 +4,7 @@ def without_deprecation_warnings(&block)
4
4
  old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
5
5
  Chef::Config[:treat_deprecation_warnings_as_errors] = false
6
6
  begin
7
- block.call
7
+ yield
8
8
  ensure
9
9
  Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
10
10
  end
@@ -2,7 +2,7 @@ def without_deprecation_warnings(&block)
2
2
  old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
3
3
  Chef::Config[:treat_deprecation_warnings_as_errors] = false
4
4
  begin
5
- block.call
5
+ yield
6
6
  ensure
7
7
  Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
8
8
  end
@@ -7,7 +7,7 @@ def without_deprecation_warnings(&block)
7
7
  old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
8
8
  Chef::Config[:treat_deprecation_warnings_as_errors] = false
9
9
  begin
10
- block.call
10
+ yield
11
11
  ensure
12
12
  Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
13
13
  end
@@ -21,7 +21,7 @@ require "spec_helper"
21
21
  require "chef/knife/configure"
22
22
 
23
23
  describe "knife configure" do
24
- let (:ohai) do
24
+ let(:ohai) do
25
25
  OHAI_SYSTEM
26
26
  end
27
27
 
@@ -36,17 +36,6 @@ describe Chef::Knife::Ssh do
36
36
  allow(Net::SSH).to receive(:configuration_for).and_return(ssh_config)
37
37
  end
38
38
 
39
- # Force log level to info.
40
- around do |ex|
41
- old_level = Chef::Log.level
42
- begin
43
- Chef::Log.level = :info
44
- ex.run
45
- ensure
46
- Chef::Log.level = old_level
47
- end
48
- end
49
-
50
39
  describe "identity file" do
51
40
  context "when knife[:ssh_identity_file] is set" do
52
41
  before do
@@ -278,7 +267,7 @@ describe Chef::Knife::Ssh do
278
267
  end
279
268
 
280
269
  it "uses the ssh_gateway" do
281
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
270
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true })
282
271
  @knife.run
283
272
  expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
284
273
  end
@@ -291,7 +280,7 @@ describe Chef::Knife::Ssh do
291
280
  end
292
281
 
293
282
  it "uses the ssh_gateway" do
294
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", {})
283
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true })
295
284
  @knife.run
296
285
  expect(@knife.config[:ssh_gateway]).to eq("user@ec2.public_hostname")
297
286
  end
@@ -305,7 +294,7 @@ describe Chef::Knife::Ssh do
305
294
  end
306
295
 
307
296
  it "uses the ssh_gateway_identity file" do
308
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
297
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true, keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
309
298
  @knife.run
310
299
  expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
311
300
  end
@@ -319,7 +308,7 @@ describe Chef::Knife::Ssh do
319
308
  end
320
309
 
321
310
  it "uses the ssh_gateway_identity file" do
322
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
311
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { append_all_supported_algorithms: true, keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
323
312
  @knife.run
324
313
  expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
325
314
  end
@@ -335,7 +324,7 @@ describe Chef::Knife::Ssh do
335
324
  end
336
325
 
337
326
  it "should prompt the user for a password" do
338
- expect(@knife.ui).to receive(:ask).with("Enter the password for user@ec2.public_hostname: ").and_return("password")
327
+ expect(@knife.ui).to receive(:ask).with("Enter the password for user@ec2.public_hostname: ", echo: false).and_return("password")
339
328
  @knife.run
340
329
  end
341
330
  end