chef 16.17.51-universal-mingw32 → 17.0.242-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 (647) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -13
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +6 -8
  7. data/lib/chef/action_collection.rb +1 -1
  8. data/lib/chef/application/base.rb +1 -1
  9. data/lib/chef/application.rb +1 -1
  10. data/lib/chef/applications.rb +0 -1
  11. data/lib/chef/chef_fs/command_line.rb +5 -2
  12. data/lib/chef/chef_fs/file_system.rb +9 -10
  13. data/lib/chef/client.rb +2 -2
  14. data/lib/chef/compliance/default_attributes.rb +4 -3
  15. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  16. data/lib/chef/compliance/reporter/automate.rb +17 -7
  17. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  18. data/lib/chef/compliance/reporter/cli.rb +77 -0
  19. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  20. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  21. data/lib/chef/compliance/runner.rb +65 -27
  22. data/lib/chef/cookbook/gem_installer.rb +1 -5
  23. data/lib/chef/cookbook/synchronizer.rb +3 -5
  24. data/lib/chef/cookbook_loader.rb +2 -4
  25. data/lib/chef/cookbook_uploader.rb +0 -1
  26. data/lib/chef/cookbook_version.rb +4 -26
  27. data/lib/chef/data_bag_item.rb +11 -2
  28. data/lib/chef/data_collector/run_end_message.rb +2 -2
  29. data/lib/chef/delayed_evaluator.rb +4 -0
  30. data/lib/chef/deprecated.rb +6 -12
  31. data/lib/chef/dsl/chef_vault.rb +6 -6
  32. data/lib/chef/dsl/reboot_pending.rb +1 -2
  33. data/lib/chef/exceptions.rb +0 -3
  34. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  35. data/lib/chef/formatters/error_mapper.rb +2 -2
  36. data/lib/chef/group.rb +75 -0
  37. data/lib/chef/http.rb +5 -5
  38. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  39. data/lib/chef/node/attribute.rb +6 -4
  40. data/lib/chef/node/immutable_collections.rb +13 -0
  41. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  42. data/lib/chef/node.rb +19 -20
  43. data/lib/chef/org.rb +3 -2
  44. data/lib/chef/policy_builder/policyfile.rb +0 -5
  45. data/lib/chef/property.rb +18 -0
  46. data/lib/chef/provider/cron.rb +1 -1
  47. data/lib/chef/provider/execute.rb +2 -1
  48. data/lib/chef/provider/file.rb +1 -1
  49. data/lib/chef/provider/git.rb +5 -7
  50. data/lib/chef/provider/group/dscl.rb +1 -1
  51. data/lib/chef/provider/group/groupadd.rb +3 -3
  52. data/lib/chef/provider/group/groupmod.rb +3 -3
  53. data/lib/chef/provider/group/pw.rb +3 -3
  54. data/lib/chef/provider/ifconfig.rb +2 -2
  55. data/lib/chef/provider/link.rb +2 -2
  56. data/lib/chef/provider/mount/aix.rb +3 -3
  57. data/lib/chef/provider/mount/mount.rb +5 -5
  58. data/lib/chef/provider/mount/windows.rb +1 -1
  59. data/lib/chef/provider/mount.rb +5 -5
  60. data/lib/chef/provider/package/apt.rb +27 -1
  61. data/lib/chef/provider/package/deb.rb +3 -3
  62. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  63. data/lib/chef/provider/package/portage.rb +2 -2
  64. data/lib/chef/provider/package/powershell.rb +0 -5
  65. data/lib/chef/provider/package/rubygems.rb +9 -15
  66. data/lib/chef/provider/package/windows.rb +2 -4
  67. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  68. data/lib/chef/provider/package.rb +17 -21
  69. data/lib/chef/provider/route.rb +2 -2
  70. data/lib/chef/provider/service/aixinit.rb +1 -1
  71. data/lib/chef/provider/service/debian.rb +1 -1
  72. data/lib/chef/provider/service/freebsd.rb +15 -21
  73. data/lib/chef/provider/service/macosx.rb +4 -4
  74. data/lib/chef/provider/service/systemd.rb +43 -14
  75. data/lib/chef/provider/service/upstart.rb +2 -13
  76. data/lib/chef/provider/service/windows.rb +12 -12
  77. data/lib/chef/provider/service.rb +6 -6
  78. data/lib/chef/provider/subversion.rb +10 -12
  79. data/lib/chef/provider/systemd_unit.rb +36 -10
  80. data/lib/chef/provider/template/content.rb +3 -7
  81. data/lib/chef/provider/user/dscl.rb +1 -1
  82. data/lib/chef/provider/user/mac.rb +17 -20
  83. data/lib/chef/provider/user/pw.rb +1 -1
  84. data/lib/chef/provider/user/windows.rb +1 -1
  85. data/lib/chef/provider/user.rb +2 -2
  86. data/lib/chef/provider/zypper_repository.rb +2 -2
  87. data/lib/chef/provider.rb +1 -1
  88. data/lib/chef/providers.rb +0 -1
  89. data/lib/chef/resource/alternatives.rb +6 -6
  90. data/lib/chef/resource/apt_package.rb +1 -1
  91. data/lib/chef/resource/apt_preference.rb +2 -2
  92. data/lib/chef/resource/apt_repository.rb +6 -6
  93. data/lib/chef/resource/apt_update.rb +3 -2
  94. data/lib/chef/resource/archive_file.rb +8 -9
  95. data/lib/chef/resource/breakpoint.rb +1 -1
  96. data/lib/chef/resource/build_essential.rb +2 -6
  97. data/lib/chef/resource/chef_client_config.rb +2 -2
  98. data/lib/chef/resource/chef_client_cron.rb +4 -4
  99. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  100. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  101. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  102. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  103. data/lib/chef/resource/chef_handler.rb +3 -7
  104. data/lib/chef/resource/chef_sleep.rb +1 -1
  105. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  106. data/lib/chef/resource/chocolatey_config.rb +2 -6
  107. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  108. data/lib/chef/resource/chocolatey_source.rb +4 -10
  109. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  110. data/lib/chef/resource/cron_access.rb +2 -4
  111. data/lib/chef/resource/dmg_package.rb +6 -10
  112. data/lib/chef/resource/dpkg_package.rb +1 -1
  113. data/lib/chef/resource/execute.rb +6 -1
  114. data/lib/chef/resource/file.rb +1 -1
  115. data/lib/chef/resource/group.rb +2 -2
  116. data/lib/chef/resource/homebrew_cask.rb +5 -15
  117. data/lib/chef/resource/homebrew_tap.rb +2 -6
  118. data/lib/chef/resource/hostname.rb +21 -17
  119. data/lib/chef/resource/http_request.rb +1 -1
  120. data/lib/chef/resource/kernel_module.rb +6 -17
  121. data/lib/chef/resource/locale.rb +2 -3
  122. data/lib/chef/resource/lwrp_base.rb +4 -0
  123. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  124. data/lib/chef/resource/mdadm.rb +53 -7
  125. data/lib/chef/resource/mount.rb +3 -2
  126. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  127. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  128. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  129. data/lib/chef/resource/plist.rb +7 -7
  130. data/lib/chef/resource/powershell_script.rb +1 -1
  131. data/lib/chef/resource/remote_file.rb +1 -1
  132. data/lib/chef/resource/rhsm_errata.rb +16 -1
  133. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  134. data/lib/chef/resource/rhsm_register.rb +12 -6
  135. data/lib/chef/resource/rhsm_repo.rb +2 -6
  136. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  137. data/lib/chef/resource/scm/git.rb +1 -1
  138. data/lib/chef/resource/sudo.rb +6 -6
  139. data/lib/chef/resource/support/client.erb +0 -6
  140. data/lib/chef/resource/sysctl.rb +2 -6
  141. data/lib/chef/resource/systemd_unit.rb +3 -3
  142. data/lib/chef/resource/template.rb +1 -1
  143. data/lib/chef/resource/timezone.rb +1 -3
  144. data/lib/chef/resource/user/mac_user.rb +1 -1
  145. data/lib/chef/resource/user_ulimit.rb +2 -3
  146. data/lib/chef/resource/windows_ad_join.rb +2 -6
  147. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  148. data/lib/chef/resource/windows_auto_run.rb +2 -5
  149. data/lib/chef/resource/windows_certificate.rb +207 -73
  150. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  151. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  152. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  153. data/lib/chef/resource/windows_dns_record.rb +2 -6
  154. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  155. data/lib/chef/resource/windows_env.rb +5 -4
  156. data/lib/chef/resource/windows_feature.rb +3 -9
  157. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  158. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  159. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  160. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  161. data/lib/chef/resource/windows_font.rb +2 -4
  162. data/lib/chef/resource/windows_pagefile.rb +2 -6
  163. data/lib/chef/resource/windows_path.rb +2 -2
  164. data/lib/chef/resource/windows_printer.rb +4 -4
  165. data/lib/chef/resource/windows_printer_port.rb +6 -6
  166. data/lib/chef/resource/windows_security_policy.rb +9 -12
  167. data/lib/chef/resource/windows_share.rb +14 -21
  168. data/lib/chef/resource/windows_shortcut.rb +4 -6
  169. data/lib/chef/resource/windows_task.rb +17 -5
  170. data/lib/chef/resource/windows_uac.rb +2 -4
  171. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  172. data/lib/chef/resource/windows_workgroup.rb +1 -2
  173. data/lib/chef/resource.rb +1 -1
  174. data/lib/chef/resource_reporter.rb +1 -1
  175. data/lib/chef/resources.rb +0 -1
  176. data/lib/chef/shell/ext.rb +3 -3
  177. data/lib/chef/user.rb +0 -1
  178. data/lib/chef/user_v1.rb +3 -4
  179. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  180. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  181. data/lib/chef/version.rb +1 -1
  182. data/lib/chef/win32/api.rb +2 -9
  183. data/lib/chef/win32/registry.rb +4 -2
  184. data/lib/chef/win32/version.rb +1 -2
  185. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  186. data/spec/data/lwrp/resources/bar.rb +2 -0
  187. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  188. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  189. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  190. data/spec/data/lwrp/resources/foo.rb +2 -0
  191. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  192. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  193. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  194. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  195. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  196. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  197. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  198. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  199. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  200. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  201. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  202. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  203. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  206. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  207. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  208. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  209. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  210. data/spec/functional/resource/apt_package_spec.rb +1 -1
  211. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  212. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  213. data/spec/functional/resource/group_spec.rb +1 -5
  214. data/spec/functional/resource/link_spec.rb +0 -8
  215. data/spec/functional/resource/registry_spec.rb +8 -8
  216. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  217. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  218. data/spec/functional/version_spec.rb +1 -1
  219. data/spec/functional/win32/registry_spec.rb +1 -1
  220. data/spec/integration/client/client_spec.rb +5 -2
  221. data/spec/integration/client/exit_code_spec.rb +1 -1
  222. data/spec/integration/client/ipv6_spec.rb +1 -1
  223. data/spec/integration/compliance/compliance_spec.rb +1 -1
  224. data/spec/integration/ohai/ohai_spec.rb +7 -6
  225. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  226. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  227. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  228. data/spec/integration/recipes/notifies_spec.rb +15 -1
  229. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  230. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  231. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  232. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  233. data/spec/spec_helper.rb +10 -13
  234. data/spec/support/chef_helpers.rb +0 -16
  235. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  236. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  237. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  238. data/spec/support/matchers/leak.rb +7 -9
  239. data/spec/support/platform_helpers.rb +1 -8
  240. data/spec/support/shared/integration/integration_helper.rb +0 -1
  241. data/spec/support/shared/unit/script_resource.rb +2 -2
  242. data/spec/unit/application/solo_spec.rb +2 -2
  243. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  244. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  245. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  246. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  247. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  248. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  249. data/spec/unit/compliance/runner_spec.rb +30 -4
  250. data/spec/unit/cookbook_version_spec.rb +0 -52
  251. data/spec/unit/data_bag_item_spec.rb +1 -6
  252. data/spec/unit/data_collector_spec.rb +2 -71
  253. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  254. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  255. data/spec/unit/lwrp_spec.rb +1 -1
  256. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  257. data/spec/unit/node/attribute_spec.rb +1 -1
  258. data/spec/unit/node_spec.rb +78 -0
  259. data/spec/unit/org_group_spec.rb +45 -0
  260. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  261. data/spec/unit/property_spec.rb +23 -22
  262. data/spec/unit/provider/cron_spec.rb +1 -1
  263. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  264. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  265. data/spec/unit/provider/group/pw_spec.rb +2 -2
  266. data/spec/unit/provider/group_spec.rb +1 -1
  267. data/spec/unit/provider/package/apt_spec.rb +84 -18
  268. data/spec/unit/provider/package/deb_spec.rb +3 -3
  269. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  270. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  271. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  272. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  273. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  274. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  275. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  276. data/spec/unit/provider/service/windows_spec.rb +2 -2
  277. data/spec/unit/provider/subversion_spec.rb +2 -2
  278. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  279. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  280. data/spec/unit/provider_spec.rb +0 -8
  281. data/spec/unit/resource/archive_file_spec.rb +1 -13
  282. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  283. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  284. data/spec/unit/resource/mount_spec.rb +0 -10
  285. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  286. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  287. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  288. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  289. data/spec/unit/resource/windows_task_spec.rb +1 -1
  290. data/spec/unit/resource_spec.rb +0 -5
  291. data/spec/unit/user_spec.rb +1 -1
  292. data/spec/unit/user_v1_spec.rb +6 -4
  293. data/tasks/rspec.rb +15 -7
  294. metadata +19 -382
  295. data/bin/knife +0 -24
  296. data/lib/chef/application/knife.rb +0 -234
  297. data/lib/chef/application/windows_service.rb +0 -338
  298. data/lib/chef/application/windows_service_manager.rb +0 -205
  299. data/lib/chef/chef_fs/knife.rb +0 -160
  300. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  301. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  302. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  303. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  304. data/lib/chef/knife/acl_add.rb +0 -57
  305. data/lib/chef/knife/acl_base.rb +0 -183
  306. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  307. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  308. data/lib/chef/knife/acl_remove.rb +0 -62
  309. data/lib/chef/knife/acl_show.rb +0 -56
  310. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  311. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  312. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  313. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  314. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  315. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  316. data/lib/chef/knife/bootstrap.rb +0 -1192
  317. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  318. data/lib/chef/knife/client_create.rb +0 -101
  319. data/lib/chef/knife/client_delete.rb +0 -62
  320. data/lib/chef/knife/client_edit.rb +0 -52
  321. data/lib/chef/knife/client_key_create.rb +0 -73
  322. data/lib/chef/knife/client_key_delete.rb +0 -80
  323. data/lib/chef/knife/client_key_edit.rb +0 -83
  324. data/lib/chef/knife/client_key_list.rb +0 -73
  325. data/lib/chef/knife/client_key_show.rb +0 -80
  326. data/lib/chef/knife/client_list.rb +0 -41
  327. data/lib/chef/knife/client_reregister.rb +0 -58
  328. data/lib/chef/knife/client_show.rb +0 -48
  329. data/lib/chef/knife/config_get.rb +0 -39
  330. data/lib/chef/knife/config_get_profile.rb +0 -37
  331. data/lib/chef/knife/config_list.rb +0 -139
  332. data/lib/chef/knife/config_list_profiles.rb +0 -37
  333. data/lib/chef/knife/config_show.rb +0 -127
  334. data/lib/chef/knife/config_use.rb +0 -61
  335. data/lib/chef/knife/config_use_profile.rb +0 -47
  336. data/lib/chef/knife/configure.rb +0 -150
  337. data/lib/chef/knife/configure_client.rb +0 -48
  338. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  339. data/lib/chef/knife/cookbook_delete.rb +0 -151
  340. data/lib/chef/knife/cookbook_download.rb +0 -142
  341. data/lib/chef/knife/cookbook_list.rb +0 -47
  342. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  343. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  344. data/lib/chef/knife/cookbook_show.rb +0 -98
  345. data/lib/chef/knife/cookbook_upload.rb +0 -292
  346. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  347. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  348. data/lib/chef/knife/core/formatting_options.rb +0 -49
  349. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  350. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  351. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  352. data/lib/chef/knife/core/node_editor.rb +0 -130
  353. data/lib/chef/knife/core/node_presenter.rb +0 -133
  354. data/lib/chef/knife/core/object_loader.rb +0 -115
  355. data/lib/chef/knife/core/status_presenter.rb +0 -147
  356. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  357. data/lib/chef/knife/core/text_formatter.rb +0 -85
  358. data/lib/chef/knife/core/ui.rb +0 -338
  359. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  360. data/lib/chef/knife/data_bag_create.rb +0 -81
  361. data/lib/chef/knife/data_bag_delete.rb +0 -49
  362. data/lib/chef/knife/data_bag_edit.rb +0 -74
  363. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  364. data/lib/chef/knife/data_bag_list.rb +0 -42
  365. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  366. data/lib/chef/knife/data_bag_show.rb +0 -69
  367. data/lib/chef/knife/delete.rb +0 -125
  368. data/lib/chef/knife/deps.rb +0 -156
  369. data/lib/chef/knife/diff.rb +0 -83
  370. data/lib/chef/knife/download.rb +0 -84
  371. data/lib/chef/knife/edit.rb +0 -88
  372. data/lib/chef/knife/environment_compare.rb +0 -128
  373. data/lib/chef/knife/environment_create.rb +0 -52
  374. data/lib/chef/knife/environment_delete.rb +0 -44
  375. data/lib/chef/knife/environment_edit.rb +0 -44
  376. data/lib/chef/knife/environment_from_file.rb +0 -84
  377. data/lib/chef/knife/environment_list.rb +0 -41
  378. data/lib/chef/knife/environment_show.rb +0 -47
  379. data/lib/chef/knife/exec.rb +0 -99
  380. data/lib/chef/knife/group_add.rb +0 -55
  381. data/lib/chef/knife/group_create.rb +0 -49
  382. data/lib/chef/knife/group_destroy.rb +0 -53
  383. data/lib/chef/knife/group_list.rb +0 -43
  384. data/lib/chef/knife/group_remove.rb +0 -56
  385. data/lib/chef/knife/group_show.rb +0 -49
  386. data/lib/chef/knife/key_create.rb +0 -112
  387. data/lib/chef/knife/key_create_base.rb +0 -50
  388. data/lib/chef/knife/key_delete.rb +0 -55
  389. data/lib/chef/knife/key_edit.rb +0 -118
  390. data/lib/chef/knife/key_edit_base.rb +0 -55
  391. data/lib/chef/knife/key_list.rb +0 -90
  392. data/lib/chef/knife/key_list_base.rb +0 -45
  393. data/lib/chef/knife/key_show.rb +0 -53
  394. data/lib/chef/knife/list.rb +0 -177
  395. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  396. data/lib/chef/knife/node_create.rb +0 -47
  397. data/lib/chef/knife/node_delete.rb +0 -46
  398. data/lib/chef/knife/node_edit.rb +0 -70
  399. data/lib/chef/knife/node_environment_set.rb +0 -53
  400. data/lib/chef/knife/node_from_file.rb +0 -51
  401. data/lib/chef/knife/node_list.rb +0 -44
  402. data/lib/chef/knife/node_policy_set.rb +0 -79
  403. data/lib/chef/knife/node_run_list_add.rb +0 -104
  404. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  405. data/lib/chef/knife/node_run_list_set.rb +0 -66
  406. data/lib/chef/knife/node_show.rb +0 -63
  407. data/lib/chef/knife/null.rb +0 -12
  408. data/lib/chef/knife/raw.rb +0 -123
  409. data/lib/chef/knife/recipe_list.rb +0 -32
  410. data/lib/chef/knife/rehash.rb +0 -50
  411. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  412. data/lib/chef/knife/role_create.rb +0 -53
  413. data/lib/chef/knife/role_delete.rb +0 -46
  414. data/lib/chef/knife/role_edit.rb +0 -45
  415. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  416. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  417. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  418. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  419. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  420. data/lib/chef/knife/role_from_file.rb +0 -51
  421. data/lib/chef/knife/role_list.rb +0 -42
  422. data/lib/chef/knife/role_run_list_add.rb +0 -87
  423. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  424. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  425. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  426. data/lib/chef/knife/role_run_list_set.rb +0 -69
  427. data/lib/chef/knife/role_show.rb +0 -48
  428. data/lib/chef/knife/search.rb +0 -194
  429. data/lib/chef/knife/serve.rb +0 -65
  430. data/lib/chef/knife/show.rb +0 -72
  431. data/lib/chef/knife/ssh.rb +0 -645
  432. data/lib/chef/knife/ssl_check.rb +0 -284
  433. data/lib/chef/knife/ssl_fetch.rb +0 -161
  434. data/lib/chef/knife/status.rb +0 -95
  435. data/lib/chef/knife/supermarket_download.rb +0 -121
  436. data/lib/chef/knife/supermarket_install.rb +0 -192
  437. data/lib/chef/knife/supermarket_list.rb +0 -76
  438. data/lib/chef/knife/supermarket_search.rb +0 -53
  439. data/lib/chef/knife/supermarket_share.rb +0 -166
  440. data/lib/chef/knife/supermarket_show.rb +0 -66
  441. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  442. data/lib/chef/knife/tag_create.rb +0 -52
  443. data/lib/chef/knife/tag_delete.rb +0 -60
  444. data/lib/chef/knife/tag_list.rb +0 -47
  445. data/lib/chef/knife/upload.rb +0 -86
  446. data/lib/chef/knife/user_create.rb +0 -107
  447. data/lib/chef/knife/user_delete.rb +0 -44
  448. data/lib/chef/knife/user_dissociate.rb +0 -42
  449. data/lib/chef/knife/user_edit.rb +0 -52
  450. data/lib/chef/knife/user_invite_add.rb +0 -43
  451. data/lib/chef/knife/user_invite_list.rb +0 -34
  452. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  453. data/lib/chef/knife/user_key_create.rb +0 -73
  454. data/lib/chef/knife/user_key_delete.rb +0 -80
  455. data/lib/chef/knife/user_key_edit.rb +0 -83
  456. data/lib/chef/knife/user_key_list.rb +0 -73
  457. data/lib/chef/knife/user_key_show.rb +0 -80
  458. data/lib/chef/knife/user_list.rb +0 -42
  459. data/lib/chef/knife/user_reregister.rb +0 -59
  460. data/lib/chef/knife/user_show.rb +0 -48
  461. data/lib/chef/knife/xargs.rb +0 -282
  462. data/lib/chef/knife/yaml_convert.rb +0 -91
  463. data/lib/chef/knife.rb +0 -665
  464. data/lib/chef/resource/user/dscl_user.rb +0 -35
  465. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  466. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  467. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  468. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  469. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  470. data/spec/functional/knife/configure_spec.rb +0 -33
  471. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  472. data/spec/functional/knife/exec_spec.rb +0 -55
  473. data/spec/functional/knife/rehash_spec.rb +0 -39
  474. data/spec/functional/knife/smoke_test.rb +0 -42
  475. data/spec/functional/knife/ssh_spec.rb +0 -352
  476. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  477. data/spec/functional/resource/windows_service_spec.rb +0 -105
  478. data/spec/functional/win32/service_manager_spec.rb +0 -220
  479. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  480. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  481. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  482. data/spec/integration/knife/chefignore_spec.rb +0 -301
  483. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  484. data/spec/integration/knife/client_create_spec.rb +0 -70
  485. data/spec/integration/knife/client_delete_spec.rb +0 -64
  486. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  487. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  488. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  489. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  490. data/spec/integration/knife/client_list_spec.rb +0 -49
  491. data/spec/integration/knife/client_show_spec.rb +0 -37
  492. data/spec/integration/knife/common_options_spec.rb +0 -174
  493. data/spec/integration/knife/config_list_spec.rb +0 -220
  494. data/spec/integration/knife/config_show_spec.rb +0 -192
  495. data/spec/integration/knife/config_use_spec.rb +0 -198
  496. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  497. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  498. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  499. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  500. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  501. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  502. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  503. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  504. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  505. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  506. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  507. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  508. data/spec/integration/knife/delete_spec.rb +0 -1018
  509. data/spec/integration/knife/deps_spec.rb +0 -703
  510. data/spec/integration/knife/diff_spec.rb +0 -605
  511. data/spec/integration/knife/download_spec.rb +0 -1336
  512. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  513. data/spec/integration/knife/environment_create_spec.rb +0 -41
  514. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  515. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  516. data/spec/integration/knife/environment_list_spec.rb +0 -42
  517. data/spec/integration/knife/environment_show_spec.rb +0 -77
  518. data/spec/integration/knife/list_spec.rb +0 -1060
  519. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  520. data/spec/integration/knife/node_create_spec.rb +0 -47
  521. data/spec/integration/knife/node_delete_spec.rb +0 -48
  522. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  523. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  524. data/spec/integration/knife/node_list_spec.rb +0 -45
  525. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  526. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  527. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  528. data/spec/integration/knife/node_show_spec.rb +0 -36
  529. data/spec/integration/knife/raw_spec.rb +0 -297
  530. data/spec/integration/knife/redirection_spec.rb +0 -64
  531. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  532. data/spec/integration/knife/role_create_spec.rb +0 -41
  533. data/spec/integration/knife/role_delete_spec.rb +0 -48
  534. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  535. data/spec/integration/knife/role_list_spec.rb +0 -45
  536. data/spec/integration/knife/role_show_spec.rb +0 -51
  537. data/spec/integration/knife/search_node_spec.rb +0 -40
  538. data/spec/integration/knife/serve_spec.rb +0 -92
  539. data/spec/integration/knife/show_spec.rb +0 -197
  540. data/spec/integration/knife/upload_spec.rb +0 -1616
  541. data/spec/support/shared/functional/knife.rb +0 -37
  542. data/spec/support/shared/functional/win32_service.rb +0 -57
  543. data/spec/support/shared/integration/knife_support.rb +0 -192
  544. data/spec/support/shared/unit/knife_shared.rb +0 -39
  545. data/spec/unit/application/knife_spec.rb +0 -241
  546. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  547. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  548. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  549. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  550. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  551. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  552. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  553. data/spec/unit/knife/client_create_spec.rb +0 -169
  554. data/spec/unit/knife/client_delete_spec.rb +0 -99
  555. data/spec/unit/knife/client_edit_spec.rb +0 -53
  556. data/spec/unit/knife/client_list_spec.rb +0 -34
  557. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  558. data/spec/unit/knife/client_show_spec.rb +0 -52
  559. data/spec/unit/knife/configure_client_spec.rb +0 -81
  560. data/spec/unit/knife/configure_spec.rb +0 -190
  561. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  562. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  563. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  564. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  565. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  566. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  567. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  568. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  569. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  570. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  571. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  572. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  573. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  574. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  575. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  576. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  577. data/spec/unit/knife/core/ui_spec.rb +0 -656
  578. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  579. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  580. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  581. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  582. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  583. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  584. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  585. data/spec/unit/knife/environment_create_spec.rb +0 -91
  586. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  587. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  588. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  589. data/spec/unit/knife/environment_list_spec.rb +0 -54
  590. data/spec/unit/knife/environment_show_spec.rb +0 -52
  591. data/spec/unit/knife/key_create_spec.rb +0 -223
  592. data/spec/unit/knife/key_delete_spec.rb +0 -133
  593. data/spec/unit/knife/key_edit_spec.rb +0 -264
  594. data/spec/unit/knife/key_helper.rb +0 -74
  595. data/spec/unit/knife/key_list_spec.rb +0 -216
  596. data/spec/unit/knife/key_show_spec.rb +0 -126
  597. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  598. data/spec/unit/knife/node_delete_spec.rb +0 -77
  599. data/spec/unit/knife/node_edit_spec.rb +0 -116
  600. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  601. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  602. data/spec/unit/knife/node_list_spec.rb +0 -62
  603. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  604. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  605. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  606. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  607. data/spec/unit/knife/node_show_spec.rb +0 -65
  608. data/spec/unit/knife/raw_spec.rb +0 -43
  609. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  610. data/spec/unit/knife/role_create_spec.rb +0 -80
  611. data/spec/unit/knife/role_delete_spec.rb +0 -67
  612. data/spec/unit/knife/role_edit_spec.rb +0 -77
  613. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  614. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  615. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  616. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  617. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  618. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  619. data/spec/unit/knife/role_list_spec.rb +0 -54
  620. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  621. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  622. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  623. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  624. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  625. data/spec/unit/knife/role_show_spec.rb +0 -59
  626. data/spec/unit/knife/ssh_spec.rb +0 -403
  627. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  628. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  629. data/spec/unit/knife/status_spec.rb +0 -112
  630. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  631. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  632. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  633. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  634. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  635. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  636. data/spec/unit/knife/tag_create_spec.rb +0 -23
  637. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  638. data/spec/unit/knife/tag_list_spec.rb +0 -23
  639. data/spec/unit/knife/user_create_spec.rb +0 -184
  640. data/spec/unit/knife/user_delete_spec.rb +0 -46
  641. data/spec/unit/knife/user_edit_spec.rb +0 -48
  642. data/spec/unit/knife/user_list_spec.rb +0 -36
  643. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  644. data/spec/unit/knife/user_show_spec.rb +0 -46
  645. data/spec/unit/knife_spec.rb +0 -634
  646. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  647. data/spec/unit/windows_service_spec.rb +0 -118
