chef 16.0.287-universal-mingw32 → 16.2.73-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 (333) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -3
  3. data/README.md +3 -3
  4. data/Rakefile +3 -2
  5. data/chef.gemspec +5 -5
  6. data/distro/powershell/chef/chef.psm1 +3 -3
  7. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  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/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  13. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  14. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
  15. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  16. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  17. data/lib/chef/chef_fs/path_utils.rb +4 -4
  18. data/lib/chef/cookbook/chefignore.rb +1 -1
  19. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  20. data/lib/chef/cookbook/metadata.rb +2 -2
  21. data/lib/chef/cookbook_loader.rb +1 -1
  22. data/lib/chef/cookbook_manifest.rb +1 -1
  23. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  24. data/lib/chef/cookbook_version.rb +4 -4
  25. data/lib/chef/data_bag.rb +4 -4
  26. data/lib/chef/data_collector.rb +1 -1
  27. data/lib/chef/data_collector/error_handlers.rb +1 -1
  28. data/lib/chef/decorator/lazy_array.rb +2 -2
  29. data/lib/chef/deprecated.rb +4 -0
  30. data/lib/chef/digester.rb +5 -4
  31. data/lib/chef/dsl/declare_resource.rb +1 -1
  32. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  33. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  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/base.rb +1 -1
  38. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  39. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  40. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  41. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  42. data/lib/chef/http.rb +19 -4
  43. data/lib/chef/http/decompressor.rb +1 -1
  44. data/lib/chef/http/http_request.rb +1 -1
  45. data/lib/chef/http/json_output.rb +1 -1
  46. data/lib/chef/http/ssl_policies.rb +18 -0
  47. data/lib/chef/json_compat.rb +1 -1
  48. data/lib/chef/key.rb +1 -1
  49. data/lib/chef/knife.rb +2 -2
  50. data/lib/chef/knife/bootstrap.rb +20 -14
  51. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  52. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  53. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  54. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  55. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  56. data/lib/chef/knife/config_get.rb +1 -1
  57. data/lib/chef/knife/config_use_profile.rb +15 -5
  58. data/lib/chef/knife/cookbook_delete.rb +1 -1
  59. data/lib/chef/knife/cookbook_upload.rb +1 -4
  60. data/lib/chef/knife/core/bootstrap_context.rb +1 -1
  61. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  62. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  63. data/lib/chef/knife/core/node_presenter.rb +1 -1
  64. data/lib/chef/knife/core/status_presenter.rb +1 -1
  65. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  66. data/lib/chef/knife/core/windows_bootstrap_context.rb +19 -4
  67. data/lib/chef/knife/data_bag_create.rb +1 -1
  68. data/lib/chef/knife/key_create_base.rb +1 -1
  69. data/lib/chef/knife/key_edit_base.rb +1 -1
  70. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  71. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  72. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  73. data/lib/chef/knife/ssh.rb +2 -2
  74. data/lib/chef/knife/supermarket_share.rb +1 -1
  75. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  76. data/lib/chef/log.rb +1 -1
  77. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  78. data/lib/chef/mixin/checksum.rb +0 -1
  79. data/lib/chef/mixin/openssl_helper.rb +4 -4
  80. data/lib/chef/mixin/properties.rb +2 -2
  81. data/lib/chef/mixin/securable.rb +2 -2
  82. data/lib/chef/mixin/shell_out.rb +1 -1
  83. data/lib/chef/node/attribute.rb +2 -2
  84. data/lib/chef/node/immutable_collections.rb +1 -1
  85. data/lib/chef/policy_builder/policyfile.rb +1 -1
  86. data/lib/chef/powershell.rb +1 -1
  87. data/lib/chef/property.rb +2 -2
  88. data/lib/chef/provider.rb +3 -3
  89. data/lib/chef/provider/batch.rb +3 -10
  90. data/lib/chef/provider/cron.rb +2 -14
  91. data/lib/chef/provider/directory.rb +1 -1
  92. data/lib/chef/provider/execute.rb +2 -1
  93. data/lib/chef/provider/file.rb +1 -1
  94. data/lib/chef/provider/group/dscl.rb +2 -2
  95. data/lib/chef/provider/group/windows.rb +1 -1
  96. data/lib/chef/provider/ifconfig.rb +7 -7
  97. data/lib/chef/provider/launchd.rb +11 -9
  98. data/lib/chef/provider/mount/aix.rb +1 -1
  99. data/lib/chef/provider/mount/windows.rb +2 -2
  100. data/lib/chef/provider/noop.rb +1 -1
  101. data/lib/chef/provider/package/cab.rb +1 -1
  102. data/lib/chef/provider/package/chocolatey.rb +1 -1
  103. data/lib/chef/provider/package/dpkg.rb +1 -1
  104. data/lib/chef/provider/package/openbsd.rb +1 -1
  105. data/lib/chef/provider/package/portage.rb +3 -2
  106. data/lib/chef/provider/package/powershell.rb +6 -2
  107. data/lib/chef/provider/package/rubygems.rb +3 -3
  108. data/lib/chef/provider/package/snap.rb +96 -27
  109. data/lib/chef/provider/package/windows.rb +2 -2
  110. data/lib/chef/provider/package/windows/msi.rb +3 -3
  111. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  112. data/lib/chef/provider/package/yum.rb +1 -1
  113. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  114. data/lib/chef/provider/powershell_script.rb +11 -15
  115. data/lib/chef/provider/remote_directory.rb +2 -2
  116. data/lib/chef/provider/remote_file/http.rb +4 -1
  117. data/lib/chef/provider/script.rb +4 -75
  118. data/lib/chef/provider/service/arch.rb +2 -2
  119. data/lib/chef/provider/service/debian.rb +2 -2
  120. data/lib/chef/provider/service/macosx.rb +9 -0
  121. data/lib/chef/provider/service/openbsd.rb +4 -4
  122. data/lib/chef/provider/service/redhat.rb +1 -1
  123. data/lib/chef/provider/service/upstart.rb +1 -1
  124. data/lib/chef/provider/service/windows.rb +1 -1
  125. data/lib/chef/provider/subversion.rb +2 -2
  126. data/lib/chef/provider/user/aix.rb +1 -1
  127. data/lib/chef/provider/user/dscl.rb +6 -6
  128. data/lib/chef/provider/user/linux.rb +3 -3
  129. data/lib/chef/provider/user/mac.rb +15 -11
  130. data/lib/chef/provider/windows_script.rb +87 -25
  131. data/lib/chef/provider/windows_task.rb +4 -2
  132. data/lib/chef/provider/zypper_repository.rb +30 -10
  133. data/lib/chef/resource.rb +25 -14
  134. data/lib/chef/resource/alternatives.rb +1 -1
  135. data/lib/chef/resource/apt_package.rb +1 -1
  136. data/lib/chef/resource/archive_file.rb +28 -8
  137. data/lib/chef/resource/bash.rb +0 -1
  138. data/lib/chef/resource/batch.rb +4 -2
  139. data/lib/chef/resource/chef_client_scheduled_task.rb +13 -1
  140. data/lib/chef/resource/chef_gem.rb +57 -21
  141. data/lib/chef/resource/chef_handler.rb +2 -2
  142. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  143. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  144. data/lib/chef/resource/cron/cron.rb +46 -0
  145. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
  146. data/lib/chef/resource/cron_access.rb +11 -3
  147. data/lib/chef/resource/csh.rb +0 -1
  148. data/lib/chef/resource/dmg_package.rb +2 -2
  149. data/lib/chef/resource/execute.rb +478 -8
  150. data/lib/chef/resource/file.rb +10 -8
  151. data/lib/chef/resource/freebsd_package.rb +1 -1
  152. data/lib/chef/resource/gem_package.rb +35 -2
  153. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  154. data/lib/chef/resource/homebrew_package.rb +30 -1
  155. data/lib/chef/resource/homebrew_update.rb +107 -0
  156. data/lib/chef/resource/hostname.rb +7 -20
  157. data/lib/chef/resource/kernel_module.rb +14 -1
  158. data/lib/chef/resource/launchd.rb +1 -1
  159. data/lib/chef/resource/locale.rb +3 -3
  160. data/lib/chef/resource/macos_userdefaults.rb +11 -6
  161. data/lib/chef/resource/mount.rb +1 -1
  162. data/lib/chef/resource/perl.rb +0 -1
  163. data/lib/chef/resource/plist.rb +23 -4
  164. data/lib/chef/resource/powershell_script.rb +4 -2
  165. data/lib/chef/resource/python.rb +0 -1
  166. data/lib/chef/resource/remote_file.rb +26 -10
  167. data/lib/chef/resource/ruby.rb +0 -1
  168. data/lib/chef/resource/scm/git.rb +1 -1
  169. data/lib/chef/resource/ssh_known_hosts_entry.rb +15 -0
  170. data/lib/chef/resource/sudo.rb +29 -2
  171. data/lib/chef/resource/swap_file.rb +17 -0
  172. data/lib/chef/resource/template.rb +1 -1
  173. data/lib/chef/resource/timezone.rb +15 -0
  174. data/lib/chef/resource/windows_ad_join.rb +30 -1
  175. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  176. data/lib/chef/resource/windows_auto_run.rb +11 -0
  177. data/lib/chef/resource/windows_certificate.rb +27 -1
  178. data/lib/chef/resource/windows_dfs_server.rb +1 -1
  179. data/lib/chef/resource/windows_font.rb +3 -3
  180. data/lib/chef/resource/windows_package.rb +1 -1
  181. data/lib/chef/resource/windows_pagefile.rb +2 -2
  182. data/lib/chef/resource/windows_script.rb +2 -16
  183. data/lib/chef/resource/windows_security_policy.rb +47 -16
  184. data/lib/chef/resource/windows_shortcut.rb +1 -2
  185. data/lib/chef/resource/windows_task.rb +10 -10
  186. data/lib/chef/resource/windows_user_privilege.rb +70 -5
  187. data/lib/chef/resource/yum_repository.rb +9 -9
  188. data/lib/chef/resource_inspector.rb +4 -3
  189. data/lib/chef/resources.rb +4 -2
  190. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  191. data/lib/chef/search/query.rb +1 -1
  192. data/lib/chef/shell/ext.rb +1 -1
  193. data/lib/chef/util/diff.rb +2 -2
  194. data/lib/chef/util/windows/net_user.rb +1 -1
  195. data/lib/chef/util/windows/volume.rb +1 -1
  196. data/lib/chef/version.rb +1 -1
  197. data/lib/chef/win32/api.rb +2 -2
  198. data/lib/chef/win32/api/error.rb +3 -1
  199. data/lib/chef/win32/api/file.rb +1 -1
  200. data/lib/chef/win32/api/net.rb +1 -0
  201. data/lib/chef/win32/file.rb +1 -1
  202. data/lib/chef/win32/mutex.rb +1 -1
  203. data/lib/chef/win32/net.rb +1 -0
  204. data/lib/chef/win32/registry.rb +2 -2
  205. data/lib/chef/win32/security.rb +1 -1
  206. data/lib/chef/win32/security/sid.rb +4 -4
  207. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  208. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  209. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  210. data/spec/functional/knife/configure_spec.rb +1 -1
  211. data/spec/functional/resource/aix_service_spec.rb +10 -1
  212. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  213. data/spec/functional/resource/bash_spec.rb +3 -2
  214. data/spec/functional/resource/bff_spec.rb +1 -1
  215. data/spec/functional/resource/chocolatey_package_spec.rb +4 -0
  216. data/spec/functional/resource/cron_spec.rb +20 -1
  217. data/spec/functional/resource/dnf_package_spec.rb +6 -3
  218. data/spec/functional/resource/execute_spec.rb +1 -1
  219. data/spec/functional/resource/git_spec.rb +6 -6
  220. data/spec/functional/resource/group_spec.rb +9 -1
  221. data/spec/functional/resource/ifconfig_spec.rb +9 -1
  222. data/spec/functional/resource/insserv_spec.rb +3 -2
  223. data/spec/functional/resource/launchd_spec.rb +232 -0
  224. data/spec/functional/resource/link_spec.rb +2 -5
  225. data/spec/functional/resource/mount_spec.rb +9 -1
  226. data/spec/functional/resource/msu_package_spec.rb +9 -3
  227. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  228. data/spec/functional/resource/remote_file_spec.rb +8 -8
  229. data/spec/functional/resource/rpm_spec.rb +1 -1
  230. data/spec/functional/resource/timezone_spec.rb +2 -0
  231. data/spec/functional/resource/windows_package_spec.rb +0 -1
  232. data/spec/functional/resource/windows_path_spec.rb +4 -0
  233. data/spec/functional/resource/windows_security_policy_spec.rb +0 -1
  234. data/spec/functional/resource/windows_service_spec.rb +4 -0
  235. data/spec/functional/resource/windows_task_spec.rb +16 -15
  236. data/spec/functional/resource/windows_user_privilege_spec.rb +0 -1
  237. data/spec/functional/resource/yum_package_spec.rb +4 -1
  238. data/spec/functional/resource/zypper_package_spec.rb +4 -1
  239. data/spec/functional/shell_spec.rb +0 -1
  240. data/spec/functional/win32/crypto_spec.rb +1 -1
  241. data/spec/integration/knife/config_use_profile_spec.rb +55 -2
  242. data/spec/integration/knife/cookbook_upload_spec.rb +1 -1
  243. data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
  244. data/spec/integration/knife/environment_from_file_spec.rb +1 -1
  245. data/spec/integration/knife/node_from_file_spec.rb +1 -1
  246. data/spec/integration/knife/role_from_file_spec.rb +1 -1
  247. data/spec/integration/recipes/recipe_dsl_spec.rb +4 -0
  248. data/spec/integration/recipes/resource_load_spec.rb +2 -2
  249. data/spec/support/chef_helpers.rb +1 -1
  250. data/spec/support/platform_helpers.rb +1 -1
  251. data/spec/support/platforms/win32/spec_service.rb +1 -1
  252. data/spec/support/shared/functional/execute_resource.rb +1 -1
  253. data/spec/support/shared/functional/securable_resource.rb +1 -2
  254. data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
  255. data/spec/support/shared/functional/windows_script.rb +3 -3
  256. data/spec/support/shared/unit/execute_resource.rb +1 -1
  257. data/spec/support/shared/unit/provider/file.rb +12 -8
  258. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  259. data/spec/unit/application/solo_spec.rb +4 -2
  260. data/spec/unit/application_spec.rb +7 -0
  261. data/spec/unit/chef_fs/config_spec.rb +2 -2
  262. data/spec/unit/chef_fs/diff_spec.rb +8 -8
  263. data/spec/unit/client_spec.rb +4 -1
  264. data/spec/unit/cookbook/synchronizer_spec.rb +26 -24
  265. data/spec/unit/data_bag_spec.rb +6 -3
  266. data/spec/unit/decorator_spec.rb +23 -23
  267. data/spec/unit/environment_spec.rb +5 -1
  268. data/spec/unit/guard_interpreter_spec.rb +1 -1
  269. data/spec/unit/http/api_versions_spec.rb +1 -1
  270. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  271. data/spec/unit/knife/bootstrap_spec.rb +3 -2
  272. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  273. data/spec/unit/knife/cookbook_show_spec.rb +6 -7
  274. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  275. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  276. data/spec/unit/lwrp_spec.rb +5 -2
  277. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  278. data/spec/unit/mixin/powershell_out_spec.rb +2 -4
  279. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  280. data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
  281. data/spec/unit/mixin/unformatter_spec.rb +2 -2
  282. data/spec/unit/mixin/uris_spec.rb +1 -1
  283. data/spec/unit/mixin/user_context_spec.rb +1 -9
  284. data/spec/unit/node/attribute_spec.rb +1 -1
  285. data/spec/unit/property_spec.rb +1 -1
  286. data/spec/unit/provider/batch_spec.rb +130 -0
  287. data/spec/unit/provider/cron/unix_spec.rb +1 -1
  288. data/spec/unit/provider/cron_spec.rb +9 -49
  289. data/spec/unit/provider/dsc_resource_spec.rb +22 -38
  290. data/spec/unit/provider/dsc_script_spec.rb +10 -10
  291. data/spec/unit/provider/execute_spec.rb +1 -1
  292. data/spec/unit/provider/git_spec.rb +3 -3
  293. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  294. data/spec/unit/provider/launchd_spec.rb +0 -42
  295. data/spec/unit/provider/mdadm_spec.rb +1 -3
  296. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  297. data/spec/unit/provider/package/pacman_spec.rb +17 -20
  298. data/spec/unit/provider/package/portage_spec.rb +2 -2
  299. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  300. data/spec/unit/provider/package/snap_spec.rb +1 -1
  301. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
  302. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  303. data/spec/unit/provider/script_spec.rb +20 -110
  304. data/spec/unit/provider/user/dscl_spec.rb +2 -2
  305. data/spec/unit/provider/windows_env_spec.rb +5 -4
  306. data/spec/unit/provider/zypper_repository_spec.rb +60 -10
  307. data/spec/unit/resource/archive_file_spec.rb +11 -2
  308. data/spec/unit/resource/chef_client_cron_spec.rb +23 -7
  309. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  310. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +7 -4
  311. data/spec/unit/resource/cron_spec.rb +2 -2
  312. data/spec/unit/resource/file/verification_spec.rb +2 -1
  313. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  314. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  315. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  316. data/spec/unit/resource/timezone_spec.rb +1 -1
  317. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  318. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  319. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  320. data/spec/unit/resource/windows_task_spec.rb +1 -1
  321. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  322. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  323. data/spec/unit/resource_spec.rb +84 -1
  324. data/spec/unit/role_spec.rb +23 -21
  325. data/spec/unit/util/backup_spec.rb +1 -1
  326. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  327. data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
  328. data/spec/unit/util/selinux_spec.rb +2 -1
  329. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  330. data/spec/unit/win32/registry_spec.rb +1 -1
  331. metadata +37 -31
  332. data/lib/chef/resource/cron.rb +0 -157
  333. data/spec/functional/resource/base.rb +0 -28
