chef 16.14.1 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (615) 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/data_bag_item.rb +11 -2
  25. data/lib/chef/delayed_evaluator.rb +4 -0
  26. data/lib/chef/deprecated.rb +4 -0
  27. data/lib/chef/dsl/chef_vault.rb +6 -6
  28. data/lib/chef/dsl/reboot_pending.rb +1 -2
  29. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  30. data/lib/chef/group.rb +75 -0
  31. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  32. data/lib/chef/node/attribute.rb +6 -4
  33. data/lib/chef/node/immutable_collections.rb +13 -0
  34. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  35. data/lib/chef/org.rb +3 -2
  36. data/lib/chef/property.rb +18 -0
  37. data/lib/chef/provider.rb +1 -1
  38. data/lib/chef/provider/cron.rb +1 -1
  39. data/lib/chef/provider/execute.rb +2 -1
  40. data/lib/chef/provider/file.rb +1 -1
  41. data/lib/chef/provider/git.rb +5 -7
  42. data/lib/chef/provider/group/groupadd.rb +3 -3
  43. data/lib/chef/provider/group/groupmod.rb +3 -3
  44. data/lib/chef/provider/group/pw.rb +3 -3
  45. data/lib/chef/provider/ifconfig.rb +2 -2
  46. data/lib/chef/provider/link.rb +2 -2
  47. data/lib/chef/provider/mount.rb +5 -5
  48. data/lib/chef/provider/mount/aix.rb +3 -3
  49. data/lib/chef/provider/mount/mount.rb +5 -5
  50. data/lib/chef/provider/mount/windows.rb +1 -1
  51. data/lib/chef/provider/package.rb +17 -21
  52. data/lib/chef/provider/package/apt.rb +27 -1
  53. data/lib/chef/provider/package/deb.rb +3 -3
  54. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  55. data/lib/chef/provider/package/portage.rb +2 -2
  56. data/lib/chef/provider/package/rubygems.rb +9 -15
  57. data/lib/chef/provider/package/windows.rb +2 -4
  58. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  59. data/lib/chef/provider/route.rb +2 -2
  60. data/lib/chef/provider/service.rb +6 -6
  61. data/lib/chef/provider/service/aixinit.rb +1 -1
  62. data/lib/chef/provider/service/debian.rb +1 -1
  63. data/lib/chef/provider/service/freebsd.rb +15 -21
  64. data/lib/chef/provider/service/macosx.rb +4 -4
  65. data/lib/chef/provider/service/systemd.rb +43 -14
  66. data/lib/chef/provider/service/upstart.rb +2 -13
  67. data/lib/chef/provider/service/windows.rb +12 -12
  68. data/lib/chef/provider/subversion.rb +10 -12
  69. data/lib/chef/provider/systemd_unit.rb +36 -10
  70. data/lib/chef/provider/template/content.rb +2 -6
  71. data/lib/chef/provider/user.rb +2 -2
  72. data/lib/chef/provider/user/dscl.rb +1 -1
  73. data/lib/chef/provider/user/mac.rb +17 -20
  74. data/lib/chef/provider/user/pw.rb +1 -1
  75. data/lib/chef/provider/user/windows.rb +1 -1
  76. data/lib/chef/provider/zypper_repository.rb +2 -2
  77. data/lib/chef/providers.rb +0 -1
  78. data/lib/chef/resource/alternatives.rb +6 -6
  79. data/lib/chef/resource/apt_package.rb +1 -1
  80. data/lib/chef/resource/apt_preference.rb +2 -2
  81. data/lib/chef/resource/apt_repository.rb +6 -6
  82. data/lib/chef/resource/apt_update.rb +3 -2
  83. data/lib/chef/resource/archive_file.rb +2 -3
  84. data/lib/chef/resource/breakpoint.rb +1 -1
  85. data/lib/chef/resource/build_essential.rb +2 -6
  86. data/lib/chef/resource/chef_client_config.rb +2 -2
  87. data/lib/chef/resource/chef_client_cron.rb +4 -4
  88. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  89. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  90. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  91. data/lib/chef/resource/chef_handler.rb +3 -7
  92. data/lib/chef/resource/chef_sleep.rb +1 -1
  93. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  94. data/lib/chef/resource/chocolatey_config.rb +2 -6
  95. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  96. data/lib/chef/resource/chocolatey_source.rb +4 -10
  97. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  98. data/lib/chef/resource/cron_access.rb +2 -4
  99. data/lib/chef/resource/dmg_package.rb +6 -10
  100. data/lib/chef/resource/dpkg_package.rb +1 -1
  101. data/lib/chef/resource/execute.rb +6 -1
  102. data/lib/chef/resource/file.rb +1 -1
  103. data/lib/chef/resource/group.rb +2 -2
  104. data/lib/chef/resource/homebrew_cask.rb +2 -6
  105. data/lib/chef/resource/homebrew_tap.rb +2 -6
  106. data/lib/chef/resource/hostname.rb +21 -17
  107. data/lib/chef/resource/http_request.rb +1 -1
  108. data/lib/chef/resource/kernel_module.rb +6 -17
  109. data/lib/chef/resource/locale.rb +2 -3
  110. data/lib/chef/resource/lwrp_base.rb +4 -0
  111. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  112. data/lib/chef/resource/mdadm.rb +53 -7
  113. data/lib/chef/resource/mount.rb +2 -1
  114. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  115. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  116. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  117. data/lib/chef/resource/plist.rb +7 -7
  118. data/lib/chef/resource/powershell_script.rb +1 -1
  119. data/lib/chef/resource/remote_file.rb +1 -1
  120. data/lib/chef/resource/rhsm_errata.rb +16 -1
  121. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  122. data/lib/chef/resource/rhsm_register.rb +12 -6
  123. data/lib/chef/resource/rhsm_repo.rb +2 -6
  124. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  125. data/lib/chef/resource/scm/git.rb +1 -1
  126. data/lib/chef/resource/sudo.rb +6 -6
  127. data/lib/chef/resource/sysctl.rb +2 -6
  128. data/lib/chef/resource/systemd_unit.rb +2 -2
  129. data/lib/chef/resource/template.rb +1 -1
  130. data/lib/chef/resource/timezone.rb +1 -3
  131. data/lib/chef/resource/user/mac_user.rb +1 -1
  132. data/lib/chef/resource/user_ulimit.rb +2 -2
  133. data/lib/chef/resource/windows_ad_join.rb +2 -6
  134. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  135. data/lib/chef/resource/windows_auto_run.rb +2 -5
  136. data/lib/chef/resource/windows_certificate.rb +207 -73
  137. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  138. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  139. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  140. data/lib/chef/resource/windows_dns_record.rb +2 -6
  141. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  142. data/lib/chef/resource/windows_env.rb +5 -4
  143. data/lib/chef/resource/windows_feature.rb +3 -9
  144. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  145. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  146. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  147. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  148. data/lib/chef/resource/windows_font.rb +2 -4
  149. data/lib/chef/resource/windows_pagefile.rb +2 -6
  150. data/lib/chef/resource/windows_path.rb +2 -2
  151. data/lib/chef/resource/windows_printer.rb +4 -4
  152. data/lib/chef/resource/windows_printer_port.rb +6 -6
  153. data/lib/chef/resource/windows_security_policy.rb +53 -40
  154. data/lib/chef/resource/windows_share.rb +14 -21
  155. data/lib/chef/resource/windows_shortcut.rb +4 -6
  156. data/lib/chef/resource/windows_task.rb +17 -5
  157. data/lib/chef/resource/windows_uac.rb +1 -1
  158. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  159. data/lib/chef/resource/windows_workgroup.rb +1 -2
  160. data/lib/chef/resources.rb +0 -1
  161. data/lib/chef/user.rb +0 -1
  162. data/lib/chef/user_v1.rb +3 -4
  163. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  164. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  165. data/lib/chef/version.rb +1 -1
  166. data/lib/chef/win32/registry.rb +4 -2
  167. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  168. data/spec/data/lwrp/resources/bar.rb +2 -0
  169. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  170. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  171. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  172. data/spec/data/lwrp/resources/foo.rb +2 -0
  173. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  174. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  175. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  176. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  177. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  178. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  179. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  180. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  181. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  182. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  183. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  184. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  185. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  186. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  187. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  188. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  189. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  190. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  191. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  192. data/spec/functional/resource/apt_package_spec.rb +1 -1
  193. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  194. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  195. data/spec/functional/resource/registry_spec.rb +8 -8
  196. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  197. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  198. data/spec/functional/version_spec.rb +1 -1
  199. data/spec/functional/win32/registry_spec.rb +1 -1
  200. data/spec/integration/client/client_spec.rb +5 -2
  201. data/spec/integration/client/exit_code_spec.rb +1 -1
  202. data/spec/integration/client/ipv6_spec.rb +1 -1
  203. data/spec/integration/compliance/compliance_spec.rb +1 -1
  204. data/spec/integration/ohai/ohai_spec.rb +7 -6
  205. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  206. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  207. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  208. data/spec/integration/recipes/notifies_spec.rb +15 -1
  209. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  210. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  211. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  212. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  213. data/spec/spec_helper.rb +10 -13
  214. data/spec/support/chef_helpers.rb +0 -16
  215. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  216. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  217. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  218. data/spec/support/matchers/leak.rb +7 -9
  219. data/spec/support/platform_helpers.rb +1 -8
  220. data/spec/support/shared/integration/integration_helper.rb +0 -1
  221. data/spec/support/shared/unit/script_resource.rb +2 -2
  222. data/spec/unit/application/solo_spec.rb +2 -2
  223. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  224. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  225. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  226. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  227. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  228. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  229. data/spec/unit/compliance/runner_spec.rb +30 -4
  230. data/spec/unit/data_bag_item_spec.rb +1 -6
  231. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  232. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  233. data/spec/unit/lwrp_spec.rb +1 -1
  234. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  235. data/spec/unit/node/attribute_spec.rb +1 -1
  236. data/spec/unit/node_spec.rb +78 -0
  237. data/spec/unit/org_group_spec.rb +45 -0
  238. data/spec/unit/property_spec.rb +23 -22
  239. data/spec/unit/provider/cron_spec.rb +1 -1
  240. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  241. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  242. data/spec/unit/provider/group/pw_spec.rb +2 -2
  243. data/spec/unit/provider/group_spec.rb +1 -1
  244. data/spec/unit/provider/package/apt_spec.rb +84 -18
  245. data/spec/unit/provider/package/deb_spec.rb +3 -3
  246. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  247. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  248. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  249. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  250. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  251. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  252. data/spec/unit/provider/service/windows_spec.rb +2 -2
  253. data/spec/unit/provider/subversion_spec.rb +2 -2
  254. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  255. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  256. data/spec/unit/provider_spec.rb +0 -8
  257. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  258. data/spec/unit/resource/windows_task_spec.rb +1 -1
  259. data/spec/unit/user_spec.rb +1 -1
  260. data/spec/unit/user_v1_spec.rb +6 -4
  261. data/tasks/rspec.rb +15 -7
  262. metadata +17 -380
  263. data/bin/knife +0 -24
  264. data/lib/chef/application/knife.rb +0 -234
  265. data/lib/chef/application/windows_service.rb +0 -338
  266. data/lib/chef/application/windows_service_manager.rb +0 -205
  267. data/lib/chef/chef_fs/knife.rb +0 -160
  268. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  269. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  270. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  271. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  272. data/lib/chef/knife.rb +0 -665
  273. data/lib/chef/knife/acl_add.rb +0 -57
  274. data/lib/chef/knife/acl_base.rb +0 -183
  275. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  276. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  277. data/lib/chef/knife/acl_remove.rb +0 -62
  278. data/lib/chef/knife/acl_show.rb +0 -56
  279. data/lib/chef/knife/bootstrap.rb +0 -1192
  280. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  281. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  282. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  283. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  284. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  285. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  286. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  287. data/lib/chef/knife/client_create.rb +0 -101
  288. data/lib/chef/knife/client_delete.rb +0 -62
  289. data/lib/chef/knife/client_edit.rb +0 -52
  290. data/lib/chef/knife/client_key_create.rb +0 -73
  291. data/lib/chef/knife/client_key_delete.rb +0 -80
  292. data/lib/chef/knife/client_key_edit.rb +0 -83
  293. data/lib/chef/knife/client_key_list.rb +0 -73
  294. data/lib/chef/knife/client_key_show.rb +0 -80
  295. data/lib/chef/knife/client_list.rb +0 -41
  296. data/lib/chef/knife/client_reregister.rb +0 -58
  297. data/lib/chef/knife/client_show.rb +0 -48
  298. data/lib/chef/knife/config_get.rb +0 -39
  299. data/lib/chef/knife/config_get_profile.rb +0 -37
  300. data/lib/chef/knife/config_list.rb +0 -139
  301. data/lib/chef/knife/config_list_profiles.rb +0 -37
  302. data/lib/chef/knife/config_show.rb +0 -127
  303. data/lib/chef/knife/config_use.rb +0 -61
  304. data/lib/chef/knife/config_use_profile.rb +0 -47
  305. data/lib/chef/knife/configure.rb +0 -150
  306. data/lib/chef/knife/configure_client.rb +0 -48
  307. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  308. data/lib/chef/knife/cookbook_delete.rb +0 -151
  309. data/lib/chef/knife/cookbook_download.rb +0 -142
  310. data/lib/chef/knife/cookbook_list.rb +0 -47
  311. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  312. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  313. data/lib/chef/knife/cookbook_show.rb +0 -98
  314. data/lib/chef/knife/cookbook_upload.rb +0 -292
  315. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  316. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  317. data/lib/chef/knife/core/formatting_options.rb +0 -49
  318. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  319. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  320. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  321. data/lib/chef/knife/core/node_editor.rb +0 -130
  322. data/lib/chef/knife/core/node_presenter.rb +0 -133
  323. data/lib/chef/knife/core/object_loader.rb +0 -115
  324. data/lib/chef/knife/core/status_presenter.rb +0 -147
  325. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  326. data/lib/chef/knife/core/text_formatter.rb +0 -85
  327. data/lib/chef/knife/core/ui.rb +0 -338
  328. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  329. data/lib/chef/knife/data_bag_create.rb +0 -81
  330. data/lib/chef/knife/data_bag_delete.rb +0 -49
  331. data/lib/chef/knife/data_bag_edit.rb +0 -74
  332. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  333. data/lib/chef/knife/data_bag_list.rb +0 -42
  334. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  335. data/lib/chef/knife/data_bag_show.rb +0 -69
  336. data/lib/chef/knife/delete.rb +0 -125
  337. data/lib/chef/knife/deps.rb +0 -156
  338. data/lib/chef/knife/diff.rb +0 -83
  339. data/lib/chef/knife/download.rb +0 -84
  340. data/lib/chef/knife/edit.rb +0 -88
  341. data/lib/chef/knife/environment_compare.rb +0 -128
  342. data/lib/chef/knife/environment_create.rb +0 -52
  343. data/lib/chef/knife/environment_delete.rb +0 -44
  344. data/lib/chef/knife/environment_edit.rb +0 -44
  345. data/lib/chef/knife/environment_from_file.rb +0 -84
  346. data/lib/chef/knife/environment_list.rb +0 -41
  347. data/lib/chef/knife/environment_show.rb +0 -47
  348. data/lib/chef/knife/exec.rb +0 -99
  349. data/lib/chef/knife/group_add.rb +0 -55
  350. data/lib/chef/knife/group_create.rb +0 -49
  351. data/lib/chef/knife/group_destroy.rb +0 -53
  352. data/lib/chef/knife/group_list.rb +0 -43
  353. data/lib/chef/knife/group_remove.rb +0 -56
  354. data/lib/chef/knife/group_show.rb +0 -49
  355. data/lib/chef/knife/key_create.rb +0 -112
  356. data/lib/chef/knife/key_create_base.rb +0 -50
  357. data/lib/chef/knife/key_delete.rb +0 -55
  358. data/lib/chef/knife/key_edit.rb +0 -118
  359. data/lib/chef/knife/key_edit_base.rb +0 -55
  360. data/lib/chef/knife/key_list.rb +0 -90
  361. data/lib/chef/knife/key_list_base.rb +0 -45
  362. data/lib/chef/knife/key_show.rb +0 -53
  363. data/lib/chef/knife/list.rb +0 -177
  364. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  365. data/lib/chef/knife/node_create.rb +0 -47
  366. data/lib/chef/knife/node_delete.rb +0 -46
  367. data/lib/chef/knife/node_edit.rb +0 -70
  368. data/lib/chef/knife/node_environment_set.rb +0 -53
  369. data/lib/chef/knife/node_from_file.rb +0 -51
  370. data/lib/chef/knife/node_list.rb +0 -44
  371. data/lib/chef/knife/node_policy_set.rb +0 -79
  372. data/lib/chef/knife/node_run_list_add.rb +0 -104
  373. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  374. data/lib/chef/knife/node_run_list_set.rb +0 -66
  375. data/lib/chef/knife/node_show.rb +0 -63
  376. data/lib/chef/knife/null.rb +0 -12
  377. data/lib/chef/knife/raw.rb +0 -123
  378. data/lib/chef/knife/recipe_list.rb +0 -32
  379. data/lib/chef/knife/rehash.rb +0 -50
  380. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  381. data/lib/chef/knife/role_create.rb +0 -53
  382. data/lib/chef/knife/role_delete.rb +0 -46
  383. data/lib/chef/knife/role_edit.rb +0 -45
  384. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  385. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  386. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  387. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  388. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  389. data/lib/chef/knife/role_from_file.rb +0 -51
  390. data/lib/chef/knife/role_list.rb +0 -42
  391. data/lib/chef/knife/role_run_list_add.rb +0 -87
  392. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  393. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  394. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  395. data/lib/chef/knife/role_run_list_set.rb +0 -69
  396. data/lib/chef/knife/role_show.rb +0 -48
  397. data/lib/chef/knife/search.rb +0 -194
  398. data/lib/chef/knife/serve.rb +0 -65
  399. data/lib/chef/knife/show.rb +0 -72
  400. data/lib/chef/knife/ssh.rb +0 -645
  401. data/lib/chef/knife/ssl_check.rb +0 -284
  402. data/lib/chef/knife/ssl_fetch.rb +0 -161
  403. data/lib/chef/knife/status.rb +0 -95
  404. data/lib/chef/knife/supermarket_download.rb +0 -121
  405. data/lib/chef/knife/supermarket_install.rb +0 -192
  406. data/lib/chef/knife/supermarket_list.rb +0 -76
  407. data/lib/chef/knife/supermarket_search.rb +0 -53
  408. data/lib/chef/knife/supermarket_share.rb +0 -166
  409. data/lib/chef/knife/supermarket_show.rb +0 -66
  410. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  411. data/lib/chef/knife/tag_create.rb +0 -52
  412. data/lib/chef/knife/tag_delete.rb +0 -60
  413. data/lib/chef/knife/tag_list.rb +0 -47
  414. data/lib/chef/knife/upload.rb +0 -86
  415. data/lib/chef/knife/user_create.rb +0 -107
  416. data/lib/chef/knife/user_delete.rb +0 -44
  417. data/lib/chef/knife/user_dissociate.rb +0 -42
  418. data/lib/chef/knife/user_edit.rb +0 -52
  419. data/lib/chef/knife/user_invite_add.rb +0 -43
  420. data/lib/chef/knife/user_invite_list.rb +0 -34
  421. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  422. data/lib/chef/knife/user_key_create.rb +0 -73
  423. data/lib/chef/knife/user_key_delete.rb +0 -80
  424. data/lib/chef/knife/user_key_edit.rb +0 -83
  425. data/lib/chef/knife/user_key_list.rb +0 -73
  426. data/lib/chef/knife/user_key_show.rb +0 -80
  427. data/lib/chef/knife/user_list.rb +0 -42
  428. data/lib/chef/knife/user_reregister.rb +0 -59
  429. data/lib/chef/knife/user_show.rb +0 -48
  430. data/lib/chef/knife/xargs.rb +0 -282
  431. data/lib/chef/knife/yaml_convert.rb +0 -91
  432. data/lib/chef/resource/user/dscl_user.rb +0 -35
  433. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  434. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  435. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  436. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  437. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  438. data/spec/functional/knife/configure_spec.rb +0 -33
  439. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  440. data/spec/functional/knife/exec_spec.rb +0 -55
  441. data/spec/functional/knife/rehash_spec.rb +0 -39
  442. data/spec/functional/knife/smoke_test.rb +0 -42
  443. data/spec/functional/knife/ssh_spec.rb +0 -352
  444. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  445. data/spec/functional/resource/windows_service_spec.rb +0 -105
  446. data/spec/functional/win32/service_manager_spec.rb +0 -220
  447. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  448. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  449. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  450. data/spec/integration/knife/chefignore_spec.rb +0 -301
  451. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  452. data/spec/integration/knife/client_create_spec.rb +0 -70
  453. data/spec/integration/knife/client_delete_spec.rb +0 -64
  454. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  455. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  456. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  457. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  458. data/spec/integration/knife/client_list_spec.rb +0 -49
  459. data/spec/integration/knife/client_show_spec.rb +0 -37
  460. data/spec/integration/knife/common_options_spec.rb +0 -174
  461. data/spec/integration/knife/config_list_spec.rb +0 -220
  462. data/spec/integration/knife/config_show_spec.rb +0 -192
  463. data/spec/integration/knife/config_use_spec.rb +0 -198
  464. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  465. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  466. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  467. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  468. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  469. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  470. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  471. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  472. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  473. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  474. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  475. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  476. data/spec/integration/knife/delete_spec.rb +0 -1018
  477. data/spec/integration/knife/deps_spec.rb +0 -703
  478. data/spec/integration/knife/diff_spec.rb +0 -605
  479. data/spec/integration/knife/download_spec.rb +0 -1336
  480. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  481. data/spec/integration/knife/environment_create_spec.rb +0 -41
  482. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  483. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  484. data/spec/integration/knife/environment_list_spec.rb +0 -42
  485. data/spec/integration/knife/environment_show_spec.rb +0 -77
  486. data/spec/integration/knife/list_spec.rb +0 -1060
  487. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  488. data/spec/integration/knife/node_create_spec.rb +0 -47
  489. data/spec/integration/knife/node_delete_spec.rb +0 -48
  490. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  491. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  492. data/spec/integration/knife/node_list_spec.rb +0 -45
  493. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  494. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  495. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  496. data/spec/integration/knife/node_show_spec.rb +0 -36
  497. data/spec/integration/knife/raw_spec.rb +0 -297
  498. data/spec/integration/knife/redirection_spec.rb +0 -64
  499. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  500. data/spec/integration/knife/role_create_spec.rb +0 -41
  501. data/spec/integration/knife/role_delete_spec.rb +0 -48
  502. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  503. data/spec/integration/knife/role_list_spec.rb +0 -45
  504. data/spec/integration/knife/role_show_spec.rb +0 -51
  505. data/spec/integration/knife/search_node_spec.rb +0 -40
  506. data/spec/integration/knife/serve_spec.rb +0 -92
  507. data/spec/integration/knife/show_spec.rb +0 -197
  508. data/spec/integration/knife/upload_spec.rb +0 -1617
  509. data/spec/support/shared/functional/knife.rb +0 -37
  510. data/spec/support/shared/functional/win32_service.rb +0 -57
  511. data/spec/support/shared/integration/knife_support.rb +0 -192
  512. data/spec/support/shared/unit/knife_shared.rb +0 -39
  513. data/spec/unit/application/knife_spec.rb +0 -241
  514. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  515. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  516. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  517. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  518. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  519. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  520. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  521. data/spec/unit/knife/client_create_spec.rb +0 -169
  522. data/spec/unit/knife/client_delete_spec.rb +0 -99
  523. data/spec/unit/knife/client_edit_spec.rb +0 -53
  524. data/spec/unit/knife/client_list_spec.rb +0 -34
  525. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  526. data/spec/unit/knife/client_show_spec.rb +0 -52
  527. data/spec/unit/knife/configure_client_spec.rb +0 -81
  528. data/spec/unit/knife/configure_spec.rb +0 -190
  529. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  530. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  531. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  532. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  533. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  534. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  535. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  536. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  537. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  538. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  539. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  540. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  541. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  542. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  543. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  544. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  545. data/spec/unit/knife/core/ui_spec.rb +0 -656
  546. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  547. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  548. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  549. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  550. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  551. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  552. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  553. data/spec/unit/knife/environment_create_spec.rb +0 -91
  554. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  555. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  556. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  557. data/spec/unit/knife/environment_list_spec.rb +0 -54
  558. data/spec/unit/knife/environment_show_spec.rb +0 -52
  559. data/spec/unit/knife/key_create_spec.rb +0 -223
  560. data/spec/unit/knife/key_delete_spec.rb +0 -133
  561. data/spec/unit/knife/key_edit_spec.rb +0 -264
  562. data/spec/unit/knife/key_helper.rb +0 -74
  563. data/spec/unit/knife/key_list_spec.rb +0 -216
  564. data/spec/unit/knife/key_show_spec.rb +0 -126
  565. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  566. data/spec/unit/knife/node_delete_spec.rb +0 -77
  567. data/spec/unit/knife/node_edit_spec.rb +0 -116
  568. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  569. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  570. data/spec/unit/knife/node_list_spec.rb +0 -62
  571. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  572. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  573. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  574. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  575. data/spec/unit/knife/node_show_spec.rb +0 -65
  576. data/spec/unit/knife/raw_spec.rb +0 -43
  577. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  578. data/spec/unit/knife/role_create_spec.rb +0 -80
  579. data/spec/unit/knife/role_delete_spec.rb +0 -67
  580. data/spec/unit/knife/role_edit_spec.rb +0 -77
  581. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  582. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  583. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  584. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  585. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  586. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  587. data/spec/unit/knife/role_list_spec.rb +0 -54
  588. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  589. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  590. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  591. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  592. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  593. data/spec/unit/knife/role_show_spec.rb +0 -59
  594. data/spec/unit/knife/ssh_spec.rb +0 -403
  595. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  596. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  597. data/spec/unit/knife/status_spec.rb +0 -112
  598. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  599. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  600. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  601. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  602. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  603. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  604. data/spec/unit/knife/tag_create_spec.rb +0 -23
  605. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  606. data/spec/unit/knife/tag_list_spec.rb +0 -23
  607. data/spec/unit/knife/user_create_spec.rb +0 -184
  608. data/spec/unit/knife/user_delete_spec.rb +0 -46
  609. data/spec/unit/knife/user_edit_spec.rb +0 -48
  610. data/spec/unit/knife/user_list_spec.rb +0 -36
  611. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  612. data/spec/unit/knife/user_show_spec.rb +0 -46
  613. data/spec/unit/knife_spec.rb +0 -634
  614. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  615. data/spec/unit/windows_service_spec.rb +0 -118
