chef 16.3.45-universal-mingw32 → 16.5.77-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +2 -2
  4. data/bin/knife +1 -1
  5. data/chef-universal-mingw32.gemspec +0 -1
  6. data/chef.gemspec +2 -1
  7. data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
  8. data/ext/win32-eventlog/Rakefile +2 -2
  9. data/ext/win32-eventlog/chef-log.man.erb +4 -4
  10. data/lib/chef/action_collection.rb +4 -0
  11. data/lib/chef/api_client/registration.rb +2 -2
  12. data/lib/chef/application.rb +20 -18
  13. data/lib/chef/application/apply.rb +17 -12
  14. data/lib/chef/application/base.rb +26 -23
  15. data/lib/chef/application/client.rb +10 -4
  16. data/lib/chef/application/exit_code.rb +13 -4
  17. data/lib/chef/application/knife.rb +22 -11
  18. data/lib/chef/application/solo.rb +2 -1
  19. data/lib/chef/application/windows_service.rb +39 -39
  20. data/lib/chef/application/windows_service_manager.rb +6 -6
  21. data/lib/chef/chef_class.rb +0 -1
  22. data/lib/chef/chef_fs/chef_fs_data_store.rb +55 -55
  23. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
  24. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
  25. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
  26. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  27. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +2 -2
  28. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
  29. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  30. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  31. data/lib/chef/chef_fs/knife.rb +2 -2
  32. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  33. data/lib/chef/client.rb +21 -22
  34. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  35. data/lib/chef/cookbook/gem_installer.rb +1 -1
  36. data/lib/chef/cookbook/synchronizer.rb +2 -2
  37. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  38. data/lib/chef/cookbook_uploader.rb +1 -1
  39. data/lib/chef/data_collector.rb +6 -5
  40. data/lib/chef/data_collector/config_validation.rb +22 -13
  41. data/lib/chef/data_collector/run_end_message.rb +13 -3
  42. data/lib/chef/data_collector/run_start_message.rb +1 -1
  43. data/lib/chef/deprecated.rb +1 -1
  44. data/lib/chef/deprecation/warnings.rb +2 -2
  45. data/lib/chef/digester.rb +2 -2
  46. data/lib/chef/dsl/chef_vault.rb +1 -1
  47. data/lib/chef/dsl/data_query.rb +2 -2
  48. data/lib/chef/dsl/platform_introspection.rb +9 -9
  49. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  50. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  51. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  52. data/lib/chef/environment.rb +4 -4
  53. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  54. data/lib/chef/exceptions.rb +5 -5
  55. data/lib/chef/file_access_control/windows.rb +5 -1
  56. data/lib/chef/file_content_management/tempfile.rb +10 -10
  57. data/lib/chef/formatters/doc.rb +7 -6
  58. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  59. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  60. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  61. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  62. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  63. data/lib/chef/formatters/indentable_output_stream.rb +2 -2
  64. data/lib/chef/formatters/minimal.rb +5 -4
  65. data/lib/chef/http.rb +6 -3
  66. data/lib/chef/http/auth_credentials.rb +5 -1
  67. data/lib/chef/http/authenticator.rb +1 -1
  68. data/lib/chef/http/basic_client.rb +4 -2
  69. data/lib/chef/http/decompressor.rb +1 -1
  70. data/lib/chef/http/http_request.rb +7 -5
  71. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  72. data/lib/chef/http/ssl_policies.rb +1 -1
  73. data/lib/chef/json_compat.rb +2 -2
  74. data/lib/chef/knife.rb +4 -4
  75. data/lib/chef/knife/bootstrap.rb +18 -16
  76. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  77. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  78. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  79. data/lib/chef/knife/client_create.rb +3 -3
  80. data/lib/chef/knife/config_get.rb +8 -97
  81. data/lib/chef/knife/config_get_profile.rb +9 -9
  82. data/lib/chef/knife/config_list.rb +139 -0
  83. data/lib/chef/knife/config_list_profiles.rb +8 -98
  84. data/lib/chef/knife/config_show.rb +127 -0
  85. data/lib/chef/knife/config_use.rb +61 -0
  86. data/lib/chef/knife/config_use_profile.rb +9 -24
  87. data/lib/chef/knife/configure.rb +4 -2
  88. data/lib/chef/knife/cookbook_download.rb +1 -1
  89. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  90. data/lib/chef/knife/cookbook_upload.rb +23 -23
  91. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  92. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  93. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  94. data/lib/chef/knife/core/object_loader.rb +1 -1
  95. data/lib/chef/knife/core/ui.rb +1 -1
  96. data/lib/chef/knife/core/windows_bootstrap_context.rb +42 -34
  97. data/lib/chef/knife/delete.rb +15 -15
  98. data/lib/chef/knife/exec.rb +4 -4
  99. data/lib/chef/knife/node_policy_set.rb +2 -2
  100. data/lib/chef/knife/node_run_list_add.rb +1 -1
  101. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  102. data/lib/chef/knife/node_run_list_set.rb +1 -1
  103. data/lib/chef/knife/node_show.rb +2 -2
  104. data/lib/chef/knife/role_env_run_list_add.rb +1 -1
  105. data/lib/chef/knife/role_env_run_list_set.rb +1 -1
  106. data/lib/chef/knife/role_run_list_add.rb +1 -1
  107. data/lib/chef/knife/role_run_list_set.rb +1 -1
  108. data/lib/chef/knife/search.rb +0 -1
  109. data/lib/chef/knife/serve.rb +3 -3
  110. data/lib/chef/knife/ssh.rb +24 -9
  111. data/lib/chef/knife/ssl_check.rb +3 -3
  112. data/lib/chef/knife/status.rb +2 -2
  113. data/lib/chef/knife/tag_create.rb +1 -1
  114. data/lib/chef/knife/tag_delete.rb +1 -1
  115. data/lib/chef/knife/user_create.rb +2 -2
  116. data/lib/chef/knife/xargs.rb +19 -19
  117. data/lib/chef/knife/yaml_convert.rb +1 -1
  118. data/lib/chef/local_mode.rb +2 -2
  119. data/lib/chef/log/syslog.rb +2 -2
  120. data/lib/chef/log/winevt.rb +2 -2
  121. data/lib/chef/mixin/checksum.rb +0 -1
  122. data/lib/chef/mixin/deep_merge.rb +35 -18
  123. data/lib/chef/mixin/openssl_helper.rb +4 -5
  124. data/lib/chef/mixin/shell_out.rb +1 -1
  125. data/lib/chef/mixin/template.rb +3 -3
  126. data/lib/chef/mixin/uris.rb +4 -2
  127. data/lib/chef/mixin/versioned_api.rb +1 -2
  128. data/lib/chef/mixin/which.rb +1 -1
  129. data/lib/chef/monkey_patches/net_http.rb +4 -4
  130. data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
  131. data/lib/chef/node/attribute.rb +2 -4
  132. data/lib/chef/node_map.rb +4 -4
  133. data/lib/chef/platform/service_helpers.rb +1 -1
  134. data/lib/chef/policy_builder/dynamic.rb +2 -0
  135. data/lib/chef/policy_builder/policyfile.rb +2 -2
  136. data/lib/chef/property.rb +1 -1
  137. data/lib/chef/provider.rb +1 -5
  138. data/lib/chef/provider/cron/unix.rb +0 -2
  139. data/lib/chef/provider/file.rb +2 -2
  140. data/lib/chef/provider/git.rb +5 -5
  141. data/lib/chef/provider/group.rb +0 -2
  142. data/lib/chef/provider/group/suse.rb +5 -5
  143. data/lib/chef/provider/ifconfig.rb +1 -4
  144. data/lib/chef/provider/launchd.rb +2 -2
  145. data/lib/chef/provider/link.rb +0 -9
  146. data/lib/chef/provider/mount.rb +0 -2
  147. data/lib/chef/provider/mount/linux.rb +63 -0
  148. data/lib/chef/provider/package.rb +0 -2
  149. data/lib/chef/provider/package/dpkg.rb +3 -12
  150. data/lib/chef/provider/package/homebrew.rb +1 -1
  151. data/lib/chef/provider/package/rubygems.rb +22 -19
  152. data/lib/chef/provider/package/snap.rb +1 -2
  153. data/lib/chef/provider/package/windows.rb +2 -2
  154. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
  155. data/lib/chef/provider/package/zypper.rb +1 -1
  156. data/lib/chef/provider/powershell_script.rb +21 -5
  157. data/lib/chef/provider/remote_file/content.rb +3 -0
  158. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  159. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  160. data/lib/chef/provider/route.rb +2 -6
  161. data/lib/chef/provider/service/arch.rb +1 -1
  162. data/lib/chef/provider/service/debian.rb +1 -1
  163. data/lib/chef/provider/service/gentoo.rb +2 -2
  164. data/lib/chef/provider/service/macosx.rb +4 -4
  165. data/lib/chef/provider/service/openbsd.rb +1 -4
  166. data/lib/chef/provider/service/redhat.rb +3 -3
  167. data/lib/chef/provider/service/upstart.rb +1 -1
  168. data/lib/chef/provider/service/windows.rb +10 -10
  169. data/lib/chef/provider/systemd_unit.rb +0 -2
  170. data/lib/chef/provider/template/content.rb +1 -0
  171. data/lib/chef/provider/template_finder.rb +2 -10
  172. data/lib/chef/provider/user/dscl.rb +7 -7
  173. data/lib/chef/provider/user/mac.rb +12 -12
  174. data/lib/chef/provider/windows_task.rb +1 -5
  175. data/lib/chef/provider/zypper_repository.rb +2 -3
  176. data/lib/chef/provider_resolver.rb +1 -1
  177. data/lib/chef/providers.rb +1 -1
  178. data/lib/chef/recipe.rb +2 -2
  179. data/lib/chef/resource.rb +8 -12
  180. data/lib/chef/resource/apt_repository.rb +5 -12
  181. data/lib/chef/resource/bff_package.rb +22 -0
  182. data/lib/chef/resource/breakpoint.rb +57 -2
  183. data/lib/chef/resource/build_essential.rb +1 -1
  184. data/lib/chef/resource/cab_package.rb +29 -0
  185. data/lib/chef/resource/chef_client_cron.rb +32 -25
  186. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  187. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  188. data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
  189. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  190. data/lib/chef/resource/chef_gem.rb +10 -10
  191. data/lib/chef/resource/chef_handler.rb +149 -4
  192. data/lib/chef/resource/chef_sleep.rb +2 -2
  193. data/lib/chef/resource/chef_vault_secret.rb +14 -14
  194. data/lib/chef/resource/cookbook_file.rb +2 -2
  195. data/lib/chef/resource/cron/_cron_shared.rb +1 -0
  196. data/lib/chef/resource/cron/cron_d.rb +0 -1
  197. data/lib/chef/resource/dnf_package.rb +2 -2
  198. data/lib/chef/resource/dsc_resource.rb +0 -1
  199. data/lib/chef/resource/dsc_script.rb +2 -2
  200. data/lib/chef/resource/execute.rb +8 -9
  201. data/lib/chef/resource/file.rb +4 -4
  202. data/lib/chef/resource/gem_package.rb +5 -5
  203. data/lib/chef/resource/homebrew_package.rb +3 -3
  204. data/lib/chef/resource/homebrew_update.rb +7 -7
  205. data/lib/chef/resource/hostname.rb +2 -2
  206. data/lib/chef/resource/launchd.rb +2 -1
  207. data/lib/chef/resource/locale.rb +2 -2
  208. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  209. data/lib/chef/resource/notify_group.rb +0 -1
  210. data/lib/chef/resource/ohai.rb +46 -3
  211. data/lib/chef/resource/ohai_hint.rb +33 -0
  212. data/lib/chef/resource/openssl_dhparam.rb +29 -5
  213. data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
  214. data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
  215. data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
  216. data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
  217. data/lib/chef/resource/openssl_x509_certificate.rb +38 -35
  218. data/lib/chef/resource/openssl_x509_crl.rb +21 -10
  219. data/lib/chef/resource/openssl_x509_request.rb +37 -36
  220. data/lib/chef/resource/osx_profile.rb +292 -6
  221. data/lib/chef/resource/plist.rb +1 -1
  222. data/lib/chef/resource/powershell_package_source.rb +6 -6
  223. data/lib/chef/resource/powershell_script.rb +24 -30
  224. data/lib/chef/resource/reboot.rb +2 -2
  225. data/lib/chef/resource/remote_file.rb +3 -3
  226. data/lib/chef/resource/rhsm_register.rb +22 -10
  227. data/lib/chef/resource/ruby_block.rb +2 -2
  228. data/lib/chef/resource/scm/subversion.rb +2 -2
  229. data/lib/chef/resource/service.rb +3 -3
  230. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  231. data/lib/chef/resource/sudo.rb +1 -1
  232. data/lib/chef/resource/support/cron.d.erb +1 -1
  233. data/lib/chef/resource/support/cron_access.erb +1 -1
  234. data/lib/chef/resource/support/sudoer.erb +1 -1
  235. data/lib/chef/resource/support/ulimit.erb +1 -1
  236. data/lib/chef/resource/sysctl.rb +6 -10
  237. data/lib/chef/resource/systemd_unit.rb +2 -2
  238. data/lib/chef/resource/template.rb +2 -2
  239. data/lib/chef/resource/timezone.rb +112 -73
  240. data/lib/chef/resource/windows_ad_join.rb +12 -3
  241. data/lib/chef/resource/windows_audit_policy.rb +3 -0
  242. data/lib/chef/resource/windows_auto_run.rb +2 -0
  243. data/lib/chef/resource/windows_certificate.rb +8 -4
  244. data/lib/chef/resource/windows_dfs_folder.rb +2 -0
  245. data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
  246. data/lib/chef/resource/windows_dfs_server.rb +2 -0
  247. data/lib/chef/resource/windows_dns_record.rb +10 -7
  248. data/lib/chef/resource/windows_dns_zone.rb +12 -7
  249. data/lib/chef/resource/windows_feature.rb +2 -0
  250. data/lib/chef/resource/windows_feature_dism.rb +10 -0
  251. data/lib/chef/resource/windows_feature_powershell.rb +14 -2
  252. data/lib/chef/resource/windows_firewall_profile.rb +24 -20
  253. data/lib/chef/resource/windows_firewall_rule.rb +5 -3
  254. data/lib/chef/resource/windows_font.rb +3 -1
  255. data/lib/chef/resource/windows_package.rb +28 -5
  256. data/lib/chef/resource/windows_pagefile.rb +4 -0
  257. data/lib/chef/resource/windows_printer.rb +22 -21
  258. data/lib/chef/resource/windows_printer_port.rb +20 -17
  259. data/lib/chef/resource/windows_security_policy.rb +2 -0
  260. data/lib/chef/resource/windows_share.rb +5 -3
  261. data/lib/chef/resource/windows_shortcut.rb +2 -0
  262. data/lib/chef/resource/windows_uac.rb +2 -0
  263. data/lib/chef/resource/windows_user_privilege.rb +54 -53
  264. data/lib/chef/resource/windows_workgroup.rb +5 -6
  265. data/lib/chef/resource/yum_package.rb +2 -2
  266. data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
  267. data/lib/chef/resource_reporter.rb +0 -2
  268. data/lib/chef/resources.rb +3 -1
  269. data/lib/chef/role.rb +2 -2
  270. data/lib/chef/run_context.rb +2 -2
  271. data/lib/chef/run_context/cookbook_compiler.rb +21 -21
  272. data/lib/chef/run_lock.rb +2 -2
  273. data/lib/chef/run_status.rb +2 -6
  274. data/lib/chef/search/query.rb +6 -5
  275. data/lib/chef/shell.rb +32 -27
  276. data/lib/chef/shell/ext.rb +11 -11
  277. data/lib/chef/shell/shell_session.rb +2 -2
  278. data/lib/chef/train_transport.rb +5 -104
  279. data/lib/chef/util/backup.rb +2 -2
  280. data/lib/chef/util/diff.rb +14 -14
  281. data/lib/chef/util/powershell/cmdlet.rb +4 -2
  282. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  283. data/lib/chef/util/threaded_job_queue.rb +0 -2
  284. data/lib/chef/version.rb +1 -1
  285. data/lib/chef/win32/crypto.rb +1 -1
  286. data/lib/chef/win32/file.rb +3 -3
  287. data/lib/chef/win32/file/version_info.rb +5 -5
  288. data/lib/chef/win32/registry.rb +1 -2
  289. data/lib/chef/win32/unicode.rb +1 -1
  290. data/spec/data/shef-config.rb +1 -1
  291. data/spec/data/ssl/chef-rspec.cert +15 -15
  292. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  293. data/spec/functional/resource/aix_service_spec.rb +2 -2
  294. data/spec/functional/resource/aixinit_service_spec.rb +8 -8
  295. data/spec/functional/resource/bff_spec.rb +2 -2
  296. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  297. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  298. data/spec/functional/resource/dsc_script_spec.rb +0 -1
  299. data/spec/functional/resource/group_spec.rb +6 -6
  300. data/spec/functional/resource/insserv_spec.rb +5 -5
  301. data/spec/functional/resource/link_spec.rb +20 -20
  302. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  303. data/spec/functional/resource/rpm_spec.rb +2 -2
  304. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  305. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  306. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  307. data/spec/functional/resource/windows_font_spec.rb +49 -0
  308. data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
  309. data/spec/functional/resource/windows_task_spec.rb +13 -13
  310. data/spec/functional/run_lock_spec.rb +24 -24
  311. data/spec/functional/version_spec.rb +3 -3
  312. data/spec/functional/win32/registry_spec.rb +8 -8
  313. data/spec/functional/win32/service_manager_spec.rb +1 -1
  314. data/spec/integration/client/client_spec.rb +4 -4
  315. data/spec/integration/client/exit_code_spec.rb +3 -2
  316. data/spec/integration/client/ipv6_spec.rb +1 -1
  317. data/spec/integration/knife/common_options_spec.rb +12 -12
  318. data/spec/integration/knife/config_list_spec.rb +220 -0
  319. data/spec/integration/knife/config_show_spec.rb +192 -0
  320. data/spec/integration/knife/config_use_spec.rb +198 -0
  321. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  322. data/spec/integration/knife/diff_spec.rb +3 -1
  323. data/spec/integration/knife/download_spec.rb +3 -1
  324. data/spec/integration/knife/serve_spec.rb +5 -5
  325. data/spec/integration/knife/upload_spec.rb +3 -1
  326. data/spec/integration/ohai/ohai_spec.rb +61 -0
  327. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  328. data/spec/integration/recipes/remote_directory.rb +1 -1
  329. data/spec/integration/solo/solo_spec.rb +5 -5
  330. data/spec/spec_helper.rb +12 -11
  331. data/spec/stress/win32/file_spec.rb +1 -1
  332. data/spec/support/chef_helpers.rb +2 -2
  333. data/spec/support/matchers/leak.rb +2 -2
  334. data/spec/support/platform_helpers.rb +17 -35
  335. data/spec/support/platforms/win32/spec_service.rb +1 -1
  336. data/spec/support/shared/functional/directory_resource.rb +1 -1
  337. data/spec/support/shared/functional/execute_resource.rb +1 -1
  338. data/spec/support/shared/functional/file_resource.rb +20 -20
  339. data/spec/support/shared/functional/securable_resource.rb +108 -27
  340. data/spec/support/shared/functional/win32_service.rb +2 -2
  341. data/spec/support/shared/functional/windows_script.rb +3 -3
  342. data/spec/support/shared/integration/integration_helper.rb +22 -52
  343. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  344. data/spec/support/shared/unit/script_resource.rb +6 -20
  345. data/spec/support/shared/unit/windows_script_resource.rb +15 -28
  346. data/spec/tiny_server.rb +0 -1
  347. data/spec/unit/application/client_spec.rb +2 -2
  348. data/spec/unit/application/exit_code_spec.rb +10 -0
  349. data/spec/unit/application_spec.rb +4 -6
  350. data/spec/unit/chef_fs/config_spec.rb +1 -1
  351. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  352. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  353. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  354. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  355. data/spec/unit/cookbook_spec.rb +2 -2
  356. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  357. data/spec/unit/data_collector_spec.rb +28 -117
  358. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  359. data/spec/unit/environment_spec.rb +7 -7
  360. data/spec/unit/file_access_control_spec.rb +1 -1
  361. data/spec/unit/knife/bootstrap_spec.rb +20 -20
  362. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  363. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  364. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  365. data/spec/unit/knife/core/ui_spec.rb +1 -0
  366. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
  367. data/spec/unit/knife/ssh_spec.rb +2 -2
  368. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  369. data/spec/unit/lwrp_spec.rb +3 -3
  370. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  371. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  372. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  373. data/spec/unit/mixin/securable_spec.rb +2 -2
  374. data/spec/unit/mixin/template_spec.rb +30 -30
  375. data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
  376. data/spec/unit/node/immutable_collections_spec.rb +8 -4
  377. data/spec/unit/node_spec.rb +5 -5
  378. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  379. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  380. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  381. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  382. data/spec/unit/provider/powershell_script_spec.rb +11 -4
  383. data/spec/unit/provider/remote_directory_spec.rb +9 -9
  384. data/spec/unit/provider/route_spec.rb +0 -2
  385. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  386. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  387. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  388. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  389. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  390. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  391. data/spec/unit/provider_resolver_spec.rb +6 -6
  392. data/spec/unit/recipe_spec.rb +1 -1
  393. data/spec/unit/resource/batch_spec.rb +6 -6
  394. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  395. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  396. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  397. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  398. data/spec/unit/resource/execute_spec.rb +113 -118
  399. data/spec/unit/resource/launchd_spec.rb +8 -0
  400. data/spec/unit/resource/osx_profile_spec.rb +299 -0
  401. data/spec/unit/resource/powershell_script_spec.rb +11 -29
  402. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  403. data/spec/unit/resource/script_spec.rb +6 -1
  404. data/spec/unit/resource/timezone_spec.rb +63 -0
  405. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  406. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  407. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  408. data/spec/unit/role_spec.rb +11 -11
  409. data/spec/unit/run_lock_spec.rb +5 -1
  410. data/spec/unit/runner_spec.rb +1 -2
  411. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  412. data/spec/unit/shell/shell_session_spec.rb +35 -64
  413. data/spec/unit/shell_spec.rb +16 -19
  414. data/spec/unit/train_transport_spec.rb +14 -13
  415. data/spec/unit/util/selinux_spec.rb +2 -0
  416. data/tasks/rspec.rb +1 -3
  417. metadata +42 -33
  418. data/lib/chef/dist.rb +0 -68
  419. data/lib/chef/provider/osx_profile.rb +0 -255
  420. data/spec/integration/knife/config_get_profile_spec.rb +0 -113
  421. data/spec/integration/knife/config_get_spec.rb +0 -191
  422. data/spec/integration/knife/config_list_profiles_spec.rb +0 -218
  423. data/spec/integration/knife/config_use_profile_spec.rb +0 -154
  424. data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -20,6 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class WindowsPagefile < Chef::Resource