@@ -24,7 +24,7 @@ describe "knife node from file", :workstation do
24
24
 
25
25
  # include_context "default config options"
26
26
 
27
- let (:node_dir) { "#{@repository_dir}/nodes" }
27
+ let(:node_dir) { "#{@repository_dir}/nodes" }
28
28
 
29
29
  when_the_chef_server "is empty" do
30
30
  when_the_repository "has some nodes" do
@@ -24,7 +24,7 @@ describe "knife role from file", :workstation do
24
24
 
25
25
  # include_context "default config options"
26
26
 
27
- let (:role_dir) { "#{@repository_dir}/roles" }
27
+ let(:role_dir) { "#{@repository_dir}/roles" }
28
28
 
29
29
  when_the_chef_server "is empty" do
30
30
  when_the_repository "has some roles" do
@@ -1233,6 +1233,10 @@ describe "Recipe DSL methods" do
1233
1233
  before { Namer.current_index += 1 }
1234
1234
 
1235
1235
  context "with an LWRP that declares actions" do
1236
+ let(:run_context) do
1237
+ Chef::RunContext.new(Chef::Node.new, {}, Chef::EventDispatch::Dispatcher.new)
1238
+ end
1239
+
1236
1240
  let(:resource_class) do
1237
1241
  Class.new(Chef::Resource::LWRPBase) do