@@ -42,9 +42,7 @@ class Chef
42
42
  property :description, String,
43
43
  description: "Description for the share."
44
44
 
45
- action :create do
46
- description "Creates the folder in dfs namespace."
47
-
45
+ action :create, description: "Creates the folder in dfs namespace" do
48
46
  raise "target_path is required for install" unless property_is_set?(:target_path)
49
47
  raise "description is required for install" unless property_is_set?(:description)
50
48
 
@@ -62,9 +60,7 @@ class Chef
62
60
  end
63
61
  end
64
62
 
65
- action :delete do
66
- description "Deletes the folder in the dfs namespace."
67
-
63
+ action :delete, description: "Deletes the folder in the dfs namespace" do
68
64
  powershell_script "Delete DFS Namespace" do
69
65
  code <<-EOH
70
66
  Remove-DfsnFolder -Path '\\\\#{ENV["COMPUTERNAME"]}\\#{new_resource.namespace_name}\\#{new_resource.folder_path}' -Force
@@ -52,9 +52,7 @@ class Chef
52
52
  description: "The root from which to create the DFS tree. Defaults to C:\\DFSRoots.",
53
53
  default: 'C:\\DFSRoots'
54
54
 
55
- action :create do
56
- description "Creates the dfs namespace on the server."
57
-
55
+ action :create, description: "Creates the dfs namespace on the server" do
58
56
  directory file_path do