23
+ unified_mode true
24
+
23
25
  provides(:windows_pagefile) { true }
24
26
 
25
27
  description "Use the **windows_pagefile** resource to configure pagefile settings on Windows."
@@ -109,6 +111,8 @@ class Chef
109
111
  end
110
112
 
111
113
  action_class do
114
+ private
115
+
112
116
  # make sure the provided name property matches the appropriate format
113
117
  # we do this here and not in the property itself because if automatic_managed
114
118
  # is set then this validation is not necessary / doesn't make sense at all
@@ -22,7 +22,9 @@ require_relative "../resource"
22
22
  class Chef
23
23
  class Resource
24
24
  class WindowsPrinter < Chef::Resource
25
- require "resolv"
25
+ unified_mode true
26
+
27
+ autoload :Resolv, "resolv"
26
28
 
27
29
  provides(:windows_printer) { true }
28
30
 
@@ -76,34 +78,22 @@ class Chef
76
78
 
77
79
  property :ipv4_address, String,
78
80
  description: "The IPv4 address of the printer, such as `10.4.64.23`",
79
- validation_message: "The ipv4_address property must be in the IPv4 format of `WWW.XXX.YYY.ZZZ`",
80
- regex: Resolv::IPv4::Regex
81
-
82
- property :exists, [TrueClass, FalseClass],
83
- skip_docs: true
81
+ callbacks: {
82
+ "The ipv4_address property must be in the IPv4 format of `WWW.XXX.YYY.ZZZ`" =>
83
+ proc { |v| v.match(Resolv::IPv4::Regex) },
84
+ }
84
85
 