@@ -62,7 +62,7 @@ class Chef
62
62
  coerce: proc { |s| Integer(s) },
63
63
  name_property: true
64
64
 
65
- action :sleep do
65
+ action :sleep, description: "Pause the #{ChefUtils::Dist::Infra::PRODUCT} run for a specified number of seconds" do
66
66
  converge_by("sleep #{new_resource.seconds} seconds") do
67
67
  sleep(new_resource.seconds)
68
68
  end
@@ -88,8 +88,7 @@ class Chef
88
88
 
89
89
  end
90
90
 
91
- action :create do
92
- description "Creates the item, or updates it if it already exists."
91
+ action :create, description: "Creates the item, or updates it if it already exists." do
93
92
 
94
93
  converge_if_changed do
95
94
  item = ChefVault::Item.new(new_resource.data_bag, new_resource.id)
@@ -111,15 +110,11 @@ class Chef
111
110
  end
112
111
  end
113
112
 
114
- action :create_if_missing do
115
- description "Calls the create action unless it exists."
116
-
113
+ action :create_if_missing, description: "Calls the create action unless it exists." do
117
114
  action_create if current_resource.nil?
118
115
  end
119
116
 
120
- action :delete do
121
- description "Deletes the item and the item's keys ('id'_keys)."
122
-
117
+ action :delete, description: "Deletes the item and the item's keys ('id'_keys)." do
123
118
  chef_data_bag_item new_resource.id do