59
57
  action :create
60
58
  recursive true
@@ -84,9 +82,7 @@ class Chef
84
82
  end
85
83
  end
86
84
 
87
- action :delete do
88
- description "Deletes a DFS Namespace including the directory on disk."
89
-
85
+ action :delete, description: "Deletes a DFS Namespace including the directory on disk" do
90
86
  powershell_script "Delete DFS Namespace" do
91
87
  code <<-EOH
92
88
  Remove-DfsnRoot -Path '\\\\#{ENV["COMPUTERNAME"]}\\#{new_resource.namespace_name}' -Force
@@ -65,9 +65,7 @@ class Chef
65
65
  sync_interval_secs results["SyncIntervalSec"]
66
66
  end
67
67
 
68
- action :configure do
69
- description "Configure DFS settings."
70
-
68
+ action :configure, description: "Configure DFS settings" do
71
69
  converge_if_changed do
72
70
  dfs_cmd = "Set-DfsnServerConfiguration -ComputerName '#{ENV["COMPUTERNAME"]}' -UseFqdn $#{new_resource.use_fqdn} -LdapTimeoutSec #{new_resource.ldap_timeout_secs} -SyncIntervalSec #{new_resource.sync_interval_secs}"
73
71
  dfs_cmd << " -EnableSiteCostedReferrals $#{new_resource.enable_site_costed_referrals}" if new_resource.enable_site_costed_referrals != current_resource.enable_site_costed_referrals
