chef 16.2.44-universal-mingw32 → 16.4.35-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 (383) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/Rakefile +3 -16
  4. data/chef-universal-mingw32.gemspec +2 -3
  5. data/chef.gemspec +4 -3
  6. data/lib/chef/action_collection.rb +4 -0
  7. data/lib/chef/api_client/registration.rb +2 -2
  8. data/lib/chef/application.rb +13 -1
  9. data/lib/chef/application/apply.rb +6 -5
  10. data/lib/chef/application/windows_service.rb +27 -27
  11. data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
  12. data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
  13. data/lib/chef/chef_class.rb +0 -1
  14. data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
  15. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
  16. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
  17. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
  18. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
  19. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
  20. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
  21. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
  22. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  23. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  24. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
  25. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  26. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  27. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  28. data/lib/chef/client.rb +14 -14
  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 +15 -29
  32. data/lib/chef/data_bag.rb +1 -2
  33. data/lib/chef/data_collector/run_end_message.rb +11 -1
  34. data/lib/chef/deprecated.rb +8 -0
  35. data/lib/chef/digester.rb +3 -2
  36. data/lib/chef/dsl/platform_introspection.rb +9 -7
  37. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  38. data/lib/chef/environment.rb +3 -4
  39. data/lib/chef/exceptions.rb +4 -1
  40. data/lib/chef/file_access_control/windows.rb +2 -2
  41. data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
  42. data/lib/chef/file_content_management/tempfile.rb +9 -9
  43. data/lib/chef/handler.rb +2 -0
  44. data/lib/chef/http.rb +12 -12
  45. data/lib/chef/http/authenticator.rb +3 -1
  46. data/lib/chef/json_compat.rb +1 -1
  47. data/lib/chef/knife.rb +4 -4
  48. data/lib/chef/knife/bootstrap.rb +18 -15
  49. data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
  50. data/lib/chef/knife/config_get.rb +1 -0
  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_download.rb +1 -1
  55. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  56. data/lib/chef/knife/cookbook_upload.rb +29 -37
  57. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  58. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  59. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  60. data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
  61. data/lib/chef/knife/core/subcommand_loader.rb +20 -1
  62. data/lib/chef/knife/core/ui.rb +8 -2
  63. data/lib/chef/knife/core/windows_bootstrap_context.rb +33 -26
  64. data/lib/chef/knife/delete.rb +15 -15
  65. data/lib/chef/knife/exec.rb +2 -2
  66. data/lib/chef/knife/rehash.rb +3 -21
  67. data/lib/chef/knife/ssh.rb +11 -7
  68. data/lib/chef/knife/xargs.rb +19 -19
  69. data/lib/chef/knife/yaml_convert.rb +1 -1
  70. data/lib/chef/log.rb +7 -2
  71. data/lib/chef/mixin/checksum.rb +0 -1
  72. data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
  73. data/lib/chef/mixin/deep_merge.rb +35 -6
  74. data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
  75. data/lib/chef/mixin/openssl_helper.rb +30 -6
  76. data/lib/chef/mixin/path_sanity.rb +5 -4
  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/monkey_patches/webrick-utils.rb +10 -10
  82. data/lib/chef/node.rb +36 -12
  83. data/lib/chef/node/attribute.rb +2 -4
  84. data/lib/chef/node_map.rb +21 -18
  85. data/lib/chef/platform/service_helpers.rb +31 -28
  86. data/lib/chef/property.rb +1 -1
  87. data/lib/chef/provider/cron/unix.rb +0 -2
  88. data/lib/chef/provider/git.rb +17 -9
  89. data/lib/chef/provider/group.rb +0 -2
  90. data/lib/chef/provider/group/suse.rb +5 -5
  91. data/lib/chef/provider/ifconfig.rb +1 -4
  92. data/lib/chef/provider/mount.rb +0 -2
  93. data/lib/chef/provider/mount/solaris.rb +0 -1
  94. data/lib/chef/provider/package.rb +0 -2
  95. data/lib/chef/provider/package/rubygems.rb +1 -1
  96. data/lib/chef/provider/package/snap.rb +3 -4
  97. data/lib/chef/provider/package/windows.rb +9 -4
  98. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -9
  99. data/lib/chef/provider/package/zypper.rb +0 -1
  100. data/lib/chef/provider/powershell_script.rb +21 -5
  101. data/lib/chef/provider/route.rb +1 -1
  102. data/lib/chef/provider/service.rb +2 -2
  103. data/lib/chef/provider/service/arch.rb +1 -1
  104. data/lib/chef/provider/service/debian.rb +1 -1
  105. data/lib/chef/provider/service/gentoo.rb +2 -2
  106. data/lib/chef/provider/service/macosx.rb +2 -2
  107. data/lib/chef/provider/service/openbsd.rb +1 -4
  108. data/lib/chef/provider/service/redhat.rb +2 -2
  109. data/lib/chef/provider/service/upstart.rb +1 -1
  110. data/lib/chef/provider/service/windows.rb +10 -10
  111. data/lib/chef/provider/systemd_unit.rb +0 -2
  112. data/lib/chef/provider/template/content.rb +1 -0
  113. data/lib/chef/provider/user/dscl.rb +2 -2
  114. data/lib/chef/provider/user/mac.rb +9 -9
  115. data/lib/chef/provider/windows_task.rb +0 -3
  116. data/lib/chef/provider/yum_repository.rb +1 -1
  117. data/lib/chef/provider/zypper_repository.rb +1 -2
  118. data/lib/chef/providers.rb +0 -1
  119. data/lib/chef/recipe.rb +1 -1
  120. data/lib/chef/resource.rb +9 -11
  121. data/lib/chef/resource/alternatives.rb +1 -1
  122. data/lib/chef/resource/apt_repository.rb +1 -10
  123. data/lib/chef/resource/build_essential.rb +2 -2
  124. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  125. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  126. data/lib/chef/resource/chef_gem.rb +57 -21
  127. data/lib/chef/resource/chef_vault_secret.rb +13 -13
  128. data/lib/chef/resource/chocolatey_feature.rb +1 -2
  129. data/lib/chef/resource/cron/cron_d.rb +1 -1
  130. data/lib/chef/resource/cron_access.rb +2 -2
  131. data/lib/chef/resource/dmg_package.rb +2 -2
  132. data/lib/chef/resource/execute.rb +4 -5
  133. data/lib/chef/resource/gem_package.rb +35 -2
  134. data/lib/chef/resource/homebrew_update.rb +2 -2
  135. data/lib/chef/resource/hostname.rb +18 -18
  136. data/lib/chef/resource/launchd.rb +1 -1
  137. data/lib/chef/resource/lwrp_base.rb +1 -0
  138. data/lib/chef/resource/macos_userdefaults.rb +176 -61
  139. data/lib/chef/resource/openssl_dhparam.rb +2 -0
  140. data/lib/chef/resource/openssl_ec_private_key.rb +2 -0
  141. data/lib/chef/resource/openssl_ec_public_key.rb +2 -0
  142. data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
  143. data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
  144. data/lib/chef/resource/openssl_x509_certificate.rb +35 -35
  145. data/lib/chef/resource/openssl_x509_crl.rb +3 -2
  146. data/lib/chef/resource/openssl_x509_request.rb +23 -20
  147. data/lib/chef/resource/osx_profile.rb +227 -5
  148. data/lib/chef/resource/powershell_package_source.rb +1 -1
  149. data/lib/chef/resource/powershell_script.rb +24 -30
  150. data/lib/chef/resource/service.rb +2 -2
  151. data/lib/chef/resource/ssh_known_hosts_entry.rb +16 -1
  152. data/lib/chef/resource/sudo.rb +31 -4
  153. data/lib/chef/resource/swap_file.rb +17 -0
  154. data/lib/chef/resource/sysctl.rb +5 -5
  155. data/lib/chef/resource/timezone.rb +15 -0
  156. data/lib/chef/resource/user_ulimit.rb +1 -1
  157. data/lib/chef/resource/windows_ad_join.rb +2 -0
  158. data/lib/chef/resource/windows_audit_policy.rb +3 -0
  159. data/lib/chef/resource/windows_auto_run.rb +2 -0
  160. data/lib/chef/resource/windows_certificate.rb +2 -0
  161. data/lib/chef/resource/windows_dfs_folder.rb +2 -0
  162. data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
  163. data/lib/chef/resource/windows_dfs_server.rb +2 -0
  164. data/lib/chef/resource/windows_dns_record.rb +25 -5
  165. data/lib/chef/resource/windows_dns_zone.rb +12 -7
  166. data/lib/chef/resource/windows_feature.rb +2 -0
  167. data/lib/chef/resource/windows_feature_dism.rb +10 -0
  168. data/lib/chef/resource/windows_feature_powershell.rb +14 -2
  169. data/lib/chef/resource/windows_firewall_profile.rb +199 -0
  170. data/lib/chef/resource/windows_firewall_rule.rb +5 -3
  171. data/lib/chef/resource/windows_font.rb +3 -1
  172. data/lib/chef/resource/windows_pagefile.rb +4 -0
  173. data/lib/chef/resource/windows_printer.rb +17 -18
  174. data/lib/chef/resource/windows_printer_port.rb +14 -13
  175. data/lib/chef/resource/windows_security_policy.rb +52 -21
  176. data/lib/chef/resource/windows_share.rb +5 -3
  177. data/lib/chef/resource/windows_shortcut.rb +2 -0
  178. data/lib/chef/resource/windows_uac.rb +2 -0
  179. data/lib/chef/resource/windows_user_privilege.rb +27 -2
  180. data/lib/chef/resource/windows_workgroup.rb +2 -3
  181. data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
  182. data/lib/chef/resource_inspector.rb +7 -1
  183. data/lib/chef/resources.rb +1 -0
  184. data/lib/chef/role.rb +3 -4
  185. data/lib/chef/run_context/cookbook_compiler.rb +20 -20
  186. data/lib/chef/run_status.rb +2 -6
  187. data/lib/chef/server_api_versions.rb +4 -0
  188. data/lib/chef/shell.rb +1 -1
  189. data/lib/chef/shell/shell_session.rb +2 -0
  190. data/lib/chef/util/backup.rb +1 -1
  191. data/lib/chef/util/diff.rb +11 -12
  192. data/lib/chef/util/powershell/cmdlet.rb +1 -1
  193. data/lib/chef/version.rb +2 -2
  194. data/lib/chef/win32/file.rb +2 -2
  195. data/lib/chef/win32/file/version_info.rb +5 -5
  196. data/lib/chef/win32/registry.rb +1 -2
  197. data/spec/data/ssl/chef-rspec.cert +15 -15
  198. data/spec/functional/knife/configure_spec.rb +1 -1
  199. data/spec/functional/knife/ssh_spec.rb +5 -16
  200. data/spec/functional/resource/aix_service_spec.rb +9 -2
  201. data/spec/functional/resource/aixinit_service_spec.rb +8 -9
  202. data/spec/functional/resource/apt_package_spec.rb +0 -1
  203. data/spec/functional/resource/bash_spec.rb +3 -2
  204. data/spec/functional/resource/bff_spec.rb +3 -3
  205. data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
  206. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  207. data/spec/functional/resource/cron_spec.rb +10 -2
  208. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  209. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  210. data/spec/functional/resource/dsc_script_spec.rb +0 -1
  211. data/spec/functional/resource/execute_spec.rb +1 -1
  212. data/spec/functional/resource/git_spec.rb +23 -1
  213. data/spec/functional/resource/group_spec.rb +21 -9
  214. data/spec/functional/resource/ifconfig_spec.rb +9 -1
  215. data/spec/functional/resource/insserv_spec.rb +7 -7
  216. data/spec/functional/resource/link_spec.rb +22 -25
  217. data/spec/functional/resource/mount_spec.rb +9 -1
  218. data/spec/functional/resource/msu_package_spec.rb +9 -3
  219. data/spec/functional/resource/powershell_script_spec.rb +8 -8
  220. data/spec/functional/resource/remote_file_spec.rb +7 -13
  221. data/spec/functional/resource/rpm_spec.rb +3 -3
  222. data/spec/functional/resource/timezone_spec.rb +2 -0
  223. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  224. data/spec/functional/resource/windows_font_spec.rb +49 -0
  225. data/spec/functional/resource/windows_package_spec.rb +0 -1
  226. data/spec/functional/resource/windows_path_spec.rb +4 -0
  227. data/spec/functional/resource/windows_security_policy_spec.rb +0 -4
  228. data/spec/functional/resource/windows_service_spec.rb +4 -0
  229. data/spec/functional/resource/windows_task_spec.rb +4 -3
  230. data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
  231. data/spec/functional/resource/yum_package_spec.rb +4 -1
  232. data/spec/functional/resource/zypper_package_spec.rb +4 -1
  233. data/spec/functional/run_lock_spec.rb +26 -25
  234. data/spec/functional/shell_spec.rb +5 -6
  235. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  236. data/spec/functional/version_spec.rb +1 -1
  237. data/spec/functional/win32/crypto_spec.rb +1 -1
  238. data/spec/functional/win32/registry_spec.rb +8 -8
  239. data/spec/functional/win32/service_manager_spec.rb +1 -1
  240. data/spec/integration/knife/common_options_spec.rb +12 -12
  241. data/spec/integration/knife/config_get_profile_spec.rb +69 -68
  242. data/spec/integration/knife/config_get_spec.rb +126 -125
  243. data/spec/integration/knife/config_list_profiles_spec.rb +181 -152
  244. data/spec/integration/knife/config_use_profile_spec.rb +115 -61
  245. data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
  246. data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
  247. data/spec/integration/knife/diff_spec.rb +3 -1
  248. data/spec/integration/knife/download_spec.rb +3 -1
  249. data/spec/integration/knife/environment_from_file_spec.rb +1 -1
  250. data/spec/integration/knife/node_from_file_spec.rb +1 -1
  251. data/spec/integration/knife/role_from_file_spec.rb +1 -1
  252. data/spec/integration/knife/serve_spec.rb +5 -5
  253. data/spec/integration/knife/upload_spec.rb +3 -1
  254. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  255. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
  256. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  257. data/spec/integration/recipes/notifies_spec.rb +1 -1
  258. data/spec/integration/recipes/notifying_block_spec.rb +1 -1
  259. data/spec/integration/recipes/recipe_dsl_spec.rb +5 -1
  260. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
  261. data/spec/integration/recipes/resource_load_spec.rb +4 -2
  262. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  263. data/spec/integration/recipes/use_partial_spec.rb +1 -1
  264. data/spec/scripts/ssl-serve.rb +1 -1
  265. data/spec/spec_helper.rb +16 -10
  266. data/spec/support/chef_helpers.rb +1 -20
  267. data/spec/support/platform_helpers.rb +9 -11
  268. data/spec/support/platforms/win32/spec_service.rb +1 -1
  269. data/spec/support/shared/functional/directory_resource.rb +1 -1
  270. data/spec/support/shared/functional/execute_resource.rb +1 -1
  271. data/spec/support/shared/functional/file_resource.rb +20 -21
  272. data/spec/support/shared/functional/securable_resource.rb +1 -2
  273. data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
  274. data/spec/support/shared/functional/win32_service.rb +1 -1
  275. data/spec/support/shared/functional/windows_script.rb +5 -5
  276. data/spec/support/shared/integration/integration_helper.rb +22 -52
  277. data/spec/support/shared/integration/knife_support.rb +2 -9
  278. data/spec/support/shared/unit/application_dot_d.rb +0 -1
  279. data/spec/support/shared/unit/provider/file.rb +12 -8
  280. data/spec/support/shared/unit/script_resource.rb +6 -20
  281. data/spec/support/shared/unit/windows_script_resource.rb +15 -28
  282. data/spec/unit/application/solo_spec.rb +4 -2
  283. data/spec/unit/application_spec.rb +4 -2
  284. data/spec/unit/chef_fs/config_spec.rb +2 -2
  285. data/spec/unit/chef_fs/diff_spec.rb +8 -8
  286. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
  287. data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
  288. data/spec/unit/client_spec.rb +4 -1
  289. data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
  290. data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
  291. data/spec/unit/data_bag_spec.rb +6 -3
  292. data/spec/unit/data_collector_spec.rb +23 -1
  293. data/spec/unit/decorator_spec.rb +23 -23
  294. data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
  295. data/spec/unit/environment_spec.rb +12 -8
  296. data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
  297. data/spec/unit/guard_interpreter_spec.rb +1 -1
  298. data/spec/unit/http/api_versions_spec.rb +20 -2
  299. data/spec/unit/json_compat_spec.rb +1 -1
  300. data/spec/unit/knife/bootstrap_spec.rb +17 -20
  301. data/spec/unit/knife/cookbook_download_spec.rb +6 -6
  302. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  303. data/spec/unit/knife/cookbook_show_spec.rb +6 -7
  304. data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
  305. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  306. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
  307. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  308. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  309. data/spec/unit/log/syslog_spec.rb +6 -10
  310. data/spec/unit/log/winevt_spec.rb +21 -13
  311. data/spec/unit/lwrp_spec.rb +9 -6
  312. data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
  313. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  314. data/spec/unit/mixin/powershell_out_spec.rb +2 -4
  315. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  316. data/spec/unit/mixin/securable_spec.rb +0 -1
  317. data/spec/unit/mixin/shell_out_spec.rb +25 -26
  318. data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
  319. data/spec/unit/mixin/template_spec.rb +30 -30
  320. data/spec/unit/mixin/unformatter_spec.rb +2 -2
  321. data/spec/unit/mixin/uris_spec.rb +1 -1
  322. data/spec/unit/mixin/which.rb +8 -0
  323. data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
  324. data/spec/unit/node/immutable_collections_spec.rb +6 -2
  325. data/spec/unit/node_spec.rb +103 -16
  326. data/spec/unit/property_spec.rb +5 -5
  327. data/spec/unit/provider/batch_spec.rb +1 -1
  328. data/spec/unit/provider/cron/unix_spec.rb +1 -1
  329. data/spec/unit/provider/dsc_resource_spec.rb +22 -38
  330. data/spec/unit/provider/dsc_script_spec.rb +10 -10
  331. data/spec/unit/provider/execute_spec.rb +1 -8
  332. data/spec/unit/provider/git_spec.rb +3 -3
  333. data/spec/unit/provider/ifconfig_spec.rb +0 -1
  334. data/spec/unit/provider/mdadm_spec.rb +1 -3
  335. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
  336. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  337. data/spec/unit/provider/package/pacman_spec.rb +17 -20
  338. data/spec/unit/provider/package/rubygems_spec.rb +5 -10
  339. data/spec/unit/provider/package/smartos_spec.rb +1 -1
  340. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
  341. data/spec/unit/provider/package/windows_spec.rb +30 -53
  342. data/spec/unit/provider/powershell_script_spec.rb +11 -4
  343. data/spec/unit/provider/remote_directory_spec.rb +9 -9
  344. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  345. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  346. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  347. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  348. data/spec/unit/provider/service/redhat_spec.rb +3 -3
  349. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  350. data/spec/unit/provider/service/windows_spec.rb +2 -6
  351. data/spec/unit/provider/systemd_unit_spec.rb +28 -24
  352. data/spec/unit/provider/user/dscl_spec.rb +2 -2
  353. data/spec/unit/provider/windows_env_spec.rb +5 -4
  354. data/spec/unit/provider_resolver_spec.rb +6 -6
  355. data/spec/unit/provider_spec.rb +1 -0
  356. data/spec/unit/resource/batch_spec.rb +6 -6
  357. data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
  358. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
  359. data/spec/unit/resource/execute_spec.rb +123 -118
  360. data/spec/unit/resource/file/verification_spec.rb +2 -1
  361. data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
  362. data/spec/unit/resource/osx_profile_spec.rb +233 -0
  363. data/spec/unit/resource/powershell_script_spec.rb +11 -29
  364. data/spec/unit/resource/script_spec.rb +6 -1
  365. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  366. data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
  367. data/spec/unit/resource/windows_package_spec.rb +1 -0
  368. data/spec/unit/resource_reporter_spec.rb +1 -1
  369. data/spec/unit/resource_spec.rb +25 -8
  370. data/spec/unit/role_spec.rb +30 -28
  371. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  372. data/spec/unit/run_lock_spec.rb +1 -1
  373. data/spec/unit/scan_access_control_spec.rb +1 -1
  374. data/spec/unit/server_api_spec.rb +43 -16
  375. data/spec/unit/util/backup_spec.rb +1 -1
  376. data/spec/unit/util/diff_spec.rb +1 -15
  377. data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
  378. data/spec/unit/util/selinux_spec.rb +2 -1
  379. data/spec/unit/win32/security_spec.rb +4 -3
  380. data/tasks/rspec.rb +1 -1
  381. metadata +53 -40
  382. data/lib/chef/provider/osx_profile.rb +0 -255
  383. data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -6,7 +6,7 @@ describe "Unified Mode" do