85
86
  PRINTERS_REG_KEY = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\\'.freeze unless defined?(PRINTERS_REG_KEY)
86
87
 
87
- # does the printer exist
88
- #
89
- # @param [String] name the name of the printer
90
- # @return [Boolean]
91
- def printer_exists?(name)
92
- printer_reg_key = PRINTERS_REG_KEY + name
93
- logger.trace "Checking to see if this reg key exists: '#{printer_reg_key}'"
94
- registry_key_exists?(printer_reg_key)
95
- end
96
-
97
88
  # @todo Set @current_resource printer properties from registry
98
89
  load_current_value do |desired|
99
90
  name desired.name
100
- exists printer_exists?(desired.name)
101
91
  end
102
92
 
103
93
  action :create do
104
94
  description "Create a new printer and a printer port if one doesn't already exist."
105
95
 
106
- if @current_resource.exists
96
+ if printer_exists?
107
97
  Chef::Log.info "#{@new_resource} already exists - nothing to do."
108
98
  else
109
99
  converge_by("Create #{@new_resource}") do
@@ -115,7 +105,7 @@ class Chef
115
105
  action :delete do
116
106
  description "Delete an existing printer. Note this does not delete the associated printer port."
117
107
 
118
- if @current_resource.exists
108
+ if printer_exists?
119
109
  converge_by("Delete #{@new_resource}") do
