chef 16.0.257-universal-mingw32 → 16.2.44-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/README.md +3 -3
  4. data/Rakefile +44 -16
  5. data/chef.gemspec +4 -4
  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 -2
  9. data/lib/chef/application/base.rb +1 -1
  10. data/lib/chef/application/client.rb +1 -1
  11. data/lib/chef/application/exit_code.rb +2 -2
  12. data/lib/chef/application/windows_service_manager.rb +1 -1
  13. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  14. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  16. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  18. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  20. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  21. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  22. data/lib/chef/chef_fs/path_utils.rb +4 -4
  23. data/lib/chef/cookbook/chefignore.rb +1 -1
  24. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  25. data/lib/chef/cookbook/metadata.rb +2 -2
  26. data/lib/chef/cookbook_loader.rb +1 -1
  27. data/lib/chef/cookbook_manifest.rb +1 -1
  28. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  29. data/lib/chef/cookbook_version.rb +7 -7
  30. data/lib/chef/data_bag.rb +4 -4
  31. data/lib/chef/data_collector.rb +1 -1
  32. data/lib/chef/data_collector/error_handlers.rb +1 -1
  33. data/lib/chef/decorator/lazy_array.rb +2 -2
  34. data/lib/chef/deprecated.rb +5 -1
  35. data/lib/chef/digester.rb +4 -4
  36. data/lib/chef/dsl/declare_resource.rb +1 -1
  37. data/lib/chef/dsl/platform_introspection.rb +1 -1
  38. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  39. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  40. data/lib/chef/file_access_control.rb +1 -1
  41. data/lib/chef/formatters/base.rb +1 -1
  42. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  43. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  44. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  45. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  46. data/lib/chef/http.rb +18 -3
  47. data/lib/chef/http/decompressor.rb +1 -1
  48. data/lib/chef/http/http_request.rb +1 -1
  49. data/lib/chef/http/json_output.rb +1 -1
  50. data/lib/chef/http/ssl_policies.rb +18 -0
  51. data/lib/chef/json_compat.rb +1 -1
  52. data/lib/chef/key.rb +1 -1
  53. data/lib/chef/knife.rb +2 -2
  54. data/lib/chef/knife/bootstrap.rb +13 -16
  55. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  56. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  57. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  58. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  59. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  60. data/lib/chef/knife/config_get.rb +1 -1
  61. data/lib/chef/knife/cookbook_delete.rb +1 -1
  62. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  63. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  64. data/lib/chef/knife/core/node_presenter.rb +1 -1
  65. data/lib/chef/knife/core/status_presenter.rb +1 -1
  66. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  67. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
  68. data/lib/chef/knife/data_bag_create.rb +1 -1
  69. data/lib/chef/knife/environment_compare.rb +1 -1
  70. data/lib/chef/knife/key_create_base.rb +1 -1
  71. data/lib/chef/knife/key_edit_base.rb +1 -1
  72. data/lib/chef/knife/list.rb +1 -1
  73. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  74. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  75. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  76. data/lib/chef/knife/ssh.rb +2 -2
  77. data/lib/chef/knife/supermarket_install.rb +1 -1
  78. data/lib/chef/knife/supermarket_share.rb +1 -1
  79. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  80. data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
  81. data/lib/chef/knife/yaml_convert.rb +2 -2
  82. data/lib/chef/log.rb +1 -1
  83. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  84. data/lib/chef/mixin/checksum.rb +0 -1
  85. data/lib/chef/mixin/create_path.rb +8 -8
  86. data/lib/chef/mixin/openssl_helper.rb +4 -4
  87. data/lib/chef/mixin/properties.rb +4 -2
  88. data/lib/chef/mixin/securable.rb +2 -2
  89. data/lib/chef/mixin/shell_out.rb +1 -1
  90. data/lib/chef/node/attribute.rb +2 -2
  91. data/lib/chef/node/immutable_collections.rb +1 -1
  92. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  93. data/lib/chef/policy_builder/policyfile.rb +1 -1
  94. data/lib/chef/powershell.rb +1 -1
  95. data/lib/chef/property.rb +2 -2
  96. data/lib/chef/provider.rb +3 -3
  97. data/lib/chef/provider/batch.rb +3 -10
  98. data/lib/chef/provider/cron.rb +2 -14
  99. data/lib/chef/provider/directory.rb +1 -1
  100. data/lib/chef/provider/execute.rb +3 -2
  101. data/lib/chef/provider/file.rb +1 -1
  102. data/lib/chef/provider/group/dscl.rb +2 -2
  103. data/lib/chef/provider/group/windows.rb +1 -1
  104. data/lib/chef/provider/ifconfig.rb +7 -7
  105. data/lib/chef/provider/launchd.rb +28 -32
  106. data/lib/chef/provider/mount/aix.rb +1 -1
  107. data/lib/chef/provider/mount/windows.rb +2 -2
  108. data/lib/chef/provider/noop.rb +1 -1
  109. data/lib/chef/provider/package/cab.rb +1 -1
  110. data/lib/chef/provider/package/chocolatey.rb +1 -1
  111. data/lib/chef/provider/package/dpkg.rb +1 -1
  112. data/lib/chef/provider/package/freebsd/base.rb +2 -1
  113. data/lib/chef/provider/package/homebrew.rb +1 -1
  114. data/lib/chef/provider/package/macports.rb +0 -2
  115. data/lib/chef/provider/package/openbsd.rb +1 -1
  116. data/lib/chef/provider/package/portage.rb +3 -2
  117. data/lib/chef/provider/package/powershell.rb +6 -2
  118. data/lib/chef/provider/package/rubygems.rb +3 -3
  119. data/lib/chef/provider/package/snap.rb +96 -27
  120. data/lib/chef/provider/package/windows.rb +27 -52
  121. data/lib/chef/provider/package/windows/msi.rb +3 -3
  122. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  123. data/lib/chef/provider/package/yum.rb +1 -1
  124. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  125. data/lib/chef/provider/powershell_script.rb +11 -15
  126. data/lib/chef/provider/remote_directory.rb +2 -2
  127. data/lib/chef/provider/remote_file/http.rb +4 -1
  128. data/lib/chef/provider/script.rb +4 -75
  129. data/lib/chef/provider/service/arch.rb +2 -2
  130. data/lib/chef/provider/service/debian.rb +2 -2
  131. data/lib/chef/provider/service/macosx.rb +13 -2
  132. data/lib/chef/provider/service/openbsd.rb +4 -4
  133. data/lib/chef/provider/service/redhat.rb +1 -1
  134. data/lib/chef/provider/service/simple.rb +3 -3
  135. data/lib/chef/provider/service/upstart.rb +1 -1
  136. data/lib/chef/provider/service/windows.rb +1 -1
  137. data/lib/chef/provider/subversion.rb +2 -2
  138. data/lib/chef/provider/user/aix.rb +1 -1
  139. data/lib/chef/provider/user/dscl.rb +7 -7
  140. data/lib/chef/provider/user/linux.rb +3 -3
  141. data/lib/chef/provider/user/mac.rb +15 -11
  142. data/lib/chef/provider/windows_script.rb +87 -25
  143. data/lib/chef/provider/windows_task.rb +5 -3
  144. data/lib/chef/provider/zypper_repository.rb +30 -10
  145. data/lib/chef/resource.rb +25 -14
  146. data/lib/chef/resource/alternatives.rb +65 -4
  147. data/lib/chef/resource/apt_package.rb +31 -2
  148. data/lib/chef/resource/apt_preference.rb +34 -5
  149. data/lib/chef/resource/apt_repository.rb +22 -15
  150. data/lib/chef/resource/apt_update.rb +6 -4
  151. data/lib/chef/resource/archive_file.rb +33 -12
  152. data/lib/chef/resource/bash.rb +1 -2
  153. data/lib/chef/resource/batch.rb +5 -3
  154. data/lib/chef/resource/bff_package.rb +1 -1
  155. data/lib/chef/resource/breakpoint.rb +1 -1
  156. data/lib/chef/resource/build_essential.rb +8 -4
  157. data/lib/chef/resource/cab_package.rb +1 -1
  158. data/lib/chef/resource/chef_client_cron.rb +12 -9
  159. data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
  160. data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
  161. data/lib/chef/resource/chef_gem.rb +6 -2
  162. data/lib/chef/resource/chef_handler.rb +3 -3
  163. data/lib/chef/resource/chef_sleep.rb +7 -4
  164. data/lib/chef/resource/chef_vault_secret.rb +4 -4
  165. data/lib/chef/resource/chocolatey_config.rb +5 -3
  166. data/lib/chef/resource/chocolatey_feature.rb +5 -3
  167. data/lib/chef/resource/chocolatey_package.rb +5 -3
  168. data/lib/chef/resource/chocolatey_source.rb +5 -3
  169. data/lib/chef/resource/cookbook_file.rb +3 -2
  170. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  171. data/lib/chef/resource/cron/cron.rb +46 -0
  172. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +28 -94
  173. data/lib/chef/resource/cron_access.rb +17 -6
  174. data/lib/chef/resource/csh.rb +1 -2
  175. data/lib/chef/resource/directory.rb +1 -1
  176. data/lib/chef/resource/dmg_package.rb +18 -15
  177. data/lib/chef/resource/dnf_package.rb +1 -1
  178. data/lib/chef/resource/dpkg_package.rb +1 -1
  179. data/lib/chef/resource/execute.rb +479 -9
  180. data/lib/chef/resource/file.rb +11 -8
  181. data/lib/chef/resource/freebsd_package.rb +2 -2
  182. data/lib/chef/resource/gem_package.rb +6 -6
  183. data/lib/chef/resource/group.rb +1 -1
  184. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  185. data/lib/chef/resource/homebrew_cask.rb +1 -1
  186. data/lib/chef/resource/homebrew_package.rb +30 -1
  187. data/lib/chef/resource/homebrew_tap.rb +1 -1
  188. data/lib/chef/resource/homebrew_update.rb +107 -0
  189. data/lib/chef/resource/hostname.rb +11 -24
  190. data/lib/chef/resource/http_request.rb +1 -1
  191. data/lib/chef/resource/ifconfig.rb +7 -7
  192. data/lib/chef/resource/ips_package.rb +1 -1
  193. data/lib/chef/resource/kernel_module.rb +15 -2
  194. data/lib/chef/resource/ksh.rb +1 -1
  195. data/lib/chef/resource/launchd.rb +5 -5
  196. data/lib/chef/resource/link.rb +4 -4
  197. data/lib/chef/resource/locale.rb +4 -4
  198. data/lib/chef/resource/log.rb +1 -1
  199. data/lib/chef/resource/macos_userdefaults.rb +15 -10
  200. data/lib/chef/resource/macosx_service.rb +1 -1
  201. data/lib/chef/resource/macports_package.rb +1 -1
  202. data/lib/chef/resource/mdadm.rb +1 -1
  203. data/lib/chef/resource/mount.rb +2 -2
  204. data/lib/chef/resource/msu_package.rb +2 -2
  205. data/lib/chef/resource/ohai.rb +1 -1
  206. data/lib/chef/resource/ohai_hint.rb +1 -1
  207. data/lib/chef/resource/openbsd_package.rb +1 -1
  208. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  209. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  210. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  211. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  212. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  213. data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
  214. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  215. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  216. data/lib/chef/resource/osx_profile.rb +1 -1
  217. data/lib/chef/resource/package.rb +1 -1
  218. data/lib/chef/resource/pacman_package.rb +1 -1
  219. data/lib/chef/resource/paludis_package.rb +1 -1
  220. data/lib/chef/resource/perl.rb +1 -2
  221. data/lib/chef/resource/plist.rb +24 -5
  222. data/lib/chef/resource/portage_package.rb +1 -1
  223. data/lib/chef/resource/powershell_package.rb +1 -1
  224. data/lib/chef/resource/powershell_package_source.rb +1 -1
  225. data/lib/chef/resource/powershell_script.rb +5 -3
  226. data/lib/chef/resource/python.rb +1 -2
  227. data/lib/chef/resource/reboot.rb +1 -1
  228. data/lib/chef/resource/registry_key.rb +1 -1
  229. data/lib/chef/resource/remote_directory.rb +1 -1
  230. data/lib/chef/resource/remote_file.rb +26 -11
  231. data/lib/chef/resource/rhsm_errata.rb +1 -3
  232. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  233. data/lib/chef/resource/rhsm_register.rb +1 -2
  234. data/lib/chef/resource/rhsm_repo.rb +1 -2
  235. data/lib/chef/resource/rhsm_subscription.rb +1 -3
  236. data/lib/chef/resource/route.rb +1 -1
  237. data/lib/chef/resource/rpm_package.rb +5 -2
  238. data/lib/chef/resource/ruby.rb +1 -2
  239. data/lib/chef/resource/ruby_block.rb +1 -4
  240. data/lib/chef/resource/scm/_scm.rb +4 -3
  241. data/lib/chef/resource/scm/git.rb +2 -2
  242. data/lib/chef/resource/scm/subversion.rb +2 -2
  243. data/lib/chef/resource/script.rb +1 -1
  244. data/lib/chef/resource/service.rb +1 -1
  245. data/lib/chef/resource/smartos_package.rb +1 -1
  246. data/lib/chef/resource/snap_package.rb +1 -1
  247. data/lib/chef/resource/solaris_package.rb +1 -1
  248. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  249. data/lib/chef/resource/sudo.rb +4 -4
  250. data/lib/chef/resource/swap_file.rb +2 -2
  251. data/lib/chef/resource/sysctl.rb +61 -2
  252. data/lib/chef/resource/systemd_unit.rb +2 -2
  253. data/lib/chef/resource/template.rb +1 -1
  254. data/lib/chef/resource/timezone.rb +1 -1
  255. data/lib/chef/resource/user.rb +2 -2
  256. data/lib/chef/resource/user_ulimit.rb +24 -22
  257. data/lib/chef/resource/windows_ad_join.rb +31 -2
  258. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  259. data/lib/chef/resource/windows_auto_run.rb +13 -2
  260. data/lib/chef/resource/windows_certificate.rb +28 -2
  261. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  262. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  263. data/lib/chef/resource/windows_dfs_server.rb +2 -2
  264. data/lib/chef/resource/windows_env.rb +10 -1
  265. data/lib/chef/resource/windows_feature.rb +57 -2
  266. data/lib/chef/resource/windows_feature_dism.rb +15 -2
  267. data/lib/chef/resource/windows_feature_powershell.rb +29 -2
  268. data/lib/chef/resource/windows_firewall_rule.rb +11 -7
  269. data/lib/chef/resource/windows_font.rb +13 -4
  270. data/lib/chef/resource/windows_package.rb +66 -6
  271. data/lib/chef/resource/windows_pagefile.rb +32 -4
  272. data/lib/chef/resource/windows_path.rb +18 -1
  273. data/lib/chef/resource/windows_printer.rb +26 -6
  274. data/lib/chef/resource/windows_printer_port.rb +29 -1
  275. data/lib/chef/resource/windows_script.rb +2 -16
  276. data/lib/chef/resource/windows_security_policy.rb +47 -16
  277. data/lib/chef/resource/windows_service.rb +1 -1
  278. data/lib/chef/resource/windows_share.rb +23 -3
  279. data/lib/chef/resource/windows_shortcut.rb +13 -3
  280. data/lib/chef/resource/windows_task.rb +143 -29
  281. data/lib/chef/resource/windows_uac.rb +20 -1
  282. data/lib/chef/resource/windows_user_privilege.rb +45 -3
  283. data/lib/chef/resource/windows_workgroup.rb +19 -3
  284. data/lib/chef/resource/yum_package.rb +88 -6
  285. data/lib/chef/resource/yum_repository.rb +36 -19
  286. data/lib/chef/resource/zypper_package.rb +29 -3
  287. data/lib/chef/resource/zypper_repository.rb +17 -5
  288. data/lib/chef/resource_inspector.rb +5 -4
  289. data/lib/chef/resources.rb +4 -2
  290. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  291. data/lib/chef/scan_access_control.rb +1 -1
  292. data/lib/chef/search/query.rb +1 -1
  293. data/lib/chef/shell/ext.rb +1 -1
  294. data/lib/chef/util/diff.rb +2 -2
  295. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  296. data/lib/chef/util/windows/net_user.rb +1 -1
  297. data/lib/chef/util/windows/volume.rb +1 -1
  298. data/lib/chef/version.rb +1 -1
  299. data/lib/chef/win32/api.rb +2 -2
  300. data/lib/chef/win32/api/error.rb +3 -1
  301. data/lib/chef/win32/api/file.rb +18 -18
  302. data/lib/chef/win32/api/net.rb +1 -0
  303. data/lib/chef/win32/file.rb +1 -1
  304. data/lib/chef/win32/mutex.rb +1 -1
  305. data/lib/chef/win32/net.rb +1 -0
  306. data/lib/chef/win32/process.rb +2 -2
  307. data/lib/chef/win32/registry.rb +2 -2
  308. data/lib/chef/win32/security.rb +1 -1
  309. data/lib/chef/win32/security/sid.rb +4 -4
  310. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  311. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  312. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  313. data/spec/functional/resource/cron_spec.rb +10 -0
  314. data/spec/functional/resource/dnf_package_spec.rb +2 -2
  315. data/spec/functional/resource/git_spec.rb +6 -6
  316. data/spec/functional/resource/launchd_spec.rb +232 -0
  317. data/spec/functional/resource/link_spec.rb +3 -3
  318. data/spec/functional/resource/remote_file_spec.rb +3 -3
  319. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  320. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  321. data/spec/functional/resource/windows_task_spec.rb +12 -12
  322. data/spec/integration/knife/raw_spec.rb +4 -4
  323. data/spec/integration/knife/redirection_spec.rb +2 -2
  324. data/spec/support/chef_helpers.rb +1 -1
  325. data/spec/support/platform_helpers.rb +1 -14
  326. data/spec/support/platforms/win32/spec_service.rb +1 -1
  327. data/spec/support/shared/functional/execute_resource.rb +1 -1
  328. data/spec/support/shared/functional/file_resource.rb +1 -1
  329. data/spec/support/shared/functional/http.rb +2 -2
  330. data/spec/support/shared/functional/windows_script.rb +1 -1
  331. data/spec/support/shared/unit/execute_resource.rb +1 -1
  332. data/spec/support/shared/unit/mock_shellout.rb +1 -1
  333. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  334. data/spec/unit/application_spec.rb +7 -0
  335. data/spec/unit/data_bag_spec.rb +1 -1
  336. data/spec/unit/file_access_control_spec.rb +1 -1
  337. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  338. data/spec/unit/knife/bootstrap_spec.rb +2 -2
  339. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  340. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  341. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  342. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  343. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  344. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  345. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  346. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  347. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  348. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  349. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  350. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  351. data/spec/unit/mixin/shell_out_spec.rb +25 -31
  352. data/spec/unit/mixin/user_context_spec.rb +1 -9
  353. data/spec/unit/node/attribute_spec.rb +1 -1
  354. data/spec/unit/property_spec.rb +1 -1
  355. data/spec/unit/provider/apt_repository_spec.rb +27 -27
  356. data/spec/unit/provider/batch_spec.rb +130 -0
  357. data/spec/unit/provider/cron_spec.rb +9 -49
  358. data/spec/unit/provider/git_spec.rb +3 -3
  359. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  360. data/spec/unit/provider/launchd_spec.rb +8 -50
  361. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  362. data/spec/unit/provider/package/msu_spec.rb +3 -3
  363. data/spec/unit/provider/package/portage_spec.rb +2 -2
  364. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  365. data/spec/unit/provider/package/snap_spec.rb +1 -1
  366. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  367. data/spec/unit/provider/script_spec.rb +20 -110
  368. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  369. data/spec/unit/provider/zypper_repository_spec.rb +75 -25
  370. data/spec/unit/provider_resolver_spec.rb +11 -11
  371. data/spec/unit/resource/archive_file_spec.rb +11 -2
  372. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  373. data/spec/unit/resource/cron_spec.rb +2 -2
  374. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  375. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  376. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  377. data/spec/unit/resource/timezone_spec.rb +1 -1
  378. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  379. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  380. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  381. data/spec/unit/resource/windows_package_spec.rb +10 -0
  382. data/spec/unit/resource/windows_task_spec.rb +1 -1
  383. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  384. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  385. data/spec/unit/resource_spec.rb +67 -1
  386. data/spec/unit/run_context_spec.rb +1 -1
  387. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  388. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  389. data/spec/unit/win32/registry_spec.rb +1 -1
  390. metadata +28 -27
  391. data/lib/chef/resource/cron.rb +0 -157
