chef 16.16.13 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (638) 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/application/base.rb +1 -1
  8. data/lib/chef/applications.rb +0 -1
  9. data/lib/chef/chef_fs/command_line.rb +5 -2
  10. data/lib/chef/chef_fs/file_system.rb +9 -10
  11. data/lib/chef/client.rb +2 -2
  12. data/lib/chef/compliance/default_attributes.rb +4 -3
  13. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  14. data/lib/chef/compliance/reporter/automate.rb +17 -7
  15. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  16. data/lib/chef/compliance/reporter/cli.rb +77 -0
  17. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  18. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  19. data/lib/chef/compliance/runner.rb +65 -27
  20. data/lib/chef/cookbook/gem_installer.rb +1 -5
  21. data/lib/chef/cookbook/synchronizer.rb +3 -5
  22. data/lib/chef/cookbook_loader.rb +2 -4
  23. data/lib/chef/cookbook_uploader.rb +0 -1
  24. data/lib/chef/cookbook_version.rb +4 -26
  25. data/lib/chef/data_bag_item.rb +11 -2
  26. data/lib/chef/data_collector/run_end_message.rb +1 -1
  27. data/lib/chef/delayed_evaluator.rb +4 -0
  28. data/lib/chef/deprecated.rb +6 -12
  29. data/lib/chef/dsl/chef_vault.rb +6 -6
  30. data/lib/chef/dsl/reboot_pending.rb +1 -2
  31. data/lib/chef/exceptions.rb +0 -3
  32. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  33. data/lib/chef/formatters/error_mapper.rb +2 -2
  34. data/lib/chef/group.rb +75 -0
  35. data/lib/chef/http.rb +5 -5
  36. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  37. data/lib/chef/node/attribute.rb +6 -4
  38. data/lib/chef/node/immutable_collections.rb +13 -0
  39. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  40. data/lib/chef/node.rb +19 -20
  41. data/lib/chef/org.rb +3 -2
  42. data/lib/chef/policy_builder/policyfile.rb +0 -5
  43. data/lib/chef/property.rb +18 -0
  44. data/lib/chef/provider/cron.rb +1 -1
  45. data/lib/chef/provider/execute.rb +2 -1
  46. data/lib/chef/provider/file.rb +1 -1
  47. data/lib/chef/provider/git.rb +5 -7
  48. data/lib/chef/provider/group/dscl.rb +1 -1
  49. data/lib/chef/provider/group/groupadd.rb +3 -3
  50. data/lib/chef/provider/group/groupmod.rb +3 -3
  51. data/lib/chef/provider/group/pw.rb +3 -3
  52. data/lib/chef/provider/ifconfig.rb +2 -2
  53. data/lib/chef/provider/link.rb +2 -2
  54. data/lib/chef/provider/mount/aix.rb +3 -3
  55. data/lib/chef/provider/mount/mount.rb +5 -5
  56. data/lib/chef/provider/mount/windows.rb +1 -1
  57. data/lib/chef/provider/mount.rb +5 -5
  58. data/lib/chef/provider/package/apt.rb +27 -1
  59. data/lib/chef/provider/package/deb.rb +3 -3
  60. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  61. data/lib/chef/provider/package/portage.rb +2 -2
  62. data/lib/chef/provider/package/powershell.rb +0 -5
  63. data/lib/chef/provider/package/rubygems.rb +9 -15
  64. data/lib/chef/provider/package/windows.rb +2 -4
  65. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  66. data/lib/chef/provider/package.rb +17 -21
  67. data/lib/chef/provider/route.rb +2 -2
  68. data/lib/chef/provider/service/aixinit.rb +1 -1
  69. data/lib/chef/provider/service/debian.rb +1 -1
  70. data/lib/chef/provider/service/freebsd.rb +15 -21
  71. data/lib/chef/provider/service/macosx.rb +4 -4
  72. data/lib/chef/provider/service/systemd.rb +43 -14
  73. data/lib/chef/provider/service/upstart.rb +2 -13
  74. data/lib/chef/provider/service/windows.rb +12 -12
  75. data/lib/chef/provider/service.rb +6 -6
  76. data/lib/chef/provider/subversion.rb +10 -12
  77. data/lib/chef/provider/systemd_unit.rb +36 -10
  78. data/lib/chef/provider/template/content.rb +3 -7
  79. data/lib/chef/provider/user/dscl.rb +1 -1
  80. data/lib/chef/provider/user/mac.rb +17 -20
  81. data/lib/chef/provider/user/pw.rb +1 -1
  82. data/lib/chef/provider/user/windows.rb +1 -1
  83. data/lib/chef/provider/user.rb +2 -2
  84. data/lib/chef/provider/zypper_repository.rb +2 -2
  85. data/lib/chef/provider.rb +1 -1
  86. data/lib/chef/providers.rb +0 -1
  87. data/lib/chef/resource/alternatives.rb +6 -6
  88. data/lib/chef/resource/apt_package.rb +1 -1
  89. data/lib/chef/resource/apt_preference.rb +2 -2
  90. data/lib/chef/resource/apt_repository.rb +6 -6
  91. data/lib/chef/resource/apt_update.rb +3 -2
  92. data/lib/chef/resource/archive_file.rb +2 -3
  93. data/lib/chef/resource/breakpoint.rb +1 -1
  94. data/lib/chef/resource/build_essential.rb +2 -6
  95. data/lib/chef/resource/chef_client_config.rb +2 -2
  96. data/lib/chef/resource/chef_client_cron.rb +4 -4
  97. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  98. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  99. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  100. data/lib/chef/resource/chef_handler.rb +3 -7
  101. data/lib/chef/resource/chef_sleep.rb +1 -1
  102. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  103. data/lib/chef/resource/chocolatey_config.rb +2 -6
  104. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  105. data/lib/chef/resource/chocolatey_source.rb +4 -10
  106. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  107. data/lib/chef/resource/cron_access.rb +2 -4
  108. data/lib/chef/resource/dmg_package.rb +6 -10
  109. data/lib/chef/resource/dpkg_package.rb +1 -1
  110. data/lib/chef/resource/execute.rb +6 -1
  111. data/lib/chef/resource/file.rb +1 -1
  112. data/lib/chef/resource/group.rb +2 -2
  113. data/lib/chef/resource/homebrew_cask.rb +5 -15
  114. data/lib/chef/resource/homebrew_tap.rb +2 -6
  115. data/lib/chef/resource/hostname.rb +21 -17
  116. data/lib/chef/resource/http_request.rb +1 -1
  117. data/lib/chef/resource/kernel_module.rb +6 -17
  118. data/lib/chef/resource/locale.rb +2 -3
  119. data/lib/chef/resource/lwrp_base.rb +4 -0
  120. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  121. data/lib/chef/resource/mdadm.rb +53 -7
  122. data/lib/chef/resource/mount.rb +3 -2
  123. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  124. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  125. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  126. data/lib/chef/resource/plist.rb +7 -7
  127. data/lib/chef/resource/powershell_script.rb +1 -1
  128. data/lib/chef/resource/remote_file.rb +1 -1
  129. data/lib/chef/resource/rhsm_errata.rb +16 -1
  130. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  131. data/lib/chef/resource/rhsm_register.rb +12 -6
  132. data/lib/chef/resource/rhsm_repo.rb +2 -6
  133. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  134. data/lib/chef/resource/scm/git.rb +1 -1
  135. data/lib/chef/resource/sudo.rb +6 -6
  136. data/lib/chef/resource/support/client.erb +0 -6
  137. data/lib/chef/resource/sysctl.rb +2 -6
  138. data/lib/chef/resource/systemd_unit.rb +3 -3
  139. data/lib/chef/resource/template.rb +1 -1
  140. data/lib/chef/resource/timezone.rb +1 -3
  141. data/lib/chef/resource/user/mac_user.rb +1 -1
  142. data/lib/chef/resource/user_ulimit.rb +2 -3
  143. data/lib/chef/resource/windows_ad_join.rb +2 -6
  144. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  145. data/lib/chef/resource/windows_auto_run.rb +2 -5
  146. data/lib/chef/resource/windows_certificate.rb +207 -73
  147. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  148. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  149. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  150. data/lib/chef/resource/windows_dns_record.rb +2 -6
  151. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  152. data/lib/chef/resource/windows_env.rb +5 -4
  153. data/lib/chef/resource/windows_feature.rb +3 -9
  154. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  155. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  156. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  157. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  158. data/lib/chef/resource/windows_font.rb +2 -4
  159. data/lib/chef/resource/windows_pagefile.rb +2 -6
  160. data/lib/chef/resource/windows_path.rb +2 -2
  161. data/lib/chef/resource/windows_printer.rb +4 -4
  162. data/lib/chef/resource/windows_printer_port.rb +6 -6
  163. data/lib/chef/resource/windows_security_policy.rb +9 -12
  164. data/lib/chef/resource/windows_share.rb +14 -21
  165. data/lib/chef/resource/windows_shortcut.rb +4 -6
  166. data/lib/chef/resource/windows_task.rb +17 -5
  167. data/lib/chef/resource/windows_uac.rb +2 -4
  168. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  169. data/lib/chef/resource/windows_workgroup.rb +1 -2
  170. data/lib/chef/resources.rb +0 -1
  171. data/lib/chef/user.rb +0 -1
  172. data/lib/chef/user_v1.rb +3 -4
  173. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  174. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  175. data/lib/chef/version.rb +1 -1
  176. data/lib/chef/win32/api.rb +2 -9
  177. data/lib/chef/win32/registry.rb +4 -2
  178. data/lib/chef/win32/version.rb +1 -2
  179. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  180. data/spec/data/lwrp/resources/bar.rb +2 -0
  181. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  182. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  183. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  184. data/spec/data/lwrp/resources/foo.rb +2 -0
  185. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  186. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  187. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  188. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  189. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  190. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  191. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  192. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  193. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  194. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  195. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  196. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  197. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  198. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  199. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  200. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  201. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  202. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  203. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  204. data/spec/functional/resource/apt_package_spec.rb +1 -1
  205. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  206. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  207. data/spec/functional/resource/group_spec.rb +1 -5
  208. data/spec/functional/resource/link_spec.rb +0 -8
  209. data/spec/functional/resource/registry_spec.rb +8 -8
  210. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  211. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  212. data/spec/functional/version_spec.rb +1 -1
  213. data/spec/functional/win32/registry_spec.rb +1 -1
  214. data/spec/integration/client/client_spec.rb +5 -2
  215. data/spec/integration/client/exit_code_spec.rb +1 -1
  216. data/spec/integration/client/ipv6_spec.rb +1 -1
  217. data/spec/integration/compliance/compliance_spec.rb +1 -1
  218. data/spec/integration/ohai/ohai_spec.rb +7 -6
  219. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  220. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  221. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  222. data/spec/integration/recipes/notifies_spec.rb +15 -1
  223. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  224. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  225. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  226. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  227. data/spec/spec_helper.rb +10 -13
  228. data/spec/support/chef_helpers.rb +0 -16
  229. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  230. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  231. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  232. data/spec/support/matchers/leak.rb +7 -9
  233. data/spec/support/platform_helpers.rb +1 -8
  234. data/spec/support/shared/integration/integration_helper.rb +0 -1
  235. data/spec/support/shared/unit/script_resource.rb +2 -2
  236. data/spec/unit/application/solo_spec.rb +2 -2
  237. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  238. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  239. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  240. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  241. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  242. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  243. data/spec/unit/compliance/runner_spec.rb +30 -4
  244. data/spec/unit/cookbook_version_spec.rb +0 -52
  245. data/spec/unit/data_bag_item_spec.rb +1 -6
  246. data/spec/unit/data_collector_spec.rb +1 -47
  247. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  248. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  249. data/spec/unit/lwrp_spec.rb +1 -1
  250. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  251. data/spec/unit/node/attribute_spec.rb +1 -1
  252. data/spec/unit/node_spec.rb +78 -0
  253. data/spec/unit/org_group_spec.rb +45 -0
  254. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  255. data/spec/unit/property_spec.rb +23 -22
  256. data/spec/unit/provider/cron_spec.rb +1 -1
  257. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  258. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  259. data/spec/unit/provider/group/pw_spec.rb +2 -2
  260. data/spec/unit/provider/group_spec.rb +1 -1
  261. data/spec/unit/provider/package/apt_spec.rb +84 -18
  262. data/spec/unit/provider/package/deb_spec.rb +3 -3
  263. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  264. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  265. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  266. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  267. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  268. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  269. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  270. data/spec/unit/provider/service/windows_spec.rb +2 -2
  271. data/spec/unit/provider/subversion_spec.rb +2 -2
  272. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  273. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  274. data/spec/unit/provider_spec.rb +0 -8
  275. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  276. data/spec/unit/resource/mount_spec.rb +0 -10
  277. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  278. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  279. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  280. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  281. data/spec/unit/resource/windows_task_spec.rb +1 -1
  282. data/spec/unit/user_spec.rb +1 -1
  283. data/spec/unit/user_v1_spec.rb +6 -4
  284. data/tasks/rspec.rb +15 -7
  285. metadata +17 -380
  286. data/bin/knife +0 -24
  287. data/lib/chef/application/knife.rb +0 -234
  288. data/lib/chef/application/windows_service.rb +0 -338
  289. data/lib/chef/application/windows_service_manager.rb +0 -205
  290. data/lib/chef/chef_fs/knife.rb +0 -160
  291. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  292. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  293. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  294. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  295. data/lib/chef/knife/acl_add.rb +0 -57
  296. data/lib/chef/knife/acl_base.rb +0 -183
  297. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  298. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  299. data/lib/chef/knife/acl_remove.rb +0 -62
  300. data/lib/chef/knife/acl_show.rb +0 -56
  301. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  302. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  303. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  304. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  305. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  306. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  307. data/lib/chef/knife/bootstrap.rb +0 -1192
  308. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  309. data/lib/chef/knife/client_create.rb +0 -101
  310. data/lib/chef/knife/client_delete.rb +0 -62
  311. data/lib/chef/knife/client_edit.rb +0 -52
  312. data/lib/chef/knife/client_key_create.rb +0 -73
  313. data/lib/chef/knife/client_key_delete.rb +0 -80
  314. data/lib/chef/knife/client_key_edit.rb +0 -83
  315. data/lib/chef/knife/client_key_list.rb +0 -73
  316. data/lib/chef/knife/client_key_show.rb +0 -80
  317. data/lib/chef/knife/client_list.rb +0 -41
  318. data/lib/chef/knife/client_reregister.rb +0 -58
  319. data/lib/chef/knife/client_show.rb +0 -48
  320. data/lib/chef/knife/config_get.rb +0 -39
  321. data/lib/chef/knife/config_get_profile.rb +0 -37
  322. data/lib/chef/knife/config_list.rb +0 -139
  323. data/lib/chef/knife/config_list_profiles.rb +0 -37
  324. data/lib/chef/knife/config_show.rb +0 -127
  325. data/lib/chef/knife/config_use.rb +0 -61
  326. data/lib/chef/knife/config_use_profile.rb +0 -47
  327. data/lib/chef/knife/configure.rb +0 -150
  328. data/lib/chef/knife/configure_client.rb +0 -48
  329. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  330. data/lib/chef/knife/cookbook_delete.rb +0 -151
  331. data/lib/chef/knife/cookbook_download.rb +0 -142
  332. data/lib/chef/knife/cookbook_list.rb +0 -47
  333. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  334. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  335. data/lib/chef/knife/cookbook_show.rb +0 -98
  336. data/lib/chef/knife/cookbook_upload.rb +0 -292
  337. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  338. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  339. data/lib/chef/knife/core/formatting_options.rb +0 -49
  340. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  341. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  342. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  343. data/lib/chef/knife/core/node_editor.rb +0 -130
  344. data/lib/chef/knife/core/node_presenter.rb +0 -133
  345. data/lib/chef/knife/core/object_loader.rb +0 -115
  346. data/lib/chef/knife/core/status_presenter.rb +0 -147
  347. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  348. data/lib/chef/knife/core/text_formatter.rb +0 -85
  349. data/lib/chef/knife/core/ui.rb +0 -338
  350. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  351. data/lib/chef/knife/data_bag_create.rb +0 -81
  352. data/lib/chef/knife/data_bag_delete.rb +0 -49
  353. data/lib/chef/knife/data_bag_edit.rb +0 -74
  354. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  355. data/lib/chef/knife/data_bag_list.rb +0 -42
  356. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  357. data/lib/chef/knife/data_bag_show.rb +0 -69
  358. data/lib/chef/knife/delete.rb +0 -125
  359. data/lib/chef/knife/deps.rb +0 -156
  360. data/lib/chef/knife/diff.rb +0 -83
  361. data/lib/chef/knife/download.rb +0 -84
  362. data/lib/chef/knife/edit.rb +0 -88
  363. data/lib/chef/knife/environment_compare.rb +0 -128
  364. data/lib/chef/knife/environment_create.rb +0 -52
  365. data/lib/chef/knife/environment_delete.rb +0 -44
  366. data/lib/chef/knife/environment_edit.rb +0 -44
  367. data/lib/chef/knife/environment_from_file.rb +0 -84
  368. data/lib/chef/knife/environment_list.rb +0 -41
  369. data/lib/chef/knife/environment_show.rb +0 -47
  370. data/lib/chef/knife/exec.rb +0 -99
  371. data/lib/chef/knife/group_add.rb +0 -55
  372. data/lib/chef/knife/group_create.rb +0 -49
  373. data/lib/chef/knife/group_destroy.rb +0 -53
  374. data/lib/chef/knife/group_list.rb +0 -43
  375. data/lib/chef/knife/group_remove.rb +0 -56
  376. data/lib/chef/knife/group_show.rb +0 -49
  377. data/lib/chef/knife/key_create.rb +0 -112
  378. data/lib/chef/knife/key_create_base.rb +0 -50
  379. data/lib/chef/knife/key_delete.rb +0 -55
  380. data/lib/chef/knife/key_edit.rb +0 -118
  381. data/lib/chef/knife/key_edit_base.rb +0 -55
  382. data/lib/chef/knife/key_list.rb +0 -90
  383. data/lib/chef/knife/key_list_base.rb +0 -45
  384. data/lib/chef/knife/key_show.rb +0 -53
  385. data/lib/chef/knife/list.rb +0 -177
  386. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  387. data/lib/chef/knife/node_create.rb +0 -47
  388. data/lib/chef/knife/node_delete.rb +0 -46
  389. data/lib/chef/knife/node_edit.rb +0 -70
  390. data/lib/chef/knife/node_environment_set.rb +0 -53
  391. data/lib/chef/knife/node_from_file.rb +0 -51
  392. data/lib/chef/knife/node_list.rb +0 -44
  393. data/lib/chef/knife/node_policy_set.rb +0 -79
  394. data/lib/chef/knife/node_run_list_add.rb +0 -104
  395. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  396. data/lib/chef/knife/node_run_list_set.rb +0 -66
  397. data/lib/chef/knife/node_show.rb +0 -63
  398. data/lib/chef/knife/null.rb +0 -12
  399. data/lib/chef/knife/raw.rb +0 -123
  400. data/lib/chef/knife/recipe_list.rb +0 -32
  401. data/lib/chef/knife/rehash.rb +0 -50
  402. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  403. data/lib/chef/knife/role_create.rb +0 -53
  404. data/lib/chef/knife/role_delete.rb +0 -46
  405. data/lib/chef/knife/role_edit.rb +0 -45
  406. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  407. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  408. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  409. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  410. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  411. data/lib/chef/knife/role_from_file.rb +0 -51
  412. data/lib/chef/knife/role_list.rb +0 -42
  413. data/lib/chef/knife/role_run_list_add.rb +0 -87
  414. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  415. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  416. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  417. data/lib/chef/knife/role_run_list_set.rb +0 -69
  418. data/lib/chef/knife/role_show.rb +0 -48
  419. data/lib/chef/knife/search.rb +0 -194
  420. data/lib/chef/knife/serve.rb +0 -65
  421. data/lib/chef/knife/show.rb +0 -72
  422. data/lib/chef/knife/ssh.rb +0 -645
  423. data/lib/chef/knife/ssl_check.rb +0 -284
  424. data/lib/chef/knife/ssl_fetch.rb +0 -161
  425. data/lib/chef/knife/status.rb +0 -95
  426. data/lib/chef/knife/supermarket_download.rb +0 -121
  427. data/lib/chef/knife/supermarket_install.rb +0 -192
  428. data/lib/chef/knife/supermarket_list.rb +0 -76
  429. data/lib/chef/knife/supermarket_search.rb +0 -53
  430. data/lib/chef/knife/supermarket_share.rb +0 -166
  431. data/lib/chef/knife/supermarket_show.rb +0 -66
  432. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  433. data/lib/chef/knife/tag_create.rb +0 -52
  434. data/lib/chef/knife/tag_delete.rb +0 -60
  435. data/lib/chef/knife/tag_list.rb +0 -47
  436. data/lib/chef/knife/upload.rb +0 -86
  437. data/lib/chef/knife/user_create.rb +0 -107
  438. data/lib/chef/knife/user_delete.rb +0 -44
  439. data/lib/chef/knife/user_dissociate.rb +0 -42
  440. data/lib/chef/knife/user_edit.rb +0 -52
  441. data/lib/chef/knife/user_invite_add.rb +0 -43
  442. data/lib/chef/knife/user_invite_list.rb +0 -34
  443. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  444. data/lib/chef/knife/user_key_create.rb +0 -73
  445. data/lib/chef/knife/user_key_delete.rb +0 -80
  446. data/lib/chef/knife/user_key_edit.rb +0 -83
  447. data/lib/chef/knife/user_key_list.rb +0 -73
  448. data/lib/chef/knife/user_key_show.rb +0 -80
  449. data/lib/chef/knife/user_list.rb +0 -42
  450. data/lib/chef/knife/user_reregister.rb +0 -59
  451. data/lib/chef/knife/user_show.rb +0 -48
  452. data/lib/chef/knife/xargs.rb +0 -282
  453. data/lib/chef/knife/yaml_convert.rb +0 -91
  454. data/lib/chef/knife.rb +0 -665
  455. data/lib/chef/resource/user/dscl_user.rb +0 -35
  456. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  457. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  458. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  459. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  460. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  461. data/spec/functional/knife/configure_spec.rb +0 -33
  462. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  463. data/spec/functional/knife/exec_spec.rb +0 -55
  464. data/spec/functional/knife/rehash_spec.rb +0 -39
  465. data/spec/functional/knife/smoke_test.rb +0 -42
  466. data/spec/functional/knife/ssh_spec.rb +0 -352
  467. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  468. data/spec/functional/resource/windows_service_spec.rb +0 -105
  469. data/spec/functional/win32/service_manager_spec.rb +0 -220
  470. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  471. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  472. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  473. data/spec/integration/knife/chefignore_spec.rb +0 -301
  474. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  475. data/spec/integration/knife/client_create_spec.rb +0 -70
  476. data/spec/integration/knife/client_delete_spec.rb +0 -64
  477. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  478. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  479. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  480. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  481. data/spec/integration/knife/client_list_spec.rb +0 -49
  482. data/spec/integration/knife/client_show_spec.rb +0 -37
  483. data/spec/integration/knife/common_options_spec.rb +0 -174
  484. data/spec/integration/knife/config_list_spec.rb +0 -220
  485. data/spec/integration/knife/config_show_spec.rb +0 -192
  486. data/spec/integration/knife/config_use_spec.rb +0 -198
  487. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  488. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  489. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  490. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  491. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  492. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  493. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  494. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  495. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  496. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  497. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  498. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  499. data/spec/integration/knife/delete_spec.rb +0 -1018
  500. data/spec/integration/knife/deps_spec.rb +0 -703
  501. data/spec/integration/knife/diff_spec.rb +0 -605
  502. data/spec/integration/knife/download_spec.rb +0 -1336
  503. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  504. data/spec/integration/knife/environment_create_spec.rb +0 -41
  505. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  506. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  507. data/spec/integration/knife/environment_list_spec.rb +0 -42
  508. data/spec/integration/knife/environment_show_spec.rb +0 -77
  509. data/spec/integration/knife/list_spec.rb +0 -1060
  510. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  511. data/spec/integration/knife/node_create_spec.rb +0 -47
  512. data/spec/integration/knife/node_delete_spec.rb +0 -48
  513. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  514. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  515. data/spec/integration/knife/node_list_spec.rb +0 -45
  516. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  517. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  518. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  519. data/spec/integration/knife/node_show_spec.rb +0 -36
  520. data/spec/integration/knife/raw_spec.rb +0 -297
  521. data/spec/integration/knife/redirection_spec.rb +0 -64
  522. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  523. data/spec/integration/knife/role_create_spec.rb +0 -41
  524. data/spec/integration/knife/role_delete_spec.rb +0 -48
  525. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  526. data/spec/integration/knife/role_list_spec.rb +0 -45
  527. data/spec/integration/knife/role_show_spec.rb +0 -51
  528. data/spec/integration/knife/search_node_spec.rb +0 -40
  529. data/spec/integration/knife/serve_spec.rb +0 -92
  530. data/spec/integration/knife/show_spec.rb +0 -197
  531. data/spec/integration/knife/upload_spec.rb +0 -1617
  532. data/spec/support/shared/functional/knife.rb +0 -37
  533. data/spec/support/shared/functional/win32_service.rb +0 -57
  534. data/spec/support/shared/integration/knife_support.rb +0 -192
  535. data/spec/support/shared/unit/knife_shared.rb +0 -39
  536. data/spec/unit/application/knife_spec.rb +0 -241
  537. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  538. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  539. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  540. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  541. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  542. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  543. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  544. data/spec/unit/knife/client_create_spec.rb +0 -169
  545. data/spec/unit/knife/client_delete_spec.rb +0 -99
  546. data/spec/unit/knife/client_edit_spec.rb +0 -53
  547. data/spec/unit/knife/client_list_spec.rb +0 -34
  548. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  549. data/spec/unit/knife/client_show_spec.rb +0 -52
  550. data/spec/unit/knife/configure_client_spec.rb +0 -81
  551. data/spec/unit/knife/configure_spec.rb +0 -190
  552. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  553. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  554. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  555. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  556. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  557. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  558. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  559. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  560. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  561. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  562. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  563. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  564. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  565. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  566. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  567. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  568. data/spec/unit/knife/core/ui_spec.rb +0 -656
  569. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  570. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  571. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  572. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  573. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  574. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  575. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  576. data/spec/unit/knife/environment_create_spec.rb +0 -91
  577. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  578. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  579. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  580. data/spec/unit/knife/environment_list_spec.rb +0 -54
  581. data/spec/unit/knife/environment_show_spec.rb +0 -52
  582. data/spec/unit/knife/key_create_spec.rb +0 -223
  583. data/spec/unit/knife/key_delete_spec.rb +0 -133
  584. data/spec/unit/knife/key_edit_spec.rb +0 -264
  585. data/spec/unit/knife/key_helper.rb +0 -74
  586. data/spec/unit/knife/key_list_spec.rb +0 -216
  587. data/spec/unit/knife/key_show_spec.rb +0 -126
  588. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  589. data/spec/unit/knife/node_delete_spec.rb +0 -77
  590. data/spec/unit/knife/node_edit_spec.rb +0 -116
  591. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  592. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  593. data/spec/unit/knife/node_list_spec.rb +0 -62
  594. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  595. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  596. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  597. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  598. data/spec/unit/knife/node_show_spec.rb +0 -65
  599. data/spec/unit/knife/raw_spec.rb +0 -43
  600. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  601. data/spec/unit/knife/role_create_spec.rb +0 -80
  602. data/spec/unit/knife/role_delete_spec.rb +0 -67
  603. data/spec/unit/knife/role_edit_spec.rb +0 -77
  604. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  605. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  606. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  607. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  608. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  609. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  610. data/spec/unit/knife/role_list_spec.rb +0 -54
  611. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  612. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  613. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  614. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  615. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  616. data/spec/unit/knife/role_show_spec.rb +0 -59
  617. data/spec/unit/knife/ssh_spec.rb +0 -403
  618. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  619. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  620. data/spec/unit/knife/status_spec.rb +0 -112
  621. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  622. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  623. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  624. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  625. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  626. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  627. data/spec/unit/knife/tag_create_spec.rb +0 -23
  628. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  629. data/spec/unit/knife/tag_list_spec.rb +0 -23
  630. data/spec/unit/knife/user_create_spec.rb +0 -184
  631. data/spec/unit/knife/user_delete_spec.rb +0 -46
  632. data/spec/unit/knife/user_edit_spec.rb +0 -48
  633. data/spec/unit/knife/user_list_spec.rb +0 -36
  634. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  635. data/spec/unit/knife/user_show_spec.rb +0 -46
  636. data/spec/unit/knife_spec.rb +0 -634
  637. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  638. data/spec/unit/windows_service_spec.rb +0 -118