6
6
  include IntegrationSupport
7
7
  include Chef::Mixin::ShellOut
8
8
 
9
- let(:chef_dir) { File.expand_path("../../../../bin", __FILE__) }
9
+ let(:chef_dir) { File.expand_path("../../../bin", __dir__) }
10
10
 
11
11
  let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
12
12
 
@@ -22,7 +22,7 @@ describe "notifying_block" do
22
22
  include IntegrationSupport
23
23
  include Chef::Mixin::ShellOut
24
24
 
25
- let(:chef_dir) { File.expand_path("../../../../bin", __FILE__) }
25
+ let(:chef_dir) { File.expand_path("../../../bin", __dir__) }
26
26
  let(:chef_client) { "bundle exec chef-client --minimal-ohai" }
27
27
 
28
28
  when_the_repository "has a cookbook with partial resources" do
@@ -12,7 +12,7 @@ require "webrick/https"
12
12
 
13
13
  $ssl = true
14
14
 
15
- CHEF_SPEC_DATA = File.expand_path("../../data", __FILE__)
15
+ CHEF_SPEC_DATA = File.expand_path("../data", __dir__)
16
16
  cert_text = File.read(File.expand_path("ssl/chef-rspec.cert", CHEF_SPEC_DATA))
17
17
  cert = OpenSSL::X509::Certificate.new(cert_text)
