chef 14.2.0-universal-mingw32 → 14.3.37-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 (845) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +13 -12
  3. data/Gemfile +15 -0
  4. data/README.md +36 -40
  5. data/Rakefile +1 -1
  6. data/VERSION +1 -1
  7. data/bin/chef-apply +0 -1
  8. data/bin/chef-client +1 -2
  9. data/bin/chef-service-manager +7 -8
  10. data/bin/chef-shell +1 -6
  11. data/bin/chef-solo +1 -2
  12. data/bin/chef-windows-service +1 -2
  13. data/bin/knife +1 -2
  14. data/chef-universal-mingw32.gemspec +2 -2
  15. data/chef.gemspec +1 -1
  16. data/distro/ruby_bin_folder/Chef.PowerShell.Wrapper.dll +0 -0
  17. data/distro/ruby_bin_folder/Chef.PowerShell.dll +0 -0
  18. data/distro/{powershell/chef → ruby_bin_folder}/Newtonsoft.Json.dll +0 -0
  19. data/ext/win32-eventlog/Rakefile +14 -14
  20. data/lib/chef/api_client.rb +10 -10
  21. data/lib/chef/api_client/registration.rb +5 -5
  22. data/lib/chef/api_client_v1.rb +15 -15
  23. data/lib/chef/application.rb +1 -1
  24. data/lib/chef/application/apply.rb +56 -56
  25. data/lib/chef/application/client.rb +169 -170
  26. data/lib/chef/application/exit_code.rb +2 -2
  27. data/lib/chef/application/knife.rb +79 -78
  28. data/lib/chef/application/solo.rb +120 -120
  29. data/lib/chef/application/windows_service.rb +21 -21
  30. data/lib/chef/application/windows_service_manager.rb +39 -39
  31. data/lib/chef/audit/audit_event_proxy.rb +6 -6
  32. data/lib/chef/audit/audit_reporter.rb +2 -2
  33. data/lib/chef/audit/control_group_data.rb +15 -15
  34. data/lib/chef/audit/runner.rb +1 -1
  35. data/lib/chef/chef_class.rb +16 -8
  36. data/lib/chef/chef_fs/chef_fs_data_store.rb +8 -8
  37. data/lib/chef/chef_fs/config.rb +2 -2
  38. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +1 -1
  39. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  40. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  41. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
  42. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +1 -1
  43. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +1 -1
  44. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +1 -1
  45. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
  46. data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
  47. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -1
  48. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
  49. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
  50. data/lib/chef/chef_fs/file_system/repository/directory.rb +3 -3
  51. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +3 -3
  52. data/lib/chef/chef_fs/knife.rb +6 -6
  53. data/lib/chef/chef_fs/parallelizer.rb +1 -1
  54. data/lib/chef/client.rb +3 -0
  55. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  56. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  57. data/lib/chef/cookbook/manifest_v0.rb +1 -1
  58. data/lib/chef/cookbook/metadata.rb +61 -61
  59. data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
  60. data/lib/chef/cookbook/synchronizer.rb +2 -2
  61. data/lib/chef/cookbook_loader.rb +3 -3
  62. data/lib/chef/cookbook_manifest.rb +5 -5
  63. data/lib/chef/cookbook_site_streaming_uploader.rb +5 -5
  64. data/lib/chef/cookbook_uploader.rb +2 -2
  65. data/lib/chef/cookbook_version.rb +2 -2
  66. data/lib/chef/data_bag.rb +3 -3
  67. data/lib/chef/data_bag_item.rb +2 -2
  68. data/lib/chef/deprecated.rb +110 -176
  69. data/lib/chef/dsl/audit.rb +1 -1
  70. data/lib/chef/dsl/definitions.rb +1 -1
  71. data/lib/chef/dsl/platform_introspection.rb +5 -0
  72. data/lib/chef/dsl/reboot_pending.rb +1 -1
  73. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  74. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
  75. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  76. data/lib/chef/environment.rb +10 -10
  77. data/lib/chef/event_loggers/windows_eventlog.rb +21 -21
  78. data/lib/chef/exceptions.rb +3 -3
  79. data/lib/chef/file_cache.rb +18 -16
  80. data/lib/chef/formatters/base.rb +9 -10
  81. data/lib/chef/formatters/doc.rb +12 -16
  82. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +51 -51
  83. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +10 -10
  84. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +13 -13
  85. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +39 -39
  86. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
  87. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +16 -16
  88. data/lib/chef/formatters/indentable_output_stream.rb +4 -4
  89. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -3
  90. data/lib/chef/handler/json_file.rb +1 -1
  91. data/lib/chef/http/auth_credentials.rb +2 -2
  92. data/lib/chef/http/authenticator.rb +6 -6
  93. data/lib/chef/http/cookie_manager.rb +1 -1
  94. data/lib/chef/http/http_request.rb +3 -3
  95. data/lib/chef/http/json_input.rb +1 -1
  96. data/lib/chef/http/json_to_model_output.rb +1 -1
  97. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  98. data/lib/chef/json_compat.rb +1 -1
  99. data/lib/chef/key.rb +9 -9
  100. data/lib/chef/knife.rb +5 -5
  101. data/lib/chef/knife/bootstrap.rb +116 -116
  102. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  103. data/lib/chef/knife/client_bulk_delete.rb +3 -3
  104. data/lib/chef/knife/client_create.rb +17 -17
  105. data/lib/chef/knife/client_delete.rb +3 -3
  106. data/lib/chef/knife/client_list.rb +3 -3
  107. data/lib/chef/knife/client_reregister.rb +3 -3
  108. data/lib/chef/knife/config_get.rb +126 -0
  109. data/lib/chef/knife/configure.rb +25 -25
  110. data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
  111. data/lib/chef/knife/cookbook_delete.rb +2 -2
  112. data/lib/chef/knife/cookbook_download.rb +11 -11
  113. data/lib/chef/knife/cookbook_list.rb +6 -6
  114. data/lib/chef/knife/cookbook_metadata.rb +7 -8
  115. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -1
  116. data/lib/chef/knife/cookbook_show.rb +16 -16
  117. data/lib/chef/knife/cookbook_site_download.rb +11 -10
  118. data/lib/chef/knife/cookbook_site_install.rb +24 -24
  119. data/lib/chef/knife/cookbook_site_list.rb +8 -8
  120. data/lib/chef/knife/cookbook_site_search.rb +6 -5
  121. data/lib/chef/knife/cookbook_site_share.rb +20 -19
  122. data/lib/chef/knife/cookbook_site_show.rb +6 -5
  123. data/lib/chef/knife/cookbook_site_unshare.rb +5 -5
  124. data/lib/chef/knife/cookbook_test.rb +8 -8
  125. data/lib/chef/knife/cookbook_upload.rb +32 -32
  126. data/lib/chef/knife/core/bootstrap_context.rb +7 -7
  127. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  128. data/lib/chef/knife/core/generic_presenter.rb +7 -7
  129. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  130. data/lib/chef/knife/core/node_presenter.rb +37 -37
  131. data/lib/chef/knife/core/status_presenter.rb +11 -11
  132. data/lib/chef/knife/data_bag_from_file.rb +4 -4
  133. data/lib/chef/knife/data_bag_list.rb +3 -3
  134. data/lib/chef/knife/data_bag_secret_options.rb +13 -13
  135. data/lib/chef/knife/delete.rb +29 -13
  136. data/lib/chef/knife/deps.rb +25 -9
  137. data/lib/chef/knife/diff.rb +30 -14
  138. data/lib/chef/knife/download.rb +39 -23
  139. data/lib/chef/knife/edit.rb +19 -3
  140. data/lib/chef/knife/environment_compare.rb +8 -8
  141. data/lib/chef/knife/environment_create.rb +3 -3
  142. data/lib/chef/knife/environment_from_file.rb +5 -3
  143. data/lib/chef/knife/environment_list.rb +3 -3
  144. data/lib/chef/knife/exec.rb +7 -7
  145. data/lib/chef/knife/key_create.rb +4 -4
  146. data/lib/chef/knife/key_create_base.rb +12 -12
  147. data/lib/chef/knife/key_edit.rb +5 -5
  148. data/lib/chef/knife/key_edit_base.rb +15 -15
  149. data/lib/chef/knife/key_list.rb +3 -3
  150. data/lib/chef/knife/key_list_base.rb +9 -9
  151. data/lib/chef/knife/list.rb +35 -19
  152. data/lib/chef/knife/node_edit.rb +4 -4
  153. data/lib/chef/knife/node_list.rb +3 -3
  154. data/lib/chef/knife/node_run_list_add.rb +6 -6
  155. data/lib/chef/knife/node_show.rb +6 -6
  156. data/lib/chef/knife/osc_user_create.rb +13 -13
  157. data/lib/chef/knife/osc_user_list.rb +3 -3
  158. data/lib/chef/knife/osc_user_reregister.rb +3 -3
  159. data/lib/chef/knife/raw.rb +32 -16
  160. data/lib/chef/knife/role_create.rb +3 -3
  161. data/lib/chef/knife/role_env_run_list_add.rb +4 -3
  162. data/lib/chef/knife/role_env_run_list_remove.rb +2 -2
  163. data/lib/chef/knife/role_env_run_list_replace.rb +1 -0
  164. data/lib/chef/knife/role_list.rb +3 -3
  165. data/lib/chef/knife/role_run_list_add.rb +4 -3
  166. data/lib/chef/knife/role_run_list_remove.rb +2 -2
  167. data/lib/chef/knife/role_run_list_replace.rb +1 -0
  168. data/lib/chef/knife/search.rb +23 -23
  169. data/lib/chef/knife/serve.rb +22 -6
  170. data/lib/chef/knife/show.rb +19 -3
  171. data/lib/chef/knife/ssh.rb +68 -68
  172. data/lib/chef/knife/ssl_check.rb +31 -31
  173. data/lib/chef/knife/ssl_fetch.rb +5 -5
  174. data/lib/chef/knife/status.rb +11 -11
  175. data/lib/chef/knife/upload.rb +41 -25
  176. data/lib/chef/knife/user_create.rb +28 -28
  177. data/lib/chef/knife/user_delete.rb +9 -9
  178. data/lib/chef/knife/user_edit.rb +9 -9
  179. data/lib/chef/knife/user_list.rb +3 -3
  180. data/lib/chef/knife/user_reregister.rb +12 -12
  181. data/lib/chef/knife/user_show.rb +9 -9
  182. data/lib/chef/knife/xargs.rb +52 -36
  183. data/lib/chef/log.rb +10 -8
  184. data/lib/chef/log/winevt.rb +21 -21
  185. data/lib/chef/mixin/api_version_request_handling.rb +6 -6
  186. data/lib/chef/mixin/deep_merge.rb +1 -1
  187. data/lib/chef/mixin/deprecation.rb +2 -2
  188. data/lib/chef/mixin/params_validate.rb +9 -9
  189. data/lib/chef/mixin/properties.rb +2 -2
  190. data/lib/chef/mixin/securable.rb +11 -11
  191. data/lib/chef/mixin/shell_out.rb +138 -82
  192. data/lib/chef/mixin/wide_string.rb +5 -23
  193. data/lib/chef/mixin/windows_env_helper.rb +1 -1
  194. data/lib/chef/mixin/xml_escape.rb +3 -3
  195. data/lib/chef/node.rb +15 -15
  196. data/lib/chef/node/attribute.rb +6 -6
  197. data/lib/chef/node/attribute_collections.rb +2 -2
  198. data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
  199. data/lib/chef/node/mixin/immutablize_array.rb +2 -2
  200. data/lib/chef/node/mixin/immutablize_hash.rb +2 -2
  201. data/lib/chef/node_map.rb +77 -3
  202. data/lib/chef/org.rb +8 -8
  203. data/lib/chef/policy_builder/expand_node_object.rb +1 -1
  204. data/lib/chef/powershell.rb +9 -7
  205. data/lib/chef/property.rb +14 -14
  206. data/lib/chef/provider/apt_update.rb +2 -2
  207. data/lib/chef/provider/cron.rb +3 -3
  208. data/lib/chef/provider/cron/unix.rb +2 -2
  209. data/lib/chef/provider/dsc_resource.rb +1 -1
  210. data/lib/chef/provider/dsc_script.rb +8 -8
  211. data/lib/chef/provider/execute.rb +1 -1
  212. data/lib/chef/provider/group/aix.rb +6 -6
  213. data/lib/chef/provider/group/dscl.rb +1 -1
  214. data/lib/chef/provider/group/gpasswd.rb +4 -4
  215. data/lib/chef/provider/group/groupadd.rb +3 -3
  216. data/lib/chef/provider/group/groupmod.rb +6 -6
  217. data/lib/chef/provider/group/pw.rb +4 -4
  218. data/lib/chef/provider/group/suse.rb +2 -2
  219. data/lib/chef/provider/group/usermod.rb +1 -1
  220. data/lib/chef/provider/http_request.rb +6 -6
  221. data/lib/chef/provider/ifconfig.rb +4 -4
  222. data/lib/chef/provider/ifconfig/aix.rb +1 -1
  223. data/lib/chef/provider/mdadm.rb +1 -1
  224. data/lib/chef/provider/mount/mount.rb +1 -1
  225. data/lib/chef/provider/mount/windows.rb +7 -7
  226. data/lib/chef/provider/package.rb +3 -18
  227. data/lib/chef/provider/package/apt.rb +4 -4
  228. data/lib/chef/provider/package/bff.rb +9 -9
  229. data/lib/chef/provider/package/chocolatey.rb +7 -7
  230. data/lib/chef/provider/package/dnf.rb +2 -2
  231. data/lib/chef/provider/package/dpkg.rb +6 -6
  232. data/lib/chef/provider/package/freebsd/base.rb +2 -2
  233. data/lib/chef/provider/package/freebsd/pkg.rb +6 -6
  234. data/lib/chef/provider/package/freebsd/pkgng.rb +5 -5
  235. data/lib/chef/provider/package/freebsd/port.rb +4 -4
  236. data/lib/chef/provider/package/homebrew.rb +1 -1
  237. data/lib/chef/provider/package/ips.rb +6 -6
  238. data/lib/chef/provider/package/macports.rb +6 -6
  239. data/lib/chef/provider/package/msu.rb +1 -1
  240. data/lib/chef/provider/package/openbsd.rb +5 -5
  241. data/lib/chef/provider/package/pacman.rb +4 -4
  242. data/lib/chef/provider/package/paludis.rb +3 -3
  243. data/lib/chef/provider/package/portage.rb +5 -5
  244. data/lib/chef/provider/package/powershell.rb +6 -2
  245. data/lib/chef/provider/package/rpm.rb +10 -10
  246. data/lib/chef/provider/package/rubygems.rb +4 -4
  247. data/lib/chef/provider/package/smartos.rb +4 -4
  248. data/lib/chef/provider/package/solaris.rb +9 -9
  249. data/lib/chef/provider/package/windows.rb +4 -3
  250. data/lib/chef/provider/package/yum.rb +2 -2
  251. data/lib/chef/provider/package/zypper.rb +4 -4
  252. data/lib/chef/provider/powershell_script.rb +73 -73
  253. data/lib/chef/provider/reboot.rb +4 -4
  254. data/lib/chef/provider/registry_key.rb +4 -4
  255. data/lib/chef/provider/remote_file/cache_control_data.rb +2 -2
  256. data/lib/chef/provider/remote_file/sftp.rb +1 -1
  257. data/lib/chef/provider/resource_update.rb +1 -1
  258. data/lib/chef/provider/route.rb +2 -2
  259. data/lib/chef/provider/service/openbsd.rb +3 -3
  260. data/lib/chef/provider/service/redhat.rb +1 -1
  261. data/lib/chef/provider/service/simple.rb +1 -0
  262. data/lib/chef/provider/service/solaris.rb +1 -1
  263. data/lib/chef/provider/service/systemd.rb +2 -2
  264. data/lib/chef/provider/service/windows.rb +17 -17
  265. data/lib/chef/provider/subversion.rb +3 -3
  266. data/lib/chef/provider/systemd_unit.rb +2 -2
  267. data/lib/chef/provider/template/content.rb +1 -1
  268. data/lib/chef/provider/user/aix.rb +6 -6
  269. data/lib/chef/provider/user/dscl.rb +6 -6
  270. data/lib/chef/provider/user/linux.rb +6 -6
  271. data/lib/chef/provider/user/pw.rb +5 -5
  272. data/lib/chef/provider/user/solaris.rb +6 -6
  273. data/lib/chef/provider/user/useradd.rb +7 -7
  274. data/lib/chef/provider/windows_env.rb +6 -6
  275. data/lib/chef/provider/windows_task.rb +22 -24
  276. data/lib/chef/resource.rb +26 -4
  277. data/lib/chef/resource/chef_handler.rb +2 -0
  278. data/lib/chef/resource/chocolatey_config.rb +83 -0
  279. data/lib/chef/resource/chocolatey_source.rb +95 -0
  280. data/lib/chef/resource/cron.rb +5 -5
  281. data/lib/chef/resource/dsc_script.rb +12 -11
  282. data/lib/chef/resource/execute.rb +1 -1
  283. data/lib/chef/resource/file/verification.rb +1 -1
  284. data/lib/chef/resource/freebsd_package.rb +3 -1
  285. data/lib/chef/resource/group.rb +2 -2
  286. data/lib/chef/resource/homebrew_package.rb +2 -1
  287. data/lib/chef/resource/homebrew_tap.rb +1 -1
  288. data/lib/chef/resource/hostname.rb +23 -7
  289. data/lib/chef/resource/http_request.rb +6 -3
  290. data/lib/chef/resource/ifconfig.rb +57 -17
  291. data/lib/chef/resource/ips_package.rb +3 -1
  292. data/lib/chef/resource/kernel_module.rb +129 -0
  293. data/lib/chef/resource/launchd.rb +205 -98
  294. data/lib/chef/resource/log.rb +7 -2
  295. data/lib/chef/resource/mdadm.rb +29 -8
  296. data/lib/chef/resource/ohai.rb +2 -0
  297. data/lib/chef/resource/ohai_hint.rb +5 -3
  298. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  299. data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
  300. data/lib/chef/resource/paludis_package.rb +1 -1
  301. data/lib/chef/resource/portage_package.rb +2 -0
  302. data/lib/chef/resource/powershell_package.rb +2 -0
  303. data/lib/chef/resource/powershell_package_source.rb +165 -0
  304. data/lib/chef/resource/powershell_script.rb +2 -2
  305. data/lib/chef/resource/registry_key.rb +1 -1
  306. data/lib/chef/resource/remote_directory.rb +3 -3
  307. data/lib/chef/resource/remote_file.rb +2 -2
  308. data/lib/chef/resource/resource_notification.rb +16 -16
  309. data/lib/chef/resource/rhsm_errata.rb +1 -1
  310. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  311. data/lib/chef/resource/rhsm_register.rb +4 -4
  312. data/lib/chef/resource/rhsm_repo.rb +2 -2
  313. data/lib/chef/resource/rhsm_subscription.rb +2 -2
  314. data/lib/chef/resource/script.rb +1 -1
  315. data/lib/chef/resource/service.rb +18 -18
  316. data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -0
  317. data/lib/chef/resource/sudo.rb +4 -4
  318. data/lib/chef/resource/support/ssh_known_hosts.erb +3 -0
  319. data/lib/chef/resource/sysctl.rb +9 -5
  320. data/lib/chef/resource/template.rb +1 -1
  321. data/lib/chef/resource/user.rb +15 -15
  322. data/lib/chef/resource/windows_feature_dism.rb +10 -9
  323. data/lib/chef/resource/windows_feature_powershell.rb +24 -13
  324. data/lib/chef/resource/windows_script.rb +1 -1
  325. data/lib/chef/resource/windows_service.rb +2 -2
  326. data/lib/chef/resource/windows_task.rb +3 -3
  327. data/lib/chef/resource_definition.rb +1 -1
  328. data/lib/chef/resource_inspector.rb +1 -0
  329. data/lib/chef/resource_reporter.rb +4 -4
  330. data/lib/chef/resources.rb +5 -0
  331. data/lib/chef/role.rb +8 -8
  332. data/lib/chef/run_context.rb +8 -8
  333. data/lib/chef/run_list/run_list_expansion.rb +6 -6
  334. data/lib/chef/run_list/run_list_item.rb +1 -1
  335. data/lib/chef/run_list/versioned_recipe_list.rb +3 -3
  336. data/lib/chef/run_status.rb +10 -10
  337. data/lib/chef/shell.rb +60 -60
  338. data/lib/chef/shell/ext.rb +151 -151
  339. data/lib/chef/shell/shell_session.rb +2 -2
  340. data/lib/chef/user.rb +11 -11
  341. data/lib/chef/user_v1.rb +26 -26
  342. data/lib/chef/util/backup.rb +2 -2
  343. data/lib/chef/util/diff.rb +1 -1
  344. data/lib/chef/util/dsc/configuration_generator.rb +11 -11
  345. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  346. data/lib/chef/util/file_edit.rb +14 -14
  347. data/lib/chef/util/powershell/cmdlet.rb +4 -4
  348. data/lib/chef/util/selinux.rb +2 -2
  349. data/lib/chef/util/windows/net_group.rb +1 -1
  350. data/lib/chef/util/windows/net_use.rb +3 -3
  351. data/lib/chef/util/windows/net_user.rb +12 -12
  352. data/lib/chef/util/windows/volume.rb +2 -2
  353. data/lib/chef/version.rb +3 -3
  354. data/lib/chef/version_constraint.rb +3 -3
  355. data/lib/chef/win32/api.rb +6 -6
  356. data/lib/chef/win32/api/error.rb +2 -2
  357. data/lib/chef/win32/api/file.rb +12 -12
  358. data/lib/chef/win32/api/net.rb +58 -58
  359. data/lib/chef/win32/registry.rb +8 -8
  360. data/lib/chef/win32/security.rb +6 -6
  361. data/lib/chef/win32/security/securable_object.rb +10 -10
  362. data/lib/chef/win32/unicode.rb +6 -0
  363. data/lib/chef/win32/version.rb +16 -16
  364. data/spec/functional/audit/rspec_formatter_spec.rb +1 -1
  365. data/spec/functional/audit/runner_spec.rb +1 -1
  366. data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
  367. data/spec/functional/dsl/registry_helper_spec.rb +3 -3
  368. data/spec/functional/http/simple_spec.rb +1 -1
  369. data/spec/functional/knife/exec_spec.rb +1 -1
  370. data/spec/functional/knife/ssh_spec.rb +2 -2
  371. data/spec/functional/mixin/shell_out_spec.rb +8 -4
  372. data/spec/functional/rebooter_spec.rb +6 -6
  373. data/spec/functional/resource/aixinit_service_spec.rb +2 -2
  374. data/spec/functional/resource/apt_package_spec.rb +17 -17
  375. data/spec/functional/resource/bash_spec.rb +1 -1
  376. data/spec/functional/resource/bff_spec.rb +1 -1
  377. data/spec/functional/resource/cron_spec.rb +1 -1
  378. data/spec/functional/resource/dnf_package_spec.rb +7 -7
  379. data/spec/functional/resource/dsc_script_spec.rb +94 -94
  380. data/spec/functional/resource/execute_spec.rb +4 -4
  381. data/spec/functional/resource/file_spec.rb +1 -1
  382. data/spec/functional/resource/git_spec.rb +19 -19
  383. data/spec/functional/resource/ifconfig_spec.rb +5 -5
  384. data/spec/functional/resource/link_spec.rb +1 -1
  385. data/spec/functional/resource/mount_spec.rb +2 -2
  386. data/spec/functional/resource/powershell_script_spec.rb +13 -13
  387. data/spec/functional/resource/reboot_spec.rb +3 -3
  388. data/spec/functional/resource/registry_spec.rb +82 -82
  389. data/spec/functional/resource/remote_file_spec.rb +2 -2
  390. data/spec/functional/resource/rpm_spec.rb +1 -1
  391. data/spec/functional/resource/template_spec.rb +5 -5
  392. data/spec/functional/resource/user/dscl_spec.rb +3 -3
  393. data/spec/functional/resource/windows_env_spec.rb +1 -1
  394. data/spec/functional/resource/windows_service_spec.rb +1 -1
  395. data/spec/functional/resource/windows_task_spec.rb +92 -38
  396. data/spec/functional/resource/yum_package_spec.rb +8 -8
  397. data/spec/functional/run_lock_spec.rb +4 -4
  398. data/spec/functional/shell_spec.rb +1 -1
  399. data/spec/functional/util/powershell/cmdlet_spec.rb +7 -7
  400. data/spec/functional/version_spec.rb +1 -1
  401. data/spec/functional/win32/crypto_spec.rb +9 -9
  402. data/spec/functional/win32/registry_spec.rb +66 -66
  403. data/spec/integration/client/client_spec.rb +219 -219
  404. data/spec/integration/client/exit_code_spec.rb +19 -19
  405. data/spec/integration/client/ipv6_spec.rb +36 -36
  406. data/spec/integration/knife/chef_fs_data_store_spec.rb +130 -130
  407. data/spec/integration/knife/chef_repo_path_spec.rb +418 -418
  408. data/spec/integration/knife/chef_repository_file_system_spec.rb +35 -35
  409. data/spec/integration/knife/chefignore_spec.rb +88 -88
  410. data/spec/integration/knife/client_bulk_delete_spec.rb +49 -49
  411. data/spec/integration/knife/client_create_spec.rb +5 -5
  412. data/spec/integration/knife/client_delete_spec.rb +13 -13
  413. data/spec/integration/knife/client_key_delete_spec.rb +2 -2
  414. data/spec/integration/knife/client_key_list_spec.rb +4 -4
  415. data/spec/integration/knife/client_list_spec.rb +8 -8
  416. data/spec/integration/knife/common_options_spec.rb +31 -31
  417. data/spec/integration/knife/config_get_spec.rb +183 -0
  418. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +38 -38
  419. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +14 -14
  420. data/spec/integration/knife/cookbook_download_spec.rb +12 -12
  421. data/spec/integration/knife/cookbook_list_spec.rb +8 -8
  422. data/spec/integration/knife/cookbook_show_spec.rb +81 -81
  423. data/spec/integration/knife/cookbook_upload_spec.rb +24 -24
  424. data/spec/integration/knife/data_bag_delete_spec.rb +8 -8
  425. data/spec/integration/knife/data_bag_from_file_spec.rb +47 -47
  426. data/spec/integration/knife/data_bag_list_spec.rb +4 -4
  427. data/spec/integration/knife/data_bag_show_spec.rb +7 -7
  428. data/spec/integration/knife/delete_spec.rb +593 -593
  429. data/spec/integration/knife/deps_spec.rb +185 -185
  430. data/spec/integration/knife/diff_spec.rb +116 -116
  431. data/spec/integration/knife/download_spec.rb +510 -510
  432. data/spec/integration/knife/environment_compare_spec.rb +15 -15
  433. data/spec/integration/knife/environment_from_file_spec.rb +59 -59
  434. data/spec/integration/knife/environment_list_spec.rb +4 -4
  435. data/spec/integration/knife/environment_show_spec.rb +25 -25
  436. data/spec/integration/knife/list_spec.rb +731 -731
  437. data/spec/integration/knife/node_bulk_delete_spec.rb +8 -8
  438. data/spec/integration/knife/node_delete_spec.rb +6 -6
  439. data/spec/integration/knife/node_environment_set_spec.rb +3 -3
  440. data/spec/integration/knife/node_from_file_spec.rb +16 -16
  441. data/spec/integration/knife/node_list_spec.rb +5 -5
  442. data/spec/integration/knife/raw_spec.rb +117 -117
  443. data/spec/integration/knife/role_bulk_delete_spec.rb +8 -8
  444. data/spec/integration/knife/role_delete_spec.rb +6 -6
  445. data/spec/integration/knife/role_from_file_spec.rb +42 -42
  446. data/spec/integration/knife/role_list_spec.rb +5 -5
  447. data/spec/integration/knife/role_show_spec.rb +9 -9
  448. data/spec/integration/knife/show_spec.rb +57 -57
  449. data/spec/integration/knife/upload_spec.rb +396 -396
  450. data/spec/integration/recipes/accumulator_spec.rb +2 -2
  451. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +8 -8
  452. data/spec/integration/recipes/lwrp_spec.rb +12 -12
  453. data/spec/integration/recipes/notifies_spec.rb +167 -167
  454. data/spec/integration/recipes/notifying_block_spec.rb +2 -2
  455. data/spec/integration/recipes/remote_directory.rb +1 -1
  456. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +99 -99
  457. data/spec/integration/recipes/resource_load_spec.rb +8 -8
  458. data/spec/integration/solo/solo_spec.rb +40 -40
  459. data/spec/scripts/ssl-serve.rb +12 -12
  460. data/spec/spec_helper.rb +73 -73
  461. data/spec/stress/win32/file_spec.rb +2 -2
  462. data/spec/stress/win32/security_spec.rb +2 -2
  463. data/spec/support/platform_helpers.rb +1 -1
  464. data/spec/support/shared/context/client.rb +25 -25
  465. data/spec/support/shared/functional/securable_resource.rb +13 -13
  466. data/spec/support/shared/functional/securable_resource_with_reporting.rb +6 -6
  467. data/spec/support/shared/functional/win32_service.rb +5 -5
  468. data/spec/support/shared/functional/windows_script.rb +3 -3
  469. data/spec/support/shared/integration/app_server_support.rb +3 -3
  470. data/spec/support/shared/integration/integration_helper.rb +2 -2
  471. data/spec/support/shared/integration/knife_support.rb +9 -3
  472. data/spec/support/shared/unit/api_error_inspector.rb +6 -6
  473. data/spec/support/shared/unit/api_versioning.rb +2 -2
  474. data/spec/support/shared/unit/execute_resource.rb +2 -2
  475. data/spec/support/shared/unit/provider/file.rb +12 -12
  476. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +34 -34
  477. data/spec/support/shared/unit/user_and_client_shared.rb +3 -3
  478. data/spec/tiny_server.rb +8 -8
  479. data/spec/unit/api_client/registration_spec.rb +30 -30
  480. data/spec/unit/api_client_spec.rb +6 -6
  481. data/spec/unit/api_client_v1_spec.rb +6 -6
  482. data/spec/unit/application/apply_spec.rb +4 -4
  483. data/spec/unit/application/client_spec.rb +11 -11
  484. data/spec/unit/application/knife_spec.rb +3 -3
  485. data/spec/unit/application/solo_spec.rb +5 -5
  486. data/spec/unit/application_spec.rb +11 -11
  487. data/spec/unit/audit/audit_event_proxy_spec.rb +48 -48
  488. data/spec/unit/audit/audit_reporter_spec.rb +51 -55
  489. data/spec/unit/audit/control_group_data_spec.rb +20 -20
  490. data/spec/unit/audit/runner_spec.rb +2 -2
  491. data/spec/unit/chef_class_spec.rb +120 -0
  492. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  493. data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +3 -3
  494. data/spec/unit/chef_fs/diff_spec.rb +45 -45
  495. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  496. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +2 -2
  497. data/spec/unit/chef_fs/file_system_spec.rb +8 -8
  498. data/spec/unit/chef_fs/parallelizer.rb +12 -12
  499. data/spec/unit/client_spec.rb +15 -15
  500. data/spec/unit/config_fetcher_spec.rb +23 -23
  501. data/spec/unit/config_spec.rb +2 -2
  502. data/spec/unit/cookbook/metadata_spec.rb +81 -81
  503. data/spec/unit/cookbook/synchronizer_spec.rb +171 -171
  504. data/spec/unit/cookbook_loader_spec.rb +10 -5
  505. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +6 -6
  506. data/spec/unit/cookbook_uploader_spec.rb +8 -8
  507. data/spec/unit/cookbook_version_file_specificity_spec.rb +135 -135
  508. data/spec/unit/daemon_spec.rb +4 -4
  509. data/spec/unit/data_bag_item_spec.rb +3 -3
  510. data/spec/unit/data_bag_spec.rb +1 -1
  511. data/spec/unit/data_collector/resource_report_spec.rb +1 -1
  512. data/spec/unit/data_collector_spec.rb +4 -3
  513. data/spec/unit/deprecated_spec.rb +18 -12
  514. data/spec/unit/dsl/audit_spec.rb +1 -1
  515. data/spec/unit/dsl/platform_introspection_spec.rb +16 -16
  516. data/spec/unit/dsl/reboot_pending_spec.rb +1 -1
  517. data/spec/unit/environment_spec.rb +16 -16
  518. data/spec/unit/file_access_control_spec.rb +8 -8
  519. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
  520. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +26 -26
  521. data/spec/unit/formatters/error_description_spec.rb +39 -39
  522. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +16 -16
  523. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  524. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +1 -1
  525. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +1 -1
  526. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +1 -1
  527. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +5 -5
  528. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +4 -4
  529. data/spec/unit/handler/json_file_spec.rb +1 -1
  530. data/spec/unit/http/api_versions_spec.rb +1 -1
  531. data/spec/unit/http/authenticator_spec.rb +17 -17
  532. data/spec/unit/http/ssl_policies_spec.rb +1 -1
  533. data/spec/unit/http/validate_content_length_spec.rb +2 -2
  534. data/spec/unit/key_spec.rb +12 -12
  535. data/spec/unit/knife/bootstrap/client_builder_spec.rb +3 -3
  536. data/spec/unit/knife/client_bulk_delete_spec.rb +1 -1
  537. data/spec/unit/knife/client_delete_spec.rb +1 -1
  538. data/spec/unit/knife/client_reregister_spec.rb +1 -1
  539. data/spec/unit/knife/configure_client_spec.rb +4 -4
  540. data/spec/unit/knife/configure_spec.rb +1 -1
  541. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
  542. data/spec/unit/knife/cookbook_delete_spec.rb +4 -4
  543. data/spec/unit/knife/cookbook_download_spec.rb +21 -21
  544. data/spec/unit/knife/cookbook_list_spec.rb +7 -7
  545. data/spec/unit/knife/cookbook_show_spec.rb +24 -24
  546. data/spec/unit/knife/cookbook_site_download_spec.rb +23 -23
  547. data/spec/unit/knife/cookbook_site_install_spec.rb +4 -4
  548. data/spec/unit/knife/cookbook_site_share_spec.rb +10 -10
  549. data/spec/unit/knife/cookbook_site_unshare_spec.rb +2 -2
  550. data/spec/unit/knife/cookbook_upload_spec.rb +19 -19
  551. data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -37
  552. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +20 -20
  553. data/spec/unit/knife/core/object_loader_spec.rb +1 -1
  554. data/spec/unit/knife/core/ui_spec.rb +55 -55
  555. data/spec/unit/knife/data_bag_create_spec.rb +2 -2
  556. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  557. data/spec/unit/knife/data_bag_secret_options_spec.rb +5 -5
  558. data/spec/unit/knife/environment_from_file_spec.rb +1 -1
  559. data/spec/unit/knife/key_create_spec.rb +4 -4
  560. data/spec/unit/knife/key_delete_spec.rb +3 -3
  561. data/spec/unit/knife/key_edit_spec.rb +3 -3
  562. data/spec/unit/knife/key_list_spec.rb +3 -3
  563. data/spec/unit/knife/key_show_spec.rb +3 -3
  564. data/spec/unit/knife/node_delete_spec.rb +1 -1
  565. data/spec/unit/knife/node_edit_spec.rb +7 -7
  566. data/spec/unit/knife/node_from_file_spec.rb +1 -1
  567. data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
  568. data/spec/unit/knife/osc_user_edit_spec.rb +1 -1
  569. data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
  570. data/spec/unit/knife/role_bulk_delete_spec.rb +1 -1
  571. data/spec/unit/knife/role_create_spec.rb +1 -1
  572. data/spec/unit/knife/role_delete_spec.rb +1 -1
  573. data/spec/unit/knife/role_env_run_list_add_spec.rb +4 -4
  574. data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
  575. data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
  576. data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
  577. data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
  578. data/spec/unit/knife/role_from_file_spec.rb +1 -1
  579. data/spec/unit/knife/role_run_list_add_spec.rb +4 -4
  580. data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
  581. data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
  582. data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
  583. data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
  584. data/spec/unit/knife/ssh_spec.rb +25 -25
  585. data/spec/unit/knife/ssl_check_spec.rb +23 -23
  586. data/spec/unit/knife/ssl_fetch_spec.rb +11 -11
  587. data/spec/unit/knife/user_delete_spec.rb +1 -1
  588. data/spec/unit/knife/user_reregister_spec.rb +1 -1
  589. data/spec/unit/knife_spec.rb +26 -26
  590. data/spec/unit/log/syslog_spec.rb +1 -1
  591. data/spec/unit/lwrp_spec.rb +4 -4
  592. data/spec/unit/mash_spec.rb +3 -3
  593. data/spec/unit/mixin/api_version_request_handling_spec.rb +16 -16
  594. data/spec/unit/mixin/checksum_spec.rb +1 -1
  595. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +8 -8
  596. data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
  597. data/spec/unit/mixin/params_validate_spec.rb +96 -96
  598. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  599. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  600. data/spec/unit/mixin/securable_spec.rb +27 -27
  601. data/spec/unit/mixin/shell_out_spec.rb +286 -132
  602. data/spec/unit/mixin/user_context_spec.rb +1 -1
  603. data/spec/unit/mixin/xml_escape_spec.rb +1 -1
  604. data/spec/unit/node/attribute_spec.rb +10 -10
  605. data/spec/unit/node/vivid_mash_spec.rb +3 -3
  606. data/spec/unit/node_map_spec.rb +71 -3
  607. data/spec/unit/node_spec.rb +15 -15
  608. data/spec/unit/org_spec.rb +2 -2
  609. data/spec/unit/platform/query_helpers_spec.rb +26 -26
  610. data/spec/unit/policy_builder/expand_node_object_spec.rb +4 -4
  611. data/spec/unit/policy_builder/policyfile_spec.rb +29 -29
  612. data/spec/unit/property_spec.rb +5 -5
  613. data/spec/unit/provider/apt_repository_spec.rb +19 -19
  614. data/spec/unit/provider/cookbook_file/content_spec.rb +1 -1
  615. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  616. data/spec/unit/provider/cron/unix_spec.rb +12 -12
  617. data/spec/unit/provider/cron_spec.rb +279 -279
  618. data/spec/unit/provider/dsc_resource_spec.rb +6 -6
  619. data/spec/unit/provider/execute_spec.rb +2 -2
  620. data/spec/unit/provider/file/content_spec.rb +1 -1
  621. data/spec/unit/provider/file_spec.rb +1 -1
  622. data/spec/unit/provider/git_spec.rb +123 -123
  623. data/spec/unit/provider/group/dscl_spec.rb +18 -18
  624. data/spec/unit/provider/group/gpasswd_spec.rb +7 -7
  625. data/spec/unit/provider/group/groupadd_spec.rb +7 -7
  626. data/spec/unit/provider/group/groupmod_spec.rb +13 -13
  627. data/spec/unit/provider/group/pw_spec.rb +4 -4
  628. data/spec/unit/provider/group/suse_spec.rb +2 -2
  629. data/spec/unit/provider/group/usermod_spec.rb +4 -4
  630. data/spec/unit/provider/group_spec.rb +3 -3
  631. data/spec/unit/provider/ifconfig/aix_spec.rb +17 -17
  632. data/spec/unit/provider/ifconfig/debian_spec.rb +16 -16
  633. data/spec/unit/provider/ifconfig_spec.rb +16 -16
  634. data/spec/unit/provider/launchd_spec.rb +52 -52
  635. data/spec/unit/provider/link_spec.rb +7 -7
  636. data/spec/unit/provider/mdadm_spec.rb +3 -3
  637. data/spec/unit/provider/mount/aix_spec.rb +39 -39
  638. data/spec/unit/provider/mount/mount_spec.rb +26 -26
  639. data/spec/unit/provider/mount/solaris_spec.rb +2 -2
  640. data/spec/unit/provider/mount/windows_spec.rb +6 -6
  641. data/spec/unit/provider/ohai_spec.rb +9 -9
  642. data/spec/unit/provider/osx_profile_spec.rb +1 -1
  643. data/spec/unit/provider/package/apt_spec.rb +186 -186
  644. data/spec/unit/provider/package/bff_spec.rb +36 -36
  645. data/spec/unit/provider/package/cab_spec.rb +58 -58
  646. data/spec/unit/provider/package/chocolatey_spec.rb +34 -34
  647. data/spec/unit/provider/package/dpkg_spec.rb +33 -33
  648. data/spec/unit/provider/package/freebsd/pkg_spec.rb +35 -35
  649. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +22 -22
  650. data/spec/unit/provider/package/freebsd/port_spec.rb +21 -21
  651. data/spec/unit/provider/package/homebrew_spec.rb +4 -4
  652. data/spec/unit/provider/package/ips_spec.rb +94 -94
  653. data/spec/unit/provider/package/macports_spec.rb +23 -23
  654. data/spec/unit/provider/package/msu_spec.rb +44 -44
  655. data/spec/unit/provider/package/openbsd_spec.rb +19 -19
  656. data/spec/unit/provider/package/pacman_spec.rb +50 -50
  657. data/spec/unit/provider/package/paludis_spec.rb +33 -33
  658. data/spec/unit/provider/package/portage_spec.rb +25 -25
  659. data/spec/unit/provider/package/powershell_spec.rb +98 -85
  660. data/spec/unit/provider/package/rpm_spec.rb +21 -21
  661. data/spec/unit/provider/package/rubygems_spec.rb +71 -71
  662. data/spec/unit/provider/package/smartos_spec.rb +21 -21
  663. data/spec/unit/provider/package/solaris_spec.rb +38 -38
  664. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  665. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  666. data/spec/unit/provider/package/windows_spec.rb +11 -4
  667. data/spec/unit/provider/package/zypper_spec.rb +42 -46
  668. data/spec/unit/provider/package_spec.rb +2 -2
  669. data/spec/unit/provider/powershell_script_spec.rb +1 -1
  670. data/spec/unit/provider/registry_key_spec.rb +22 -22
  671. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +7 -7
  672. data/spec/unit/provider/remote_file/content_spec.rb +4 -4
  673. data/spec/unit/provider/remote_file/fetcher_spec.rb +5 -5
  674. data/spec/unit/provider/remote_file/ftp_spec.rb +1 -1
  675. data/spec/unit/provider/remote_file/http_spec.rb +1 -1
  676. data/spec/unit/provider/remote_file/local_file_spec.rb +2 -2
  677. data/spec/unit/provider/remote_file/network_file_spec.rb +3 -3
  678. data/spec/unit/provider/remote_file/sftp_spec.rb +2 -2
  679. data/spec/unit/provider/remote_file_spec.rb +1 -1
  680. data/spec/unit/provider/script_spec.rb +1 -1
  681. data/spec/unit/provider/service/aix_service_spec.rb +8 -8
  682. data/spec/unit/provider/service/aixinit_service_spec.rb +3 -3
  683. data/spec/unit/provider/service/arch_service_spec.rb +21 -21
  684. data/spec/unit/provider/service/debian_service_spec.rb +2 -2
  685. data/spec/unit/provider/service/freebsd_service_spec.rb +30 -30
  686. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  687. data/spec/unit/provider/service/init_service_spec.rb +14 -14
  688. data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
  689. data/spec/unit/provider/service/invokercd_service_spec.rb +17 -17
  690. data/spec/unit/provider/service/macosx_spec.rb +59 -59
  691. data/spec/unit/provider/service/openbsd_service_spec.rb +6 -6
  692. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  693. data/spec/unit/provider/service/simple_service_spec.rb +14 -14
  694. data/spec/unit/provider/service/solaris_smf_service_spec.rb +19 -19
  695. data/spec/unit/provider/service/systemd_service_spec.rb +13 -13
  696. data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
  697. data/spec/unit/provider/service/windows_spec.rb +38 -38
  698. data/spec/unit/provider/service_spec.rb +3 -3
  699. data/spec/unit/provider/subversion_spec.rb +13 -13
  700. data/spec/unit/provider/systemd_unit_spec.rb +10 -10
  701. data/spec/unit/provider/template/content_spec.rb +44 -44
  702. data/spec/unit/provider/template_spec.rb +2 -2
  703. data/spec/unit/provider/user/aix_spec.rb +5 -5
  704. data/spec/unit/provider/user/dscl_spec.rb +12 -12
  705. data/spec/unit/provider/user/pw_spec.rb +12 -12
  706. data/spec/unit/provider/user/solaris_spec.rb +6 -6
  707. data/spec/unit/provider/windows_env_spec.rb +2 -2
  708. data/spec/unit/provider/windows_task_spec.rb +16 -16
  709. data/spec/unit/provider/zypper_repository_spec.rb +7 -7
  710. data/spec/unit/provider_resolver_spec.rb +3 -3
  711. data/spec/unit/recipe_spec.rb +13 -13
  712. data/spec/unit/resource/chocolatey_config_spec.rb +98 -0
  713. data/spec/unit/resource/chocolatey_source_spec.rb +102 -0
  714. data/spec/unit/resource/conditional_spec.rb +1 -1
  715. data/spec/unit/resource/cookbook_file_spec.rb +3 -3
  716. data/spec/unit/resource/dnf_package_spec.rb +3 -3
  717. data/spec/unit/resource/dsc_script_spec.rb +10 -10
  718. data/spec/unit/resource/execute_spec.rb +2 -2
  719. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +1 -1
  720. data/spec/unit/resource/file/verification_spec.rb +1 -1
  721. data/spec/unit/resource/file_spec.rb +3 -3
  722. data/spec/unit/resource/freebsd_package_spec.rb +5 -4
  723. data/spec/unit/resource/group_spec.rb +4 -4
  724. data/spec/unit/resource/kernel_module_spec.rb +48 -0
  725. data/spec/unit/resource/mount_spec.rb +13 -3
  726. data/spec/unit/resource/package_spec.rb +2 -2
  727. data/spec/unit/resource/powershell_package_source_spec.rb +219 -0
  728. data/spec/unit/resource/powershell_package_spec.rb +10 -1
  729. data/spec/unit/resource/powershell_script_spec.rb +8 -8
  730. data/spec/unit/resource/registry_key_spec.rb +19 -19
  731. data/spec/unit/resource/remote_file_spec.rb +2 -2
  732. data/spec/unit/resource/resource_notification_spec.rb +8 -8
  733. data/spec/unit/resource/service_spec.rb +3 -3
  734. data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -0
  735. data/spec/unit/resource/template_spec.rb +2 -2
  736. data/spec/unit/resource/user_spec.rb +2 -2
  737. data/spec/unit/resource/windows_feature_dism.rb +5 -5
  738. data/spec/unit/resource/windows_feature_powershell.rb +27 -6
  739. data/spec/unit/resource/yum_package_spec.rb +3 -3
  740. data/spec/unit/resource_collection/resource_set_spec.rb +6 -6
  741. data/spec/unit/resource_collection_spec.rb +5 -5
  742. data/spec/unit/resource_definition_spec.rb +2 -2
  743. data/spec/unit/resource_inspector_spec.rb +3 -3
  744. data/spec/unit/resource_reporter_spec.rb +24 -24
  745. data/spec/unit/resource_spec.rb +65 -31
  746. data/spec/unit/role_spec.rb +22 -22
  747. data/spec/unit/run_context_spec.rb +1 -1
  748. data/spec/unit/run_list/run_list_item_spec.rb +3 -3
  749. data/spec/unit/run_list/versioned_recipe_list_spec.rb +12 -12
  750. data/spec/unit/run_list_spec.rb +6 -6
  751. data/spec/unit/runner_spec.rb +4 -4
  752. data/spec/unit/scan_access_control_spec.rb +3 -3
  753. data/spec/unit/shell/model_wrapper_spec.rb +4 -4
  754. data/spec/unit/shell/shell_ext_spec.rb +4 -4
  755. data/spec/unit/shell/shell_session_spec.rb +28 -28
  756. data/spec/unit/user_spec.rb +2 -2
  757. data/spec/unit/user_v1_spec.rb +25 -25
  758. data/spec/unit/util/diff_spec.rb +1 -1
  759. data/spec/unit/util/dsc/configuration_generator_spec.rb +4 -4
  760. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +105 -105
  761. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +16 -16
  762. data/spec/unit/util/file_edit_spec.rb +38 -38
  763. data/spec/unit/util/powershell/cmdlet_spec.rb +1 -1
  764. data/spec/unit/util/selinux_spec.rb +10 -10
  765. data/spec/unit/win32/registry_spec.rb +3 -3
  766. data/spec/unit/windows_service_spec.rb +2 -2
  767. data/tasks/cbgb.rb +3 -3
  768. data/tasks/dependencies.rb +6 -8
  769. data/tasks/maintainers.rb +7 -7
  770. data/tasks/rspec.rb +2 -2
  771. metadata +24 -83
  772. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
  773. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -272
  774. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -57
  775. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
  776. data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
  777. data/acceptance/Gemfile +0 -19
  778. data/acceptance/Gemfile.lock +0 -266
  779. data/acceptance/README.md +0 -137
  780. data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
  781. data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  782. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  783. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  784. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  785. data/acceptance/basics/.kitchen.yml +0 -4
  786. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
  787. data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
  788. data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
  789. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
  790. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  791. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
  792. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
  793. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
  794. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
  795. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
  796. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
  797. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
  798. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
  799. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
  800. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
  801. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
  802. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
  803. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
  804. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
  805. data/acceptance/data-collector/.kitchen.yml +0 -9
  806. data/acceptance/data-collector/Berksfile +0 -3
  807. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
  808. data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
  809. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
  810. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
  811. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  812. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  813. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
  814. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
  815. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
  816. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
  817. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  818. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  819. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  820. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  821. data/acceptance/top-cookbooks/.gitignore +0 -1
  822. data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
  823. data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
  824. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
  825. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
  826. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
  827. data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
  828. data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
  829. data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
  830. data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
  831. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
  832. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  833. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  834. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  835. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  836. data/acceptance/trivial/.kitchen.yml +0 -7
  837. data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
  838. data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
  839. data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  840. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  841. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  842. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  843. data/acceptance/windows-service/.kitchen.yml +0 -7
  844. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
  845. data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