@@ -31,6 +31,52 @@ class Chef
31
31
  " reboot. If the config file is required, it must be done by specifying a template with the correct array layout,"\
32
32
  " and then by using the mount provider to create a file systems table (fstab) entry."
33
33
 
34
+ examples <<~DOC
35
+ **Create and assemble a RAID 0 array**
36
+
37
+ The mdadm command can be used to create RAID arrays. For example, a RAID 0 array named /dev/md0 with 10 devices would have a command similar to the following:
38
+
39
+ ```
40
+ mdadm --create /dev/md0 --level=0 --raid-devices=10 /dev/s01.../dev/s10
41
+ ```
42
+
43
+ where /dev/s01 .. /dev/s10 represents 10 devices (01, 02, 03, and so on). This same command, when expressed as a recipe using the mdadm resource, would be similar to:
44
+
45
+ ```ruby
46
+ mdadm '/dev/md0' do
47
+ devices [ '/dev/s01', ... '/dev/s10' ]
48
+ level 0
49
+ action :create
50
+ end
51
+ ```
52
+
53
+ (again, where /dev/s01 .. /dev/s10 represents devices /dev/s01, /dev/s02, /dev/s03, and so on).
54
+
55
+ **Create and assemble a RAID 1 array**
56
+
57
+ ```ruby
58
+ mdadm '/dev/md0' do
59
+ devices [ '/dev/sda', '/dev/sdb' ]
60
+ level 1
61
+ action [ :create, :assemble ]
62
+ end
63
+ ```
64
+
65
+ **Create and assemble a RAID 5 array**
66
+
67
+ The mdadm command can be used to create RAID arrays. For example, a RAID 5 array named /dev/sd0 with 4, and a superblock type of 0.90 would be similar to:
68
+
69
+ ```ruby
70
+ mdadm '/dev/sd0' do
71
+ devices [ '/dev/s1', '/dev/s2', '/dev/s3', '/dev/s4' ]
72
+ level 5
73
+ metadata '0.90'
74
+ chunk 32
75
+ action :create
76
+ end
77
+ ```
78
+ DOC
79
+
34
80
  default_action :create