18
18
  key_text = File.read(File.expand_path("ssl/chef-rspec.key", CHEF_SPEC_DATA))
@@ -24,10 +24,10 @@ module Shell
24
24
  IRB = nil unless defined? IRB
25
25
  end
26
26
 
27
- $LOAD_PATH.unshift File.expand_path("../..", __FILE__)
27
+ $LOAD_PATH.unshift File.expand_path("..", __dir__)
28
28
 
29
- $LOAD_PATH.unshift File.expand_path("../../chef-config/lib", __FILE__)
30
- $LOAD_PATH.unshift File.expand_path("../../chef-utils/lib", __FILE__)
29
+ $LOAD_PATH.unshift File.expand_path("../chef-config/lib", __dir__)
30
+ $LOAD_PATH.unshift File.expand_path("../chef-utils/lib", __dir__)
31
31
 
32
32
  require "rubygems"
33
33
  require "rspec/mocks"
@@ -68,7 +68,7 @@ end
68
68
 
69
69
  # If you want to load anything into the testing environment
70
70
  # without versioning it, add it to spec/support/local_gems.rb
71
- require "spec/support/local_gems.rb" if File.exists?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
71
+ require "spec/support/local_gems.rb" if File.exist?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
72
72
 
73
73
  # Explicitly require spec helpers that need to load first