120
110
  delete_printer
121
111
  end
@@ -125,11 +115,22 @@ class Chef
125
115
  end
126
116
 
127
117
  action_class do
118
+ private
119
+
120
+ # does the printer exist
121
+ #
122
+ # @param [String] name the name of the printer
123
+ # @return [Boolean]
124
+ def printer_exists?
125
+ printer_reg_key = PRINTERS_REG_KEY + new_resource.name
126
+ logger.trace "Checking to see if this reg key exists: '#{printer_reg_key}'"
127
+ registry_key_exists?(printer_reg_key)
128
+ end
129
+
128
130
  # creates the printer port and then the printer
129
131
  def create_printer
130
132
  # Create the printer port first
131
- windows_printer_port new_resource.ipv4_address do
132
- end
133
+ windows_printer_port new_resource.ipv4_address
133
134
 
134
135
  port_name = "IP_#{new_resource.ipv4_address}"
135
136
 
@@ -22,7 +22,9 @@ require_relative "../resource"
22
22
  class Chef
23
23
  class Resource
24
24
  class WindowsPrinterPort < Chef::Resource
25
- require "resolv"
25
+ unified_mode true
26
+
27
+ autoload :Resolv, "resolv"
26
28
 
27
29
  provides(:windows_printer_port) { true }