35
81
  allowed_actions :create, :assemble, :stop
36
82
 
@@ -39,7 +85,7 @@ class Chef
39
85
  description: "The chunk size. This property should not be used for a RAID 1 mirrored pair (i.e. when the `level` property is set to `1`)."
40
86
 
41
87
  property :devices, Array,
42
- default: lazy { [] },
88
+ default: [],
43
89
  description: "The devices to be part of a RAID array."
44
90
 
45
91
  # @todo this should get refactored away
@@ -78,7 +124,7 @@ class Chef
78
124
  end
79
125
  end
80
126
 
81
- action :create do
127
+ action :create, description: "Create an array with per-device superblocks. If an array already exists (but does not match), update that array to match." do
82
128
  unless current_resource.exists
83
129
  converge_by("create RAID device #{new_resource.raid_device}") do
84
130
  command = "yes | mdadm --create #{new_resource.raid_device} --level #{new_resource.level}"
@@ -92,11 +138,11 @@ class Chef
92
138
  logger.info("#{new_resource} created raid device (#{new_resource.raid_device})")
93
139
  end
94
140
  else
95
- logger.trace("#{new_resource} raid device already exists, skipping create (#{new_resource.raid_device})")
141
+ logger.debug("#{new_resource} raid device already exists, skipping create (#{new_resource.raid_device})")
96
142
  end