@@ -59,7 +59,7 @@ 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: opts[:equal_to] || [] }
62
+ equal_to: Array(opts[:equal_to]).sort.map(&:inspect) }
63
63
  end
64
64
  data
65
65
  end
@@ -69,8 +69,8 @@ module ResourceInspector
69
69
  dir, name = File.split(path)
70
70
  Chef::Cookbook::FileVendor.fetch_from_disk(path)
71
71
  loader = Chef::CookbookLoader.new(dir)
72
- cookbooks = loader.load_cookbooks
73
- resources = cookbooks[name].files_for(:resources)
72
+ cookbook = loader.load_cookbook(name)
73
+ resources = cookbook.files_for(:resources)
74
74
 
75
75
  resources.each_with_object({}) do |r, res|
76
76
  pth = r["full_path"]
@@ -83,13 +83,14 @@ module ResourceInspector
83
83
  # otherwise, if we have a path then extract all the resources from the cookbook
84
84
  # or else do a list of built in resources
85
85
  #
86
+ # @param arguments [Array, String] One of more paths to a cookbook or a resource file to inspect
86
87
  # @param complete [TrueClass, FalseClass] Whether to show properties defined in the base Resource class
87
88
  # @return [String] JSON formatting of all resources
88
89
  def self.inspect(arguments = [], complete: false)