28
30
 
@@ -59,9 +61,11 @@ class Chef
59
61
 
60
62
  property :ipv4_address, String,
61
63
  name_property: true,
62
- regex: Resolv::IPv4::Regex,
63
- validation_message: "The ipv4_address property must be in the format of WWW.XXX.YYY.ZZZ!",
64
- description: "An optional property for the IPv4 address of the printer if it differs from the resource block's name."
64
+ description: "An optional property for the IPv4 address of the printer if it differs from the resource block's name.",
65
+ callbacks: {
66
+ "The ipv4_address property must be in the format of WWW.XXX.YYY.ZZZ!" =>
67
+ proc { |v| v.match(Resolv::IPv4::Regex) },
68
+ }
65
69
 
66
70
  property :port_name, String,
67
71
  description: "The port name."
@@ -82,30 +86,19 @@ class Chef
82
86
  validation_message: "port_protocol must be either 1 for RAW or 2 for LPR!",
83
87
  default: 1, equal_to: [1, 2]
84
88
 
85
- property :exists, [TrueClass, FalseClass],
86
- skip_docs: true
87
-
88
89
  PORTS_REG_KEY = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\\'.freeze unless defined?(PORTS_REG_KEY)
89
90
 
90
- def port_exists?(name)
91
- port_reg_key = PORTS_REG_KEY + name
92
-
93
- logger.trace "Checking to see if this reg key exists: '#{port_reg_key}'"
94
- registry_key_exists?(port_reg_key)
95
- end
96
-
97
91
  # @todo Set @current_resource port properties from registry