97
143
  end
98
144
 
99
- action :assemble do
145
+ action :assemble, description: "Assemble a previously created array into an active array." do
100
146
  unless current_resource.exists
101
147
  converge_by("assemble RAID device #{new_resource.raid_device}") do
102
148
  command = "yes | mdadm --assemble #{new_resource.raid_device} #{new_resource.devices.join(" ")}"
@@ -105,11 +151,11 @@ class Chef
105
151
  logger.info("#{new_resource} assembled raid device (#{new_resource.raid_device})")
106
152
  end
107
153
  else
108
- logger.trace("#{new_resource} raid device already exists, skipping assemble (#{new_resource.raid_device})")
154
+ logger.debug("#{new_resource} raid device already exists, skipping assemble (#{new_resource.raid_device})")
109
155
  end
110
156
  end
111
157
 
112
- action :stop do
158
+ action :stop, description: "Stop an active array." do
113
159
  if current_resource.exists
114
160
  converge_by("stop RAID device #{new_resource.raid_device}") do
115
161
  command = "yes | mdadm --stop #{new_resource.raid_device}"
@@ -118,7 +164,7 @@ class Chef
118
164
  logger.info("#{new_resource} stopped raid device (#{new_resource.raid_device})")
119
165
  end
120
166
  else
121
- logger.trace("#{new_resource} raid device doesn't exist (#{new_resource.raid_device}) - not stopping")
167
+ logger.debug("#{new_resource} raid device doesn't exist (#{new_resource.raid_device}) - not stopping")
122
168
  end