1238
1242
  provides :"recipe_dsl_spec#{Namer.current_index}"
@@ -119,10 +119,10 @@ describe "Resource.load_current_value" do
119
119
  end
120
120
  end
121
121
 
122
- let (:subresource_name) do
122
+ let(:subresource_name) do
123
123
  :"load_current_value_subresource_dsl#{Namer.current_index}"
124
124
  end
125
- let (:subresource_class) do
125
+ let(:subresource_class) do
126
126
  r = Class.new(resource_class) do
127
127
  property :y, default: lazy { "default_y #{Namer.incrementing_value}" }
128
128
  end
@@ -27,7 +27,7 @@ Chef::Log.level(Chef::Config.log_level)
27
27
  Chef::Config.solo(false)
28
28
 
29
29
  def sha256_checksum(path)
30
- OpenSSL::Digest::SHA256.hexdigest(File.read(path))
30
+ OpenSSL::Digest.hexdigest("SHA256", File.read(path))
31
31
  end
32
32
 
33
33
  # extracted from Ruby < 2.5 to return a unique temp file name without creating it
@@ -108,7 +108,7 @@ def mac_osx?
108
108
  if File.exists? "/usr/bin/sw_vers"
109
109
  result = ShellHelpers.shell_out("/usr/bin/sw_vers")