89
90
  output = if arguments.empty?
90
91
  ObjectSpace.each_object(Class).select { |k| k < Chef::Resource }.each_with_object({}) { |klass, acc| acc[klass.resource_name] = extract_resource(klass) }
91
92
  else
92
- arguments.each_with_object({}) do |arg, acc|
93
+ Array(arguments).each_with_object({}) do |arg, acc|
93
94
  if File.directory?(arg)
94
95
  extract_cookbook(arg, complete).each { |k, v| acc[k] = v }
95
96
  else
@@ -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"
@@ -101,7 +101,7 @@ class Chef
101
101
  @events.library_load_start(count_files_by_segment(:libraries))
102
102
  cookbook_order.each do |cookbook|
103
103
  eager_load_libraries = cookbook_collection[cookbook].metadata.eager_load_libraries
104
- if eager_load_libraries == true # actully true, not truthy
104
+ if eager_load_libraries == true # actually true, not truthy
105
105
  load_libraries_from_cookbook(cookbook)
106
106
  else
107
107
  $LOAD_PATH.unshift File.expand_path("libraries", cookbook_collection[cookbook].root_dir)
@@ -33,7 +33,7 @@ class Chef
33
33
  # Not yet sure if this is the optimal way to solve the problem. But it's
34
34
  # progress towards the end goal.