74
74
  require "spec/support/platform_helpers"
@@ -116,6 +116,7 @@ RSpec.configure do |config|
116
116
  config.include(MockShellout::RSpec)
117
117
  config.filter_run focus: true
118
118
  config.filter_run_excluding external: true
119
+ config.raise_on_warning = true
119
120
 
120
121
  # Explicitly disable :should syntax
121
122
  # And set max_formatted_output_length to nil to prevent RSpec from doing truncation.
@@ -125,6 +126,7 @@ RSpec.configure do |config|
125
126
  end
126
127
  config.mock_with :rspec do |c|
127
128
  c.syntax = :expect
129
+ c.allow_message_expectations_on_nil = false
128
130
  end
129
131
 
130
132
  # Only run these tests on platforms that are also chef workstations
@@ -173,7 +175,6 @@ RSpec.configure do |config|
173
175
  config.filter_run_excluding requires_root: true unless root?
174
176
  config.filter_run_excluding requires_root_or_running_windows: true unless root? || windows?
175
177
  config.filter_run_excluding requires_unprivileged_user: true if root?
176
- config.filter_run_excluding uses_diff: true unless has_diff?
177
178
  config.filter_run_excluding openssl_gte_101: true unless openssl_gte_101?
178
179
  config.filter_run_excluding openssl_lt_101: true unless openssl_lt_101?