@@ -221,9 +221,9 @@ describe Chef::PolicyBuilder::Policyfile do
221
221
  let(:error404) { Net::HTTPServerException.new("404 message", :body) }
222
222
 
223
223
  before do
224
- expect(api_service).to receive(:get).
225
- with("data/policyfiles/example-policy-stage").
226
- and_raise(error404)
224
+ expect(api_service).to receive(:get)
225
+ .with("data/policyfiles/example-policy-stage")
226
+ .and_raise(error404)
227
227
  end
228
228
 
229
229
  it "raises an error" do
@@ -393,10 +393,10 @@ describe Chef::PolicyBuilder::Policyfile do
393
393
 
394
394
  let(:run_list_for_data_collector) do
395
395
  {
396
- :id => "_policy_node",
397
- :run_list => [
398
- { :type => "recipe", :name => "test::default", :skipped => false, :version => nil },
399
- { :type => "recipe", :name => "test::other", :skipped => false, :version => nil },
396
+ id: "_policy_node",
397
+ run_list: [
398
+ { type: "recipe", name: "test::default", skipped: false, version: nil },
399
+ { type: "recipe", name: "test::other", skipped: false, version: nil },
400
400
  ],
401
401
  }
402
402
  end
@@ -744,8 +744,8 @@ describe Chef::PolicyBuilder::Policyfile do
744
744
  policy_builder.finish_load_node(node)
745
745
  policy_builder.build_node
746
746
 
747
- expect(api_service).to receive(:get).with(cookbook1_url).
748
- and_raise(error404)
747
+ expect(api_service).to receive(:get).with(cookbook1_url)
748
+ .and_raise(error404)
749
749
  end
750
750
 
751
751
  it "raises an error indicating which cookbook is missing" do
@@ -763,9 +763,9 @@ describe Chef::PolicyBuilder::Policyfile do
763
763
  policy_builder.finish_load_node(node)
764
764
  policy_builder.build_node
765
765
 
766
- allow(Chef::CookbookSynchronizer).to receive(:new).
767
- with(expected_cookbook_hash, events).
768
- and_return(cookbook_synchronizer)
766
+ allow(Chef::CookbookSynchronizer).to receive(:new)
767
+ .with(expected_cookbook_hash, events)
768
+ .and_return(cookbook_synchronizer)
769
769
  end
770
770
 
771
771
  after do
@@ -814,15 +814,15 @@ describe Chef::PolicyBuilder::Policyfile do
814
814
  context "when the cookbooks exist on the server" do
815
815
 
816
816
  before do
817
- expect(api_service).to receive(:get).with(cookbook1_url).
818
- and_return(example1_cookbook_data)
819
- expect(api_service).to receive(:get).with(cookbook2_url).
820
- and_return(example2_cookbook_data)
817
+ expect(api_service).to receive(:get).with(cookbook1_url)
818
+ .and_return(example1_cookbook_data)
819
+ expect(api_service).to receive(:get).with(cookbook2_url)
820
+ .and_return(example2_cookbook_data)
821
821
 
822
- expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example1_cookbook_data).
823
- and_return(example1_cookbook_object)
824
- expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example2_cookbook_data).
825
- and_return(example2_cookbook_object)
822
+ expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example1_cookbook_data)
823
+ .and_return(example1_cookbook_object)
824
+ expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example2_cookbook_data)
825
+ .and_return(example2_cookbook_object)
826
826
  end