98
92
  load_current_value do |desired|
99
93
  name desired.name
100
94
  ipv4_address desired.ipv4_address
101
95
  port_name desired.port_name || "IP_#{desired.ipv4_address}"
102
- exists port_exists?(desired.port_name || "IP_#{desired.ipv4_address}")
103
96
  end
104
97
 
105
98
  action :create do
106
99
  description "Create the new printer port if it does not already exist."
107
100
 
108
- if current_resource.exists
101
+ if port_exists?
109
102
  Chef::Log.info "#{@new_resource} already exists - nothing to do."
110
103
  else
111
104
  converge_by("Create #{@new_resource}") do
@@ -117,7 +110,7 @@ class Chef
117
110
  action :delete do
118
111
  description "Delete an existing printer port."
119
112
 
120
- if current_resource.exists
113
+ if port_exists?
121
114
  converge_by("Delete #{@new_resource}") do
122
115
  delete_printer_port
123
116
  end
@@ -127,6 +120,16 @@ class Chef
127
120
  end
128
121
 
129
122
  action_class do
123
+ private
124
+
125
+ def port_exists?
126
+ name = new_resource.port_name || "IP_#{new_resource.ipv4_address}"
127
+ port_reg_key = PORTS_REG_KEY + name
128
+
129
+ logger.trace "Checking to see if this reg key exists: '#{port_reg_key}'"
130
+ registry_key_exists?(port_reg_key)
131
+ end
132
+
130
133
  def create_printer_port
131
134
  port_name = new_resource.port_name || "IP_#{new_resource.ipv4_address}"
132
135
 
@@ -21,6 +21,8 @@ require_relative "../resource"
21
21
  class Chef
22
22
  class Resource
23
23
  class WindowsSecurityPolicy < Chef::Resource
24
+ unified_mode true
25
+
24
26
  provides :windows_security_policy
25
27
 
26
28
  # The valid policy_names options found here
@@ -26,6 +26,8 @@ require_relative "../util/path_helper"
26
26
  class Chef
27
27
  class Resource
28
28
  class WindowsShare < Chef::Resource
29
+ unified_mode true
30
+
29
31
  provides :windows_share
30
32
 
31
33
  description "Use the **windows_share** resource to create, modify and remove Windows shares."
@@ -59,7 +61,7 @@ class Chef
59
61
  # Specifies the path of the location of the folder to share. The path must be fully qualified. Relative paths or paths that contain wildcard characters are not permitted.
60
62
  property :path, String,
61
63
  description: "The path of the folder to share. Required when creating. If the share already exists on a different path then it is deleted and re-created.",
62
- coerce: proc { |p| p.gsub(%r{/}, "\\") || p }
64
+ coerce: proc { |p| p.tr("/", "\\") || p }
63
65
 
64
66
  # Specifies an optional description of the SMB share. A description of the share is displayed by running the Get-SmbShare cmdlet. The description may not contain more than 256 characters.
65
67
  property :description, String,
@@ -117,8 +119,6 @@ class Chef
117
119
  # Specifies which files and folders in the SMB share are visible to users. AccessBased: SMB does not the display the files and folders for a share to a user unless that user has rights to access the files and folders. By default, access-based enumeration is disabled for new SMB shares. Unrestricted: SMB displays files and folders to a user even when the user does not have permission to access the items.
118
120
  # property :folder_enumeration_mode, String, equal_to: %(AccessBased Unrestricted)
119
121
 
120
- include Chef::Mixin::PowershellOut
121
-
122
122
  load_current_value do |desired|
123
123
  # this command selects individual objects because EncryptData & CachingMode have underlying
124
124
  # types that get converted to their Integer values by ConvertTo-Json & we need to make sure
@@ -233,6 +233,8 @@ class Chef
233
233
  end
234
234
 
235
235
  action_class do
236
+ private
237
+
236
238
  def different_path?
237
239
  return false if current_resource.nil? # going from nil to something isn't different for our concerns