@@ -49,9 +49,7 @@ class Chef
49
49
  default: "localhost",
50
50
  introduced: "16.3"
51
51
 
52
- action :create do
53
- description "Creates and updates the DNS entry."
54
-
52
+ action :create, description: "Creates and updates the DNS entry" do
55
53
  windows_feature "RSAT-DNS-Server" do
56
54
  not_if new_resource.dns_server.casecmp?("localhost")
57
55
  end
@@ -61,9 +59,7 @@ class Chef
61
59
  run_dsc_resource "Present"
62
60
  end
63
61
 
64
- action :delete do
65
- description "Deletes a DNS entry."
66
-
62
+ action :delete, description: "Deletes a DNS entry" do
67
63
  windows_feature "RSAT-DNS-Server" do
68
64
  not_if new_resource.dns_server.casecmp?("localhost")
69
65
  end
@@ -40,17 +40,13 @@ class Chef
40
40
  description: "The type of DNS server, Domain or Standalone.",
41
41
  default: "Domain", equal_to: %w{Domain Standalone}
42
42
 
43
- action :create do
44
- description "Creates and updates a DNS Zone."
45
-
43
+ action :create, description: "Creates and updates a DNS Zone" do
46
44
  powershell_package "xDnsServer"
47
45
 
48
46
  run_dsc_resource "Present"