827
827
 
828
828
  include_examples "fetching cookbooks when they exist"
@@ -847,15 +847,15 @@ describe Chef::PolicyBuilder::Policyfile do
847
847
  context "when the cookbooks exist on the server" do
848
848
 
849
849
  before do
850
- expect(api_service).to receive(:get).with(cookbook1_url).
851
- and_return(example1_cookbook_data)
852
- expect(api_service).to receive(:get).with(cookbook2_url).
853
- and_return(example2_cookbook_data)
854
-
855
- expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example1_cookbook_data).
856
- and_return(example1_cookbook_object)
857
- expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example2_cookbook_data).
858
- and_return(example2_cookbook_object)
850
+ expect(api_service).to receive(:get).with(cookbook1_url)
851
+ .and_return(example1_cookbook_data)
852
+ expect(api_service).to receive(:get).with(cookbook2_url)
853
+ .and_return(example2_cookbook_data)
854
+
855
+ expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example1_cookbook_data)
856
+ .and_return(example1_cookbook_object)
857
+ expect(Chef::CookbookVersion).to receive(:from_cb_artifact_data).with(example2_cookbook_data)
858
+ .and_return(example2_cookbook_object)
859
859
  end
860
860
 
861
861
  include_examples "fetching cookbooks when they exist"