123
169
  end
124
170
 
@@ -34,6 +34,7 @@ class Chef
34
34
  property :supports, [Array, Hash],
35
35
  description: "Specify a Hash of supported mount features.",
36
36
  default: lazy { { remount: false } },
37
+ default_description: "{ remount: false }",
37
38
  coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
38
39
 
39
40
  property :password, String,
@@ -41,11 +42,11 @@ class Chef
41
42
  sensitive: true
42
43
 
43
44
  property :mount_point, String, name_property: true,
44
- coerce: proc { |arg| (arg == "/" || arg.match?(":/$")) ? arg : arg.chomp("/") }, # Removed "/" from the end of str, because it was causing idempotency issue.
45
+ coerce: proc { |arg| arg.chomp("/") }, # Removed "/" from the end of str, because it was causing idempotency issue.
45
46
  description: "The directory (or path) in which the device is to be mounted. Defaults to the name of the resource block if not provided."
46
47
 
47
48
  property :device, String, identity: true,
48
- description: "Required for :umount and :remount actions (for the purpose of checking the mount command output for presence). The special block device or remote node, a label, or a uuid to be mounted."
49
+ description: "Required for `:umount` and `:remount` actions (for the purpose of checking the mount command output for presence). The special block device or remote node, a label, or a uuid to be mounted."
49
50
 