110
110
  result.stdout.each_line do |line|
111
- if line =~ /^ProductName:\sMac OS X.*$/
111
+ if /^ProductName:\sMac OS X.*$/.match?(line)
112
112
  return true
113
113
  end
114
114
  end
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- if RUBY_PLATFORM =~ /mswin|mingw|windows/
19
+ if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
20
20
  require "win32/daemon"
21
21
 
22
22
  class SpecService < ::Win32::Daemon
@@ -58,7 +58,7 @@ shared_context "a command that can be executed as an alternate user" do
58
58
  include Chef::Mixin::ShellOut
59
59
 
60
60
  before do
61
- shell_out!("icacls \"#{script_output_dir.gsub(%r{/}, '\\')}\" /grant \"authenticated users:(F)\"")
61
+ shell_out!("icacls \"#{script_output_dir.tr("/", '\\')}\" /grant \"authenticated users:(F)\"")
62
62
  end
63
63
 
64
64
  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",
@@ -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)
@@ -146,7 +146,7 @@ shared_context Chef::Resource::WindowsScript do
146
146
  shared_examples_for "a script whose file system location cannot be accessed by other non-admin users" do
147
147
  let(:ruby_access_command) { file_access_command }
148
148
  it "generates a script in the local file system that prevents read access to other non-admin users" do