124
119
  data_bag new_resource.data_bag
125
120
  action :delete
@@ -68,9 +68,7 @@ class Chef
68
68
  data ? data.attribute("value").to_s : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
69
69
  end
70
70
 
71
- action :set do
72
- description "Sets a Chocolatey config value."
73
-
71
+ action :set, description: "Sets a Chocolatey config value." do
74
72
  raise "#{new_resource}: When adding a Chocolatey config you must pass the 'value' property!" unless new_resource.value
75
73
 
76
74
  converge_if_changed do
@@ -78,9 +76,7 @@ class Chef
78
76
  end
79
77
  end
80
78
 
81
- action :unset do
82
- description "Unsets a Chocolatey config value."
83
-
79
+ action :unset, description: "Unsets a Chocolatey config value." do
84
80
  if current_resource
85
81
  converge_by("unset Chocolatey config '#{new_resource.config_key}'") do
86
82
  shell_out!(choco_cmd("unset"))
@@ -65,9 +65,7 @@ class Chef
65
65
  data ? data.attribute("enabled").to_s : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
66
66
  end
67
67
 
68
- action :enable do
69
- description "Enables a named Chocolatey feature."
70
-
68
+ action :enable, description: "Enables a named Chocolatey feature" do
71
69
  if current_resource.feature_state != true