@@ -64,7 +64,7 @@ describe "Chef::Resource.property" do
64
64
  if properties.size == 1
65
65
  description = "With property #{properties.first}"
66
66
  else
67
- description = "With properties #{english_join(properties.map { |property| "#{property.inspect}" })}"
67
+ description = "With properties #{english_join(properties.map { |property| (property.inspect).to_s })}"
68
68
  end
69
69
  context description, *tags do
70
70
  before do
@@ -1070,13 +1070,13 @@ describe "Chef::Resource.property" do
1070
1070
  end
1071
1071
 
1072
1072
  it "raises an error if both name_property and name_attribute are specified" do
1073
- expect { resource_class.property :x, :name_property => false, :name_attribute => 1 }.to raise_error ArgumentError,
1073
+ expect { resource_class.property :x, name_property: false, name_attribute: 1 }.to raise_error ArgumentError,
1074
1074
  /name_attribute and name_property are functionally identical and both cannot be specified on a property at once. Use just one on property x of resource chef_resource_property_spec_(\d+)./
1075
- expect { resource_class.property :x, :name_property => false, :name_attribute => nil }.to raise_error ArgumentError,
1075
+ expect { resource_class.property :x, name_property: false, name_attribute: nil }.to raise_error ArgumentError,
1076
1076
  /name_attribute and name_property are functionally identical and both cannot be specified on a property at once. Use just one on property x of resource chef_resource_property_spec_(\d+)./