50
51
  property :device_type, [String, Symbol],
51
52
  description: "The type of device: :device, :label, or :uuid",
@@ -31,7 +31,7 @@ class Chef
31
31
  description "Use the **openssl_ec_private_key** resource to generate an elliptic curve (EC) private key file. If a valid EC key file can be opened at the specified location, no new file will be created. If the EC key file cannot be opened, either because it does not exist or because the password to the EC key file does not match the password in the recipe, then it will be overwritten."
32
32
  introduced "14.4"
33
33
  examples <<~DOC
34
- Generate a new ec privatekey with prime256v1 key curve and default des3 cipher
34
+ **Generate a new ec privatekey with prime256v1 key curve and default des3 cipher**
35
35
 
36
36
  ```ruby
37
37
  openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
@@ -41,7 +41,7 @@ class Chef
41
41
  end
42
42
  ```
43
43
 
44
- Generate a new ec private key with prime256v1 key curve and aes-128-cbc cipher
44
+ **Generate a new ec private key with prime256v1 key curve and aes-128-cbc cipher**
45
45
 
46
46
  ```ruby
47
47
  openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
@@ -43,7 +43,7 @@ class Chef
43
43
  Generate new 1024bit key with the aes-128-cbc cipher
44
44
 
45
45
  ```ruby
46
- openssl_rsa_key '/etc/ssl_files/rsakey_aes128cbc.pem' do
46
+ openssl_rsa_private_key '/etc/ssl_files/rsakey_aes128cbc.pem' do
47
47
  key_length 1024
48
48
  key_cipher 'aes-128-cbc'
49
49
  action :create
@@ -108,11 +108,11 @@ class Chef
108
108
 
109
109
  property :extensions, Hash,
110
110
  description: "Hash of X509 Extensions entries, in format `{ 'keyUsage' => { 'values' => %w( keyEncipherment digitalSignature), 'critical' => true } }`.",
111
- default: lazy { {} }
111
+ default: {}
112
112
 
113
113
  property :subject_alt_name, Array,
114
114
  description: "Array of Subject Alternative Name entries, in format `DNS:example.com` or `IP:1.2.3.4`.",
115
- default: lazy { [] }
115
+ default: []
116
116
 
117
117
  property :key_file, String,
118
118
  description: "The path to a certificate key file on the filesystem. If the key_file property is specified, the resource will attempt to source a key from this location. If no key file is found, the resource will generate a new key file at this location. If the key_file property is not specified, the resource will generate a key file in the same directory as the generated certificate, with the same name as the generated certificate."
@@ -64,20 +64,20 @@ class Chef
64
64
  "utf-8" => "xml1",
65
65
  "binary" => "binary1" }.freeze
66
66
 
67
- load_current_value do |desired|
68
- current_value_does_not_exist! unless ::File.exist? desired.path
69
- entry desired.entry if entry_in_plist? desired.entry, desired.path
67
+ load_current_value do |new_resource|
68
+ current_value_does_not_exist! unless ::File.exist? new_resource.path
69
+ entry new_resource.entry if entry_in_plist? new_resource.entry, new_resource.path
70
70
 
71
- setting = setting_from_plist desired.entry, desired.path
71
+ setting = setting_from_plist new_resource.entry, new_resource.path
72
72
  value convert_to_data_type_from_string(setting[:key_type], setting[:key_value])
73
73
 
74
- file_type_cmd = shell_out "/usr/bin/file", "--brief", "--mime-encoding", "--preserve-date", desired.path
74
+ file_type_cmd = shell_out "/usr/bin/file", "--brief", "--mime-encoding", "--preserve-date", new_resource.path
75
75
  encoding file_type_cmd.stdout.chomp
76
76
 
77
- file_owner_cmd = shell_out("/usr/bin/stat", "-f", "%Su", desired.path)
77
+ file_owner_cmd = shell_out("/usr/bin/stat", "-f", "%Su", new_resource.path)
78
78
  owner file_owner_cmd.stdout.chomp
79
79
 
80
- file_group_cmd = shell_out("/usr/bin/stat", "-f", "%Sg", desired.path)
80
+ file_group_cmd = shell_out("/usr/bin/stat", "-f", "%Sg", new_resource.path)
81
81
  group file_group_cmd.stdout.chomp
82
82
  end
83
83
 
@@ -27,7 +27,7 @@ class Chef
27
27
  provides :powershell_script, os: "windows"
28
28
 
29
29
  description <<~DESC
30
- Use the **powershell_script** resource to execute a script using the Windows PowerShell interpreter, much like how the script and script-based resources **bash**, **csh**, **perl**, **python**, and **ruby** are used. The **powershell_script** resource is specific to the Microsoft Windows platform, but may use both the the Windows PowerShell interpreter or the PowerShell Core (pwsh) interpreter as of Chef Infra Client 16.6 and later.
30
+ Use the **powershell_script** resource to execute a script using the Windows PowerShell interpreter, much like how the script and script-based resources **bash**, **csh**, **perl**, **python**, and **ruby** are used. The **powershell_script** resource is specific to the Microsoft Windows platform, but may use both the Windows PowerShell interpreter or the PowerShell Core (pwsh) interpreter as of Chef Infra Client 16.6 and later.
31
31
 
32
32
  The **powershell_script** resource creates and executes a temporary file rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use `not_if` and `only_if` conditionals to guard this resource for idempotence.
33
33
  DESC
@@ -95,7 +95,7 @@ class Chef
95
95
  property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
96
96
  description: "Whether #{ChefUtils::Dist::Infra::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
97
97
 
98
- property :headers, Hash, default: lazy { {} },
98
+ property :headers, Hash, default: {},
99
99
  description: "A Hash of custom HTTP headers."
100
100
 
101
101
  property :show_progress, [ TrueClass, FalseClass ], default: false
@@ -25,12 +25,27 @@ class Chef
25
25
 
26
26
  description "Use the **rhsm_errata** resource to install packages associated with a given Red Hat Subscription Manager Errata ID. This is helpful if packages to mitigate a single vulnerability must be installed on your hosts."
27
27
  introduced "14.0"
28
+ examples <<~DOC
29
+ **Install a package from an Errata ID**
30
+
31
+ ```ruby
32
+ rhsm_errata 'RHSA:2018-1234'
33
+ ```
34
+
35
+ **Specify an Errata ID that differs from the resource name**
36
+
37
+ ```ruby
38
+ rhsm_errata 'errata-install'
39
+ errata_id 'RHSA:2018-1234'
40
+ end
41
+ ```
42
+ DOC
28
43
 
29
44
  property :errata_id, String,
30
45
  description: "An optional property for specifying the errata ID if it differs from the resource block's name.",
31
46
  name_property: true
32
47
 
33
- action :install do
48
+ action :install, description: "Install a package for a specific errata ID." do
34
49
  description "Installs a package for a specific errata ID."
35
50
 
36
51
  execute "Install errata packages for #{new_resource.errata_id}" do
@@ -25,6 +25,15 @@ class Chef
25
25
 
26
26
  description "Use the **rhsm_errata_level** resource to install all packages of a specified errata level from the Red Hat Subscription Manager. For example, you can ensure that all packages associated with errata marked at a 'Critical' security level are installed."