35
35
  #
36
- # TODO: figure out if all this works with OS X's negative uids
36
+ # TODO: figure out if all this works with macOS' negative uids
37
37
  # TODO: windows
38
38
  class ScanAccessControl
39
39
 
@@ -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
@@ -37,7 +37,7 @@ module Shell
37
37
  module ObjectCoreExtensions
38
38
 
39
39
  def ensure_session_select_defined
40
- # irb breaks if you prematurely define IRB::JobMangager
40
+ # irb breaks if you prematurely define IRB::JobManager
41
41
  # so these methods need to be defined at the latest possible time.
42
42
  unless jobs.respond_to?(:select_session_by_context)
43
43
  def jobs.select_session_by_context(&block) # rubocop:disable Lint/NestedMethodDefinition
@@ -136,7 +136,7 @@ class Chef
136
136
  return "(file sizes exceed #{diff_filesize_threshold} bytes, diff output suppressed)"
137
137
  end
138
138
 
139
- # MacOSX(BSD?) diff will *sometimes* happily spit out nasty binary diffs
139
+ # macOS(BSD?) diff will *sometimes* happily spit out nasty binary diffs
140
140
  return "(current file is binary, diff output suppressed)" if is_binary?(old_file)
141
141
  return "(new content is binary, diff output suppressed)" if is_binary?(new_file)