179
180
  config.filter_run_excluding aes_256_gcm_only: true unless aes_256_gcm?
@@ -239,6 +240,11 @@ RSpec.configure do |config|
239
240
 
240
241
  Chef::Config.reset
241
242
 
243
+ Chef::Log.setup!
244
+
245
+ Chef::Config[:log_level] = :fatal
246
+ Chef::Log.level(Chef::Config[:log_level])
247
+
242
248
  # By default, treat deprecation warnings as errors in tests.
243
249
  Chef::Config.treat_deprecation_warnings_as_errors(true)
244
250
 
@@ -291,11 +297,11 @@ RSpec.configure do |config|
291
297
 
292
298
  # Protect Rspec from accidental exit(0) causing rspec to terminate without error
293
299
  config.around(:example) do |ex|
294
- begin
295
- ex.run
296
- rescue SystemExit => e
297
- raise UnexpectedSystemExit.from(e)
298
- end
300
+
301
+ ex.run
302
+ rescue SystemExit => e
303
+ raise UnexpectedSystemExit.from(e)
304
+
299
305
  end
300
306
  end
301
307
 
@@ -18,14 +18,6 @@ CHEF_SPEC_DATA = File.expand_path(File.dirname(__FILE__) + "/../data/")
18
18
  CHEF_SPEC_ASSETS = File.expand_path(File.dirname(__FILE__) + "/../functional/assets/")