1077
- expect { resource_class.property :x, :name_property => false, :name_attribute => false }.to raise_error ArgumentError,
1077
+ expect { resource_class.property :x, name_property: false, name_attribute: false }.to raise_error ArgumentError,
1078
1078
  /name_attribute and name_property are functionally identical and both cannot be specified on a property at once. Use just one on property x of resource chef_resource_property_spec_(\d+)./
1079
- expect { resource_class.property :x, :name_property => true, :name_attribute => true }.to raise_error ArgumentError,
1079
+ expect { resource_class.property :x, name_property: true, name_attribute: true }.to raise_error ArgumentError,
1080
1080
  /name_attribute and name_property are functionally identical and both cannot be specified on a property at once. Use just one on property x of resource chef_resource_property_spec_(\d+)./
1081
1081
  end
1082
1082
 
@@ -23,25 +23,25 @@ require "spec_helper"
23
23
  #
24
24
  # Output of the command:
25
25
  # => apt-key adv --list-public-keys --with-fingerprint --with-colons
26
- APT_KEY_FINGER = <<-EOF
27
- tru:t:1:1488924856:0:3:1:5
28
- pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
29
- fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
30
- sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
31
- pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
32
- fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
33
- pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
34
- fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
35
- pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
36
- fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
26
+ APT_KEY_FINGER = <<~EOF.freeze
27
+ tru:t:1:1488924856:0:3:1:5
28
+ pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
29
+ fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
30
+ sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
31
+ pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
32
+ fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
33
+ pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
34
+ fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
35
+ pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
36
+ fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
37
37
  EOF
38
38
 
39
39
  # Output of the command:
40
40
  # => gpg --with-fingerprint --with-colons [FILE]
41
- GPG_FINGER = <<-EOF
42
- pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
43
- fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
44
- sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
41
+ GPG_FINGER = <<~EOF.freeze
42
+ pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
43
+ fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
44
+ sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
45
45
  EOF