142
142
 
@@ -171,7 +171,7 @@ class Chef
171
171
  begin
172
172
  return buff !~ /\A[\s[:print:]]*\z/m
173
173
  rescue ArgumentError => e
174
- return true if e.message =~ /invalid byte sequence/
174
+ return true if /invalid byte sequence/.match?(e.message)
175
175
 
176
176
  raise
177
177
  end
@@ -160,9 +160,9 @@ class Chef
160
160
 
161
161
  def self.parse_line(line)
162
162
  if match = line.match(/^.*?:.*?:\s*LCM:\s*\[(.*?)\](.*)/)
163
- # If the line looks like
164
- # What If: [machinename]: LCM: [op_action op_type] message
165
- # extract op_action, op_type, and message
163
+ # If the line looks like
164
+ # What If: [machinename]: LCM: [op_action op_type] message
165
+ # extract op_action, op_type, and message
166
166
  operation, info = match.captures
167
167
  op_action, op_type = operation.strip.split(" ").map { |m| m.downcase.to_sym }
168
168
  else
@@ -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
 
@@ -23,7 +23,7 @@ require_relative "version_string"
23
23
 
24
24
  class Chef
25
25
  CHEF_ROOT = File.expand_path("../..", __FILE__)
26
- VERSION = Chef::VersionString.new("16.0.257")
26
+ VERSION = Chef::VersionString.new("16.2.44")
27
27
  end