238
240
  return false if current_resource.path == Chef::Util::PathHelper.cleanpath(new_resource.path)
@@ -21,6 +21,8 @@ require_relative "../resource"
21
21
  class Chef
22
22
  class Resource
23
23
  class WindowsShortcut < Chef::Resource
24
+ unified_mode true
25
+
24
26
  provides(:windows_shortcut) { true }
25
27
 
26
28
  description "Use the **windows_shortcut** resource to create shortcut files on Windows."
@@ -20,6 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class WindowsUac < Chef::Resource
23
+ unified_mode true
24
+
23
25
  provides :windows_uac
24
26
 
25
27
  description 'The *windows_uac* resource configures UAC on Windows hosts by setting registry keys at `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System`'
@@ -21,51 +21,7 @@ require_relative "../resource"
21
21
  class Chef
22
22
  class Resource
23
23
  class WindowsUserPrivilege < Chef::Resource
24
- privilege_opts = %w{SeTrustedCredManAccessPrivilege
25
- SeNetworkLogonRight
26
- SeTcbPrivilege
27
- SeMachineAccountPrivilege
28
- SeIncreaseQuotaPrivilege
29
- SeInteractiveLogonRight
30
- SeRemoteInteractiveLogonRight
31
- SeBackupPrivilege
32
- SeChangeNotifyPrivilege
33
- SeSystemtimePrivilege
34
- SeTimeZonePrivilege
35
- SeCreatePagefilePrivilege
36
- SeCreateTokenPrivilege
37
- SeCreateGlobalPrivilege
38
- SeCreatePermanentPrivilege
39
- SeCreateSymbolicLinkPrivilege
40
- SeDebugPrivilege
41
- SeDenyNetworkLogonRight
42
- SeDenyBatchLogonRight
43
- SeDenyServiceLogonRight
44
- SeDenyInteractiveLogonRight
45
- SeDenyRemoteInteractiveLogonRight
46
- SeEnableDelegationPrivilege
47
- SeRemoteShutdownPrivilege
48
- SeAuditPrivilege
49
- SeImpersonatePrivilege
50
- SeIncreaseWorkingSetPrivilege
51
- SeIncreaseBasePriorityPrivilege
52
- SeLoadDriverPrivilege
53
- SeLockMemoryPrivilege
54
- SeBatchLogonRight
55
- SeServiceLogonRight
56
- SeSecurityPrivilege
57
- SeRelabelPrivilege
58
- SeSystemEnvironmentPrivilege
59
- SeManageVolumePrivilege
60
- SeProfileSingleProcessPrivilege
61
- SeSystemProfilePrivilege
62
- SeUndockPrivilege
63
- SeAssignPrimaryTokenPrivilege
64
- SeRestorePrivilege
65
- SeShutdownPrivilege
66
- SeSyncAgentPrivilege
67
- SeTakeOwnershipPrivilege
68
- }
24
+ unified_mode true
69
25
 
70
26
  provides :windows_user_privilege
71
27
  description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