46
46
 
47
47
  describe Chef::Provider::AptRepository do
@@ -67,14 +67,14 @@ describe Chef::Provider::AptRepository do
67
67
  end
68
68
 
69
69
  let(:gpg_shell_out_success) do
70
- double("shell_out", :stdout => "pub 2048R/7BD9BF62 2011-08-19 nginx signing key <signing-key@nginx.com>",
71
- :exitstatus => 0, :error? => false)
70
+ double("shell_out", stdout: "pub 2048R/7BD9BF62 2011-08-19 nginx signing key <signing-key@nginx.com>",
71
+ exitstatus: 0, error?: false)
72
72
  end
73
73
 
74
74
  let(:gpg_shell_out_failure) do
75
- double("shell_out", :stderr => "gpg: no valid OpenPGP data found.\n
75
+ double("shell_out", stderr: "gpg: no valid OpenPGP data found.\n
76
76
  gpg: processing message failed: eof",
77
- :exitstatus => 1, :error? => true)
77
+ exitstatus: 1, error?: true)
78
78
  end
79
79
 
80
80
  let(:apt_fingerprints) do
@@ -20,7 +20,7 @@ require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::CookbookFile::Content do
22
22
 
23
- let(:new_resource) { double("Chef::Resource::CookbookFile (new)", :cookbook_name => "apache2", :cookbook => "apache2") }
23
+ let(:new_resource) { double("Chef::Resource::CookbookFile (new)", cookbook_name: "apache2", cookbook: "apache2") }
24
24
  let(:content) do
25
25
  @run_context = double("Chef::RunContext")
26
26
  @current_resource = double("Chef::Resource::CookbookFile (current)")
@@ -26,7 +26,7 @@ describe Chef::Provider::CookbookFile do
26
26
  let(:node) { double("Chef::Node") }
27
27
  let(:events) { double("Chef::Events").as_null_object } # mock all the methods
28
28
  let(:logger) { double("Mixlib::Log::Child").as_null_object }
29
- let(:run_context) { double("Chef::RunContext", :node => node, :events => events, :logger => logger) }
29
+ let(:run_context) { double("Chef::RunContext", node: node, events: events, logger: logger) }
30
30
  let(:enclosing_directory) do
31
31
  canonicalize_path(File.expand_path(File.join(CHEF_SPEC_DATA, "templates")))
32
32
  end
@@ -37,9 +37,9 @@ describe Chef::Provider::Cron::Unix do
37
37
  end
38
38
  end
39
39
 
40
- let(:status) { double("Process::Status", :exitstatus => exitstatus) }
40
+ let(:status) { double("Process::Status", exitstatus: exitstatus) }
41
41
  let(:exitstatus) { 0 }
42
- let(:shell_out) { double("Mixlib::ShellOut", :status => status, :stdout => stdout, :stderr => stderr) }
42
+ let(:shell_out) { double("Mixlib::ShellOut", status: status, stdout: stdout, stderr: stderr) }
43
43
 
44
44
  let(:logger) { double("Mixlib::Log::Child").as_null_object }
45
45
 
@@ -53,25 +53,25 @@ describe Chef::Provider::Cron::Unix do
53
53
  describe "read_crontab" do
54
54
  let(:stderr) { "" }
55
55
  let(:stdout) do
56
- String.new(<<-CRONTAB)
57
- 0 2 * * * /some/other/command
56
+ String.new(<<~CRONTAB)
57
+ 0 2 * * * /some/other/command
58
58
 
59
- # Chef Name: something else
60
- * 5 * * * /bin/true
59
+ # Chef Name: something else
60
+ * 5 * * * /bin/true
61
61
 
62
- # Another comment
62
+ # Another comment
63
63
  CRONTAB
64
64
  end
65
65
 
66
66
  before do
67
67
  allow(logger).to receive(:trace)
68
68
  allow(shell_out).to receive(:format_for_exception).and_return("formatted command output")
69
- allow(provider).to receive(:shell_out).with("/usr/bin/crontab -l", :user => username).and_return(shell_out)
69
+ allow(provider).to receive(:shell_out).with("/usr/bin/crontab -l", user: username).and_return(shell_out)
70
70
  end
71
71
 
72
72
  it "should call crontab -l with the user" do
73
73
  provider.send(:read_crontab)
74
- expect(provider).to have_received(:shell_out).with("/usr/bin/crontab -l", :user => username)
74
+ expect(provider).to have_received(:shell_out).with("/usr/bin/crontab -l", user: username)
75
75
  end
76
76
 
77
77
  it "should return the contents of the crontab" do
@@ -111,7 +111,7 @@ describe Chef::Provider::Cron::Unix do
111
111
  describe "write_crontab" do
112
112
  let(:stdout) { "" }
113
113
  let(:stderr) { "" }
114
- let(:tempfile) { double("foo", :path => "/tmp/foo", :close => true) }
114
+ let(:tempfile) { double("foo", path: "/tmp/foo", close: true) }
115
115
 
116
116
  before do
117
117
  expect(Tempfile).to receive(:new).and_return(tempfile)
@@ -119,12 +119,12 @@ describe Chef::Provider::Cron::Unix do
119
119
  expect(tempfile).to receive(:chmod).with(420)
120
120
  expect(tempfile).to receive(:close!)
121
121
  allow(tempfile).to receive(:<<)
122
- allow(provider).to receive(:shell_out).with("/usr/bin/crontab #{tempfile.path}", :user => username).and_return(shell_out)
122
+ allow(provider).to receive(:shell_out).with("/usr/bin/crontab #{tempfile.path}", user: username).and_return(shell_out)
123
123
  end
124
124
 
125
125
  it "should call crontab for the user" do
126
126
  provider.send(:write_crontab, "Foo")
127
- expect(provider).to have_received(:shell_out).with("/usr/bin/crontab #{tempfile.path}", :user => username)
127
+ expect(provider).to have_received(:shell_out).with("/usr/bin/crontab #{tempfile.path}", user: username)
128
128
  end
129
129
 
130
130
  it "should call crontab with a file containing the crontab" do
@@ -42,15 +42,15 @@ describe Chef::Provider::Cron do
42
42
 
43
43
  context "with a matching entry in the user's crontab" do
44
44
  before :each do
45
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
46
- 0 2 * * * /some/other/command
45
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
46
+ 0 2 * * * /some/other/command
47
47
 
48
- # Chef Name: cronhole some stuff
49
- @reboot /bin/true param1 param2
50
- # Chef Name: something else
51
- 2 * 1 * * /bin/false
48
+ # Chef Name: cronhole some stuff
49
+ @reboot /bin/true param1 param2
50
+ # Chef Name: something else
51
+ 2 * 1 * * /bin/false
52
52
 
53
- # Another comment
53
+ # Another comment
54
54
  CRONTAB
55
55
  end
56
56
 
@@ -67,19 +67,19 @@ CRONTAB
67
67
  end
68
68
 
69
69
  it "should pull env vars out" do
70
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
71
- 0 2 * * * /some/other/command
72
-
73
- # Chef Name: cronhole some stuff
74
- MAILTO=foo@example.com
75
- SHELL=/bin/foosh
76
- PATH=/bin:/foo
77
- HOME=/home/foo
78
- @reboot /bin/true param1 param2
79
- # Chef Name: something else
80
- 2 * 1 * * /bin/false
81
-
82
- # Another comment
70
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
71
+ 0 2 * * * /some/other/command
72
+
73
+ # Chef Name: cronhole some stuff
74
+ MAILTO=foo@example.com
75
+ SHELL=/bin/foosh
76
+ PATH=/bin:/foo
77
+ HOME=/home/foo
78
+ @reboot /bin/true param1 param2
79
+ # Chef Name: something else
80
+ 2 * 1 * * /bin/false
81
+
82
+ # Another comment
83
83
  CRONTAB
84
84
  cron = @provider.load_current_resource
85
85
  expect(cron.mailto).to eq("foo@example.com")
@@ -91,12 +91,12 @@ CRONTAB
91
91
  end
92
92
 
93
93
  it "should parse and load generic and standard environment variables from cron entry" do
94
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
95
- # Chef Name: cronhole some stuff
96
- MAILTO=warn@example.com
97
- TEST=lol
98
- FLAG=1
99
- @reboot /bin/true
94
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
95
+ # Chef Name: cronhole some stuff
96
+ MAILTO=warn@example.com
97
+ TEST=lol
98
+ FLAG=1
99
+ @reboot /bin/true
100
100
  CRONTAB
101
101
  cron = @provider.load_current_resource
102
102
 
@@ -105,13 +105,13 @@ CRONTAB
105
105
  end
106
106
 
107
107
  it "should not break with variables that match the cron resource internals" do
108
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
109
- # Chef Name: cronhole some stuff
110
- MINUTE=40
111
- REBOOT=midnight
112
- TEST=lol
113
- ENVIRONMENT=production
114
- @reboot /bin/true
108
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
109
+ # Chef Name: cronhole some stuff
110
+ MINUTE=40
111
+ REBOOT=midnight
112
+ TEST=lol
113
+ ENVIRONMENT=production
114
+ @reboot /bin/true
115
115
  CRONTAB
116
116
  cron = @provider.load_current_resource
117
117
 
@@ -137,9 +137,9 @@ CRONTAB
137
137
  end
138
138
 
139
139
  it "should create a crontab with the entry" do
140
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
141
- # Chef Name: cronhole some stuff
142
- @reboot /bin/true
140
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
141
+ # Chef Name: cronhole some stuff
142
+ @reboot /bin/true
143
143
  ENDCRON
144
144
  @provider.run_action(:create)
145
145
  end
@@ -168,13 +168,13 @@ CRONTAB
168
168
 
169
169
  context "with no matching entry in the user's crontab" do
170
170
  before :each do
171
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
172
- 0 2 * * * /some/other/command
171
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
172
+ 0 2 * * * /some/other/command
173
173
 
174
- # Chef Name: something else
175
- * 5 * * * /bin/true
174
+ # Chef Name: something else
175
+ * 5 * * * /bin/true
176
176
 
177
- # Another comment
177
+ # Another comment
178
178
  CRONTAB
179
179
  end
180
180
 
@@ -190,9 +190,9 @@ CRONTAB
190
190
  end
191
191
 
192
192
  it "should not fail if there's an existing cron with a numerical argument" do
193
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
194
- # Chef Name: foo[bar] (baz)
195
- 21 */4 * * * some_prog 1234567
193
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
194
+ # Chef Name: foo[bar] (baz)
195
+ 21 */4 * * * some_prog 1234567
196
196
  CRONTAB
197
197
  expect do
198
198
  @provider.load_current_resource
@@ -202,15 +202,15 @@ CRONTAB
202
202
 
203
203
  context "with a matching entry in the user's crontab" do
204
204
  before :each do
205
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
206
- 0 2 * * * /some/other/command
205
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
206
+ 0 2 * * * /some/other/command
207
207
 
208
- # Chef Name: cronhole some stuff
209
- * 5 * 1 * /bin/true param1 param2
210
- # Chef Name: something else
211
- 2 * 1 * * /bin/false
208
+ # Chef Name: cronhole some stuff
209
+ * 5 * 1 * /bin/true param1 param2
210
+ # Chef Name: something else
211
+ 2 * 1 * * /bin/false
212
212
 
213
- # Another comment
213
+ # Another comment
214
214
  CRONTAB
215
215
  end
216
216
 
@@ -232,19 +232,19 @@ CRONTAB
232
232
  end
233
233
 
234
234
  it "should pull env vars out" do