28
28
 
29
29
  #
@@ -94,7 +94,7 @@ class Chef
94
94
  host.typedef :ulong, :HMENU # (L) Handle to a menu. http://msdn.microsoft.com/en-us/library/ms646977%28VS.85%29.aspx
95
95
  host.typedef :ulong, :HMETAFILE # (L) Handle to a metafile. http://msdn.microsoft.com/en-us/library/dd145051%28VS.85%29.aspx
96
96
  host.typedef :ulong, :HMODULE # (L) Handle to an instance. Same as HINSTANCE today, but was different in 16-bit Windows.
97
- host.typedef :ulong, :HMONITOR # (L) Рandle to a display monitor. WinDef.h: if(WINVER >= 0x0500) host.typedef HANDLE HMONITOR;
97
+ host.typedef :ulong, :HMONITOR # (L) Handle to a display monitor. WinDef.h: if(WINVER >= 0x0500) host.typedef HANDLE HMONITOR;
98
98
  host.typedef :ulong, :HPALETTE # (L) Handle to a palette.
99
99
  host.typedef :ulong, :HPEN # (L) Handle to a pen. http://msdn.microsoft.com/en-us/library/dd162786%28VS.85%29.aspx
100
100
  host.typedef :long, :HRESULT # Return code used by COM interfaces. For more info, Structure of the COM Error Codes.
@@ -115,7 +115,7 @@ class Chef
115
115
  host.typedef :uint32, :LCID # Locale identifier. For more information, see Locales.
116
116
  host.typedef :uint32, :LCTYPE # Locale information type. For a list, see Locale Information Constants.
117
117
  host.typedef :uint32, :LGRPID # Language group identifier. For a list, see EnumLanguageGroupLocales.
118
- host.typedef :pointer, :LMSTR # Pointer to null termiated string of unicode characters
118
+ host.typedef :pointer, :LMSTR # Pointer to null terminated string of unicode characters
119
119
  host.typedef :long, :LONG # 32-bit signed integer. The range is -2,147,483,648 through +...647 decimal.
120
120
  host.typedef :int32, :LONG32 # 32-bit signed integer. The range is -2,147,483,648 through +...647 decimal.
121
121
  host.typedef :int64, :LONG64 # 64-bit signed integer. The range is –9,223,372,036,854,775,808 through +...807
@@ -64,7 +64,7 @@ class Chef
64
64
  ERROR_SHARING_VIOLATION = 32
65
65
  ERROR_LOCK_VIOLATION = 33
66
66
  ERROR_WRONG_DISK = 34
67
- ERROR_FCB_UNAVAILABLE = 35 # gets returned for some unsuccessful DeviceIoControl calls
67
+ ERROR_FCB_UNAVAILABLE = 35 # gets returned for some unsuccessful DeviceIoControl calls
68
68
  ERROR_SHARING_BUFFER_EXCEEDED = 36
69
69
  ERROR_HANDLE_EOF = 38
70
70
  ERROR_HANDLE_DISK_FULL = 39
@@ -90,6 +90,7 @@ class Chef
90
90
  ERROR_TOO_MANY_NAMES = 68
91
91
  ERROR_TOO_MANY_SESS = 69
92
92
  ERROR_SHARING_PAUSED = 70
93
+ # cspell:disable-next-line
93
94
  ERROR_REQ_NOT_ACCEP = 71
94
95
  ERROR_REDIR_PAUSED = 72
95
96
 
@@ -876,6 +877,7 @@ class Chef
876
877
 
877
878
  # Flags for LoadLibraryEx
878
879
 
880
+ # cspell:disable-next-line
879
881
  DONT_RESOLVE_DLL_REFERENCES = 0x00000001
880
882
  LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010
881
883
  LOAD_LIBRARY_AS_DATAFILE = 0x00000002