49
47
  end
50
48
 
51
- action :delete do
52
- description "Deletes a DNS Zone."
53
-
49
+ action :delete, description: "Deletes a DNS Zone" do
54
50
  powershell_package "xDnsServer"
55
51
 
56
52
  run_dsc_resource "Absent"
@@ -19,6 +19,7 @@
19
19
 
20
20
  require_relative "../resource"
21
21
  require_relative "../mixin/windows_env_helper"
22
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
22
23
 
23
24
  class Chef
24
25
  class Resource
@@ -28,7 +29,7 @@ class Chef
28
29
  provides :windows_env
29
30
  provides :env # backwards compat with the pre-Chef 14 resource name
30
31
 
31
- description "Use the **windows_env** resource to manage environment keys in Microsoft Windows. After an environment key is set, Microsoft Windows must be restarted before the environment key will be available to the Task Scheduler."
32
+ description "Use the **windows_env** resource to manage environment keys in Microsoft Windows. After an environment key is set, Microsoft Windows must be restarted before the environment key will be available to the Task Scheduler.\n\nThis resource was previously called the **env** resource; its name was updated in #{ChefUtils::Dist::Infra::PRODUCT} 14.0 to reflect the fact that only Windows is supported. Existing cookbooks using `env` will continue to function, but should be updated to use the new name. Note: On UNIX-based systems, the best way to manipulate environment keys is with the `ENV` variable in Ruby; however, this approach does not have the same permanent effect as using the windows_env resource."
32
33
  examples <<~DOC