19
19
  CHEF_SPEC_BACKUP_PATH = File.join(Dir.tmpdir, "test-backup-path")
20
20
 
21
- Chef::Config[:log_level] = :fatal
22
- Chef::Config[:persistent_queue] = false
23
- Chef::Config[:file_backup_path] = CHEF_SPEC_BACKUP_PATH
24
-
25
- Chef::Log.init(StringIO.new)
26
- Chef::Log.level(Chef::Config.log_level)
27
- Chef::Config.solo(false)
28
-
29
21
  def sha256_checksum(path)
30
22
  OpenSSL::Digest.hexdigest("SHA256", File.read(path))
31
23
  end
@@ -48,22 +40,11 @@ def make_tmpname(prefix_suffix, n = nil)
48
40
  path << suffix
49
41
  end
50
42
 
51
- # NOTE:
52
- # This is a temporary fix to get tests passing on systems that have no `diff`
53
- # until we can replace shelling out to `diff` with ruby diff-lcs
54
- def has_diff?
55
- diff_cmd = Mixlib::ShellOut.new("diff -v")
56
- diff_cmd.run_command
57
- true
58
- rescue Errno::ENOENT
59
- false
60
- end
61
-
62
43
  # This is a helper to determine if the ruby in the PATH contains
63
44
  # win32/service gem. windows_service_manager tests create a windows
64
45
  # service that starts with the system ruby and requires this gem.
65
46
  def system_windows_service_gem?