@@ -123,22 +79,67 @@ class Chef
123
79
  ```
124
80
  DOC
125
81
 
82
+ PRIVILEGE_OPTS = %w{ SeAssignPrimaryTokenPrivilege
83
+ SeAuditPrivilege
84
+ SeBackupPrivilege
85
+ SeBatchLogonRight
86
+ SeChangeNotifyPrivilege
87
+ SeCreateGlobalPrivilege
88
+ SeCreatePagefilePrivilege
89
+ SeCreatePermanentPrivilege
90
+ SeCreateSymbolicLinkPrivilege
91
+ SeCreateTokenPrivilege
92
+ SeDebugPrivilege
93
+ SeDenyBatchLogonRight
94
+ SeDenyInteractiveLogonRight
95
+ SeDenyNetworkLogonRight
96
+ SeDenyRemoteInteractiveLogonRight
97
+ SeDenyServiceLogonRight
98
+ SeEnableDelegationPrivilege
99
+ SeImpersonatePrivilege
100
+ SeIncreaseBasePriorityPrivilege
101
+ SeIncreaseQuotaPrivilege
102
+ SeIncreaseWorkingSetPrivilege
103
+ SeInteractiveLogonRight
104
+ SeLoadDriverPrivilege
105
+ SeLockMemoryPrivilege
106
+ SeMachineAccountPrivilege
107
+ SeManageVolumePrivilege
108
+ SeNetworkLogonRight
109
+ SeProfileSingleProcessPrivilege
110
+ SeRelabelPrivilege
111
+ SeRemoteInteractiveLogonRight
112
+ SeRemoteShutdownPrivilege
113
+ SeRestorePrivilege
114
+ SeSecurityPrivilege
115
+ SeServiceLogonRight
116
+ SeShutdownPrivilege
117
+ SeSyncAgentPrivilege
118
+ SeSystemEnvironmentPrivilege
119
+ SeSystemProfilePrivilege
120
+ SeSystemtimePrivilege
121
+ SeTakeOwnershipPrivilege
122
+ SeTcbPrivilege
123
+ SeTimeZonePrivilege
124
+ SeTrustedCredManAccessPrivilege
125
+ SeUndockPrivilege
126
+ }.freeze
127
+
126
128
  property :principal, String,
127
129
  description: "An optional property to add the user to the given privilege. Use only with add and remove action.",
128
130
  name_property: true
129
131
 
130
- property :users, Array,
131
- description: "An optional property to set the privilege for given users. Use only with set action."
132
+ property :users, [Array, String],
133
+ description: "An optional property to set the privilege for given users. Use only with set action.",
134
+ coerce: proc { |v| Array(v) }
132
135
 
133
136
  property :privilege, [Array, String],
134
- description: "Privilege to set for users.",
137
+ description: "One or more privileges to set for users.",
135
138
  required: true,
136
- coerce: proc { |v| v.is_a?(String) ? Array[v] : v },
139
+ coerce: proc { |v| Array(v) },
137
140
  callbacks: {
138
- "Option privilege must include any of the: #{privilege_opts}" => lambda { |v|
139
- (privilege_opts & v).size == v.size
140
- },
141
- }
141
+ "Privilege property restricted to the following values: #{PRIVILEGE_OPTS}" => lambda { |n| (n - PRIVILEGE_OPTS).empty? },
142
+ }
142
143
 
143
144
  load_current_value do |new_resource|
144
145
  if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
@@ -16,16 +16,13 @@
16
16
  #
17
17
 
18
18
  require_relative "../resource"
19
- require_relative "../mixin/powershell_out"
20
- require_relative "../dist"
19
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
20
 
22
21
  class Chef
23
22
  class Resource
24
23
  class WindowsWorkgroup < Chef::Resource
25
24
  provides :windows_workgroup
26
25
 
27
- include Chef::Mixin::PowershellOut
28
-
29
26
  description "Use the **windows_workgroup** resource to join or change the workgroup of a Windows host."
30
27
  introduced "14.5"
31
28
  examples <<~DOC
@@ -57,12 +54,13 @@ class Chef
57
54
 
58
55
  property :password, String,
59
56
  description: "The password for the local administrator user. Required if using the `user` property.",
57
+ sensitive: true,
60
58
  desired_state: false
61
59
 
62
60
  property :reboot, Symbol,
63
61
  equal_to: %i{never request_reboot reboot_now},
64
- validation_message: "The reboot property accepts :immediate (reboot as soon as the resource completes), :delayed (reboot once the #{Chef::Dist::PRODUCT} run completes), and :never (Don't reboot)",
65
- description: "Controls the system reboot behavior post workgroup joining. Reboot immediately, after the #{Chef::Dist::PRODUCT} run completes, or never. Note that a reboot is necessary for changes to take effect.",
62
+ validation_message: "The reboot property accepts :immediate (reboot as soon as the resource completes), :delayed (reboot once the #{ChefUtils::Dist::Infra::PRODUCT} run completes), and :never (Don't reboot)",
63
+ description: "Controls the system reboot behavior post workgroup joining. Reboot immediately, after the #{ChefUtils::Dist::Infra::PRODUCT} run completes, or never. Note that a reboot is necessary for changes to take effect.",
66
64
  coerce: proc { |x| clarify_reboot(x) },
67
65
  default: :immediate, desired_state: false
68
66
 
@@ -83,6 +81,7 @@ class Chef
83
81
  end
84
82
 
85
83
  # define this again so we can default it to true. Otherwise failures print the password
84
+ # FIXME: this should now be unnecessary with the password property itself marked sensitive?
86
85
  property :sensitive, [TrueClass, FalseClass],
87
86
  default: true, desired_state: false
88
87
 
@@ -17,7 +17,7 @@
17
17
  #
18
18
 
19
19
  require_relative "package"
20
- require_relative "../dist"
20
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
21
 
22
22
  class Chef
23
23
  class Resource
@@ -135,7 +135,7 @@ class Chef
135
135
  coerce: proc { |x| x.is_a?(Array) ? x.to_a : x }
136
136
 
137
137
  property :flush_cache, Hash,
138
- description: "Flush the in-memory cache before or after a Yum operation that installs, upgrades, or removes a package. Accepts a Hash in the form: { :before => true/false, :after => true/false } or an Array in the form [ :before, :after ].\nYum automatically synchronizes remote metadata to a local cache. The #{Chef::Dist::CLIENT} creates a copy of the local cache, and then stores it in-memory during the #{Chef::Dist::CLIENT} run. The in-memory cache allows packages to be installed during the #{Chef::Dist::CLIENT} run without the need to continue synchronizing the remote metadata to the local cache while the #{Chef::Dist::CLIENT} run is in-progress.",
138
+ description: "Flush the in-memory cache before or after a Yum operation that installs, upgrades, or removes a package. Accepts a Hash in the form: { :before => true/false, :after => true/false } or an Array in the form [ :before, :after ].\nYum automatically synchronizes remote metadata to a local cache. The #{ChefUtils::Dist::Infra::CLIENT} creates a copy of the local cache, and then stores it in-memory during the #{ChefUtils::Dist::Infra::CLIENT} run. The in-memory cache allows packages to be installed during the #{ChefUtils::Dist::Infra::CLIENT} run without the need to continue synchronizing the remote metadata to the local cache while the #{ChefUtils::Dist::Infra::CLIENT} run is in-progress.",
139
139
  default: { before: false, after: false },
140
140
  coerce: proc { |v|
141
141
  if v.is_a?(Hash)
@@ -20,8 +20,7 @@ class Chef
20
20
  class StepableIterator
21
21
 
22
22
  def self.for_collection(new_collection)
23
- instance = new(new_collection)
24
- instance
23
+ new(new_collection)
25
24
  end
26
25
 
27
26
  attr_accessor :collection
@@ -19,8 +19,6 @@
19
19
  # limitations under the License.
20
20
  #
21
21
 
22
- require "uri" unless defined?(URI)
23
- require "securerandom" unless defined?(SecureRandom)
24
22
  require_relative "event_dispatch/base"
25
23
 
26
24
  class Chef