33
34
  **Set an environment variable**:
34
35
 
@@ -192,7 +193,7 @@ class Chef
192
193
  end
193
194
  end
194
195
 
195
- action :create do
196
+ action :create, description: "Create an environment variable. If an environment variable already exists (but does not match), update that environment variable to match." do
196
197
  if key_exists?
197
198
  if requires_modify_or_create?
198
199
  modify_env
@@ -206,7 +207,7 @@ class Chef
206
207
  end
207
208
  end
208
209
 
209
- action :delete do
210
+ action :delete, description: "Delete an environment variable." do
210
211
  if ( ENV[new_resource.key_name] || key_exists? ) && !delete_element
211
212
  delete_env
212
213
  logger.info("#{new_resource} deleted")
@@ -214,7 +215,7 @@ class Chef
214
215
  end
215
216
  end
216
217
 
217
- action :modify do
218
+ action :modify, description: "Modify an existing environment variable. This prepends the new value to the existing value, using the delimiter specified by the `delim` property." do
218
219
  if key_exists?
219
220
  if requires_modify_or_create?
220
221
  modify_env
@@ -108,21 +108,15 @@ class Chef
108
108
  default: 600,
109
109
  desired_state: false
110
110
 
111
- action :install do
112
- description "Install a Windows role/feature"
113
-
111
+ action :install, description: "Install a Windows role / feature" do
114
112
  run_default_subresource :install
115
113
  end
116
114
 
117
- action :remove do
118
- description "Remove a Windows role/feature"
119
-
115
+ action :remove, description: "Remove a Windows role / feature" do
120
116
  run_default_subresource :remove
121
117
  end
122
118
 
123
- action :delete do
124
- description "Remove a Windows role/feature from the image"
125
-
119
+ action :delete, description: "Remove a Windows role/feature from the image" do
126
120
  run_default_subresource :delete
127
121
  end
128
122
 
@@ -91,9 +91,7 @@ class Chef
91
91
  end
92
92
  end
93
93
 
94
- action :remove do
95
- description "Remove a Windows role/feature using DISM"
96
-
94
+ action :remove, description: "Remove a Windows role / feature using DISM" do
97
95
  reload_cached_dism_data unless node["dism_features_cache"]
98
96
 
99
97
  logger.trace("Windows features needing removal: #{features_to_remove.empty? ? "none" : features_to_remove.join(",")}")
@@ -108,9 +106,7 @@ class Chef
108
106
  end
109
107
  end
110
108
 
111
- action :delete do
112
- description "Remove a Windows role/feature from the image using DISM"
113
-
109
+ action :delete, description: "Remove a Windows role / feature from the image using DISM" do
114
110
  reload_cached_dism_data unless node["dism_features_cache"]
115
111
 
116
112
  fail_if_unavailable # fail if the features don't exist
@@ -87,7 +87,7 @@ class Chef
87
87
  x.map(&:downcase)
88
88
  end
89
89
 
90
- action :install do
90
+ action :install, description: "Install a Windows role / feature using PowerShell" do
91
91
  reload_cached_powershell_data unless node["powershell_features_cache"]
92
92
  fail_if_unavailable # fail if the features don't exist
93
93
  fail_if_removed # fail if the features are in removed state
@@ -108,7 +108,7 @@ class Chef
108
108
  end
109
109
  end
110
110
 
111
- action :remove do
111
+ action :remove, description: "Remove a Windows role / feature using PowerShell" do
112
112
  reload_cached_powershell_data unless node["powershell_features_cache"]
113
113
 
114
114
  Chef::Log.debug("Windows features needing removal: #{features_to_remove.empty? ? "none" : features_to_remove.join(",")}")
@@ -123,7 +123,7 @@ class Chef
123
123
  end
124
124
  end
125
125
 
126
- action :delete do
126
+ action :delete, description: "Delete a Windows role / feature from the image using PowerShell" do
127
127
  reload_cached_powershell_data unless node["powershell_features_cache"]
128
128
 
129
129
  fail_if_unavailable # fail if the features don't exist
@@ -81,8 +81,8 @@ class Chef
81
81
  property :allow_unicast_response, [true, false, String], equal_to: [true, false, "NotConfigured"], description: "Allow unicast responses to multicast and broadcast messages"
82
82
  property :display_notification, [true, false, String], equal_to: [true, false, "NotConfigured"], description: "Display a notification when firewall blocks certain activity"
83
83
 
84
- load_current_value do |desired|
85
- ps_get_net_fw_profile = load_firewall_state(desired.profile)
84
+ load_current_value do |new_resource|
85
+ ps_get_net_fw_profile = load_firewall_state(new_resource.profile)
86
86
  output = powershell_exec(ps_get_net_fw_profile)
87
87
  if output.result.empty?
88
88
  current_value_does_not_exist!
@@ -121,7 +121,7 @@ class Chef
121
121
  end
122
122
  end
123
123
 