66
- windows_service_gem_check_command = %{ruby -r "win32/daemon" -e ":noop" > #{DEV_NULL} 2>&1}
47
+ windows_service_gem_check_command = %{ruby -r "win32/daemon" -e ":noop" > #{File::NULL} 2>&1}
67
48
  if defined?(Bundler)
68
49
  Bundler.with_unbundled_env do
69
50
  # This returns true if the gem can be loaded
@@ -105,7 +105,7 @@ def mac_osx_1014?
105
105
  end
106
106
 
107
107
  def mac_osx?
108
- if File.exists? "/usr/bin/sw_vers"
108
+ if File.exist? "/usr/bin/sw_vers"
109
109
  result = ShellHelpers.shell_out("/usr/bin/sw_vers")
110
110
  result.stdout.each_line do |line|
111
111
  if /^ProductName:\sMac OS X.*$/.match?(line)
@@ -134,19 +134,19 @@ def unix?
134
134
  end
135
135
 
136
136
  def linux?
137
- !!(RUBY_PLATFORM =~ /linux/)
137
+ RUBY_PLATFORM.match?(/linux/)
138
138
  end
139
139
 
140
- def os_x?
141
- !!(RUBY_PLATFORM =~ /darwin/)
140
+ def macos?
141
+ RUBY_PLATFORM.match?(/darwin/)
142
142
  end
143
143
 
144
144
  def solaris?
145
- !!(RUBY_PLATFORM =~ /solaris/)
145
+ RUBY_PLATFORM.match?(/solaris/)
146
146
  end
147
147
 
148
148
  def freebsd?
149
- !!(RUBY_PLATFORM =~ /freebsd/)
149
+ RUBY_PLATFORM.match?(/freebsd/)
150
150
  end
151
151
 
152
152
  def intel_64bit?
@@ -182,7 +182,7 @@ def debian_family?
182
182
  end
183
183
 
184
184
  def aix?
185
- !!(RUBY_PLATFORM =~ /aix/)
185
+ RUBY_PLATFORM.match?(/aix/)
186
186
  end
187
187
 
188
188
  def wpar?
@@ -193,8 +193,6 @@ def supports_cloexec?
193
193
  Fcntl.const_defined?("F_SETFD") && Fcntl.const_defined?("FD_CLOEXEC")
194
194
  end
195
195
 
196
- DEV_NULL = windows? ? "NUL" : "/dev/null"
197
-
198
196
  def selinux_enabled?
199
197
  # This code is currently copied from lib/chef/util/selinux to make
200
198
  # specs independent of product.
@@ -218,8 +216,8 @@ def selinux_enabled?
218
216
  end
219
217
 
220
218
  def suse?
221
- ::File.exists?("/etc/SuSE-release") ||
222
- ( ::File.exists?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
219
+ ::File.exist?("/etc/SuSE-release") ||
220
+ ( ::File.exist?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
223
221
  end
224
222
 
225
223
  def root?
@@ -26,7 +26,7 @@ if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
26
26
 
27
27
  def service_main(*startup_parameters)
28
28
  while running?
29
- unless File.exists?(@test_service_file)
29
+ unless File.exist?(@test_service_file)
30
30
  File.open(@test_service_file, "wb") do |f|
31
31
  f.write("This file is created by SpecService")
32
32
  end
@@ -173,6 +173,6 @@ shared_context Chef::Resource::Directory do
173
173
  end
174
174
 
175
175
  after(:each) do
176
- FileUtils.rm_r(path) if File.exists?(path)
176
+ FileUtils.rm_r(path) if File.exist?(path)
177
177
  end
178
178
  end
@@ -62,7 +62,7 @@ shared_context "a command that can be executed as an alternate user" do
62
62
  end
63
63
 
64
64
  after do
65
- File.delete(script_output_path) if File.exists?(script_output_path)
65
+ File.delete(script_output_path) if File.exist?(script_output_path)
66
66
  Dir.rmdir(script_output_dir) if Dir.exist?(script_output_dir)
67
67
  end
68
68
  end
@@ -366,7 +366,6 @@ shared_examples_for "a configured file resource" do
366
366
  include_context "diff disabled"
367
367
 
368
368
  before do
369
- Chef::Log.level = :info
370
369
  Chef::Config[:ssl_verify_mode] = :verify_none
371
370
  end
372
371
 
@@ -477,12 +476,12 @@ shared_examples_for "a configured file resource" do
477
476
  end
478
477
 
479
478
  it "issues a warning/assumption in whyrun mode" do
480
- begin
481
- Chef::Config[:why_run] = true
482
- resource.run_action(:create) # should not raise
483
- ensure
484
- Chef::Config[:why_run] = false
485
- end
479
+
480
+ Chef::Config[:why_run] = true
481
+ resource.run_action(:create) # should not raise
482
+ ensure
483
+ Chef::Config[:why_run] = false
484
+
486
485
  end
487
486
  end
488
487
 
@@ -505,12 +504,12 @@ shared_examples_for "a configured file resource" do
505
504
  end
506
505
 
507
506
  it "issues a warning/assumption in whyrun mode" do
508
- begin
509
- Chef::Config[:why_run] = true
510
- resource.run_action(:create) # should not raise
511
- ensure
512
- Chef::Config[:why_run] = false
513
- end
507
+
508
+ Chef::Config[:why_run] = true
509
+ resource.run_action(:create) # should not raise
510
+ ensure
511
+ Chef::Config[:why_run] = false
512
+
514
513
  end
515
514
  end
516
515
 
@@ -536,12 +535,12 @@ shared_examples_for "a configured file resource" do
536
535
  end
537
536
 
538
537
  it "issues a warning/assumption in whyrun mode" do
539
- begin
540
- Chef::Config[:why_run] = true
541
- resource.run_action(:create) # should not raise
542
- ensure
543
- Chef::Config[:why_run] = false
544
- end
538
+
539
+ Chef::Config[:why_run] = true
540
+ resource.run_action(:create) # should not raise
541
+ ensure
542
+ Chef::Config[:why_run] = false
543
+
545
544
  end
546
545
  end
547
546
 
@@ -1038,8 +1037,8 @@ shared_context Chef::Resource::File do
1038
1037
  end
1039
1038
 
1040
1039
  after(:each) do
1041
- FileUtils.rm_r(path) if File.exists?(path)
1042
- FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exists?(CHEF_SPEC_BACKUP_PATH)
1040
+ FileUtils.rm_r(path) if File.exist?(path)
1041
+ FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
1043
1042
  end
1044
1043
 
1045
1044
  after do
@@ -19,7 +19,6 @@
19
19
  #
20
20
 
21
21
  require "etc"
22
- require "functional/resource/base"
23
22
 
24
23
  shared_context "setup correct permissions" do
25
24
  if windows?
@@ -135,7 +134,7 @@ shared_context "use Windows permissions", :windows_only do
135
134
  }
136
135
  end
137
136
 
138
- let (:write_flag) { 3 }
137
+ let(:write_flag) { 3 }
139
138
 
140
139
  RSpec::Matchers.define :have_expected_properties do |mask, type, flags|
141
140
  match do |ace|
@@ -1,5 +1,4 @@
1
1
 
2
- require "functional/resource/base"
3
2
 
4
3
  ALL_EXPANDED_PERMISSIONS = ["generic read",
5
4
  "generic write",
@@ -30,7 +30,7 @@ shared_context "using Win32::Service" do
30
30
  end
31
31
 
32
32
  # Delete the test_service_file if it exists
33
- if File.exists?(test_service_file)
33
+ if File.exist?(test_service_file)
34
34
  File.delete(test_service_file)
35
35
  end
36
36
  end
@@ -39,11 +39,11 @@ shared_context Chef::Resource::WindowsScript do
39
39
  end
40
40
 
41
41
  before(:each) do
42
- File.delete(script_output_path) if File.exists?(script_output_path)
42
+ File.delete(script_output_path) if File.exist?(script_output_path)
43
43
  end
44
44
 
45
45
  after(:each) do
46
- File.delete(script_output_path) if File.exists?(script_output_path)
46
+ File.delete(script_output_path) if File.exist?(script_output_path)
47
47
  end
48
48
 
49
49
  shared_examples_for "a script resource with architecture attribute" do
@@ -91,7 +91,7 @@ shared_context Chef::Resource::WindowsScript do
91
91
  end
92
92
 
93
93
  context "when the guard's architecture is specified as 64-bit" do
94
- let (:guard_architecture) { :x86_64 }
94
+ let(:guard_architecture) { :x86_64 }
95
95
  it "executes a 64-bit guard", :windows64_only do
96
96
  resource.only_if resource_guard_command, architecture: guard_architecture
97
97
  resource.run_action(:run)
@@ -100,7 +100,7 @@ shared_context Chef::Resource::WindowsScript do
100
100
  end
101
101
 
102
102
  context "when the guard's architecture is specified as 32-bit" do
103
- let (:guard_architecture) { :i386 }
103
+ let(:guard_architecture) { :i386 }
104
104
  it "executes a 32-bit guard" do
105
105
  resource.only_if resource_guard_command, architecture: guard_architecture
106
106
  resource.run_action(:run)
@@ -138,7 +138,7 @@ shared_context Chef::Resource::WindowsScript do
138
138
 
139
139
  after do
140
140
  script_file.close! if script_file
141
- ::File.delete(script_file.to_path) if script_file && ::File.exists?(script_file.to_path)
141
+ ::File.delete(script_file.to_path) if script_file && ::File.exist?(script_file.to_path)
142
142
  end
143
143
 
144
144
  include_context "alternate user identity"
@@ -44,15 +44,30 @@ module IntegrationSupport
44
44
 
45
45
  def when_the_repository(desc, *tags, &block)
46
46
  context("when the chef repo #{desc}", *tags) do
47
- include_context "with a chef repo"
47
+ before :each do
48
+ raise "Can only create one directory per test" if @repository_dir
48
49
 
49
- module_eval(&block)
50
- end
51
- end
50
+ @repository_dir = Dir.mktmpdir("chef_repo")
51
+ Chef::Config.chef_repo_path = @repository_dir
52
+ %w{client cookbook data_bag environment node role user}.each do |object_name|
53
+ Chef::Config.delete("#{object_name}_path".to_sym)
54
+ end
55
+ end
56
+
57
+ after :each do
58
+ if @repository_dir
59
+ begin
60
+ # TODO: "force" actually means "silence all exceptions". this
61
+ # silences a weird permissions error on Windows that we should track
62
+ # down, but for now there's no reason for it to blow up our CI.
63
+ FileUtils.remove_entry_secure(@repository_dir, force = ChefUtils.windows?)
64
+ ensure
65
+ @repository_dir = nil
66
+ end
67
+ end
68
+ Dir.chdir(@old_cwd) if @old_cwd
69
+ end
52
70
 
53
- def with_versioned_cookbooks(&block)
54
- context("with versioned cookbooks") do
55
- include_context "with versioned cookbooks"
56
71
  module_eval(&block)
57
72
  end
58
73
  end
@@ -105,49 +120,4 @@ module IntegrationSupport
105
120
  @old_cwd = Dir.pwd
106
121
  Dir.chdir(path_to(relative_path))
107
122
  end
108
-
109
- RSpec.shared_context "with a chef repo" do
110
- before :each do
111
- raise "Can only create one directory per test" if @repository_dir
112
-
113
- @repository_dir = Dir.mktmpdir("chef_repo")
114
- Chef::Config.chef_repo_path = @repository_dir
115
- %w{client cookbook data_bag environment node role user}.each do |object_name|
116
- Chef::Config.delete("#{object_name}_path".to_sym)
117
- end
118
- end
119
-
120
- after :each do
121
- if @repository_dir
122
- begin
123
- %w{client cookbook data_bag environment node role user}.each do |object_name|
124
- Chef::Config.delete("#{object_name}_path".to_sym)
125
- end
126
- Chef::Config.delete(:chef_repo_path)
127
- # TODO: "force" actually means "silence all exceptions". this
128
- # silences a weird permissions error on Windows that we should track
129
- # down, but for now there's no reason for it to blow up our CI.
130
- FileUtils.remove_entry_secure(@repository_dir, force = ChefUtils.windows?)
131
- ensure
132
- @repository_dir = nil
133
- end
134
- end
135
- Dir.chdir(@old_cwd) if @old_cwd
136
- end
137
-
138
- end
139
-
140
- # Versioned cookbooks
141
-
142
- RSpec.shared_context "with versioned cookbooks", versioned_cookbooks: true do
143
- before(:each) { Chef::Config[:versioned_cookbooks] = true }
144
- after(:each) { Chef::Config.delete(:versioned_cookbooks) }
145
- end
146
-
147
- RSpec.shared_context "without versioned cookbooks", versioned_cookbooks: false do
148
- # Just make sure this goes back to default
149
- before(:each) { Chef::Config[:versioned_cookbooks] = false }
150
- after(:each) { Chef::Config.delete(:versioned_cookbooks) }
151
- end
152
-
153
123
  end