149
- shell_out!(access_command, { user: windows_nonadmin_user, password: windows_nonadmin_user_password, returns: [access_denied_sentinel] })
149
+ shell_out!(access_command, user: windows_nonadmin_user, password: windows_nonadmin_user_password, returns: [access_denied_sentinel])
150
150
  end
151
151
  end
152
152
 
@@ -75,7 +75,7 @@ shared_examples_for "an execute resource" do
75
75
  end
76
76
 
77
77
  it "the old path property (that never worked) is not supported in chef >= 13" do
78
- expect { @resource.path [ "woot" ] }.to raise_error
78
+ expect(@resource).not_to respond_to(:path)
79
79
  end
80
80
 
81
81
  it "should accept an integer for the return code" do
@@ -484,19 +484,23 @@ shared_examples_for Chef::Provider::File do
484
484
 
485
485
  it "raises an exception if any verification fails" do
486
486
  allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
487
- provider.new_resource.verify windows? ? "REM" : "true"
488
- provider.new_resource.verify windows? ? "cmd.exe /c exit 1" : "false"
489
- msg = "Proposed content for #{provider.new_resource.path} failed verification #{windows? ? "cmd.exe /c exit 1" : "false"}"
490
- expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, /#{msg}/)
487
+ allow(provider).to receive(:tempfile).and_return(tempfile)
488
+ provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
489
+ provider.new_resource.verify.each do |v|
490
+ allow(v).to receive(:verify).and_return(false)
491
+ end
492
+ expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed)
491
493
  end
492
494
 
493
495
  it "does not show verification for sensitive resources" do
494
496
  allow(File).to receive(:directory?).with("C:\\Windows\\system32/cmd.exe").and_return(false)
495
- provider.new_resource.verify windows? ? "REM" : "true"
496
- provider.new_resource.verify windows? ? "cmd.exe /c exit 1" : "false"
497
+ allow(provider).to receive(:tempfile).and_return(tempfile)
497
498
  provider.new_resource.sensitive true
498
- msg = "Proposed content for #{provider.new_resource.path} failed verification [sensitive]\nTemporary file moved to #{backupfile}"
499
- expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, msg)
499
+ provider.new_resource.verify windows? ? "cmd.exe c exit 1" : "false"
500
+ provider.new_resource.verify.each do |v|
501
+ allow(v).to receive(:verify).and_return(false)
502
+ end
503
+ expect { provider.send(:do_validate_content) }.to raise_error(Chef::Exceptions::ValidationFailed, /sensitive/)
500
504
  end