72
70
  converge_by("enable Chocolatey feature '#{new_resource.feature_name}'") do
73
71
  shell_out!(choco_cmd("enable"))
@@ -75,9 +73,7 @@ class Chef
75
73
  end
76
74
  end
77
75
 
78
- action :disable do
79
- description "Disables a named Chocolatey feature."
80
-
76
+ action :disable, description: "Disables a named Chocolatey feature" do
81
77
  if current_resource.feature_state == true
82
78
  converge_by("disable Chocolatey feature '#{new_resource.feature_name}'") do
83
79
  shell_out!(choco_cmd("disable"))
@@ -89,8 +89,7 @@ class Chef
89
89
  data ? data.attributes : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
90
90
  end
91
91
 
92
- action :add do
93
- description "Adds a Chocolatey source."
92
+ action :add, description: "Adds a Chocolatey source" do
94
93
 
95
94
  raise "#{new_resource}: When adding a Chocolatey source you must pass the 'source' property!" unless new_resource.source
96
95
 
@@ -99,8 +98,7 @@ class Chef
99
98
  end
100
99
  end
101
100
 
102
- action :remove do
103
- description "Removes a Chocolatey source."
101
+ action :remove, description: "Removes a Chocolatey source" do
104
102
 
105
103
  if current_resource