@@ -461,22 +461,22 @@ BOOL WINAPI DeviceIoControl(
461
461
  =end
462
462
  safe_attach_function :DeviceIoControl, %i{HANDLE DWORD LPVOID DWORD LPVOID DWORD LPDWORD pointer}, :BOOL
463
463
 
464
- # BOOL WINAPI DeleteVolumeMountPoint(
465
- # _In_ LPCTSTR lpszVolumeMountPoint
466
- # );
464
+ # BOOL WINAPI DeleteVolumeMountPoint(
465
+ # _In_ LPCTSTR lpszVolumeMountPoint
466
+ # );
467
467
  safe_attach_function :DeleteVolumeMountPointW, [:LPCTSTR], :BOOL
468
468
 
469
- # BOOL WINAPI SetVolumeMountPoint(
470
- # _In_ LPCTSTR lpszVolumeMountPoint,
471
- # _In_ LPCTSTR lpszVolumeName
472
- # );
469
+ # BOOL WINAPI SetVolumeMountPoint(
470
+ # _In_ LPCTSTR lpszVolumeMountPoint,
471
+ # _In_ LPCTSTR lpszVolumeName
472
+ # );
473
473
  safe_attach_function :SetVolumeMountPointW, %i{LPCTSTR LPCTSTR}, :BOOL
474
474
 
475
- # BOOL WINAPI GetVolumeNameForVolumeMountPoint(
476
- # _In_ LPCTSTR lpszVolumeMountPoint,
477
- # _Out_ LPTSTR lpszVolumeName,
478
- # _In_ DWORD cchBufferLength
479
- # );
475
+ # BOOL WINAPI GetVolumeNameForVolumeMountPoint(
476
+ # _In_ LPCTSTR lpszVolumeMountPoint,
477
+ # _Out_ LPTSTR lpszVolumeName,
478
+ # _In_ DWORD cchBufferLength
479
+ # );
480
480
  safe_attach_function :GetVolumeNameForVolumeMountPointW, %i{LPCTSTR LPTSTR DWORD}, :BOOL
481
481
 
482
482
  =begin
@@ -538,12 +538,12 @@ BOOL WINAPI VerQueryValue(
538
538
  # ensures the handle is closed on exit of the block
539
539
  # FIXME: yard with @yield
540
540
  def file_search_handle(path)
541
- # Workaround for CHEF-4419:
542
- # Make sure paths starting with "/" has a drive letter
543
- # assigned from the current working diretory.
544
- # Note: With CHEF-4427 this issue will be fixed with a
545
- # broader fix to map all the paths starting with "/" to
546
- # SYSTEM_DRIVE on windows.
541
+ # Workaround for CHEF-4419:
542
+ # Make sure paths starting with "/" has a drive letter
543
+ # assigned from the current working directory.
544
+ # Note: With CHEF-4427 this issue will be fixed with a
545
+ # broader fix to map all the paths starting with "/" to
546
+ # SYSTEM_DRIVE on windows.
547
547
  path = ::File.expand_path(path) if path.start_with? "/"
548
548
  path = canonical_encode_path(path)
549
549
  find_data = WIN32_FIND_DATA.new
@@ -39,6 +39,7 @@ class Chef
39
39
  UF_ACCOUNTDISABLE = 0x000002
40
40
  UF_PASSWD_CANT_CHANGE = 0x000040
41
41
  UF_NORMAL_ACCOUNT = 0x000200
42
+ # cspell:disable-next-line
42
43
  UF_DONT_EXPIRE_PASSWD = 0x010000
43
44
 
44
45
  USE_NOFORCE = 0
@@ -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
@@ -95,7 +95,7 @@ if other threads attempt to acquire the mutex.")
95
95
  @handle = OpenMutexW(SYNCHRONIZE, true, name.to_wstring)
96
96
 
97
97
  if @handle == 0
98
- # Mutext doesn't exist so create one.
98
+ # Mutex doesn't exist so create one.
99
99
  # In the initial creation of the mutex initial_owner is set to
100
100
  # false so that mutex will not be acquired until someone calls
101
101
  # acquire.
@@ -40,6 +40,7 @@ class Chef
40
40
  usri3_priv: 0,
41
41
  usri3_home_dir: nil,
42
42
  usri3_comment: nil,
43
+ # cspell:disable-next-line
43
44
  usri3_flags: UF_SCRIPT | UF_DONT_EXPIRE_PASSWD | UF_NORMAL_ACCOUNT,
44
45
  usri3_script_path: nil,
45
46
  usri3_auth_flags: 0,
@@ -82,8 +82,8 @@ class Chef
82
82
  (call_succeeded != 0) && (is_64_bit_process_result.get_int(0) != 0)
83
83
  end
84
84
 
85
- # Must have PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION rights,
86
- # AND the PROCESS_VM_READ right
85
+ # Must have PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION rights,
86
+ # AND the PROCESS_VM_READ right
87
87
  def self.get_process_memory_info(handle)
88
88
  memory_info = PROCESS_MEMORY_COUNTERS.new
89
89
  unless GetProcessMemoryInfo(handle.handle, memory_info, memory_info.size)
@@ -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
@@ -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
@@ -261,7 +261,7 @@ class Chef
261
261
 
262
262
  SYSTEM_USER = SERVICE_ACCOUNT_USERS + BUILT_IN_GROUPS
263
263
 
264
- # Сheck if the user belongs to service accounts category
264
+ # Check if the user belongs to service accounts category
265
265
  #
266
266
  # @return [Boolean] True or False
267
267
  #
@@ -269,7 +269,7 @@ class Chef
269
269
  SERVICE_ACCOUNT_USERS.include?(user.to_s.upcase)
270
270
  end
271
271
 
272
- # Сheck if the user is in builtin system group
272
+ # Check if the user is in builtin system group
273
273
  #
274
274
  # @return [Boolean] True or False
275
275
  #
@@ -277,7 +277,7 @@ class Chef
277
277
  BUILT_IN_GROUPS.include?(user.to_s.upcase)
278
278
  end
279
279
 
280
- # Сheck if the user belongs to system users category
280
+ # Check if the user belongs to system users category
281
281
  #
282
282
  # @return [Boolean] True or False
283
283
  #
@@ -325,7 +325,7 @@ class Chef
325
325
  Array.new(entriesread.read_long) do |i|
326
326
  user_info = USER_INFO_3.new(bufptr.read_pointer + i * USER_INFO_3.size)
327
327
  # Check if the account is the Administrator account
328
- # RID for the Administrator account is always 500 and it's privilage is set to USER_PRIV_ADMIN
328
+ # RID for the Administrator account is always 500 and it's privilege is set to USER_PRIV_ADMIN
329
329
  if user_info[:usri3_user_id] == 500 && user_info[:usri3_priv] == 2 # USER_PRIV_ADMIN (2) - Administrator
330
330
  admin_account_name = user_info[:usri3_name].read_wstring
331
331
  break
@@ -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
@@ -80,6 +80,16 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
80
80
  5.times { new_resource.run_action(:create) }
81
81
  cron_should_exists(new_resource.name, new_resource.command)
82
82
  end
83
+
84
+ # Test cron for day of week
85
+ weekdays = { Mon: 1, tuesday: 2, '3': 3, 'thursday': 4, 'Fri': 5, 6 => 6 }
86
+ weekdays.each do |key, value|
87
+ it "should create crontab entry and set #{value} for #{key} as weekday" do
88
+ new_resource.weekday key
89
+ expect { new_resource.run_action(:create) }.not_to raise_error
90
+ cron_should_exists(new_resource.name, new_resource.command)
91
+ end
92
+ end
83
93
  end
84
94
 
85
95
  describe "delete action" do
@@ -726,7 +726,7 @@ describe Chef::Resource::DnfPackage, :requires_root, external: exclude_test do
726
726
 
727
727
  it "with a prco equality pin in the name it upgrades a prior package" do
728
728
  preinstall("chef_rpm-1.2-1.#{pkg_arch}.rpm")
729
- dnf_package.package_name("chef_rpm == 1.10")
729
+ dnf_package.package_name("chef_rpm = 1.10")
730
730
  dnf_package.run_action(:upgrade)
731
731
  expect(dnf_package.updated_by_last_action?).to be true
732
732
  expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
@@ -742,7 +742,7 @@ describe Chef::Resource::DnfPackage, :requires_root, external: exclude_test do
742
742
 
743
743
  it "with a prco equality pin in the name it downgrades a later package" do
744
744
  preinstall("chef_rpm-1.10-1.#{pkg_arch}.rpm")
745
- dnf_package.package_name("chef_rpm == 1.2")
745
+ dnf_package.package_name("chef_rpm = 1.2")
746
746
  dnf_package.run_action(:upgrade)
747
747
  expect(dnf_package.updated_by_last_action?).to be true
748
748
  expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.2-1.#{pkg_arch}$")
@@ -103,7 +103,7 @@ describe Chef::Resource::Git, requires_git: true do
103
103
  revision "v1.0.0"
104
104
  end.should_be_updated
105
105
  expect_revision_to_be("HEAD", v1_commit)
106
- expect_branch_to_be("tags/v1.0.0^0") # detatched
106
+ expect_branch_to_be("tags/v1.0.0^0") # detached
107
107
  # also verify the tag commit itself is what we expect as an extra sanity check
108
108
  expect_revision_to_be("v1.0.0", v1_tag)
109
109
  end
@@ -116,7 +116,7 @@ describe Chef::Resource::Git, requires_git: true do
116
116
  git deploy_directory do
117
117
  repository origin_repo
118
118
  revision "v1.0.0"
119
- expect_branch_to_be("tags/v1.0.0^0") # detatched
119
+ expect_branch_to_be("tags/v1.0.0^0") # detached
120
120
  end.should_not_be_updated
121
121
  end
122
122
  end
@@ -128,7 +128,7 @@ describe Chef::Resource::Git, requires_git: true do
128
128
  revision rev_foo
129
129
  end.should_be_updated
130
130
  expect_revision_to_be("HEAD", rev_foo)
131
- expect_branch_to_be("master~1") # detatched
131
+ expect_branch_to_be("master~1") # detached
132
132
  end
133
133
 
134
134
  it "checks out the expected revision ed18 to a local branch" do
@@ -138,7 +138,7 @@ describe Chef::Resource::Git, requires_git: true do
138
138
  checkout_branch "deploy"
139
139
  end.should_be_updated
140
140
  expect_revision_to_be("HEAD", rev_foo)
141
- expect_branch_to_be("deploy") # detatched
141
+ expect_branch_to_be("deploy") # detached
142
142
  end
143
143
 
144
144
  it "doesn't update if up-to-date" do
@@ -152,7 +152,7 @@ describe Chef::Resource::Git, requires_git: true do
152
152
  repository origin_repo
153
153
  revision rev_foo
154
154
  end.should_not_be_updated
155
- expect_branch_to_be("master~1") # detatched
155
+ expect_branch_to_be("master~1") # detached
156
156
  end
157
157
 
158
158
  it "checks out the expected revision 972d" do
@@ -161,7 +161,7 @@ describe Chef::Resource::Git, requires_git: true do
161
161
  revision rev_testing
162
162
  end.should_be_updated
163
163
  expect_revision_to_be("HEAD", rev_testing)
164
- expect_branch_to_be("master~2") # detatched
164
+ expect_branch_to_be("master~2") # detached
165
165
  end
166
166
 
167
167
  it "checks out the expected revision 972d to a local branch" do