235
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
236
- 0 2 * * * /some/other/command
237
-
238
- # Chef Name: cronhole some stuff
239
- MAILTO=foo@example.com
240
- SHELL=/bin/foosh
241
- PATH=/bin:/foo
242
- HOME=/home/foo
243
- * 5 * 1 * /bin/true param1 param2
244
- # Chef Name: something else
245
- 2 * 1 * * /bin/false
246
-
247
- # Another comment
235
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
236
+ 0 2 * * * /some/other/command
237
+
238
+ # Chef Name: cronhole some stuff
239
+ MAILTO=foo@example.com
240
+ SHELL=/bin/foosh
241
+ PATH=/bin:/foo
242
+ HOME=/home/foo
243
+ * 5 * 1 * /bin/true param1 param2
244
+ # Chef Name: something else
245
+ 2 * 1 * * /bin/false
246
+
247
+ # Another comment
248
248
  CRONTAB
249
249
  cron = @provider.load_current_resource
250
250
  expect(cron.mailto).to eq("foo@example.com")
@@ -261,12 +261,12 @@ CRONTAB
261
261
  end
262
262
 
263
263
  it "should parse and load generic and standard environment variables from cron entry" do
264
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
265
- # Chef Name: cronhole some stuff
266
- MAILTO=warn@example.com
267
- TEST=lol
268
- FLAG=1
269
- * 5 * * * /bin/true
264
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
265
+ # Chef Name: cronhole some stuff
266
+ MAILTO=warn@example.com
267
+ TEST=lol
268
+ FLAG=1
269
+ * 5 * * * /bin/true
270
270
  CRONTAB
271
271
  cron = @provider.load_current_resource
272
272
 
@@ -275,13 +275,13 @@ CRONTAB
275
275
  end
276
276
 
277
277
  it "should not break with variabels that match the cron resource internals" do
278
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
279
- # Chef Name: cronhole some stuff
280
- MINUTE=40
281
- HOUR=midnight
282
- TEST=lol
283
- ENVIRONMENT=production
284
- * 5 * * * /bin/true
278
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
279
+ # Chef Name: cronhole some stuff
280
+ MINUTE=40
281
+ HOUR=midnight
282
+ TEST=lol
283
+ ENVIRONMENT=production
284
+ * 5 * * * /bin/true
285
285
  CRONTAB
286
286
  cron = @provider.load_current_resource
287
287
 
@@ -298,15 +298,15 @@ CRONTAB
298
298
 
299
299
  context "with a matching entry in the user's crontab using month names and weekday names (#CHEF-3178)" do
300
300
  before :each do
301
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
302
- 0 2 * * * /some/other/command
301
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
302
+ 0 2 * * * /some/other/command
303
303
 
304
- # Chef Name: cronhole some stuff
305
- * 5 * Jan Mon /bin/true param1 param2
306
- # Chef Name: something else
307
- 2 * 1 * * /bin/false
304
+ # Chef Name: cronhole some stuff
305
+ * 5 * Jan Mon /bin/true param1 param2
306
+ # Chef Name: something else
307
+ 2 * 1 * * /bin/false
308
308
 
309
- # Another comment
309
+ # Another comment
310
310
  CRONTAB
311
311
  end
312
312
 
@@ -334,10 +334,10 @@ CRONTAB
334
334
 
335
335
  context "with a matching entry without a crontab line" do
336
336
  it "should set cron_exists and leave current_resource values at defaults" do
337
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
338
- 0 2 * * * /some/other/command
337
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
338
+ 0 2 * * * /some/other/command
339
339
 
340
- # Chef Name: cronhole some stuff
340
+ # Chef Name: cronhole some stuff
341
341
  CRONTAB
342
342
  cron = @provider.load_current_resource
343
343
  expect(@provider.cron_exists).to eq(true)
@@ -351,11 +351,11 @@ CRONTAB
351
351
  end
352
352
 
353
353
  it "should not pick up a commented out crontab line" do
354
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
355
- 0 2 * * * /some/other/command
354
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
355
+ 0 2 * * * /some/other/command
356
356
 
357
- # Chef Name: cronhole some stuff
358
- #* 5 * 1 * /bin/true param1 param2
357
+ # Chef Name: cronhole some stuff
358
+ #* 5 * 1 * /bin/true param1 param2
359
359
  CRONTAB
360
360
  cron = @provider.load_current_resource
361
361
  expect(@provider.cron_exists).to eq(true)
@@ -369,15 +369,15 @@ CRONTAB
369
369
  end
370
370
 
371
371
  it "should not pick up a later crontab entry" do
372
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
373
- 0 2 * * * /some/other/command
372
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
373
+ 0 2 * * * /some/other/command
374
374
 
375
- # Chef Name: cronhole some stuff
376
- #* 5 * 1 * /bin/true param1 param2
377
- # Chef Name: something else
378
- 2 * 1 * * /bin/false
375
+ # Chef Name: cronhole some stuff
376
+ #* 5 * 1 * /bin/true param1 param2
377
+ # Chef Name: something else
378
+ 2 * 1 * * /bin/false
379
379
 
380
- # Another comment
380
+ # Another comment
381
381
  CRONTAB
382
382
  cron = @provider.load_current_resource
383
383
  expect(@provider.cron_exists).to eq(true)
@@ -442,9 +442,9 @@ CRONTAB
442
442
  end
443
443
 
444
444
  it "should create a crontab with the entry" do
445
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
446
- # Chef Name: cronhole some stuff
447
- 30 * * * * /bin/true
445
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
446
+ # Chef Name: cronhole some stuff
447
+ 30 * * * * /bin/true
448
448
  ENDCRON
449
449
  @provider.run_action(:create)
450
450
  end
@@ -455,14 +455,14 @@ CRONTAB
455
455
  @new_resource.shell "/bin/foosh"
456
456
  @new_resource.home "/home/foo"
457
457
  @new_resource.environment "TEST" => "LOL"
458
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
459
- # Chef Name: cronhole some stuff
460
- MAILTO="foo@example.com"
461
- PATH="/usr/bin:/my/custom/path"
462
- SHELL="/bin/foosh"
463
- HOME="/home/foo"
464
- TEST=LOL
465
- 30 * * * * /bin/true
458
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
459
+ # Chef Name: cronhole some stuff
460
+ MAILTO="foo@example.com"
461
+ PATH="/usr/bin:/my/custom/path"
462
+ SHELL="/bin/foosh"
463
+ HOME="/home/foo"
464
+ TEST=LOL
465
+ 30 * * * * /bin/true
466
466
  ENDCRON
467
467
  @provider.run_action(:create)
468
468
  end
@@ -481,26 +481,26 @@ TEST=LOL
481
481
  context "when there is a crontab with no matching section" do
482
482
  before :each do
483
483
  @provider.cron_exists = false
484
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
485
- 0 2 * * * /some/other/command
484
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
485
+ 0 2 * * * /some/other/command
486
486
 
487
- # Chef Name: something else
488
- 2 * 1 * * /bin/false
487
+ # Chef Name: something else
488
+ 2 * 1 * * /bin/false
489
489
 
490
- # Another comment
490
+ # Another comment
491
491
  CRONTAB
492
492
  end
493
493
 
494
494
  it "should add the entry to the crontab" do
495
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
496
- 0 2 * * * /some/other/command
495
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
496
+ 0 2 * * * /some/other/command
497
497
 
498
- # Chef Name: something else
499
- 2 * 1 * * /bin/false
498
+ # Chef Name: something else
499
+ 2 * 1 * * /bin/false
500
500
 
501
- # Another comment
502
- # Chef Name: cronhole some stuff
503
- 30 * * * * /bin/true
501
+ # Another comment
502
+ # Chef Name: cronhole some stuff
503
+ 30 * * * * /bin/true
504
504
  ENDCRON
505
505
  @provider.run_action(:create)
506
506
  end
@@ -511,20 +511,20 @@ TEST=LOL
511
511
  @new_resource.shell "/bin/foosh"
512
512
  @new_resource.home "/home/foo"
513
513
  @new_resource.environment "TEST" => "LOL"
514
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
515
- 0 2 * * * /some/other/command
516
-
517
- # Chef Name: something else
518
- 2 * 1 * * /bin/false
519
-
520
- # Another comment
521
- # Chef Name: cronhole some stuff
522
- MAILTO="foo@example.com"
523
- PATH="/usr/bin:/my/custom/path"
524
- SHELL="/bin/foosh"
525
- HOME="/home/foo"
526
- TEST=LOL
527
- 30 * * * * /bin/true
514
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
515
+ 0 2 * * * /some/other/command
516
+
517
+ # Chef Name: something else
518
+ 2 * 1 * * /bin/false
519
+
520
+ # Another comment
521
+ # Chef Name: cronhole some stuff
522
+ MAILTO="foo@example.com"
523
+ PATH="/usr/bin:/my/custom/path"
524
+ SHELL="/bin/foosh"
525
+ HOME="/home/foo"
526
+ TEST=LOL
527
+ 30 * * * * /bin/true
528
528
  ENDCRON
529
529
  @provider.run_action(:create)
530
530
  end
@@ -544,28 +544,28 @@ TEST=LOL
544
544
  before :each do
545
545
  @provider.cron_exists = true
546
546
  allow(@provider).to receive(:cron_different?).and_return(true)
547
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
548
- 0 2 * * * /some/other/command
547
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
548
+ 0 2 * * * /some/other/command
549
549
 
550
- # Chef Name: cronhole some stuff
551
- 30 * * 3 * /bin/true
552
- # Chef Name: something else
553
- 2 * 1 * * /bin/false
550
+ # Chef Name: cronhole some stuff
551
+ 30 * * 3 * /bin/true
552
+ # Chef Name: something else
553
+ 2 * 1 * * /bin/false
554
554
 
555
- # Another comment
555
+ # Another comment
556
556
  CRONTAB
557
557
  end
558
558
 
559
559
  it "should update the crontab entry" do
560
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
561
- 0 2 * * * /some/other/command
560
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
561
+ 0 2 * * * /some/other/command
562
562
 
563
- # Chef Name: cronhole some stuff
564
- 30 * * * * /bin/true
565
- # Chef Name: something else
566
- 2 * 1 * * /bin/false
563
+ # Chef Name: cronhole some stuff
564
+ 30 * * * * /bin/true
565
+ # Chef Name: something else
566
+ 2 * 1 * * /bin/false
567
567
 
568
- # Another comment
568
+ # Another comment
569
569
  ENDCRON
570
570
  @provider.run_action(:create)
571
571
  end
@@ -576,20 +576,20 @@ TEST=LOL
576
576
  @new_resource.shell "/bin/foosh"
577
577
  @new_resource.home "/home/foo"
578
578
  @new_resource.environment "TEST" => "LOL"
579
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
580
- 0 2 * * * /some/other/command
581
-
582
- # Chef Name: cronhole some stuff
583
- MAILTO="foo@example.com"
584
- PATH="/usr/bin:/my/custom/path"
585
- SHELL="/bin/foosh"
586
- HOME="/home/foo"
587
- TEST=LOL
588
- 30 * * * * /bin/true
589
- # Chef Name: something else
590
- 2 * 1 * * /bin/false
591
-
592
- # Another comment
579
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
580
+ 0 2 * * * /some/other/command
581
+
582
+ # Chef Name: cronhole some stuff
583
+ MAILTO="foo@example.com"
584
+ PATH="/usr/bin:/my/custom/path"
585
+ SHELL="/bin/foosh"
586
+ HOME="/home/foo"
587
+ TEST=LOL
588
+ 30 * * * * /bin/true
589
+ # Chef Name: something else
590
+ 2 * 1 * * /bin/false
591
+
592
+ # Another comment
593
593
  ENDCRON
594
594
  @provider.run_action(:create)
595
595
  end
@@ -612,78 +612,78 @@ TEST=LOL
612
612
  end
613
613
 
614
614
  it "should add the crontab to the entry" do