27
27
  introduced "14.0"
28
+ examples <<~DOC
29
+ **Specify an errata level that differs from the resource name**
30
+
31
+ ```ruby
32
+ rhsm_errata_level 'example_install_moderate' do
33
+ errata_level 'moderate'
34
+ end
35
+ ```
36
+ DOC
28
37
 
29
38
  property :errata_level, String,
30
39
  coerce: proc { |x| x.downcase },
@@ -32,7 +41,7 @@ class Chef
32
41
  description: "An optional property for specifying the errata level of packages to install if it differs from the resource block's name.",
33
42
  name_property: true
34
43
 
35
- action :install do
44
+ action :install, description: "Install all packages of the specified errata level." do
36
45
  description "Install all packages of the specified errata level."
37
46
 
38
47
  if rhel6?
@@ -27,6 +27,16 @@ class Chef
27
27
 
28
28
  description "Use the **rhsm_register** resource to register a node with the Red Hat Subscription Manager or a local Red Hat Satellite server."
29
29
  introduced "14.0"
30
+ examples <<~DOC
31
+ **Register a node with RHSM*
32
+
33
+ ```ruby
34
+ rhsm_register 'my-host' do
35
+ activation_key 'ABCD1234'
36
+ organization 'my_org'
37
+ end
38
+ ```
39
+ DOC
30
40
 
31
41
  property :activation_key, [String, Array],
32
42
  coerce: proc { |x| Array(x) },
@@ -69,9 +79,7 @@ class Chef
69
79
  default: false, desired_state: false,
70
80
  introduced: "15.9"
71
81
 
72
- action :register do
73
- description "Register the node with RHSM."
74
-
82
+ action :register, description: "Register the node with RHSM." do
75
83
  package "subscription-manager"
76
84
 
77
85
  unless new_resource.satellite_host.nil? || registered_with_rhsm?
@@ -106,9 +114,7 @@ class Chef
106
114
  end
107
115
  end
108
116
 
109
- action :unregister do
110
- description "Unregister the node from RHSM."
111
-
117
+ action :unregister, description: "Unregister the node from RHSM." do
112
118
  execute "Unregister from RHSM" do
113
119
  command "subscription-manager unregister"
114
120
  default_env true
@@ -31,9 +31,7 @@ class Chef
31
31
  description: "An optional property for specifying the repository name if it differs from the resource block's name.",
32
32
  name_property: true
33
33
 
34
- action :enable do
35
- description "Enable a RHSM repository."
36
-
34
+ action :enable, description: "Enable a RHSM repository." do
37
35
  execute "Enable repository #{new_resource.repo_name}" do
38
36
  command "subscription-manager repos --enable=#{new_resource.repo_name}"
39
37
  default_env true
@@ -42,9 +40,7 @@ class Chef
42
40
  end
43
41
  end
44
42
 
45
- action :disable do
46
- description "Disable a RHSM repository."
47
-
43
+ action :disable, description: "Disable a RHSM repository." do
48
44
  execute "Enable repository #{new_resource.repo_name}" do
49
45
  command "subscription-manager repos --disable=#{new_resource.repo_name}"
50
46
  default_env true
@@ -31,20 +31,16 @@ class Chef
31
31
  description: "An optional property for specifying the Pool ID if it differs from the resource block's name.",
32
32
  name_property: true
33
33
 
34
- action :attach do
35
- description "Attach the node to a subscription pool."
36
-
37
- unless subscription_attached?(new_resource.pool_id)
38
- converge_by("attach subscription pool #{new_resource.pool_id}") do
39
- shell_out!("subscription-manager attach --pool=#{new_resource.pool_id}")
40
- build_resource(:package, "rhsm_subscription-#{new_resource.pool_id}-flush_cache").run_action(:flush_cache)
41
- end
34
+ action :attach, description: "Attach the node to a subscription pool." do
35
+ execute "Attach subscription pool #{new_resource.pool_id}" do
36
+ command "subscription-manager attach --pool=#{new_resource.pool_id}"
37
+ default_env true
38
+ action :run
39
+ not_if { subscription_attached?(new_resource.pool_id) }
42
40
  end
43
41
  end
44
42
 
45
- action :remove do
46
- description "Remove the node from a subscription pool."
47
-
43
+ action :remove, description: "Remove the node from a subscription pool." do
48
44
  execute "Remove subscription pool #{new_resource.pool_id}" do
49
45
  command "subscription-manager remove --serial=#{pool_serial(new_resource.pool_id)}"
50
46
  default_env true
@@ -112,7 +112,7 @@ class Chef
112
112
 
113
113
  property :additional_remotes, Hash,
114
114
  description: "A Hash of additional remotes that are added to the git repository configuration.",
115
- default: lazy { {} }
115
+ default: {}
116
116
 
117
117
  property :depth, Integer,
118
118
  description: "The number of past revisions to be included in the git shallow clone. Unless specified the default behavior will do a full clone."
@@ -71,12 +71,12 @@ class Chef
71
71
 
72
72
  property :users, [String, Array],
73
73
  description: "User(s) to provide sudo privileges to. This property accepts either an array or a comma separated list.",
74
- default: lazy { [] },
74
+ default: [],
75
75
  coerce: proc { |x| x.is_a?(Array) ? x : x.split(/\s*,\s*/) }
76
76
 
77
77
  property :groups, [String, Array],
78
78
  description: "Group(s) to provide sudo privileges to. This property accepts either an array or a comma separated list. Leading % on group names is optional.",
79
- default: lazy { [] },
79
+ default: [],
80
80
  coerce: proc { |x| coerce_groups(x) }
81
81
 
82
82
  property :commands, Array,
@@ -108,11 +108,11 @@ class Chef
108
108
 
109
109
  property :defaults, Array,
110
110
  description: "An array of defaults for the user/group.",
111
- default: lazy { [] }
111
+ default: []
112
112
 
113
113
  property :command_aliases, Array,
114
114
  description: "Command aliases that can be used as allowed commands later in the configuration.",
115
- default: lazy { [] }
115
+ default: []
116
116
 
117
117
  property :setenv, [TrueClass, FalseClass],
118
118
  description: "Determines whether or not to permit preservation of the environment with `sudo -E`.",
@@ -120,11 +120,11 @@ class Chef
120
120
 
121
121
  property :env_keep_add, Array,
122
122
  description: "An array of strings to add to `env_keep`.",
123
- default: lazy { [] }
123
+ default: []
124
124
 
125
125
  property :env_keep_subtract, Array,
126
126
  description: "An array of strings to remove from `env_keep`.",
127
- default: lazy { [] }
127
+ default: []
128
128
 
129
129
  property :visudo_path, String,
130
130
  deprecated: true
@@ -22,12 +22,6 @@
22
22
  <% next if instance_variable_get(prop).nil? || instance_variable_get(prop).empty? -%>
23
23
  <%=prop.delete_prefix("@") %> <%= instance_variable_get(prop).inspect %>
24
24
  <% end -%>