501
505
  end
502
506
  end
@@ -106,25 +106,25 @@ shared_examples_for "a useradd-based user provider" do |supported_useradd_option
106
106
 
107
107
  describe "when the resource has a different home directory and supports home directory management" do
108
108
  before do
109
- @new_resource.home "/wowaweea"
109
+ @new_resource.home "/banana"
110
110
  @new_resource.manage_home true
111
111
  end
112
112
 
113
113
  it "should set -m -d /homedir" do
114
- expect(provider.universal_options).to eq(%w{-d /wowaweea})
114
+ expect(provider.universal_options).to eq(%w{-d /banana})
115
115
  expect(provider.usermod_options).to eq(%w{-m})
116
116
  end
117
117
  end
118
118
 
119
119
  describe "when the resource has a different home directory and supports home directory management (using real attributes)" do
120
120
  before do
121
- @new_resource.home("/wowaweea")
121
+ @new_resource.home("/banana")
122
122
  @new_resource.manage_home true
123
123
  @new_resource.non_unique false
124
124
  end
125
125
 
126
126
  it "should set -m -d /homedir" do
127
- expect(provider.universal_options).to eq(%w{-d /wowaweea})
127
+ expect(provider.universal_options).to eq(%w{-d /banana})
128
128
  expect(provider.usermod_options).to eq(%w{-m})
129
129
  end
130
130
  end
@@ -164,6 +164,8 @@ describe Chef::Application::Solo do
164
164
  end
165
165
 
166
166
  context "in local mode" do
167
+ let(:root_path) { windows? ? "C:/var/chef" : "/var/chef" }
168
+
167
169
  before do
168
170
  Chef::Config[:solo_legacy_mode] = false
169
171
  end
@@ -197,10 +199,10 @@ describe Chef::Application::Solo do
197
199
  end
198
200
 
199
201
  it "sets the repo path" do
200
- expect(Chef::Config).to receive(:find_chef_repo_path).and_return("/var/chef")
202
+ expect(Chef::Config).to receive(:find_chef_repo_path).and_return(root_path)
201
203
  app.reconfigure
202
204
  expect(Chef::Config.key?(:chef_repo_path)).to be_truthy
203
- expect(Chef::Config[:chef_repo_path]).to eq ("/var/chef")
205
+ expect(Chef::Config[:chef_repo_path]).to eq (root_path)
204
206
  end
205
207
 
206
208
  it "runs chef-client in local mode" do
@@ -94,6 +94,13 @@ describe Chef::Application do
94
94
  end
95
95
  end
96
96
 
97
+ describe "when enforce_license is set to false" do
98
+ it "should not check the license acceptance" do
99
+ expect(@app).to_not receive(:check_license_acceptance)
100
+ @app.run(enforce_license: false)
101
+ end
102
+ end
103
+
97
104
  it "should run the actual application" do
98
105
  expect(@app).to receive(:run_application).and_return(true)
99
106
  @app.run
@@ -203,8 +203,8 @@ describe Chef::ChefFS::Config do
203
203
  })
204
204
  end
205
205
 
206
- let (:path) { "/roles/foo.json" }
207
- let (:entry) { Entry.new(path) }
206
+ let(:path) { "/roles/foo.json" }
207
+ let(:entry) { Entry.new(path) }
208
208
 
209
209
  it "returns the entry's path if the cwd isn't in the config" do
210
210
  cfg = Chef::ChefFS::Config.new(config, "/my_repo/cookbooks")
@@ -20,17 +20,17 @@ require "spec_helper"
20
20
  require "chef/chef_fs/file_pattern"
21
21
  require "chef/chef_fs/command_line"
22
22
 
23
- # Removes the date stamp from the diff and replaces it with ' DATE'
24
- # example match: "/dev/null\t2012-10-16 16:15:54.000000000 +0000"
25
- # windows match: "--- /dev/null\tTue Oct 16 18:04:34 2012"
26
- def remove_os_differences(diff)
27
- diff = diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
28
- diff.gsub(/^@@ -\d(,\d)? \+\d(,\d)? @@/, "CONTEXT_LINE_NUMBERS")
29
- end
30
-
31
23
  describe "diff", uses_diff: true do
32
24
  include FileSystemSupport
33
25
 
26
+ # Removes the date stamp from the diff and replaces it with ' DATE'
27
+ # example match: "/dev/null\t2012-10-16 16:15:54.000000000 +0000"
28
+ # windows match: "--- /dev/null\tTue Oct 16 18:04:34 2012"
29
+ def remove_os_differences(diff)
30
+ diff = diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
31
+ diff.gsub(/^@@ -\d(,\d)? \+\d(,\d)? @@/, "CONTEXT_LINE_NUMBERS")
32
+ end
33
+
34
34
  context "with two filesystems with all types of difference" do
