chef 16.10.8 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (618) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -10
  3. data/README.md +1 -1
  4. data/Rakefile +13 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +7 -9
  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 +10 -5
  13. data/lib/chef/compliance/fetcher/automate.rb +15 -11
  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 +71 -28
  20. data/lib/chef/cookbook/synchronizer.rb +3 -5
  21. data/lib/chef/cookbook_loader.rb +2 -4
  22. data/lib/chef/cookbook_uploader.rb +0 -1
  23. data/lib/chef/data_bag_item.rb +11 -2
  24. data/lib/chef/delayed_evaluator.rb +4 -0
  25. data/lib/chef/deprecated.rb +4 -0
  26. data/lib/chef/dsl/chef_vault.rb +6 -6
  27. data/lib/chef/dsl/reboot_pending.rb +1 -2
  28. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  29. data/lib/chef/group.rb +75 -0
  30. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  31. data/lib/chef/node/attribute.rb +6 -4
  32. data/lib/chef/node/immutable_collections.rb +13 -0
  33. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  34. data/lib/chef/org.rb +3 -2
  35. data/lib/chef/property.rb +18 -0
  36. data/lib/chef/provider.rb +1 -1
  37. data/lib/chef/provider/cron.rb +1 -1
  38. data/lib/chef/provider/execute.rb +2 -1
  39. data/lib/chef/provider/file.rb +2 -2
  40. data/lib/chef/provider/git.rb +5 -7
  41. data/lib/chef/provider/group/groupadd.rb +3 -3
  42. data/lib/chef/provider/group/groupmod.rb +3 -3
  43. data/lib/chef/provider/group/pw.rb +3 -3
  44. data/lib/chef/provider/ifconfig.rb +2 -2
  45. data/lib/chef/provider/link.rb +2 -2
  46. data/lib/chef/provider/mount.rb +12 -7
  47. data/lib/chef/provider/mount/aix.rb +3 -3
  48. data/lib/chef/provider/mount/mount.rb +6 -6
  49. data/lib/chef/provider/mount/windows.rb +1 -1
  50. data/lib/chef/provider/package.rb +17 -21
  51. data/lib/chef/provider/package/apt.rb +27 -1
  52. data/lib/chef/provider/package/deb.rb +3 -3
  53. data/lib/chef/provider/package/dnf/dnf_helper.py +5 -1
  54. data/lib/chef/provider/package/portage.rb +2 -2
  55. data/lib/chef/provider/package/rubygems.rb +11 -17
  56. data/lib/chef/provider/package/windows.rb +2 -4
  57. data/lib/chef/provider/package/yum/yum_helper.py +5 -1
  58. data/lib/chef/provider/route.rb +2 -2
  59. data/lib/chef/provider/service.rb +6 -6
  60. data/lib/chef/provider/service/aixinit.rb +1 -1
  61. data/lib/chef/provider/service/debian.rb +1 -1
  62. data/lib/chef/provider/service/freebsd.rb +15 -21
  63. data/lib/chef/provider/service/macosx.rb +7 -7
  64. data/lib/chef/provider/service/systemd.rb +43 -14
  65. data/lib/chef/provider/service/upstart.rb +2 -13
  66. data/lib/chef/provider/service/windows.rb +12 -12
  67. data/lib/chef/provider/subversion.rb +10 -12
  68. data/lib/chef/provider/systemd_unit.rb +36 -10
  69. data/lib/chef/provider/template/content.rb +2 -6
  70. data/lib/chef/provider/user.rb +2 -2
  71. data/lib/chef/provider/user/dscl.rb +1 -1
  72. data/lib/chef/provider/user/mac.rb +17 -20
  73. data/lib/chef/provider/user/pw.rb +1 -1
  74. data/lib/chef/provider/user/windows.rb +1 -1
  75. data/lib/chef/provider/zypper_repository.rb +2 -2
  76. data/lib/chef/providers.rb +0 -1
  77. data/lib/chef/resource/alternatives.rb +6 -6
  78. data/lib/chef/resource/apt_package.rb +1 -1
  79. data/lib/chef/resource/apt_preference.rb +2 -2
  80. data/lib/chef/resource/apt_repository.rb +6 -6
  81. data/lib/chef/resource/apt_update.rb +3 -2
  82. data/lib/chef/resource/archive_file.rb +2 -3
  83. data/lib/chef/resource/breakpoint.rb +1 -1
  84. data/lib/chef/resource/build_essential.rb +2 -6
  85. data/lib/chef/resource/chef_client_config.rb +2 -2
  86. data/lib/chef/resource/chef_client_cron.rb +5 -5
  87. data/lib/chef/resource/chef_client_launchd.rb +4 -4
  88. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  89. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  90. data/lib/chef/resource/chef_handler.rb +3 -7
  91. data/lib/chef/resource/chef_sleep.rb +1 -1
  92. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  93. data/lib/chef/resource/chocolatey_config.rb +2 -6
  94. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  95. data/lib/chef/resource/chocolatey_source.rb +4 -10
  96. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  97. data/lib/chef/resource/cron_access.rb +2 -4
  98. data/lib/chef/resource/dmg_package.rb +6 -10
  99. data/lib/chef/resource/dpkg_package.rb +1 -1
  100. data/lib/chef/resource/execute.rb +6 -1
  101. data/lib/chef/resource/file.rb +1 -1
  102. data/lib/chef/resource/group.rb +2 -2
  103. data/lib/chef/resource/homebrew_cask.rb +2 -6
  104. data/lib/chef/resource/homebrew_tap.rb +2 -6
  105. data/lib/chef/resource/hostname.rb +21 -17
  106. data/lib/chef/resource/http_request.rb +1 -1
  107. data/lib/chef/resource/kernel_module.rb +6 -17
  108. data/lib/chef/resource/locale.rb +2 -3
  109. data/lib/chef/resource/lwrp_base.rb +4 -0
  110. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  111. data/lib/chef/resource/mdadm.rb +53 -7
  112. data/lib/chef/resource/mount.rb +2 -1
  113. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  114. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  115. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  116. data/lib/chef/resource/plist.rb +7 -7
  117. data/lib/chef/resource/powershell_script.rb +1 -1
  118. data/lib/chef/resource/remote_file.rb +1 -1
  119. data/lib/chef/resource/rhsm_errata.rb +16 -1
  120. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  121. data/lib/chef/resource/rhsm_register.rb +12 -6
  122. data/lib/chef/resource/rhsm_repo.rb +2 -6
  123. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  124. data/lib/chef/resource/scm/git.rb +1 -1
  125. data/lib/chef/resource/sudo.rb +6 -6
  126. data/lib/chef/resource/sysctl.rb +2 -6
  127. data/lib/chef/resource/systemd_unit.rb +2 -2
  128. data/lib/chef/resource/template.rb +1 -1
  129. data/lib/chef/resource/timezone.rb +1 -3
  130. data/lib/chef/resource/user/mac_user.rb +1 -1
  131. data/lib/chef/resource/user_ulimit.rb +2 -2
  132. data/lib/chef/resource/windows_ad_join.rb +2 -6
  133. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  134. data/lib/chef/resource/windows_auto_run.rb +2 -5
  135. data/lib/chef/resource/windows_certificate.rb +207 -73
  136. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  137. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  138. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  139. data/lib/chef/resource/windows_dns_record.rb +2 -6
  140. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  141. data/lib/chef/resource/windows_env.rb +5 -4
  142. data/lib/chef/resource/windows_feature.rb +3 -9
  143. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  144. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  145. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  146. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  147. data/lib/chef/resource/windows_font.rb +2 -4
  148. data/lib/chef/resource/windows_pagefile.rb +2 -6
  149. data/lib/chef/resource/windows_path.rb +2 -2
  150. data/lib/chef/resource/windows_printer.rb +4 -4
  151. data/lib/chef/resource/windows_printer_port.rb +6 -6
  152. data/lib/chef/resource/windows_security_policy.rb +53 -40
  153. data/lib/chef/resource/windows_share.rb +14 -21
  154. data/lib/chef/resource/windows_shortcut.rb +4 -6
  155. data/lib/chef/resource/windows_task.rb +17 -5
  156. data/lib/chef/resource/windows_uac.rb +1 -1
  157. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  158. data/lib/chef/resource/windows_workgroup.rb +1 -2
  159. data/lib/chef/resources.rb +0 -1
  160. data/lib/chef/user.rb +0 -1
  161. data/lib/chef/user_v1.rb +3 -4
  162. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  163. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  164. data/lib/chef/version.rb +1 -1
  165. data/lib/chef/win32/registry.rb +4 -2
  166. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  167. data/spec/data/lwrp/resources/bar.rb +2 -0
  168. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  169. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  170. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  171. data/spec/data/lwrp/resources/foo.rb +2 -0
  172. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  173. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  174. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  175. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  176. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  177. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  178. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  179. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  180. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  181. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  182. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  183. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  184. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  185. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  186. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  187. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  188. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  189. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  190. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  191. data/spec/functional/resource/apt_package_spec.rb +1 -1
  192. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  193. data/spec/functional/resource/cron_spec.rb +1 -1
  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 +3 -2
  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 +11 -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 +5 -8
  220. data/spec/support/shared/integration/integration_helper.rb +0 -1
  221. data/spec/support/shared/unit/provider/file.rb +14 -0
  222. data/spec/support/shared/unit/script_resource.rb +2 -2
  223. data/spec/unit/application/solo_spec.rb +2 -2
  224. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  225. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  226. data/spec/unit/compliance/fetcher/automate_spec.rb +5 -13
  227. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  228. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  229. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  230. data/spec/unit/compliance/runner_spec.rb +84 -9
  231. data/spec/unit/data_bag_item_spec.rb +1 -6
  232. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  233. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  234. data/spec/unit/lwrp_spec.rb +1 -1
  235. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  236. data/spec/unit/node/attribute_spec.rb +1 -1
  237. data/spec/unit/node_spec.rb +78 -0
  238. data/spec/unit/org_group_spec.rb +45 -0
  239. data/spec/unit/property_spec.rb +23 -22
  240. data/spec/unit/provider/cron_spec.rb +1 -1
  241. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  242. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  243. data/spec/unit/provider/group/pw_spec.rb +2 -2
  244. data/spec/unit/provider/group_spec.rb +1 -1
  245. data/spec/unit/provider/mount/mount_spec.rb +52 -0
  246. data/spec/unit/provider/package/apt_spec.rb +84 -18
  247. data/spec/unit/provider/package/deb_spec.rb +3 -3
  248. data/spec/unit/provider/package/rubygems_spec.rb +21 -33
  249. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  250. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  251. data/spec/unit/provider/service/macosx_spec.rb +5 -5
  252. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  253. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  254. data/spec/unit/provider/service/windows_spec.rb +2 -2
  255. data/spec/unit/provider/subversion_spec.rb +2 -2
  256. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  257. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  258. data/spec/unit/provider_spec.rb +0 -8
  259. data/spec/unit/resource/chef_client_cron_spec.rb +8 -8
  260. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  261. data/spec/unit/resource/windows_task_spec.rb +1 -1
  262. data/spec/unit/user_spec.rb +1 -1
  263. data/spec/unit/user_v1_spec.rb +6 -4
  264. data/tasks/rspec.rb +16 -8
  265. metadata +21 -384
  266. data/bin/knife +0 -24
  267. data/lib/chef/application/knife.rb +0 -234
  268. data/lib/chef/application/windows_service.rb +0 -338
  269. data/lib/chef/application/windows_service_manager.rb +0 -205
  270. data/lib/chef/chef_fs/knife.rb +0 -160
  271. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  272. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  273. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  274. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  275. data/lib/chef/knife.rb +0 -665
  276. data/lib/chef/knife/acl_add.rb +0 -57
  277. data/lib/chef/knife/acl_base.rb +0 -183
  278. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  279. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  280. data/lib/chef/knife/acl_remove.rb +0 -62
  281. data/lib/chef/knife/acl_show.rb +0 -56
  282. data/lib/chef/knife/bootstrap.rb +0 -1192
  283. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  284. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  285. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  286. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  287. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  288. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  289. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  290. data/lib/chef/knife/client_create.rb +0 -101
  291. data/lib/chef/knife/client_delete.rb +0 -62
  292. data/lib/chef/knife/client_edit.rb +0 -52
  293. data/lib/chef/knife/client_key_create.rb +0 -73
  294. data/lib/chef/knife/client_key_delete.rb +0 -80
  295. data/lib/chef/knife/client_key_edit.rb +0 -83
  296. data/lib/chef/knife/client_key_list.rb +0 -73
  297. data/lib/chef/knife/client_key_show.rb +0 -80
  298. data/lib/chef/knife/client_list.rb +0 -41
  299. data/lib/chef/knife/client_reregister.rb +0 -58
  300. data/lib/chef/knife/client_show.rb +0 -48
  301. data/lib/chef/knife/config_get.rb +0 -39
  302. data/lib/chef/knife/config_get_profile.rb +0 -37
  303. data/lib/chef/knife/config_list.rb +0 -139
  304. data/lib/chef/knife/config_list_profiles.rb +0 -37
  305. data/lib/chef/knife/config_show.rb +0 -127
  306. data/lib/chef/knife/config_use.rb +0 -61
  307. data/lib/chef/knife/config_use_profile.rb +0 -47
  308. data/lib/chef/knife/configure.rb +0 -150
  309. data/lib/chef/knife/configure_client.rb +0 -48
  310. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  311. data/lib/chef/knife/cookbook_delete.rb +0 -151
  312. data/lib/chef/knife/cookbook_download.rb +0 -142
  313. data/lib/chef/knife/cookbook_list.rb +0 -47
  314. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  315. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  316. data/lib/chef/knife/cookbook_show.rb +0 -98
  317. data/lib/chef/knife/cookbook_upload.rb +0 -292
  318. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  319. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  320. data/lib/chef/knife/core/formatting_options.rb +0 -49
  321. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  322. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  323. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  324. data/lib/chef/knife/core/node_editor.rb +0 -130
  325. data/lib/chef/knife/core/node_presenter.rb +0 -133
  326. data/lib/chef/knife/core/object_loader.rb +0 -115
  327. data/lib/chef/knife/core/status_presenter.rb +0 -147
  328. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  329. data/lib/chef/knife/core/text_formatter.rb +0 -85
  330. data/lib/chef/knife/core/ui.rb +0 -338
  331. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
  332. data/lib/chef/knife/data_bag_create.rb +0 -81
  333. data/lib/chef/knife/data_bag_delete.rb +0 -49
  334. data/lib/chef/knife/data_bag_edit.rb +0 -74
  335. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  336. data/lib/chef/knife/data_bag_list.rb +0 -42
  337. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  338. data/lib/chef/knife/data_bag_show.rb +0 -69
  339. data/lib/chef/knife/delete.rb +0 -125
  340. data/lib/chef/knife/deps.rb +0 -156
  341. data/lib/chef/knife/diff.rb +0 -83
  342. data/lib/chef/knife/download.rb +0 -84
  343. data/lib/chef/knife/edit.rb +0 -88
  344. data/lib/chef/knife/environment_compare.rb +0 -128
  345. data/lib/chef/knife/environment_create.rb +0 -52
  346. data/lib/chef/knife/environment_delete.rb +0 -44
  347. data/lib/chef/knife/environment_edit.rb +0 -44
  348. data/lib/chef/knife/environment_from_file.rb +0 -84
  349. data/lib/chef/knife/environment_list.rb +0 -41
  350. data/lib/chef/knife/environment_show.rb +0 -47
  351. data/lib/chef/knife/exec.rb +0 -99
  352. data/lib/chef/knife/group_add.rb +0 -55
  353. data/lib/chef/knife/group_create.rb +0 -49
  354. data/lib/chef/knife/group_destroy.rb +0 -53
  355. data/lib/chef/knife/group_list.rb +0 -43
  356. data/lib/chef/knife/group_remove.rb +0 -56
  357. data/lib/chef/knife/group_show.rb +0 -49
  358. data/lib/chef/knife/key_create.rb +0 -112
  359. data/lib/chef/knife/key_create_base.rb +0 -50
  360. data/lib/chef/knife/key_delete.rb +0 -55
  361. data/lib/chef/knife/key_edit.rb +0 -118
  362. data/lib/chef/knife/key_edit_base.rb +0 -55
  363. data/lib/chef/knife/key_list.rb +0 -90
  364. data/lib/chef/knife/key_list_base.rb +0 -45
  365. data/lib/chef/knife/key_show.rb +0 -53
  366. data/lib/chef/knife/list.rb +0 -177
  367. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  368. data/lib/chef/knife/node_create.rb +0 -47
  369. data/lib/chef/knife/node_delete.rb +0 -46
  370. data/lib/chef/knife/node_edit.rb +0 -70
  371. data/lib/chef/knife/node_environment_set.rb +0 -53
  372. data/lib/chef/knife/node_from_file.rb +0 -51
  373. data/lib/chef/knife/node_list.rb +0 -44
  374. data/lib/chef/knife/node_policy_set.rb +0 -79
  375. data/lib/chef/knife/node_run_list_add.rb +0 -104
  376. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  377. data/lib/chef/knife/node_run_list_set.rb +0 -66
  378. data/lib/chef/knife/node_show.rb +0 -63
  379. data/lib/chef/knife/null.rb +0 -12
  380. data/lib/chef/knife/raw.rb +0 -123
  381. data/lib/chef/knife/recipe_list.rb +0 -32
  382. data/lib/chef/knife/rehash.rb +0 -50
  383. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  384. data/lib/chef/knife/role_create.rb +0 -53
  385. data/lib/chef/knife/role_delete.rb +0 -46
  386. data/lib/chef/knife/role_edit.rb +0 -45
  387. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  388. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  389. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  390. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  391. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  392. data/lib/chef/knife/role_from_file.rb +0 -51
  393. data/lib/chef/knife/role_list.rb +0 -42
  394. data/lib/chef/knife/role_run_list_add.rb +0 -87
  395. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  396. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  397. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  398. data/lib/chef/knife/role_run_list_set.rb +0 -69
  399. data/lib/chef/knife/role_show.rb +0 -48
  400. data/lib/chef/knife/search.rb +0 -194
  401. data/lib/chef/knife/serve.rb +0 -65
  402. data/lib/chef/knife/show.rb +0 -72
  403. data/lib/chef/knife/ssh.rb +0 -645
  404. data/lib/chef/knife/ssl_check.rb +0 -284
  405. data/lib/chef/knife/ssl_fetch.rb +0 -161
  406. data/lib/chef/knife/status.rb +0 -95
  407. data/lib/chef/knife/supermarket_download.rb +0 -121
  408. data/lib/chef/knife/supermarket_install.rb +0 -192
  409. data/lib/chef/knife/supermarket_list.rb +0 -76
  410. data/lib/chef/knife/supermarket_search.rb +0 -53
  411. data/lib/chef/knife/supermarket_share.rb +0 -166
  412. data/lib/chef/knife/supermarket_show.rb +0 -66
  413. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  414. data/lib/chef/knife/tag_create.rb +0 -52
  415. data/lib/chef/knife/tag_delete.rb +0 -60
  416. data/lib/chef/knife/tag_list.rb +0 -47
  417. data/lib/chef/knife/upload.rb +0 -86
  418. data/lib/chef/knife/user_create.rb +0 -107
  419. data/lib/chef/knife/user_delete.rb +0 -44
  420. data/lib/chef/knife/user_dissociate.rb +0 -42
  421. data/lib/chef/knife/user_edit.rb +0 -52
  422. data/lib/chef/knife/user_invite_add.rb +0 -43
  423. data/lib/chef/knife/user_invite_list.rb +0 -34
  424. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  425. data/lib/chef/knife/user_key_create.rb +0 -73
  426. data/lib/chef/knife/user_key_delete.rb +0 -80
  427. data/lib/chef/knife/user_key_edit.rb +0 -83
  428. data/lib/chef/knife/user_key_list.rb +0 -73
  429. data/lib/chef/knife/user_key_show.rb +0 -80
  430. data/lib/chef/knife/user_list.rb +0 -42
  431. data/lib/chef/knife/user_reregister.rb +0 -59
  432. data/lib/chef/knife/user_show.rb +0 -48
  433. data/lib/chef/knife/xargs.rb +0 -282
  434. data/lib/chef/knife/yaml_convert.rb +0 -91
  435. data/lib/chef/resource/user/dscl_user.rb +0 -35
  436. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  437. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  438. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  439. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  440. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  441. data/spec/functional/knife/configure_spec.rb +0 -33
  442. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  443. data/spec/functional/knife/exec_spec.rb +0 -55
  444. data/spec/functional/knife/rehash_spec.rb +0 -39
  445. data/spec/functional/knife/smoke_test.rb +0 -42
  446. data/spec/functional/knife/ssh_spec.rb +0 -352
  447. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  448. data/spec/functional/resource/windows_service_spec.rb +0 -105
  449. data/spec/functional/win32/service_manager_spec.rb +0 -220
  450. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  451. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  452. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  453. data/spec/integration/knife/chefignore_spec.rb +0 -301
  454. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  455. data/spec/integration/knife/client_create_spec.rb +0 -70
  456. data/spec/integration/knife/client_delete_spec.rb +0 -64
  457. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  458. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  459. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  460. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  461. data/spec/integration/knife/client_list_spec.rb +0 -49
  462. data/spec/integration/knife/client_show_spec.rb +0 -37
  463. data/spec/integration/knife/common_options_spec.rb +0 -174
  464. data/spec/integration/knife/config_list_spec.rb +0 -220
  465. data/spec/integration/knife/config_show_spec.rb +0 -192
  466. data/spec/integration/knife/config_use_spec.rb +0 -198
  467. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  468. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  469. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  470. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  471. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  472. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  473. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  474. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  475. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  476. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  477. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  478. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  479. data/spec/integration/knife/delete_spec.rb +0 -1018
  480. data/spec/integration/knife/deps_spec.rb +0 -703
  481. data/spec/integration/knife/diff_spec.rb +0 -605
  482. data/spec/integration/knife/download_spec.rb +0 -1336
  483. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  484. data/spec/integration/knife/environment_create_spec.rb +0 -41
  485. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  486. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  487. data/spec/integration/knife/environment_list_spec.rb +0 -42
  488. data/spec/integration/knife/environment_show_spec.rb +0 -77
  489. data/spec/integration/knife/list_spec.rb +0 -1060
  490. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  491. data/spec/integration/knife/node_create_spec.rb +0 -47
  492. data/spec/integration/knife/node_delete_spec.rb +0 -48
  493. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  494. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  495. data/spec/integration/knife/node_list_spec.rb +0 -45
  496. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  497. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  498. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  499. data/spec/integration/knife/node_show_spec.rb +0 -36
  500. data/spec/integration/knife/raw_spec.rb +0 -297
  501. data/spec/integration/knife/redirection_spec.rb +0 -64
  502. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  503. data/spec/integration/knife/role_create_spec.rb +0 -41
  504. data/spec/integration/knife/role_delete_spec.rb +0 -48
  505. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  506. data/spec/integration/knife/role_list_spec.rb +0 -45
  507. data/spec/integration/knife/role_show_spec.rb +0 -51
  508. data/spec/integration/knife/search_node_spec.rb +0 -40
  509. data/spec/integration/knife/serve_spec.rb +0 -92
  510. data/spec/integration/knife/show_spec.rb +0 -197
  511. data/spec/integration/knife/upload_spec.rb +0 -1617
  512. data/spec/support/shared/functional/knife.rb +0 -37
  513. data/spec/support/shared/functional/win32_service.rb +0 -57
  514. data/spec/support/shared/integration/knife_support.rb +0 -192
  515. data/spec/support/shared/unit/knife_shared.rb +0 -39
  516. data/spec/unit/application/knife_spec.rb +0 -241
  517. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  518. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  519. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  520. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  521. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  522. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  523. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  524. data/spec/unit/knife/client_create_spec.rb +0 -169
  525. data/spec/unit/knife/client_delete_spec.rb +0 -99
  526. data/spec/unit/knife/client_edit_spec.rb +0 -53
  527. data/spec/unit/knife/client_list_spec.rb +0 -34
  528. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  529. data/spec/unit/knife/client_show_spec.rb +0 -52
  530. data/spec/unit/knife/configure_client_spec.rb +0 -81
  531. data/spec/unit/knife/configure_spec.rb +0 -190
  532. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  533. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  534. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  535. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  536. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  537. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  538. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  539. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  540. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  541. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  542. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  543. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  544. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  545. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  546. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  547. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  548. data/spec/unit/knife/core/ui_spec.rb +0 -656
  549. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  550. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  551. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  552. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  553. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  554. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  555. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  556. data/spec/unit/knife/environment_create_spec.rb +0 -91
  557. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  558. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  559. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  560. data/spec/unit/knife/environment_list_spec.rb +0 -54
  561. data/spec/unit/knife/environment_show_spec.rb +0 -52
  562. data/spec/unit/knife/key_create_spec.rb +0 -223
  563. data/spec/unit/knife/key_delete_spec.rb +0 -133
  564. data/spec/unit/knife/key_edit_spec.rb +0 -264
  565. data/spec/unit/knife/key_helper.rb +0 -74
  566. data/spec/unit/knife/key_list_spec.rb +0 -216
  567. data/spec/unit/knife/key_show_spec.rb +0 -126
  568. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  569. data/spec/unit/knife/node_delete_spec.rb +0 -77
  570. data/spec/unit/knife/node_edit_spec.rb +0 -116
  571. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  572. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  573. data/spec/unit/knife/node_list_spec.rb +0 -62
  574. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  575. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  576. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  577. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  578. data/spec/unit/knife/node_show_spec.rb +0 -65
  579. data/spec/unit/knife/raw_spec.rb +0 -43
  580. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  581. data/spec/unit/knife/role_create_spec.rb +0 -80
  582. data/spec/unit/knife/role_delete_spec.rb +0 -67
  583. data/spec/unit/knife/role_edit_spec.rb +0 -77
  584. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  585. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  586. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  587. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  588. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  589. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  590. data/spec/unit/knife/role_list_spec.rb +0 -54
  591. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  592. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  593. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  594. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  595. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  596. data/spec/unit/knife/role_show_spec.rb +0 -59
  597. data/spec/unit/knife/ssh_spec.rb +0 -403
  598. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  599. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  600. data/spec/unit/knife/status_spec.rb +0 -112
  601. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  602. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  603. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  604. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  605. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  606. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  607. data/spec/unit/knife/tag_create_spec.rb +0 -23
  608. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  609. data/spec/unit/knife/tag_list_spec.rb +0 -23
  610. data/spec/unit/knife/user_create_spec.rb +0 -184
  611. data/spec/unit/knife/user_delete_spec.rb +0 -46
  612. data/spec/unit/knife/user_edit_spec.rb +0 -48
  613. data/spec/unit/knife/user_list_spec.rb +0 -36
  614. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  615. data/spec/unit/knife/user_show_spec.rb +0 -46
  616. data/spec/unit/knife_spec.rb +0 -634
  617. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  618. 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