124
- action :enable do
124
+ action :enable, description: "Enable and optionally configure a Windows Firewall profile" do
125
125
  converge_if_changed :default_inbound_action, :default_outbound_action, :allow_inbound_rules, :allow_local_firewall_rules,
126
126
  :allow_local_ipsec_rules, :allow_user_apps, :allow_user_ports, :allow_unicast_response, :display_notification do
127
127
  fw_cmd = firewall_command(new_resource.profile)
@@ -135,7 +135,7 @@ class Chef
135
135
  end
136
136
  end
137
137
 
138
- action :disable do
138
+ action :disable, description: "Disable a Windows Firewall profile" do
139
139
  if firewall_enabled?(new_resource.profile)
140
140
  converge_by "Disable the #{new_resource.profile} Firewall Profile" do
141
141
  cmd = "Set-NetFirewallProfile -Profile #{new_resource.profile} -Enabled \"False\""
@@ -185,8 +185,7 @@ class Chef
185
185
  enabled state["enabled"]
186
186
  end
187
187
 
188
- action :create do
189
- description "Create a Windows firewall entry."
188
+ action :create, description: "Create a Windows firewall entry" do
190
189
  if current_resource
191
190
  converge_if_changed :rule_name, :description, :displayname, :local_address, :local_port, :remote_address,
192
191
  :remote_port, :direction, :protocol, :icmp_type, :firewall_action, :profile, :program, :service,
@@ -207,9 +206,7 @@ class Chef
207
206
  end
208
207
  end
209
208
 
210
- action :delete do
211
- description "Delete an existing Windows firewall entry."
212
-
209
+ action :delete, description: "Delete an existing Windows firewall entry" do
213
210
  if current_resource
214
211
  converge_by("delete firewall rule #{new_resource.rule_name}") do
215
212
  powershell_exec!("Remove-NetFirewallRule -Name '#{new_resource.rule_name}'")
@@ -45,11 +45,9 @@ class Chef
45
45
  description: "A local filesystem path or URI that is used to source the font file.",
46
46
  coerce: proc { |x| /^.:.*/.match?(x) ? x.tr('\\', "/").gsub("//", "/") : x }
47
47
 
48
- action :install do
49
- description "Install a font to the system fonts directory."
50
-
48
+ action :install, description: "Install a font to the system fonts directory" do
51
49
  if font_exists?
52
- logger.trace("Not installing font: #{new_resource.font_name} as font already installed.")
50
+ logger.debug("Not installing font: #{new_resource.font_name} as font already installed.")
53
51
  else
54
52
  retrieve_cookbook_font
55
53
  install_font
@@ -73,9 +73,7 @@ class Chef
73
73
  property :maximum_size, Integer,
74
74
  description: "Maximum size of the pagefile in megabytes."
75
75
 
76
- action :set do
77
- description "Configures the default pagefile, creating if it doesn't exist."
78
-
76
+ action :set, description: "Configures the default pagefile, creating if it doesn't exist" do
79
77
  pagefile = new_resource.path
80
78
  initial_size = new_resource.initial_size
81
79
  maximum_size = new_resource.maximum_size
@@ -103,9 +101,7 @@ class Chef
103
101
  end
104
102
  end
105
103
 
106
- action :delete do
107
- description "Deletes the specified pagefile."
108
-
104
+ action :delete, description: "Deletes the specified pagefile" do
109
105
  validate_name
110
106
  delete(new_resource.path) if exists?(new_resource.path)
111
107
  end
@@ -64,7 +64,7 @@ class Chef
64
64
  end
65
65
  end
66
66
 
67
- action :add do
67
+ action :add, description: "Add an item to the system path" do
68
68
  # The windows Env provider does not correctly expand variables in
69
69
  # the PATH environment variable. Ruby expects these to be expanded.
70
70
  #
@@ -76,7 +76,7 @@ class Chef
76
76
  end
77
77
  end
78
78
 
79
- action :remove do
79
+ action :remove, description: "Remove an item from the system path" do
80
80
  # The windows Env provider does not correctly expand variables in
81
81
  # the PATH environment variable. Ruby expects these to be expanded.
82
82
  #
@@ -86,11 +86,11 @@ class Chef
86
86
  PRINTERS_REG_KEY = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\\'.freeze unless defined?(PRINTERS_REG_KEY)
87
87
 
88
88
  # @todo Set @current_resource printer properties from registry
89
- load_current_value do |desired|
90
- name desired.name
89
+ load_current_value do |new_resource|
90
+ name new_resource.name
91
91
  end
92
92
 
93
- action :create do
93
+ action :create, description: "Create a new printer and printer port, if one doesn't already" do
94
94
  description "Create a new printer and a printer port if one doesn't already exist."
95
95
 
96
96
  if printer_exists?
@@ -102,7 +102,7 @@ class Chef
102
102
  end
103
103
  end
104
104
 
105
- action :delete do
105
+ action :delete, description: "Delete an existing printer. Note that this resource does not delete the associated printer port." do
106
106
  description "Delete an existing printer. Note this does not delete the associated printer port."
107
107
 
108
108
  if printer_exists?
@@ -89,13 +89,13 @@ class Chef
89
89
  PORTS_REG_KEY = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\\'.freeze unless defined?(PORTS_REG_KEY)
90
90
 
91
91
  # @todo Set @current_resource port properties from registry
92
- load_current_value do |desired|
93
- name desired.name
94
- ipv4_address desired.ipv4_address
95
- port_name desired.port_name || "IP_#{desired.ipv4_address}"
92
+ load_current_value do |new_resource|
93
+ name new_resource.name
94
+ ipv4_address new_resource.ipv4_address
95
+ port_name new_resource.port_name || "IP_#{new_resource.ipv4_address}"
96
96
  end
97
97
 
98
- action :create do
98
+ action :create, description: "Create the printer port, if one doesn't already exist" do
99
99
  description "Create the new printer port if it does not already exist."
100
100
 
101
101
  if port_exists?
@@ -107,7 +107,7 @@ class Chef
107
107
  end
108
108
  end
109
109
 
110
- action :delete do
110
+ action :delete, description: "Delete an existing printer port" do
111
111
  description "Delete an existing printer port."
112
112
 
113
113
  if port_exists?
@@ -17,6 +17,7 @@
17
17
  # limitations under the License.
18
18
 
19
19
  require_relative "../resource"