35
35
  let(:a) do
36
36
  memory_fs("a", {
@@ -749,9 +749,12 @@ describe Chef::Client do
749
749
 
750
750
  context "when any directory of cookbook_path contains no cookbook" do
751
751
  it "raises CookbookNotFound error" do
752
+ invalid_cookbook_path = windows? ? "C:/path/to/invalid/cookbook_path" : "/path/to/invalid/cookbook_path"
753
+ msg = "None of the cookbook paths set in Chef::Config[:cookbook_path], [\"#{invalid_cookbook_path}\"], contain any cookbooks"
754
+
752
755
  expect do
753
756
  client.send(:assert_cookbook_path_not_empty, nil)
754
- end.to raise_error(Chef::Exceptions::CookbookNotFound, 'None of the cookbook paths set in Chef::Config[:cookbook_path], ["/path/to/invalid/cookbook_path"], contain any cookbooks')
757
+ end.to raise_error(Chef::Exceptions::CookbookNotFound, msg)
755
758
  end
756
759
  end
757
760
  end
@@ -217,6 +217,8 @@ describe Chef::CookbookSynchronizer do
217
217
  path: "/tmp/cookbook_a_template_default_tempfile")
218
218
  end
219
219
 
220
+ let(:root) { windows? ? "C:/file-cache/cookbooks/cookbook_a" : "/file-cache/cookbooks/cookbook_a" }
221
+
220
222
  def setup_common_files_missing_expectations
221
223
  # Files are not in the cache:
222
224
  expect(file_cache).to receive(:key?)
@@ -234,7 +236,7 @@ describe Chef::CookbookSynchronizer do
234
236
  .with("/tmp/cookbook_a_recipes_default_rb", "cookbooks/cookbook_a/recipes/default.rb")
235
237
  expect(file_cache).to receive(:load)
236
238
  .with("cookbooks/cookbook_a/recipes/default.rb", false)
237
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
239
+ .and_return("#{root}/recipes/default.rb")
238
240
 
239
241
  # Fetch and copy default.rb attribute file
240
242
  expect(server_api).to receive(:streaming_request)
@@ -244,7 +246,7 @@ describe Chef::CookbookSynchronizer do
244
246
  .with("/tmp/cookbook_a_attributes_default_rb", "cookbooks/cookbook_a/attributes/default.rb")
245
247
  expect(file_cache).to receive(:load)
246
248
  .with("cookbooks/cookbook_a/attributes/default.rb", false)
247
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
249
+ .and_return("#{root}/attributes/default.rb")
248
250
  end
249
251
 
250
252
  def setup_no_lazy_files_and_templates_missing_expectations
@@ -262,7 +264,7 @@ describe Chef::CookbookSynchronizer do
262
264
  .with("/tmp/cookbook_a_file_default_tempfile", "cookbooks/cookbook_a/files/default/megaman.conf")
263
265
  expect(file_cache).to receive(:load)
264
266
  .with("cookbooks/cookbook_a/files/default/megaman.conf", false)
265
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
267
+ .and_return("#{root}/default/megaman.conf")
266
268
 
267
269
  expect(server_api).to receive(:streaming_request)
268
270
  .with("http://chef.example.com/ffffff")
@@ -271,7 +273,7 @@ describe Chef::CookbookSynchronizer do
271
273
  .with("/tmp/cookbook_a_template_default_tempfile", "cookbooks/cookbook_a/templates/default/apache2.conf.erb")
272
274
  expect(file_cache).to receive(:load)
273
275
  .with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
274
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
276
+ .and_return("#{root}/templates/default/apache2.conf.erb")
275
277
  end
276
278
 
277
279
  def setup_common_files_chksum_mismatch_expectations
@@ -292,11 +294,11 @@ describe Chef::CookbookSynchronizer do
292
294
  expect(file_cache).to receive(:load)
293
295
  .with("cookbooks/cookbook_a/recipes/default.rb", false)
294
296
  .twice
295
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
297
+ .and_return("#{root}/recipes/default.rb")
296
298
 
297
299
  # Current file has fff000, want abc123
298
300
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
299
- .with("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
301
+ .with("#{root}/recipes/default.rb")
300
302
  .and_return("fff000").at_least(:once)
301
303
 
302
304
  # Fetch and copy default.rb attribute file
@@ -308,11 +310,11 @@ describe Chef::CookbookSynchronizer do
308
310
  expect(file_cache).to receive(:load)
309
311
  .with("cookbooks/cookbook_a/attributes/default.rb", false)
310
312
  .twice
311
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
313
+ .and_return("#{root}/attributes/default.rb")
312
314
 
313
315
  # Current file has fff000, want abc456
314
316
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
315
- .with("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
317
+ .with("#{root}/attributes/default.rb")
316
318
  .and_return("fff000").at_least(:once)
317
319
  end
318
320
 
@@ -334,7 +336,7 @@ describe Chef::CookbookSynchronizer do
334
336
  expect(file_cache).to receive(:load)
335
337
  .with("cookbooks/cookbook_a/files/default/megaman.conf", false)
336
338
  .twice
337
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
339
+ .and_return("#{root}/default/megaman.conf")
338
340
 
339
341
  # Fetch and copy apache2.conf template
340
342
  expect(server_api).to receive(:streaming_request)
@@ -345,16 +347,16 @@ describe Chef::CookbookSynchronizer do
345
347
  expect(file_cache).to receive(:load)
346
348
  .with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
347
349
  .twice
348
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
350
+ .and_return("#{root}/templates/default/apache2.conf.erb")
349
351
 
350
352
  # Current file has fff000
351
353
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
352
- .with("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
354
+ .with("#{root}/default/megaman.conf")
353
355
  .and_return("fff000")
354
356
 
355
357
  # Current file has fff000
356
358
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
357
- .with("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
359
+ .with("#{root}/templates/default/apache2.conf.erb")
358
360
  .and_return("fff000")
359
361
  end
360
362
 
@@ -369,23 +371,23 @@ describe Chef::CookbookSynchronizer do
369
371
 
370
372
  # Current file has abc123, want abc123
371
373
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
372
- .with("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
374
+ .with("#{root}/recipes/default.rb")
373
375
  .and_return("abc123").at_least(:once)
374
376
 
375
377
  # Current file has abc456, want abc456
376
378
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
377
- .with("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
379
+ .with("#{root}/attributes/default.rb")
378
380
  .and_return("abc456").at_least(:once)
379
381
 
380
382
  # :load called twice
381
383
  expect(file_cache).to receive(:load)
382
384
  .with("cookbooks/cookbook_a/recipes/default.rb", false)
383
385
  .twice
384
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
386
+ .and_return("#{root}/recipes/default.rb")
385
387
  expect(file_cache).to receive(:load)
386
388
  .with("cookbooks/cookbook_a/attributes/default.rb", false)
387
389
  .twice
388
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
390
+ .and_return("#{root}/attributes/default.rb")
389
391
  end
390
392
 
391
393
  def setup_no_lazy_files_and_templates_present_expectations
@@ -399,23 +401,23 @@ describe Chef::CookbookSynchronizer do
399
401
 
400
402
  # Current file has abc124, want abc124
401
403
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
402
- .with("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
404
+ .with("#{root}/default/megaman.conf")
403
405
  .and_return("abc124")
404
406
 
405
407
  # Current file has abc125, want abc125
406
408
  expect(Chef::CookbookVersion).to receive(:checksum_cookbook_file)
407
- .with("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
409
+ .with("#{root}/templates/default/apache2.conf.erb")
408
410
  .and_return("abc125")
409
411
 
410
412
  # :load called twice
411
413
  expect(file_cache).to receive(:load)
412
414
  .with("cookbooks/cookbook_a/files/default/megaman.conf", false)
413
415
  .twice
414
- .and_return("/file-cache/cookbooks/cookbook_a/default/megaman.conf")
416
+ .and_return("#{root}/default/megaman.conf")
415
417
  expect(file_cache).to receive(:load)
416
418
  .with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
417
419
  .twice
418
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
420
+ .and_return("#{root}/templates/default/apache2.conf.erb")
419
421
  end
420
422
 
421
423
  describe "#server_api" do
@@ -535,19 +537,19 @@ describe Chef::CookbookSynchronizer do
535
537
  expect(file_cache).to receive(:load)
536
538
  .with("cookbooks/cookbook_a/recipes/default.rb", false)
537
539
  .once
538
- .and_return("/file-cache/cookbooks/cookbook_a/recipes/default.rb")
540
+ .and_return("#{root}/recipes/default.rb")
539
541
  expect(file_cache).to receive(:load)
540
542
  .with("cookbooks/cookbook_a/attributes/default.rb", false)
541
543
  .once
542
- .and_return("/file-cache/cookbooks/cookbook_a/attributes/default.rb")
544
+ .and_return("#{root}/attributes/default.rb")
543
545
  expect(file_cache).to receive(:load)
544
546
  .with("cookbooks/cookbook_a/templates/default/apache2.conf.erb", false)
545
547
  .once
546
- .and_return("/file-cache/cookbooks/cookbook_a/templates/default/apache2.conf.erb")
548
+ .and_return("#{root}/templates/default/apache2.conf.erb")
547
549
  expect(file_cache).to receive(:load)
548
550
  .with("cookbooks/cookbook_a/files/default/megaman.conf", false)
549
551
  .once
550
- .and_return("/file-cache/cookbooks/cookbook_a/files/default/megaman.conf")
552
+ .and_return("#{root}/files/default/megaman.conf")
551
553
  expect(Chef::Log).to receive(:warn)
552
554
  .with("skipping cookbook synchronization! DO NOT LEAVE THIS ENABLED IN PRODUCTION!!!")
553
555
  .once