106
104
  converge_by("remove Chocolatey source '#{new_resource.source_name}'") do
@@ -109,9 +107,7 @@ class Chef
109
107
  end
110
108
  end
111
109
 
112
- action :disable do
113
- description "Disables a Chocolatey source."
114
-
110
+ action :disable, description: "Disables a Chocolatey source. **New in Chef Infra Client 15.1.**" do
115
111
  if current_resource.disabled != true
116
112
  converge_by("disable Chocolatey source '#{new_resource.source_name}'") do
117
113
  shell_out!(choco_cmd("disable"))
@@ -119,9 +115,7 @@ class Chef
119
115
  end
120
116
  end
121
117
 
122
- action :enable do
123
- description "Enables a Chocolatey source."
124
-
118
+ action :enable, description: "Enables a Chocolatey source. **New in Chef Infra Client 15.1.**" do
125
119
  if current_resource.disabled == true
126
120
  converge_by("enable Chocolatey source '#{new_resource.source_name}'") do
127
121
  shell_out!(choco_cmd("enable"))
@@ -61,7 +61,7 @@ property :user, String,
61
61
 
62
62
  property :environment, Hash,
63
63
  description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`. **Note**: These variables must exist for a command to be run successfully.",
64
- default: lazy { {} }
64
+ default: {}
65
65
 
66
66
  property :time_out, Hash,
67
67
  description: "A Hash of timeouts in the form of `({'OPTION' => 'VALUE'})`. Accepted valid options are:
@@ -69,7 +69,7 @@ property :time_out, Hash,
69
69
  - `foreground` (BOOL, default: 'false'),
70
70
  - `kill-after` (in seconds),
71
71
  - `signal` (a name like 'HUP' or a number)",
72
- default: lazy { {} },
72
+ default: {},
73
73
  introduced: "15.7",
74
74
  coerce: proc { |h|
75
75
  if h.is_a?(Hash)
@@ -64,8 +64,7 @@ class Chef
64
64
  "default" => "/etc",
65
65
  }.freeze
66
66
 
67
- action :allow do
68
- description "Add the user to the cron.allow file."
67
+ action :allow, description: "Add the user to the cron.allow file" do
69
68
  allow_path = ::File.join(value_for_platform_family(CRON_PATHS), "cron.allow")
70
69
 
71
70
  with_run_context :root do
@@ -81,8 +80,7 @@ class Chef
81
80
  end
82
81
  end
83
82
 
84
- action :deny do
85
- description "Add the user to the cron.deny file."
83
+ action :deny, description: "Add the user to the cron.deny file." do
86
84
  deny_path = ::File.join(value_for_platform_family(CRON_PATHS), "cron.deny")
87
85
 
88
86
  with_run_context :root do
@@ -121,9 +121,7 @@ class Chef
121
121
  end
122
122
  end
123
123
 
124
- action :install do
125
- description "Installs the application."
126
-
124
+ action :install, description: "Installs the application" do
127
125
  if current_resource.nil?
128
126
  if new_resource.source
129
127
  remote_file dmg_file do
@@ -171,13 +169,11 @@ class Chef
171
169
  action_class do
172
170
  # @return [String] the path to the dmg file
173
171
  def dmg_file
174
- @dmg_file ||= begin
175
- if new_resource.file.nil?
176
- "#{Chef::Config[:file_cache_path]}/#{new_resource.dmg_name}.dmg"
177
- else
178
- new_resource.file
179
- end
180
- end
172
+ @dmg_file ||= if new_resource.file.nil?
173
+ "#{Chef::Config[:file_cache_path]}/#{new_resource.dmg_name}.dmg"
174
+ else
175
+ new_resource.file
176
+ end
181
177
  end
182
178
 
183
179
  # @return [String] the hdiutil flag for handling DMGs with a password
@@ -36,7 +36,7 @@ class Chef
36
36
 
37
37
  property :response_file_variables, Hash,
38
38
  description: "A Hash of response file variables in the form of {'VARIABLE' => 'VALUE'}.",
39
- default: lazy { {} }, desired_state: false
39
+ default: {}, desired_state: false
40
40
  end
41
41
  end
42
42
  end
@@ -572,6 +572,10 @@ class Chef
572
572
  introduced: "16.2",
573
573
  description: "An optional property to set the input sent to the command as STDIN."
574
574
 
575
+ property :login, [ TrueClass, FalseClass ], default: false,
576
+ introduced: "17.0",
577
+ description: "Use a login shell to run the commands instead of inheriting the existing execution environment."
578
+
575
579
  alias :env :environment
576
580
 
577
581
  def self.set_guard_inherited_attributes(*inherited_attributes)
@@ -666,7 +670,8 @@ class Chef
666
670
  :group,
667
671
  :password,
668
672
  :user,
669
- :umask
673
+ :umask,
674
+ :login
670
675
  )
671
676
 
672
677
  end
@@ -81,7 +81,7 @@ class Chef
81
81
  property :manage_symlink_source, [ TrueClass, FalseClass ], desired_state: false,
82
82
  description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, #{ChefUtils::Dist::Infra::PRODUCT} will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, #{ChefUtils::Dist::Infra::PRODUCT} will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
83
83
 
84
- property :verifications, Array, default: lazy { [] }
84
+ property :verifications, Array, default: lazy { [] }, desired_state: false, skip_docs: true
85
85
 
86
86
  def verify(command = nil, opts = {}, &block)
87
87
  unless command.nil? || [String, Symbol].include?(command.class)
@@ -37,11 +37,11 @@ class Chef
37
37
  property :gid, [ String, Integer ],
38
38
  description: "The identifier for the group."
39
39
 
40
- property :members, [String, Array], default: lazy { [] },
40
+ property :members, [String, Array], default: [],
41
41
  coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
42
42
  description: "Which users should be set or appended to a group. When more than one group member is identified, the list of members should be an array: members ['user1', 'user2']."
43
43
 
44
- property :excluded_members, [String, Array], default: lazy { [] },
44
+ property :excluded_members, [String, Array], default: [],
45
45
  coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
46
46
  description: "Remove users from a group. May only be used when append is set to true."
47
47
 
@@ -34,7 +34,7 @@ class Chef
34
34
 
35
35
  property :cask_name, String,
36
36
  description: "An optional property to set the cask name if it differs from the resource block's name.",
37
- regex: %r{^[\w/\-@]+$},
37
+ regex: %r{^[\w/-]+$},
38
38
  validation_message: "The provided Homebrew cask name is not valid. Cask names can contain alphanumeric characters, _, -, or / only!",
39
39
  name_property: true
40
40
 
@@ -53,13 +53,8 @@ class Chef
53
53
  description: "The owner of the Homebrew installation.",
54
54
  default: lazy { find_homebrew_username }
55
55
 
56
- action :install do
57
- if new_resource.install_cask
58
- homebrew_tap "homebrew/cask" do
59
- homebrew_path new_resource.homebrew_path
60
- owner new_resource.owner
61
- end
62
- end
56
+ action :install, description: "Install an application packaged as a Homebrew cask" do
57
+ homebrew_tap "homebrew/cask" if new_resource.install_cask
63
58
 
64
59
  unless casked?
65
60
  converge_by("install cask #{new_resource.cask_name} #{new_resource.options}") do
@@ -71,13 +66,8 @@ class Chef
71
66
  end
72
67
  end
73
68
 
74
- action :remove do
75
- if new_resource.install_cask
76
- homebrew_tap "homebrew/cask" do
77
- homebrew_path new_resource.homebrew_path
78
- owner new_resource.owner
79
- end
80
- end
69
+ action :remove, description: "Remove an application packaged as a Homebrew cask" do
70
+ homebrew_tap "homebrew/cask" if new_resource.install_cask
81
71
 
82
72
  if casked?
83
73
  converge_by("uninstall cask #{new_resource.cask_name}") do
@@ -53,9 +53,7 @@ class Chef
53
53
  description: "The owner of the Homebrew installation.",
54
54
  default: lazy { find_homebrew_username }
55
55
 
56
- action :tap do
57
- description "Add a Homebrew tap."
58
-
56
+ action :tap, description: "Add a Homebrew tap" do
59
57
  unless tapped?(new_resource.tap_name)
60
58
  converge_by("tap #{new_resource.tap_name}") do
61
59
  shell_out!("#{new_resource.homebrew_path} tap #{new_resource.full ? "--full" : ""} #{new_resource.tap_name} #{new_resource.url || ""}",
@@ -66,9 +64,7 @@ class Chef
66
64
  end
67
65
  end
68
66
 
69
- action :untap do
70
- description "Remove a Homebrew tap."
71
-
67
+ action :untap, description: "Remove a Homebrew tap" do
72
68
  if tapped?(new_resource.tap_name)
73
69
  converge_by("untap #{new_resource.tap_name}") do
74
70
  shell_out!("#{new_resource.homebrew_path} untap #{new_resource.tap_name}",
@@ -50,6 +50,10 @@ class Chef
50
50
  description: "An optional property to set the hostname if it differs from the resource block's name.",
51
51
  name_property: true
52
52
 
53
+ property :fqdn, String,
54
+ description: "An optional property to set the fqdn if it differs from the resource block's hostname.",
55
+ introduced: "17.0"
56
+
53
57
  property :ipaddress, String,
54
58
  description: "The IP address to use when configuring the hosts file.",
55
59
  default: lazy { node["ipaddress"] }, default_description: "The node's IP address as determined by Ohai."
@@ -99,9 +103,7 @@ class Chef
99
103
  end
100
104
  end
101
105
 
102
- action :set do
103
- description "Sets the node's hostname."
104
-
106
+ action :set, description: "Sets the node's hostname" do
105
107
  if !windows?
106
108
  ohai "reload hostname" do
107
109
  plugin "hostname"
@@ -109,7 +111,7 @@ class Chef
109
111
  end
110
112
 
111
113
  # set the hostname via /bin/hostname
112
- declare_resource(:execute, "set hostname to #{new_resource.hostname}") do
114
+ execute "set hostname to #{new_resource.hostname}" do
113
115
  command "/bin/hostname #{new_resource.hostname}"
114
116
  not_if { shell_out!("hostname").stdout.chomp == new_resource.hostname }
115
117
  notifies :reload, "ohai[reload hostname]"
@@ -117,7 +119,9 @@ class Chef
117
119
 
118
120
  # make sure node['fqdn'] resolves via /etc/hosts
119
121
  unless new_resource.ipaddress.nil?
120
- newline = "#{new_resource.ipaddress} #{new_resource.hostname}"
122
+ newline = "#{new_resource.ipaddress}"
123
+ newline << " #{new_resource.fqdn}" unless new_resource.fqdn.to_s.empty?
124
+ newline << " #{new_resource.hostname}"
121
125
  newline << " #{new_resource.aliases.join(" ")}" if new_resource.aliases && !new_resource.aliases.empty?
122
126
  newline << " #{new_resource.hostname[/[^\.]*/]}"
123
127
  r = append_replacing_matching_lines("/etc/hosts", /^#{new_resource.ipaddress}\s+|\s+#{new_resource.hostname}\s+/, newline)
@@ -127,20 +131,20 @@ class Chef
127
131
 
128
132
  # setup the hostname to persist on a reboot
129
133
  case
130
- when ::File.exist?("/usr/sbin/scutil")
134
+ when darwin?
131
135
  # darwin
132
- declare_resource(:execute, "set HostName via scutil") do
136
+ execute "set HostName via scutil" do
133
137
  command "/usr/sbin/scutil --set HostName #{new_resource.hostname}"
134
138
  not_if { shell_out("/usr/sbin/scutil --get HostName").stdout.chomp == new_resource.hostname }
135
139
  notifies :reload, "ohai[reload hostname]"
136
140
  end
137
- declare_resource(:execute, "set ComputerName via scutil") do
141
+ execute "set ComputerName via scutil" do
138
142
  command "/usr/sbin/scutil --set ComputerName #{new_resource.hostname}"
139
143
  not_if { shell_out("/usr/sbin/scutil --get ComputerName").stdout.chomp == new_resource.hostname }
140
144
  notifies :reload, "ohai[reload hostname]"
141
145
  end
142
146
  shortname = new_resource.hostname[/[^\.]*/]
143
- declare_resource(:execute, "set LocalHostName via scutil") do
147
+ execute "set LocalHostName via scutil" do
144
148
  command "/usr/sbin/scutil --set LocalHostName #{shortname}"
145
149
  not_if { shell_out("/usr/sbin/scutil --get LocalHostName").stdout.chomp == shortname }
146
150
  notifies :reload, "ohai[reload hostname]"
@@ -150,7 +154,7 @@ class Chef
150
154
  when ::File.exist?("/usr/bin/hostnamectl") && !docker?
151
155
  # use hostnamectl whenever we find it on linux (as systemd takes over the world)
152
156
  # this must come before other methods like /etc/hostname and /etc/sysconfig/network
153
- declare_resource(:execute, "hostnamectl set-hostname #{new_resource.hostname}") do
157
+ execute "hostnamectl set-hostname #{new_resource.hostname}" do
154
158
  notifies :reload, "ohai[reload hostname]"
155
159
  not_if { shell_out!("hostnamectl status", returns: [0, 1]).stdout =~ /Static hostname:\s*#{new_resource.hostname}\s*$/ }
156
160
  end
@@ -160,7 +164,7 @@ class Chef
160
164
  # the "platform: iox_xr, platform_family: wrlinux, os: linux" platform also hits this
161
165
  # the "platform: nexus, platform_family: wrlinux, os: linux" platform also hits this
162
166
  # this is also fallback for any linux systemd host in a docker container (where /usr/bin/hostnamectl will fail)
163
- declare_resource(:file, "/etc/hostname") do
167
+ file "/etc/hostname" do
164
168
  atomic_update false if docker?
165
169
  content "#{new_resource.hostname}\n"
166
170
  owner "root"
@@ -172,7 +176,7 @@ class Chef
172
176
  append_replacing_matching_lines("/etc/sysconfig/network", /^HOSTNAME\s*=/, "HOSTNAME=#{new_resource.hostname}")
173
177
  when ::File.exist?("/etc/HOSTNAME")
174
178
  # SuSE/openSUSE uses /etc/HOSTNAME
175
- declare_resource(:file, "/etc/HOSTNAME") do
179
+ file "/etc/HOSTNAME" do
176
180
  content "#{new_resource.hostname}\n"
177
181
  owner "root"
178
182
  group node["root_group"]
@@ -180,7 +184,7 @@ class Chef
180
184
  end
181
185
  when ::File.exist?("/etc/conf.d/hostname")
182
186
  # Gentoo
183
- declare_resource(:file, "/etc/conf.d/hostname") do
187
+ file "/etc/conf.d/hostname" do
184
188
  content "hostname=\"#{new_resource.hostname}\"\n"
185
189
  owner "root"
186
190
  group node["root_group"]
@@ -196,23 +200,23 @@ class Chef
196
200
  # *BSD systems with /etc/rc.conf + /etc/myname
197
201
  append_replacing_matching_lines("/etc/rc.conf", /^\s+hostname\s+=/, "hostname=#{new_resource.hostname}")
198
202
 
199
- declare_resource(:file, "/etc/myname") do
203
+ file "/etc/myname" do
200
204
  content "#{new_resource.hostname}\n"
201
205
  owner "root"
202
206
  group node["root_group"]
203
207
  mode "0644"
204
208
  end
205
209
  when ::File.exist?("/usr/sbin/svccfg") # solaris 5.11
206
- declare_resource(:execute, "svccfg -s system/identity:node setprop config/nodename=\'#{new_resource.hostname}\'") do
210
+ execute "svccfg -s system/identity:node setprop config/nodename=\'#{new_resource.hostname}\'" do
207
211
  notifies :run, "execute[svcadm refresh]", :immediately
208
212
  notifies :run, "execute[svcadm restart]", :immediately
209
213
  not_if { shell_out!("svccfg -s system/identity:node listprop config/nodename").stdout.chomp =~ %r{config/nodename\s+astring\s+#{new_resource.hostname}} }
210
214
  end
211
- declare_resource(:execute, "svcadm refresh") do
215
+ execute "svcadm refresh" do
212
216
  command "svcadm refresh system/identity:node"
213
217
  action :nothing
214
218
  end
215
- declare_resource(:execute, "svcadm restart") do
219
+ execute "svcadm restart" do
216
220
  command "svcadm restart system/identity:node"
217
221
  action :nothing
218
222
  end
@@ -34,7 +34,7 @@ class Chef
34
34
  property :url, String, identity: true,
35
35
  description: "The URL to which an HTTP request is sent."
36
36
 
37
- property :headers, Hash, default: lazy { {} },
37
+ property :headers, Hash, default: {},
38
38
  description: "A Hash of custom headers."
39
39
 
40
40
  def initialize(name, run_context = nil)
@@ -93,9 +93,7 @@ class Chef
93
93
  description: "The modprobe.d directory.",
94
94
  default: "/etc/modprobe.d"
95
95
 
96
- action :install do
97
- description "Load kernel module, and ensure it loads on reboot."
98
-
96
+ action :install, description: "Load kernel module, and ensure it loads on reboot" do
99
97
  with_run_context :root do
100
98
  find_resource(:execute, "update initramfs") do
101
99
  command initramfs_command
@@ -123,8 +121,7 @@ class Chef
123
121
  end
124
122
  end
125
123
 
126
- action :uninstall do
127
- description "Unload a kernel module and remove module config, so it doesn't load on reboot."
124
+ action :uninstall, description: "Unload a kernel module and remove module config, so it doesn't load on reboot" do
128
125
  with_run_context :root do
129
126
  find_resource(:execute, "update initramfs") do
130
127
  command initramfs_command
@@ -149,9 +146,7 @@ class Chef
149
146
  action_unload
150
147
  end
151
148
 
152
- action :blacklist do
153
- description "Blacklist a kernel module."
154
-
149
+ action :blacklist, description: "Blacklist a kernel module" do
155
150
  with_run_context :root do
156
151
  find_resource(:execute, "update initramfs") do
157
152
  command initramfs_command
@@ -167,9 +162,7 @@ class Chef
167
162
  action_unload
168
163
  end
169
164
 
170
- action :disable do
171
- description "Disable a kernel module."
172
-
165
+ action :disable, description: "Disable a kernel module" do
173
166
  with_run_context :root do
174
167
  find_resource(:execute, "update initramfs") do
175
168
  command initramfs_command
@@ -185,9 +178,7 @@ class Chef
185
178
  action_unload
186
179
  end
187
180
 
188
- action :load do
189
- description "Load a kernel module."
190
-
181
+ action :load, description: "Load a kernel module" do
191
182
  unless module_loaded?
192
183
  converge_by("load kernel module #{new_resource.modname}") do
193
184
  shell_out!("modprobe #{new_resource.modname}")
@@ -195,9 +186,7 @@ class Chef
195
186
  end
196
187
  end
197
188
 
198
- action :unload do
199
- description "Unload kernel module."
200
-
189
+ action :unload, description: "Unload kernel module" do
201
190
  if module_loaded?
202
191
  converge_by("unload kernel module #{new_resource.modname}") do
203
192
  shell_out!("modprobe -r #{new_resource.modname}")
@@ -49,7 +49,7 @@ class Chef
49
49
 
50
50
  property :lc_env, Hash,
51
51
  description: "A Hash of LC_* env variables in the form of `({ 'LC_ENV_VARIABLE' => 'VALUE' })`.",
52
- default: lazy { {} },
52
+ default: {},
53
53
  coerce: proc { |h|
54
54
  if h.respond_to?(:keys)
55
55
  invalid_keys = h.keys - LC_VARIABLES
@@ -97,8 +97,7 @@ class Chef
97
97
  powershell_exec("Get-WinSystemLocale").result["Name"]
98
98
  end
99
99
 
100
- action :update do
101
- description "Update the system's locale."
100
+ action :update, description: "Update the system's locale" do
102
101
  converge_if_changed do
103
102
  set_system_locale
104
103
  end
@@ -53,6 +53,10 @@ class Chef
53
53
  resource_class.run_context = run_context
54
54
  resource_class.class_from_file(filename)
55
55
 
56
+ unless resource_class.unified_mode
57
+ Chef.deprecated :unified_mode, "The #{resource_name} resource in the #{cookbook_name} cookbook should declare `unified_mode true`"
58
+ end
59
+
56
60
  # Make a useful string for the class (rather than <Class:312894723894>)
57
61
  resource_class.instance_eval do
58
62
  define_singleton_method(:to_s) do
@@ -97,29 +97,29 @@ class Chef
97
97
  desired_state: false
98
98
 
99
99
  property :sudo, [TrueClass, FalseClass],
100
- description: "Set to true if the setting you wish to modify requires privileged access. This requires passwordless sudo for the '/usr/bin/defaults' command to be setup for the user running #{ChefUtils::Dist::Infra::PRODUCT}.",
100
+ description: "Set to true if the setting you wish to modify requires privileged access. This requires passwordless sudo for the `/usr/bin/defaults` command to be setup for the user running #{ChefUtils::Dist::Infra::PRODUCT}.",
101
101
  default: false,
102
102
  desired_state: false
103
103
 
104
- load_current_value do |desired|
105
- Chef::Log.debug "#load_current_value: shelling out \"#{defaults_export_cmd(desired).join(" ")}\" to determine state"
106
- state = shell_out(defaults_export_cmd(desired), user: desired.user)
104
+ load_current_value do |new_resource|
105
+ Chef::Log.debug "#load_current_value: shelling out \"#{defaults_export_cmd(new_resource).join(" ")}\" to determine state"
106
+ state = shell_out(defaults_export_cmd(new_resource), user: new_resource.user)
107
107
 
108
108
  if state.error? || state.stdout.empty?
109
- Chef::Log.debug "#load_current_value: #{defaults_export_cmd(desired).join(" ")} returned stdout: #{state.stdout} and stderr: #{state.stderr}"
109
+ Chef::Log.debug "#load_current_value: #{defaults_export_cmd(new_resource).join(" ")} returned stdout: #{state.stdout} and stderr: #{state.stderr}"
110
110
  current_value_does_not_exist!
111
111
  end
112
112
 
113
113
  plist_data = ::Plist.parse_xml(state.stdout)
114
114
 
115
115
  # handle the situation where the key doesn't exist in the domain
116
- if plist_data.key?(desired.key)
117
- key desired.key
116
+ if plist_data.key?(new_resource.key)
117
+ key new_resource.key
118
118
  else
119
119
  current_value_does_not_exist!
120
120
  end
121
121
 
122
- value plist_data[desired.key]
122
+ value plist_data[new_resource.key]
123
123
  end
124
124
 
125
125
  #
@@ -140,9 +140,7 @@ class Chef
140
140
  state_cmd
141
141
  end
142
142
 
143
- action :write do
144
- description "Write the value to the specified domain/key."
145
-
143
+ action :write, description: "Write the value to the specified domain/key" do
146
144
  converge_if_changed do
147
145
  cmd = defaults_modify_cmd
148
146
  Chef::Log.debug("Updating defaults value by shelling out: #{cmd.join(" ")}")
@@ -151,9 +149,7 @@ class Chef
151
149
  end
152
150
  end
153
151
 
154
- action :delete do
155
- description "Delete a key from a domain."
156
-
152
+ action :delete, description: "Delete a key from a domain" do
157
153
  # if it's not there there's nothing to remove
158
154
  return unless current_resource
159
155