20
+ require "tempfile" unless defined?(Tempfile)
20
21
 
21
22
  class Chef
22
23
  class Resource
@@ -43,7 +44,7 @@ class Chef
43
44
  LSAAnonymousNameLookup
44
45
  EnableAdminAccount
45
46
  EnableGuestAccount
46
- }
47
+ }
47
48
  description "Use the **windows_security_policy** resource to set a security policy on the Microsoft Windows platform."
48
49
  introduced "16.0"
49
50
 
@@ -82,7 +83,56 @@ class Chef
82
83
  property :secvalue, String, required: true,
83
84
  description: "Policy value to be set for policy name."
84
85
 
85
- load_current_value do |desired|
86
+ load_current_value do |new_resource|
87
+ current_state = load_security_options
88
+
89
+ if new_resource.secoption == "ResetLockoutCount"
90
+ if new_resource.secvalue.to_i > 30
91
+ raise Chef::Exceptions::ValidationFailed, "The \"ResetLockoutCount\" value cannot be greater than 30 minutes"
92
+ end
93
+ end
94
+ if (new_resource.secoption == "ResetLockoutCount" || new_resource.secoption == "LockoutDuration") && current_state["LockoutBadCount"] == "0"
95
+ raise Chef::Exceptions::ValidationFailed, "#{new_resource.secoption} cannot be set unless the \"LockoutBadCount\" security policy has been set to a non-zero value"
96
+ end
97
+
98
+ secvalue current_state[new_resource.secoption.to_s]
99
+ end
100
+
101
+ action :set, description: "Set the Windows security policy" do
102
+ converge_if_changed :secvalue do
103
+ security_option = new_resource.secoption
104
+ security_value = new_resource.secvalue
105
+
106
+ file = Tempfile.new(["#{security_option}", ".inf"])
107
+ case security_option
108
+ when "LockoutBadCount"
109
+ cmd = "net accounts /LockoutThreshold:#{security_value}"
110
+ when "ResetLockoutCount"
111
+ cmd = "net accounts /LockoutWindow:#{security_value}"
112
+ when "LockoutDuration"
113
+ cmd = "net accounts /LockoutDuration:#{security_value}"
114
+ when "NewAdministratorName", "NewGuestName"
115
+ policy_line = "#{security_option} = \"#{security_value}\""
116
+ file.write("[Unicode]\r\nUnicode=yes\r\n[System Access]\r\n#{policy_line}\r\n[Version]\r\nsignature=\"$CHICAGO$\"\r\nRevision=1\r\n")
117
+ file.close
118
+ file_path = file.path.tr("/", '\\')
119
+ cmd = "C:\\Windows\\System32\\secedit /configure /db C:\\windows\\security\\new.sdb /cfg #{file_path} /areas SECURITYPOLICY"
120
+ else
121
+ policy_line = "#{security_option} = #{security_value}"
122
+ file.write("[Unicode]\r\nUnicode=yes\r\n[System Access]\r\n#{policy_line}\r\n[Version]\r\nsignature=\"$CHICAGO$\"\r\nRevision=1\r\n")
123
+ file.close
124
+ file_path = file.path.tr("/", '\\')
125
+ cmd = "C:\\Windows\\System32\\secedit /configure /db C:\\windows\\security\\new.sdb /cfg #{file_path} /areas SECURITYPOLICY"
126
+ end
127
+ shell_out!(cmd)
128
+ file.unlink
129
+ end
130
+ end
131
+
132
+ private
133
+
134
+ # Loads powershell to get current state on security options
135
+ def load_security_options
86
136
  powershell_code = <<-CODE
87
137
  C:\\Windows\\System32\\secedit /export /cfg $env:TEMP\\secopts_export.inf | Out-Null
88
138
  # cspell:disable-next-line
@@ -108,44 +158,7 @@ class Chef
108
158
  LockoutBadCount = $security_options_hash.LockoutBadCount
109
159
  })
110
160
  CODE
111
- output = powershell_exec(powershell_code)
112
- current_value_does_not_exist! if output.result.empty?
113
- state = output.result
114
-
115
- if desired.secoption == "ResetLockoutCount" || desired.secoption == "LockoutDuration"
116
- if state["LockoutBadCount"] == "0"
117
- raise Chef::Exceptions::ValidationFailed.new "#{desired.secoption} cannot be set unless the \"LockoutBadCount\" security policy has been set to a non-zero value"
118
- else
119
- secvalue state[desired.secoption.to_s]
120
- end
121
- else
122
- secvalue state[desired.secoption.to_s]
123
- end
124
- end
125
-
126
- action :set do
127
- converge_if_changed :secvalue do
128
- security_option = new_resource.secoption
129
- security_value = new_resource.secvalue
130
-
131
- cmd = <<-EOH
132
- $security_option = "#{security_option}"
133
- C:\\Windows\\System32\\secedit /export /cfg $env:TEMP\\#{security_option}_Export.inf
134
- if ( ($security_option -match "NewGuestName") -Or ($security_option -match "NewAdministratorName") )
135
- {
136
- $#{security_option}_Remediation = (Get-Content $env:TEMP\\#{security_option}_Export.inf) | Foreach-Object { $_ -replace '#{security_option}\\s*=\\s*\\"\\w*\\"', '#{security_option} = "#{security_value}"' } | Set-Content $env:TEMP\\#{security_option}_Export.inf
137
- C:\\Windows\\System32\\secedit /configure /db $env:windir\\security\\new.sdb /cfg $env:TEMP\\#{security_option}_Export.inf /areas SECURITYPOLICY
138
- }
139
- else
140
- {
141
- $#{security_option}_Remediation = (Get-Content $env:TEMP\\#{security_option}_Export.inf) | Foreach-Object { $_ -replace "#{security_option}\\s*=\\s*\\d*", "#{security_option} = #{security_value}" } | Set-Content $env:TEMP\\#{security_option}_Export.inf
142
- C:\\Windows\\System32\\secedit /configure /db $env:windir\\security\\new.sdb /cfg $env:TEMP\\#{security_option}_Export.inf /areas SECURITYPOLICY
143
- }
144
- Remove-Item $env:TEMP\\#{security_option}_Export.inf -force
145
- EOH
146
-
147
- powershell_exec!(cmd)
148
- end
161
+ powershell_exec(powershell_code).result
149
162
  end
150
163
  end
151
164
  end