25
- <%# ohai_disabled_plugins and ohai_optional_plugins properties don't match the config value perfectly-%>
26
- <% %w(@ohai_disabled_plugins
27
- @ohai_optional_plugins).each do |prop| -%>
28
- <% next if instance_variable_get(prop).nil? || instance_variable_get(prop).empty? -%>
29
- <%=prop.gsub("@ohai_", "ohai.") %> <%= instance_variable_get(prop).inspect %>
30
- <% end -%>
31
25
  <%# log_location is special due to STDOUT/STDERR from String -> IO Object -%>
32
26
  <% unless @log_location.nil? %>
33
27
  <% if @log_location.is_a?(String) && %w(STDOUT STDERR).include?(@log_location) -%>
@@ -131,9 +131,7 @@ class Chef
131
131
 
132
132
  end
133
133
 
134
- action :apply do
135
- description "Apply a sysctl value."
136
-
134
+ action :apply, description: "Apply a sysctl value" do
137
135
  converge_if_changed do
138
136
  # set it temporarily
139
137
  set_sysctl_param(new_resource.key, new_resource.value)
@@ -152,9 +150,7 @@ class Chef
152
150
  end
153
151
  end
154
152
 
155
- action :remove do
156
- description "Remove a sysctl value."
157
-
153
+ action :remove, description: "Remove a sysctl value" do
158
154
  # only converge the resource if the file actually exists to delete
159
155
  if ::File.exist?("#{new_resource.conf_dir}/99-chef-#{new_resource.key.tr("/", ".")}.conf")
160
156
  converge_by "removing sysctl config at #{new_resource.conf_dir}/99-chef-#{new_resource.key.tr("/", ".")}.conf" do
@@ -34,7 +34,7 @@ class Chef
34
34
 
35
35
  ```ruby
36
36
  systemd_unit 'etcd.service' do
37
- content({Unit: {
37
+ content(Unit: {
38
38
  Description: 'Etcd',
39
39
  Documentation: ['https://coreos.com/etcd', 'man:etcd(1)'],
40
40
  After: 'network.target',
@@ -46,7 +46,7 @@ class Chef
46
46
  },
47
47
  Install: {
48
48
  WantedBy: 'multi-user.target',
49
- }})
49
+ })
50
50
  action [:create, :enable]
51
51
  end
52
52
  ```
@@ -113,7 +113,7 @@ class Chef
113
113
  when Hash
114
114
  IniParse.gen do |doc|
115
115
  content.each_pair do |sect, opts|
116
- doc.section(sect, { option_sep: "=" }) do |section|
116
+ doc.section(sect) do |section|
117
117
  opts.each_pair do |opt, val|
118
118
  [val].flatten.each do |v|
119
119
  section.option(opt, v)
@@ -61,7 +61,7 @@ class Chef
61
61
 
62
62
  property :variables, Hash,
63
63
  description: "The variables property of the template resource can be used to reference a partial template file by using a Hash.",
64
- default: lazy { {} }
64
+ default: {}
65
65
 
66
66
  property :cookbook, String,
67
67
  description: "The cookbook in which a file is located (if it is not located in the current cookbook). The default value is the current cookbook.",
@@ -119,9 +119,7 @@ class Chef
119
119
  end
120
120
  end
121
121
 
122
- action :set do
123
- description "Set the timezone."
124
-
122
+ action :set, description: "Set the system timezone" do
125
123
  # we have to check windows first since the value isn't case sensitive here
126
124
  if windows?
127
125
  unless current_windows_tz.casecmp?(new_resource.timezone)
@@ -61,7 +61,7 @@ class Chef
61
61
  unified_mode true
62
62
 
63
63
  provides :mac_user
64
- provides :user, platform: "mac_os_x", platform_version: ">= 10.14"
64
+ provides :user, platform: "mac_os_x"
65
65
 
66
66
  introduced "15.3"
67
67
 
@@ -78,12 +78,11 @@ class Chef
78
78
  coerce: proc { |m| m.end_with?(".conf") ? m : m + ".conf" },
79
79
  default: lazy { |r| r.username == "*" ? "00_all_limits.conf" : "#{r.username}_limits.conf" }
80
80
 
81
- action :create do
81
+ action :create, description: "Create a ulimit configuration file" do
82
82
  template "/etc/security/limits.d/#{new_resource.filename}" do
83
83
  source ::File.expand_path("support/ulimit.erb", __dir__)
84
84
  local true
85
85
  mode "0644"
86
- sensitive new_resource.sensitive
87
86
  variables(
88
87
  ulimit_user: new_resource.username,
89
88
  filehandle_limit: new_resource.filehandle_limit,
@@ -107,7 +106,7 @@ class Chef
107
106
  end
108
107
  end
109
108
 
110
- action :delete do
109
+ action :delete, description: "Delete an existing ulimit configuration file" do
111
110
  file "/etc/security/limits.d/#{new_resource.filename}" do
112
111
  action :delete
113
112
  end
@@ -97,9 +97,7 @@ class Chef
97
97
  property :sensitive, [TrueClass, FalseClass],
98
98
  default: true, desired_state: false
99
99
 
100
- action :join do
101
- description "Join the Active Directory domain."
102
-
100
+ action :join, description: "Join the Active Directory domain" do
103
101
  unless on_desired_domain?
104
102
  cmd = "$pswd = ConvertTo-SecureString \'#{new_resource.domain_password}\' -AsPlainText -Force;"
105
103
  cmd << "$credential = New-Object System.Management.Automation.PSCredential (\"#{sanitize_usename}\",$pswd);"
@@ -129,9 +127,7 @@ class Chef
129
127
  end
130
128
  end
131
129
 
132
- action :leave do
133
- description "Leave the Active Directory domain."
134
-
130
+ action :leave, description: "Leave an Active Directory domain and re-join a workgroup" do
135
131
  if joined_to_domain?
136
132
  cmd = ""
137
133
  cmd << "$pswd = ConvertTo-SecureString \'#{new_resource.domain_password}\' -AsPlainText -Force;"
@@ -152,7 +152,7 @@ class Chef
152
152
  property :audit_base_directories, [true, false],
153
153
  description: "Setting this audit policy option to true will force the system to assign a System Access Control List to named objects to enable auditing of container objects such as directories."
154
154
 
155
- action :set do
155
+ action :set, description: "Configure an audit policy" do
156
156
  unless new_resource.subcategory.nil?
157
157
  new_resource.subcategory.each do |subcategory|
158
158
  next if subcategory_configured?(subcategory, new_resource.success, new_resource.failure)
@@ -57,8 +57,7 @@ class Chef
57
57
 
58
58
  alias_method :program, :path
59
59
 
60
- action :create do
61
- description "Create an item to be run at login."
60
+ action :create, description: "Create an item to be run at login" do
62
61
 
63
62
  data = "\"#{new_resource.path}\""
64
63
  data << " #{new_resource.args}" if new_resource.args
@@ -73,9 +72,7 @@ class Chef
73
72
  end
74
73
  end
75
74
 
76
- action :remove do
77
- description "Remove an item that was previously setup to run at login"
78
-
75
+ action :remove, description: "Remove an item that was previously configured to run at login" do
79
76
  registry_key registry_path do
80
77
  values [{
81
78
  name: new_resource.program_name,