615
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
616
- 0 2 * * * /some/other/command
615
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
616
+ 0 2 * * * /some/other/command
617
617
 
618
- # Chef Name: cronhole some stuff
618
+ # Chef Name: cronhole some stuff
619
619
  CRONTAB
620
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
621
- 0 2 * * * /some/other/command
620
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
621
+ 0 2 * * * /some/other/command
622
622
 
623
- # Chef Name: cronhole some stuff
624
- 30 * * * * /bin/true
623
+ # Chef Name: cronhole some stuff
624
+ 30 * * * * /bin/true
625
625
  ENDCRON
626
626
  @provider.run_action(:create)
627
627
  end
628
628
 
629
629
  it "should not blat any following entries" do
630
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
631
- 0 2 * * * /some/other/command
630
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
631
+ 0 2 * * * /some/other/command
632
632
 
633
- # Chef Name: cronhole some stuff
634
- #30 * * * * /bin/true
635
- # Chef Name: something else
636
- 2 * 1 * * /bin/false
633
+ # Chef Name: cronhole some stuff
634
+ #30 * * * * /bin/true
635
+ # Chef Name: something else
636
+ 2 * 1 * * /bin/false
637
637
 
638
- # Another comment
638
+ # Another comment
639
639
  CRONTAB
640
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
641
- 0 2 * * * /some/other/command
640
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
641
+ 0 2 * * * /some/other/command
642
642
 
643
- # Chef Name: cronhole some stuff
644
- 30 * * * * /bin/true
645
- #30 * * * * /bin/true
646
- # Chef Name: something else
647
- 2 * 1 * * /bin/false
643
+ # Chef Name: cronhole some stuff
644
+ 30 * * * * /bin/true
645
+ #30 * * * * /bin/true
646
+ # Chef Name: something else
647
+ 2 * 1 * * /bin/false
648
648
 
649
- # Another comment
649
+ # Another comment
650
650
  ENDCRON
651
651
  @provider.run_action(:create)
652
652
  end
653
653
 
654
654
  it "should handle env vars with no crontab" do
655
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
656
- 0 2 * * * /some/other/command
655
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
656
+ 0 2 * * * /some/other/command
657
657
 
658
- # Chef Name: cronhole some stuff
659
- MAILTO=bar@example.com
660
- PATH=/usr/bin:/my/custom/path
661
- SHELL=/bin/barsh
662
- HOME=/home/foo
658
+ # Chef Name: cronhole some stuff
659
+ MAILTO=bar@example.com
660
+ PATH=/usr/bin:/my/custom/path
661
+ SHELL=/bin/barsh
662
+ HOME=/home/foo
663
663
 
664
- # Chef Name: something else
665
- 2 * 1 * * /bin/false
664
+ # Chef Name: something else
665
+ 2 * 1 * * /bin/false
666
666
 
667
- # Another comment
667
+ # Another comment
668
668
  CRONTAB
669
669
  @new_resource.mailto "foo@example.com"
670
670
  @new_resource.path "/usr/bin:/my/custom/path"
671
671
  @new_resource.shell "/bin/foosh"
672
672
  @new_resource.home "/home/foo"
673
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
674
- 0 2 * * * /some/other/command
673
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
674
+ 0 2 * * * /some/other/command
675
675
 
676
- # Chef Name: cronhole some stuff
677
- MAILTO="foo@example.com"
678
- PATH="/usr/bin:/my/custom/path"
679
- SHELL="/bin/foosh"
680
- HOME="/home/foo"
681
- 30 * * * * /bin/true
676
+ # Chef Name: cronhole some stuff
677
+ MAILTO="foo@example.com"
678
+ PATH="/usr/bin:/my/custom/path"
679
+ SHELL="/bin/foosh"
680
+ HOME="/home/foo"
681
+ 30 * * * * /bin/true
682
682
 
683
- # Chef Name: something else
684
- 2 * 1 * * /bin/false
683
+ # Chef Name: something else
684
+ 2 * 1 * * /bin/false
685
685
 
686
- # Another comment
686
+ # Another comment
687
687
  ENDCRON
688
688
  @provider.run_action(:create)
689
689
  end
@@ -693,13 +693,13 @@ HOME="/home/foo"
693
693
  before :each do
694
694
  @provider.cron_exists = true
695
695
  allow(@provider).to receive(:cron_different?).and_return(false)
696
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
697
- 0 2 * * * /some/other/command
696
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
697
+ 0 2 * * * /some/other/command
698
698
 
699
- # Chef Name: cronhole some stuff
700
- * 5 * * * /bin/true
699
+ # Chef Name: cronhole some stuff
700
+ * 5 * * * /bin/true
701
701
 
702
- # Another comment
702
+ # Another comment
703
703
  CRONTAB
704
704
  end
705
705
 
@@ -747,50 +747,50 @@ CRONTAB
747
747
  context "when the user has a crontab with a matching section" do
748
748
  before :each do
749
749
  @provider.cron_exists = true
750
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
751
- 0 2 * * * /some/other/command
750
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
751
+ 0 2 * * * /some/other/command
752
752
 
753
- # Chef Name: cronhole some stuff
754
- 30 * * 3 * /bin/true
755
- # Chef Name: something else
756
- 2 * 1 * * /bin/false
753
+ # Chef Name: cronhole some stuff
754
+ 30 * * 3 * /bin/true
755
+ # Chef Name: something else
756
+ 2 * 1 * * /bin/false
757
757
 
758
- # Another comment
758
+ # Another comment
759
759
  CRONTAB
760
760
  end
761
761
 
762
762
  it "should remove the entry" do
763
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
764
- 0 2 * * * /some/other/command
763
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
764
+ 0 2 * * * /some/other/command
765
765
 
766
- # Chef Name: something else
767
- 2 * 1 * * /bin/false
766
+ # Chef Name: something else
767
+ 2 * 1 * * /bin/false
768
768
 
769
- # Another comment
769
+ # Another comment
770
770
  ENDCRON
771
771
  @provider.run_action(:delete)
772
772
  end
773
773
 
774
774
  it "should remove any env vars with the entry" do
775
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
776
- 0 2 * * * /some/other/command
775
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
776
+ 0 2 * * * /some/other/command
777
777
 
778
- # Chef Name: cronhole some stuff
779
- MAILTO=foo@example.com
780
- FOO=test
781
- 30 * * 3 * /bin/true
782
- # Chef Name: something else
783
- 2 * 1 * * /bin/false
778
+ # Chef Name: cronhole some stuff
779
+ MAILTO=foo@example.com
780
+ FOO=test
781
+ 30 * * 3 * /bin/true
782
+ # Chef Name: something else
783
+ 2 * 1 * * /bin/false
784
784
 
785
- # Another comment
785
+ # Another comment
786
786
  CRONTAB
787
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
788
- 0 2 * * * /some/other/command
787
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
788
+ 0 2 * * * /some/other/command
789
789
 
790
- # Chef Name: something else
791
- 2 * 1 * * /bin/false
790
+ # Chef Name: something else
791
+ 2 * 1 * * /bin/false
792
792
 
793
- # Another comment
793
+ # Another comment
794
794
  ENDCRON
795
795
  @provider.run_action(:delete)
796
796
  end
@@ -812,61 +812,61 @@ FOO=test
812
812
  end
813
813
 
814
814
  it "should remove the section" do
815
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
816
- 0 2 * * * /some/other/command
815
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
816
+ 0 2 * * * /some/other/command
817
817
 
818
- # Chef Name: cronhole some stuff
818
+ # Chef Name: cronhole some stuff
819
819
  CRONTAB
820
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
821
- 0 2 * * * /some/other/command
820
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
821
+ 0 2 * * * /some/other/command
822
822
 
823
823
  ENDCRON
824
824
  @provider.run_action(:delete)
825
825
  end
826
826
 
827
827
  it "should not blat following sections" do
828
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
829
- 0 2 * * * /some/other/command
828
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
829
+ 0 2 * * * /some/other/command
830
830
 
831
- # Chef Name: cronhole some stuff
832
- #30 * * 3 * /bin/true
833
- # Chef Name: something else
834
- 2 * 1 * * /bin/false
831
+ # Chef Name: cronhole some stuff
832
+ #30 * * 3 * /bin/true
833
+ # Chef Name: something else
834
+ 2 * 1 * * /bin/false
835
835
 
836
- # Another comment
836
+ # Another comment
837
837
  CRONTAB
838
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
839
- 0 2 * * * /some/other/command
838
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
839
+ 0 2 * * * /some/other/command
840
840
 
841
- #30 * * 3 * /bin/true
842
- # Chef Name: something else
843
- 2 * 1 * * /bin/false
841
+ #30 * * 3 * /bin/true
842
+ # Chef Name: something else
843
+ 2 * 1 * * /bin/false
844
844
 
845
- # Another comment
845
+ # Another comment
846
846
  ENDCRON
847
847
  @provider.run_action(:delete)
848
848
  end
849
849
 
850
850
  it "should remove any envvars with the section" do
851
- allow(@provider).to receive(:read_crontab).and_return(<<-CRONTAB)
852
- 0 2 * * * /some/other/command
851
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
852
+ 0 2 * * * /some/other/command
853
853
 
854
- # Chef Name: cronhole some stuff
855
- MAILTO=foo@example.com
856
- #30 * * 3 * /bin/true
857
- # Chef Name: something else
858
- 2 * 1 * * /bin/false
854
+ # Chef Name: cronhole some stuff
855
+ MAILTO=foo@example.com
856
+ #30 * * 3 * /bin/true
857
+ # Chef Name: something else
858
+ 2 * 1 * * /bin/false
859
859
 
860
- # Another comment
860
+ # Another comment
861
861
  CRONTAB
862
- expect(@provider).to receive(:write_crontab).with(<<-ENDCRON)
863
- 0 2 * * * /some/other/command
862
+ expect(@provider).to receive(:write_crontab).with(<<~ENDCRON)
863
+ 0 2 * * * /some/other/command
864
864
 
865
- #30 * * 3 * /bin/true
866
- # Chef Name: something else
867
- 2 * 1 * * /bin/false
865
+ #30 * * 3 * /bin/true
866
+ # Chef Name: something else
867
+ 2 * 1 * * /bin/false
868
868
 
869
- # Another comment
869
+ # Another comment
870
870
  ENDCRON
871
871
  @provider.run_action(:delete)
872
872
  end
@@ -875,13 +875,13 @@ MAILTO=foo@example.com
875
875
 
876
876
  describe "read_crontab" do
877
877
  before :each do
878
- @stdout = <<-CRONTAB
879
- 0 2 * * * /some/other/command
878
+ @stdout = <<~CRONTAB
879
+ 0 2 * * * /some/other/command
880
880
 
881
- # Chef Name: something else
882
- * 5 * * * /bin/true
881
+ # Chef Name: something else
882
+ * 5 * * * /bin/true
883
883
 
884
- # Another comment
884
+ # Another comment
885
885
  CRONTAB
886
886
  @status = double("Status", exitstatus: 0, stdout: @stdout)
887
887
  allow(@provider).to receive(:shell_out!).and_return(@status)
@@ -894,13 +894,13 @@ MAILTO=foo@example.com
894
894
 
895
895
  it "should return the contents of the crontab" do
896
896
  crontab = @provider.send(:read_crontab)
897
- expect(crontab).to eq <<-CRONTAB
898
- 0 2 * * * /some/other/command
897
+ expect(crontab).to eq <<~CRONTAB
898
+ 0 2 * * * /some/other/command
899
899
 
900
- # Chef Name: something else
901
- * 5 * * * /bin/true
900
+ # Chef Name: something else
901
+ * 5 * * * /bin/true
902
902
 
903
- # Another comment
903
+ # Another comment
904
904
  CRONTAB
905
905
  end
906
906