chef 16.18.30 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (675) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -22
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -2
  6. data/chef.gemspec +7 -10
  7. data/lib/chef/action_collection.rb +1 -1
  8. data/lib/chef/application/base.rb +1 -1
  9. data/lib/chef/application.rb +1 -1
  10. data/lib/chef/applications.rb +0 -1
  11. data/lib/chef/chef_fs/command_line.rb +5 -2
  12. data/lib/chef/chef_fs/file_system.rb +9 -10
  13. data/lib/chef/client.rb +5 -5
  14. data/lib/chef/compliance/default_attributes.rb +4 -3
  15. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  16. data/lib/chef/compliance/reporter/automate.rb +17 -7
  17. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  18. data/lib/chef/compliance/reporter/cli.rb +77 -0
  19. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  20. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  21. data/lib/chef/compliance/runner.rb +65 -27
  22. data/lib/chef/cookbook/gem_installer.rb +1 -5
  23. data/lib/chef/cookbook/synchronizer.rb +3 -5
  24. data/lib/chef/cookbook_loader.rb +2 -4
  25. data/lib/chef/cookbook_uploader.rb +0 -1
  26. data/lib/chef/cookbook_version.rb +4 -26
  27. data/lib/chef/data_bag_item.rb +11 -2
  28. data/lib/chef/data_collector/run_end_message.rb +2 -2
  29. data/lib/chef/delayed_evaluator.rb +4 -0
  30. data/lib/chef/deprecated.rb +6 -12
  31. data/lib/chef/dsl/chef_vault.rb +6 -6
  32. data/lib/chef/dsl/reboot_pending.rb +1 -2
  33. data/lib/chef/exceptions.rb +0 -3
  34. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  35. data/lib/chef/formatters/error_mapper.rb +2 -2
  36. data/lib/chef/group.rb +75 -0
  37. data/lib/chef/http.rb +5 -5
  38. data/lib/chef/mixin/checksum.rb +0 -6
  39. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  40. data/lib/chef/mixin/powershell_exec.rb +26 -7
  41. data/lib/chef/node/attribute.rb +9 -24
  42. data/lib/chef/node/immutable_collections.rb +13 -0
  43. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  44. data/lib/chef/node.rb +19 -20
  45. data/lib/chef/org.rb +3 -2
  46. data/lib/chef/platform/query_helpers.rb +2 -2
  47. data/lib/chef/policy_builder/policyfile.rb +0 -5
  48. data/lib/chef/property.rb +18 -0
  49. data/lib/chef/provider/cron.rb +2 -6
  50. data/lib/chef/provider/execute.rb +2 -1
  51. data/lib/chef/provider/file.rb +3 -3
  52. data/lib/chef/provider/git.rb +5 -7
  53. data/lib/chef/provider/group/dscl.rb +1 -1
  54. data/lib/chef/provider/group/groupadd.rb +3 -3
  55. data/lib/chef/provider/group/groupmod.rb +3 -3
  56. data/lib/chef/provider/group/pw.rb +3 -3
  57. data/lib/chef/provider/ifconfig.rb +2 -2
  58. data/lib/chef/provider/link.rb +2 -2
  59. data/lib/chef/provider/mount/aix.rb +3 -3
  60. data/lib/chef/provider/mount/mount.rb +5 -5
  61. data/lib/chef/provider/mount/windows.rb +1 -1
  62. data/lib/chef/provider/mount.rb +5 -5
  63. data/lib/chef/provider/package/apt.rb +27 -1
  64. data/lib/chef/provider/package/deb.rb +3 -3
  65. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  66. data/lib/chef/provider/package/portage.rb +2 -2
  67. data/lib/chef/provider/package/powershell.rb +0 -5
  68. data/lib/chef/provider/package/rubygems.rb +9 -15
  69. data/lib/chef/provider/package/windows.rb +3 -5
  70. data/lib/chef/provider/package/yum/yum_helper.py +11 -1
  71. data/lib/chef/provider/package.rb +17 -21
  72. data/lib/chef/provider/route.rb +2 -2
  73. data/lib/chef/provider/service/aixinit.rb +1 -1
  74. data/lib/chef/provider/service/debian.rb +1 -1
  75. data/lib/chef/provider/service/freebsd.rb +15 -21
  76. data/lib/chef/provider/service/macosx.rb +4 -4
  77. data/lib/chef/provider/service/systemd.rb +43 -14
  78. data/lib/chef/provider/service/upstart.rb +2 -13
  79. data/lib/chef/provider/service/windows.rb +12 -12
  80. data/lib/chef/provider/service.rb +6 -6
  81. data/lib/chef/provider/subversion.rb +10 -12
  82. data/lib/chef/provider/systemd_unit.rb +36 -10
  83. data/lib/chef/provider/template/content.rb +3 -7
  84. data/lib/chef/provider/user/dscl.rb +1 -1
  85. data/lib/chef/provider/user/mac.rb +17 -20
  86. data/lib/chef/provider/user/pw.rb +1 -1
  87. data/lib/chef/provider/user/windows.rb +1 -1
  88. data/lib/chef/provider/user.rb +2 -2
  89. data/lib/chef/provider/zypper_repository.rb +2 -2
  90. data/lib/chef/provider.rb +1 -1
  91. data/lib/chef/providers.rb +0 -1
  92. data/lib/chef/resource/alternatives.rb +6 -6
  93. data/lib/chef/resource/apt_package.rb +1 -1
  94. data/lib/chef/resource/apt_preference.rb +2 -2
  95. data/lib/chef/resource/apt_repository.rb +6 -6
  96. data/lib/chef/resource/apt_update.rb +3 -2
  97. data/lib/chef/resource/archive_file.rb +8 -9
  98. data/lib/chef/resource/breakpoint.rb +1 -1
  99. data/lib/chef/resource/build_essential.rb +2 -6
  100. data/lib/chef/resource/chef_client_config.rb +2 -2
  101. data/lib/chef/resource/chef_client_cron.rb +4 -4
  102. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  103. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  104. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  105. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  106. data/lib/chef/resource/chef_handler.rb +3 -7
  107. data/lib/chef/resource/chef_sleep.rb +1 -1
  108. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  109. data/lib/chef/resource/chocolatey_config.rb +2 -6
  110. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  111. data/lib/chef/resource/chocolatey_source.rb +4 -10
  112. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  113. data/lib/chef/resource/cron_access.rb +2 -4
  114. data/lib/chef/resource/dmg_package.rb +6 -10
  115. data/lib/chef/resource/dpkg_package.rb +1 -1
  116. data/lib/chef/resource/execute.rb +6 -1
  117. data/lib/chef/resource/file.rb +1 -1
  118. data/lib/chef/resource/group.rb +2 -2
  119. data/lib/chef/resource/homebrew_cask.rb +5 -15
  120. data/lib/chef/resource/homebrew_tap.rb +2 -6
  121. data/lib/chef/resource/hostname.rb +21 -17
  122. data/lib/chef/resource/http_request.rb +1 -1
  123. data/lib/chef/resource/kernel_module.rb +6 -17
  124. data/lib/chef/resource/locale.rb +3 -4
  125. data/lib/chef/resource/lwrp_base.rb +4 -0
  126. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  127. data/lib/chef/resource/mdadm.rb +53 -7
  128. data/lib/chef/resource/mount.rb +3 -2
  129. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  130. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  131. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  132. data/lib/chef/resource/plist.rb +7 -7
  133. data/lib/chef/resource/powershell_script.rb +1 -1
  134. data/lib/chef/resource/remote_file.rb +1 -1
  135. data/lib/chef/resource/rhsm_errata.rb +16 -1
  136. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  137. data/lib/chef/resource/rhsm_register.rb +12 -23
  138. data/lib/chef/resource/rhsm_repo.rb +2 -6
  139. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  140. data/lib/chef/resource/scm/git.rb +1 -1
  141. data/lib/chef/resource/sudo.rb +6 -6
  142. data/lib/chef/resource/support/client.erb +2 -6
  143. data/lib/chef/resource/sysctl.rb +2 -6
  144. data/lib/chef/resource/systemd_unit.rb +3 -3
  145. data/lib/chef/resource/template.rb +1 -1
  146. data/lib/chef/resource/timezone.rb +1 -3
  147. data/lib/chef/resource/user/mac_user.rb +1 -1
  148. data/lib/chef/resource/user_ulimit.rb +2 -3
  149. data/lib/chef/resource/windows_ad_join.rb +2 -6
  150. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  151. data/lib/chef/resource/windows_auto_run.rb +2 -5
  152. data/lib/chef/resource/windows_certificate.rb +207 -73
  153. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  154. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  155. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  156. data/lib/chef/resource/windows_dns_record.rb +2 -6
  157. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  158. data/lib/chef/resource/windows_env.rb +5 -4
  159. data/lib/chef/resource/windows_feature.rb +3 -9
  160. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  161. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  162. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  163. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  164. data/lib/chef/resource/windows_font.rb +2 -4
  165. data/lib/chef/resource/windows_pagefile.rb +2 -6
  166. data/lib/chef/resource/windows_path.rb +2 -2
  167. data/lib/chef/resource/windows_printer.rb +4 -4
  168. data/lib/chef/resource/windows_printer_port.rb +6 -6
  169. data/lib/chef/resource/windows_security_policy.rb +9 -12
  170. data/lib/chef/resource/windows_share.rb +14 -21
  171. data/lib/chef/resource/windows_shortcut.rb +4 -6
  172. data/lib/chef/resource/windows_task.rb +17 -5
  173. data/lib/chef/resource/windows_uac.rb +2 -4
  174. data/lib/chef/resource/windows_user_privilege.rb +26 -36
  175. data/lib/chef/resource/windows_workgroup.rb +1 -2
  176. data/lib/chef/resource.rb +1 -1
  177. data/lib/chef/resource_reporter.rb +1 -1
  178. data/lib/chef/resources.rb +0 -1
  179. data/lib/chef/shell/ext.rb +3 -3
  180. data/lib/chef/user.rb +0 -1
  181. data/lib/chef/user_v1.rb +3 -4
  182. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  183. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  184. data/lib/chef/version.rb +1 -1
  185. data/lib/chef/win32/api.rb +2 -9
  186. data/lib/chef/win32/registry.rb +4 -2
  187. data/lib/chef/win32/version.rb +2 -4
  188. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  189. data/spec/data/lwrp/resources/bar.rb +2 -0
  190. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  191. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  192. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  193. data/spec/data/lwrp/resources/foo.rb +2 -0
  194. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  195. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  196. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  197. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  198. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  199. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  200. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  201. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  202. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  203. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  206. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  207. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  208. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  209. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  210. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  211. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  212. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  213. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  214. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  215. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  216. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  217. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  218. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  219. data/spec/functional/resource/apt_package_spec.rb +1 -1
  220. data/spec/functional/resource/chocolatey_package_spec.rb +9 -0
  221. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  222. data/spec/functional/resource/dsc_script_spec.rb +1 -1
  223. data/spec/functional/resource/group_spec.rb +1 -5
  224. data/spec/functional/resource/link_spec.rb +0 -8
  225. data/spec/functional/resource/registry_spec.rb +8 -8
  226. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  227. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  228. data/spec/functional/resource/windows_font_spec.rb +1 -2
  229. data/spec/functional/resource/yum_package_spec.rb +0 -12
  230. data/spec/functional/shell_spec.rb +0 -5
  231. data/spec/functional/version_spec.rb +1 -1
  232. data/spec/functional/win32/registry_spec.rb +1 -1
  233. data/spec/integration/client/client_spec.rb +5 -2
  234. data/spec/integration/client/exit_code_spec.rb +1 -1
  235. data/spec/integration/client/ipv6_spec.rb +1 -1
  236. data/spec/integration/compliance/compliance_spec.rb +1 -1
  237. data/spec/integration/ohai/ohai_spec.rb +7 -6
  238. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  239. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  240. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  241. data/spec/integration/recipes/notifies_spec.rb +15 -1
  242. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  243. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  244. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  245. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  246. data/spec/spec_helper.rb +10 -17
  247. data/spec/support/chef_helpers.rb +0 -16
  248. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  249. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  250. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  251. data/spec/support/matchers/leak.rb +7 -9
  252. data/spec/support/platform_helpers.rb +1 -12
  253. data/spec/support/shared/integration/integration_helper.rb +0 -1
  254. data/spec/support/shared/unit/script_resource.rb +2 -2
  255. data/spec/unit/application/solo_spec.rb +2 -2
  256. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  257. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  258. data/spec/unit/client_spec.rb +4 -4
  259. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  260. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  261. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  262. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  263. data/spec/unit/compliance/runner_spec.rb +30 -4
  264. data/spec/unit/cookbook_version_spec.rb +0 -52
  265. data/spec/unit/daemon_spec.rb +5 -1
  266. data/spec/unit/data_bag_item_spec.rb +1 -6
  267. data/spec/unit/data_collector_spec.rb +2 -71
  268. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  269. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  270. data/spec/unit/lwrp_spec.rb +1 -1
  271. data/spec/unit/mixin/checksum_spec.rb +0 -28
  272. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  273. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  274. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  275. data/spec/unit/node/attribute_spec.rb +1 -1
  276. data/spec/unit/node_spec.rb +78 -0
  277. data/spec/unit/org_group_spec.rb +45 -0
  278. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  279. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  280. data/spec/unit/property_spec.rb +23 -22
  281. data/spec/unit/provider/cron_spec.rb +1 -35
  282. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  283. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  284. data/spec/unit/provider/group/pw_spec.rb +2 -2
  285. data/spec/unit/provider/group_spec.rb +1 -1
  286. data/spec/unit/provider/package/apt_spec.rb +84 -18
  287. data/spec/unit/provider/package/deb_spec.rb +3 -3
  288. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  289. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  290. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  291. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  292. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  293. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  294. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  295. data/spec/unit/provider/service/windows_spec.rb +2 -2
  296. data/spec/unit/provider/subversion_spec.rb +2 -2
  297. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  298. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  299. data/spec/unit/provider_spec.rb +0 -8
  300. data/spec/unit/resource/archive_file_spec.rb +1 -13
  301. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  302. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  303. data/spec/unit/resource/mount_spec.rb +0 -10
  304. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  305. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  306. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  307. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  308. data/spec/unit/resource/windows_task_spec.rb +1 -1
  309. data/spec/unit/resource_spec.rb +2 -7
  310. data/spec/unit/user_spec.rb +1 -1
  311. data/spec/unit/user_v1_spec.rb +6 -4
  312. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  313. data/tasks/rspec.rb +15 -7
  314. metadata +43 -388
  315. data/bin/knife +0 -24
  316. data/lib/chef/application/knife.rb +0 -234
  317. data/lib/chef/application/windows_service.rb +0 -338
  318. data/lib/chef/application/windows_service_manager.rb +0 -205
  319. data/lib/chef/chef_fs/knife.rb +0 -160
  320. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  321. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  322. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  323. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  324. data/lib/chef/knife/acl_add.rb +0 -57
  325. data/lib/chef/knife/acl_base.rb +0 -183
  326. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  327. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  328. data/lib/chef/knife/acl_remove.rb +0 -62
  329. data/lib/chef/knife/acl_show.rb +0 -56
  330. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  331. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  332. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  333. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  334. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  335. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  336. data/lib/chef/knife/bootstrap.rb +0 -1192
  337. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  338. data/lib/chef/knife/client_create.rb +0 -101
  339. data/lib/chef/knife/client_delete.rb +0 -62
  340. data/lib/chef/knife/client_edit.rb +0 -52
  341. data/lib/chef/knife/client_key_create.rb +0 -73
  342. data/lib/chef/knife/client_key_delete.rb +0 -80
  343. data/lib/chef/knife/client_key_edit.rb +0 -83
  344. data/lib/chef/knife/client_key_list.rb +0 -73
  345. data/lib/chef/knife/client_key_show.rb +0 -80
  346. data/lib/chef/knife/client_list.rb +0 -41
  347. data/lib/chef/knife/client_reregister.rb +0 -58
  348. data/lib/chef/knife/client_show.rb +0 -48
  349. data/lib/chef/knife/config_get.rb +0 -39
  350. data/lib/chef/knife/config_get_profile.rb +0 -37
  351. data/lib/chef/knife/config_list.rb +0 -139
  352. data/lib/chef/knife/config_list_profiles.rb +0 -37
  353. data/lib/chef/knife/config_show.rb +0 -127
  354. data/lib/chef/knife/config_use.rb +0 -61
  355. data/lib/chef/knife/config_use_profile.rb +0 -47
  356. data/lib/chef/knife/configure.rb +0 -150
  357. data/lib/chef/knife/configure_client.rb +0 -48
  358. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  359. data/lib/chef/knife/cookbook_delete.rb +0 -151
  360. data/lib/chef/knife/cookbook_download.rb +0 -142
  361. data/lib/chef/knife/cookbook_list.rb +0 -47
  362. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  363. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  364. data/lib/chef/knife/cookbook_show.rb +0 -98
  365. data/lib/chef/knife/cookbook_upload.rb +0 -292
  366. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  367. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  368. data/lib/chef/knife/core/formatting_options.rb +0 -49
  369. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  370. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  371. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  372. data/lib/chef/knife/core/node_editor.rb +0 -130
  373. data/lib/chef/knife/core/node_presenter.rb +0 -133
  374. data/lib/chef/knife/core/object_loader.rb +0 -115
  375. data/lib/chef/knife/core/status_presenter.rb +0 -147
  376. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  377. data/lib/chef/knife/core/text_formatter.rb +0 -85
  378. data/lib/chef/knife/core/ui.rb +0 -338
  379. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  380. data/lib/chef/knife/data_bag_create.rb +0 -81
  381. data/lib/chef/knife/data_bag_delete.rb +0 -49
  382. data/lib/chef/knife/data_bag_edit.rb +0 -74
  383. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  384. data/lib/chef/knife/data_bag_list.rb +0 -42
  385. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  386. data/lib/chef/knife/data_bag_show.rb +0 -69
  387. data/lib/chef/knife/delete.rb +0 -125
  388. data/lib/chef/knife/deps.rb +0 -156
  389. data/lib/chef/knife/diff.rb +0 -83
  390. data/lib/chef/knife/download.rb +0 -84
  391. data/lib/chef/knife/edit.rb +0 -88
  392. data/lib/chef/knife/environment_compare.rb +0 -128
  393. data/lib/chef/knife/environment_create.rb +0 -52
  394. data/lib/chef/knife/environment_delete.rb +0 -44
  395. data/lib/chef/knife/environment_edit.rb +0 -44
  396. data/lib/chef/knife/environment_from_file.rb +0 -84
  397. data/lib/chef/knife/environment_list.rb +0 -41
  398. data/lib/chef/knife/environment_show.rb +0 -47
  399. data/lib/chef/knife/exec.rb +0 -99
  400. data/lib/chef/knife/group_add.rb +0 -55
  401. data/lib/chef/knife/group_create.rb +0 -49
  402. data/lib/chef/knife/group_destroy.rb +0 -53
  403. data/lib/chef/knife/group_list.rb +0 -43
  404. data/lib/chef/knife/group_remove.rb +0 -56
  405. data/lib/chef/knife/group_show.rb +0 -49
  406. data/lib/chef/knife/key_create.rb +0 -112
  407. data/lib/chef/knife/key_create_base.rb +0 -50
  408. data/lib/chef/knife/key_delete.rb +0 -55
  409. data/lib/chef/knife/key_edit.rb +0 -118
  410. data/lib/chef/knife/key_edit_base.rb +0 -55
  411. data/lib/chef/knife/key_list.rb +0 -90
  412. data/lib/chef/knife/key_list_base.rb +0 -45
  413. data/lib/chef/knife/key_show.rb +0 -53
  414. data/lib/chef/knife/list.rb +0 -177
  415. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  416. data/lib/chef/knife/node_create.rb +0 -47
  417. data/lib/chef/knife/node_delete.rb +0 -46
  418. data/lib/chef/knife/node_edit.rb +0 -70
  419. data/lib/chef/knife/node_environment_set.rb +0 -53
  420. data/lib/chef/knife/node_from_file.rb +0 -51
  421. data/lib/chef/knife/node_list.rb +0 -44
  422. data/lib/chef/knife/node_policy_set.rb +0 -79
  423. data/lib/chef/knife/node_run_list_add.rb +0 -104
  424. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  425. data/lib/chef/knife/node_run_list_set.rb +0 -66
  426. data/lib/chef/knife/node_show.rb +0 -63
  427. data/lib/chef/knife/null.rb +0 -12
  428. data/lib/chef/knife/raw.rb +0 -123
  429. data/lib/chef/knife/recipe_list.rb +0 -32
  430. data/lib/chef/knife/rehash.rb +0 -50
  431. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  432. data/lib/chef/knife/role_create.rb +0 -53
  433. data/lib/chef/knife/role_delete.rb +0 -46
  434. data/lib/chef/knife/role_edit.rb +0 -45
  435. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  436. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  437. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  438. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  439. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  440. data/lib/chef/knife/role_from_file.rb +0 -51
  441. data/lib/chef/knife/role_list.rb +0 -42
  442. data/lib/chef/knife/role_run_list_add.rb +0 -87
  443. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  444. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  445. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  446. data/lib/chef/knife/role_run_list_set.rb +0 -69
  447. data/lib/chef/knife/role_show.rb +0 -48
  448. data/lib/chef/knife/search.rb +0 -194
  449. data/lib/chef/knife/serve.rb +0 -65
  450. data/lib/chef/knife/show.rb +0 -72
  451. data/lib/chef/knife/ssh.rb +0 -645
  452. data/lib/chef/knife/ssl_check.rb +0 -284
  453. data/lib/chef/knife/ssl_fetch.rb +0 -161
  454. data/lib/chef/knife/status.rb +0 -95
  455. data/lib/chef/knife/supermarket_download.rb +0 -121
  456. data/lib/chef/knife/supermarket_install.rb +0 -192
  457. data/lib/chef/knife/supermarket_list.rb +0 -76
  458. data/lib/chef/knife/supermarket_search.rb +0 -53
  459. data/lib/chef/knife/supermarket_share.rb +0 -166
  460. data/lib/chef/knife/supermarket_show.rb +0 -66
  461. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  462. data/lib/chef/knife/tag_create.rb +0 -52
  463. data/lib/chef/knife/tag_delete.rb +0 -60
  464. data/lib/chef/knife/tag_list.rb +0 -47
  465. data/lib/chef/knife/upload.rb +0 -86
  466. data/lib/chef/knife/user_create.rb +0 -107
  467. data/lib/chef/knife/user_delete.rb +0 -44
  468. data/lib/chef/knife/user_dissociate.rb +0 -42
  469. data/lib/chef/knife/user_edit.rb +0 -52
  470. data/lib/chef/knife/user_invite_add.rb +0 -43
  471. data/lib/chef/knife/user_invite_list.rb +0 -34
  472. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  473. data/lib/chef/knife/user_key_create.rb +0 -73
  474. data/lib/chef/knife/user_key_delete.rb +0 -80
  475. data/lib/chef/knife/user_key_edit.rb +0 -83
  476. data/lib/chef/knife/user_key_list.rb +0 -73
  477. data/lib/chef/knife/user_key_show.rb +0 -80
  478. data/lib/chef/knife/user_list.rb +0 -42
  479. data/lib/chef/knife/user_reregister.rb +0 -59
  480. data/lib/chef/knife/user_show.rb +0 -48
  481. data/lib/chef/knife/xargs.rb +0 -282
  482. data/lib/chef/knife/yaml_convert.rb +0 -91
  483. data/lib/chef/knife.rb +0 -665
  484. data/lib/chef/resource/user/dscl_user.rb +0 -35
  485. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  486. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  487. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  488. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  489. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  490. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  491. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  492. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  493. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  494. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  495. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  496. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +0 -55
  497. data/spec/functional/knife/configure_spec.rb +0 -33
  498. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  499. data/spec/functional/knife/exec_spec.rb +0 -55
  500. data/spec/functional/knife/rehash_spec.rb +0 -39
  501. data/spec/functional/knife/smoke_test.rb +0 -42
  502. data/spec/functional/knife/ssh_spec.rb +0 -352
  503. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  504. data/spec/functional/resource/windows_service_spec.rb +0 -105
  505. data/spec/functional/win32/service_manager_spec.rb +0 -220
  506. data/spec/integration/client/fips_spec.rb +0 -21
  507. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  508. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  509. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  510. data/spec/integration/knife/chefignore_spec.rb +0 -301
  511. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  512. data/spec/integration/knife/client_create_spec.rb +0 -70
  513. data/spec/integration/knife/client_delete_spec.rb +0 -64
  514. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  515. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  516. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  517. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  518. data/spec/integration/knife/client_list_spec.rb +0 -49
  519. data/spec/integration/knife/client_show_spec.rb +0 -37
  520. data/spec/integration/knife/common_options_spec.rb +0 -174
  521. data/spec/integration/knife/config_list_spec.rb +0 -220
  522. data/spec/integration/knife/config_show_spec.rb +0 -192
  523. data/spec/integration/knife/config_use_spec.rb +0 -198
  524. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  525. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  526. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  527. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  528. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  529. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  530. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  531. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  532. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  533. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  534. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  535. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  536. data/spec/integration/knife/delete_spec.rb +0 -1018
  537. data/spec/integration/knife/deps_spec.rb +0 -703
  538. data/spec/integration/knife/diff_spec.rb +0 -605
  539. data/spec/integration/knife/download_spec.rb +0 -1336
  540. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  541. data/spec/integration/knife/environment_create_spec.rb +0 -41
  542. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  543. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  544. data/spec/integration/knife/environment_list_spec.rb +0 -42
  545. data/spec/integration/knife/environment_show_spec.rb +0 -77
  546. data/spec/integration/knife/list_spec.rb +0 -1060
  547. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  548. data/spec/integration/knife/node_create_spec.rb +0 -47
  549. data/spec/integration/knife/node_delete_spec.rb +0 -48
  550. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  551. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  552. data/spec/integration/knife/node_list_spec.rb +0 -45
  553. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  554. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  555. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  556. data/spec/integration/knife/node_show_spec.rb +0 -36
  557. data/spec/integration/knife/raw_spec.rb +0 -297
  558. data/spec/integration/knife/redirection_spec.rb +0 -64
  559. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  560. data/spec/integration/knife/role_create_spec.rb +0 -41
  561. data/spec/integration/knife/role_delete_spec.rb +0 -48
  562. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  563. data/spec/integration/knife/role_list_spec.rb +0 -45
  564. data/spec/integration/knife/role_show_spec.rb +0 -51
  565. data/spec/integration/knife/search_node_spec.rb +0 -40
  566. data/spec/integration/knife/serve_spec.rb +0 -92
  567. data/spec/integration/knife/show_spec.rb +0 -197
  568. data/spec/integration/knife/upload_spec.rb +0 -1616
  569. data/spec/support/shared/functional/knife.rb +0 -37
  570. data/spec/support/shared/functional/win32_service.rb +0 -57
  571. data/spec/support/shared/integration/knife_support.rb +0 -192
  572. data/spec/support/shared/unit/knife_shared.rb +0 -39
  573. data/spec/unit/application/knife_spec.rb +0 -241
  574. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  575. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  576. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  577. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  578. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  579. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  580. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  581. data/spec/unit/knife/client_create_spec.rb +0 -169
  582. data/spec/unit/knife/client_delete_spec.rb +0 -99
  583. data/spec/unit/knife/client_edit_spec.rb +0 -53
  584. data/spec/unit/knife/client_list_spec.rb +0 -34
  585. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  586. data/spec/unit/knife/client_show_spec.rb +0 -52
  587. data/spec/unit/knife/configure_client_spec.rb +0 -81
  588. data/spec/unit/knife/configure_spec.rb +0 -190
  589. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  590. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  591. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  592. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  593. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  594. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  595. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  596. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  597. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  598. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  599. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  600. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  601. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  602. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  603. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  604. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  605. data/spec/unit/knife/core/ui_spec.rb +0 -656
  606. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  607. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  608. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  609. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  610. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  611. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  612. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  613. data/spec/unit/knife/environment_create_spec.rb +0 -91
  614. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  615. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  616. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  617. data/spec/unit/knife/environment_list_spec.rb +0 -54
  618. data/spec/unit/knife/environment_show_spec.rb +0 -52
  619. data/spec/unit/knife/key_create_spec.rb +0 -223
  620. data/spec/unit/knife/key_delete_spec.rb +0 -133
  621. data/spec/unit/knife/key_edit_spec.rb +0 -264
  622. data/spec/unit/knife/key_helper.rb +0 -74
  623. data/spec/unit/knife/key_list_spec.rb +0 -216
  624. data/spec/unit/knife/key_show_spec.rb +0 -126
  625. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  626. data/spec/unit/knife/node_delete_spec.rb +0 -77
  627. data/spec/unit/knife/node_edit_spec.rb +0 -116
  628. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  629. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  630. data/spec/unit/knife/node_list_spec.rb +0 -62
  631. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  632. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  633. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  634. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  635. data/spec/unit/knife/node_show_spec.rb +0 -65
  636. data/spec/unit/knife/raw_spec.rb +0 -43
  637. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  638. data/spec/unit/knife/role_create_spec.rb +0 -80
  639. data/spec/unit/knife/role_delete_spec.rb +0 -67
  640. data/spec/unit/knife/role_edit_spec.rb +0 -77
  641. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  642. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  643. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  644. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  645. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  646. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  647. data/spec/unit/knife/role_list_spec.rb +0 -54
  648. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  649. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  650. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  651. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  652. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  653. data/spec/unit/knife/role_show_spec.rb +0 -59
  654. data/spec/unit/knife/ssh_spec.rb +0 -403
  655. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  656. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  657. data/spec/unit/knife/status_spec.rb +0 -112
  658. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  659. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  660. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  661. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  662. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  663. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  664. data/spec/unit/knife/tag_create_spec.rb +0 -23
  665. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  666. data/spec/unit/knife/tag_list_spec.rb +0 -23
  667. data/spec/unit/knife/user_create_spec.rb +0 -184
  668. data/spec/unit/knife/user_delete_spec.rb +0 -46
  669. data/spec/unit/knife/user_edit_spec.rb +0 -48
  670. data/spec/unit/knife/user_list_spec.rb +0 -36
  671. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  672. data/spec/unit/knife/user_show_spec.rb +0 -46
  673. data/spec/unit/knife_spec.rb +0 -634
  674. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  675. data/spec/unit/windows_service_spec.rb +0 -118
@@ -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?
@@ -28,7 +28,6 @@ class Chef
28
28
 
29
29
  # The valid policy_names options found here
30
30
  # https://github.com/ChrisAWalker/cSecurityOptions under 'AccountSettings'
31
- # This needs to be revisited - the list at the link above is non-exhaustive and is missing a couple of items
32
31
  policy_names = %w{LockoutDuration
33
32
  MaximumPasswordAge
34
33
  MinimumPasswordAge
@@ -37,8 +36,6 @@ class Chef
37
36
  PasswordHistorySize
38
37
  LockoutBadCount
39
38
  ResetLockoutCount
40
- AuditPolicyChange
41
- LockoutDuration
42
39
  RequireLogonToChangePassword
43
40
  ForceLogoffWhenHourExpire
44
41
  NewAdministratorName
@@ -86,22 +83,22 @@ class Chef
86
83
  property :secvalue, String, required: true,
87
84
  description: "Policy value to be set for policy name."
88
85
 
89
- load_current_value do |desired|
86
+ load_current_value do |new_resource|
90
87
  current_state = load_security_options
91
88
 
92
- if desired.secoption == "ResetLockoutCount"
93
- if desired.secvalue.to_i > 30
89
+ if new_resource.secoption == "ResetLockoutCount"
90
+ if new_resource.secvalue.to_i > 30
94
91
  raise Chef::Exceptions::ValidationFailed, "The \"ResetLockoutCount\" value cannot be greater than 30 minutes"
95
92
  end
96
93
  end
97
- if (desired.secoption == "ResetLockoutCount" || desired.secoption == "LockoutDuration") && current_state["LockoutBadCount"] == "0"
98
- raise Chef::Exceptions::ValidationFailed, "#{desired.secoption} cannot be set unless the \"LockoutBadCount\" security policy has been set to a non-zero value"
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"
99
96
  end
100
97
 
101
- secvalue current_state[desired.secoption.to_s]
98
+ secvalue current_state[new_resource.secoption.to_s]
102
99
  end
103
100
 
104
- action :set do
101
+ action :set, description: "Set the Windows security policy" do
105
102
  converge_if_changed :secvalue do
106
103
  security_option = new_resource.secoption
107
104
  security_value = new_resource.secvalue
@@ -118,13 +115,13 @@ class Chef
118
115
  policy_line = "#{security_option} = \"#{security_value}\""
119
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")
120
117
  file.close
121
- file_path = file.path.gsub("/", '\\')
118
+ file_path = file.path.tr("/", '\\')
122
119
  cmd = "C:\\Windows\\System32\\secedit /configure /db C:\\windows\\security\\new.sdb /cfg #{file_path} /areas SECURITYPOLICY"
123
120
  else
124
121
  policy_line = "#{security_option} = #{security_value}"
125
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")
126
123
  file.close
127
- file_path = file.path.gsub("/", '\\')
124
+ file_path = file.path.tr("/", '\\')
128
125
  cmd = "C:\\Windows\\System32\\secedit /configure /db C:\\windows\\security\\new.sdb /cfg #{file_path} /areas SECURITYPOLICY"
129
126
  end
130
127
  shell_out!(cmd)
@@ -70,17 +70,17 @@ class Chef
70
70
  # Specifies which accounts are granted full permission to access the share. Use a comma-separated list to specify multiple accounts. An account may not be specified more than once in the FullAccess, ChangeAccess, or ReadAccess parameter lists, but may be specified once in the FullAccess, ChangeAccess, or ReadAccess parameter list and once in the NoAccess parameter list.
71
71
  property :full_users, Array,
72
72
  description: "The users that should have 'Full control' permissions on the share in domain\\username format.",
73
- default: lazy { [] }, coerce: proc { |u| u.sort }
73
+ default: [], coerce: proc { |u| u.sort }
74
74
 
75
75
  # Specifies which users are granted modify permission to access the share
76
76
  property :change_users, Array,
77
77
  description: "The users that should have 'modify' permission on the share in domain\\username format.",
78
- default: lazy { [] }, coerce: proc { |u| u.sort }
78
+ default: [], coerce: proc { |u| u.sort }
79
79
 
80
80
  # Specifies which users are granted read permission to access the share. Multiple users can be specified by supplying a comma-separated list.
81
81
  property :read_users, Array,
82
82
  description: "The users that should have 'read' permission on the share in domain\\username format.",
83
- default: lazy { [] }, coerce: proc { |u| u.sort }
83
+ default: [], coerce: proc { |u| u.sort }
84
84
 
85
85
  # Specifies the lifetime of the new SMB share. A temporary share does not persist beyond the next restart of the computer. By default, new SMB shares are persistent, and non-temporary.
86
86
  property :temporary, [TrueClass, FalseClass],
@@ -118,11 +118,11 @@ class Chef
118
118
  # Specifies which files and folders in the SMB share are visible to users. AccessBased: SMB does not the display the files and folders for a share to a user unless that user has rights to access the files and folders. By default, access-based enumeration is disabled for new SMB shares. Unrestricted: SMB displays files and folders to a user even when the user does not have permission to access the items.
119
119
  # property :folder_enumeration_mode, String, equal_to: %(AccessBased Unrestricted)
120
120
 
121
- load_current_value do |desired|
121
+ load_current_value do |new_resource|
122
122
  # this command selects individual objects because EncryptData & CachingMode have underlying
123
123
  # types that get converted to their Integer values by ConvertTo-Json & we need to make sure
124
124
  # those get written out as strings
125
- share_state_cmd = "Get-SmbShare -Name '#{desired.share_name}' | Select-Object Name,Path, Description, Temporary, CATimeout, ContinuouslyAvailable, ConcurrentUserLimit, EncryptData"
125
+ share_state_cmd = "Get-SmbShare -Name '#{new_resource.share_name}' | Select-Object Name,Path, Description, Temporary, CATimeout, ContinuouslyAvailable, ConcurrentUserLimit, EncryptData"
126
126
 
127
127
  Chef::Log.debug("Running '#{share_state_cmd}' to determine share state'")
128
128
  ps_results = powershell_exec(share_state_cmd)
@@ -146,14 +146,14 @@ class Chef
146
146
  encrypt_data results["EncryptData"]
147
147
  # folder_enumeration_mode results['FolderEnumerationMode']
148
148
 
149
- perm_state_cmd = %{Get-SmbShareAccess -Name "#{desired.share_name}" | Select-Object AccountName,AccessControlType,AccessRight}
149
+ perm_state_cmd = %{Get-SmbShareAccess -Name "#{new_resource.share_name}" | Select-Object AccountName,AccessControlType,AccessRight}
150
150
 
151
151
  Chef::Log.debug("Running '#{perm_state_cmd}' to determine share permissions state'")
152
152
  ps_perm_results = powershell_exec(perm_state_cmd)
153
153
 
154
154
  # we raise here instead of warning like above because we'd only get here if the above Get-SmbShare
155
155
  # command was successful and that continuing would leave us with 1/2 known state
156
- raise "Could not determine #{desired.share_name} share permissions by running '#{perm_state_cmd}'" if ps_perm_results.error?
156
+ raise "Could not determine #{new_resource.share_name} share permissions by running '#{perm_state_cmd}'" if ps_perm_results.error?
157
157
 
158
158
  Chef::Log.debug("The Get-SmbShareAccess results were #{ps_perm_results.result}")
159
159
 
@@ -192,9 +192,7 @@ class Chef
192
192
  name
193
193
  end
194
194
 
195
- action :create do
196
- description "Create and modify Windows shares."
197
-
195
+ action :create, description: "Create or modify a Windows share" do
198
196
  # we do this here instead of requiring the property because :delete doesn't need path set
199
197
  raise "No path property set" unless new_resource.path
200
198
 
@@ -218,9 +216,7 @@ class Chef
218
216
  end
219
217
  end
220
218
 
221
- action :delete do
222
- description "Delete an existing Windows share."
223
-
219
+ action :delete, description: "Delete an existing Windows share" do
224
220
  if current_resource.nil?
225
221
  Chef::Log.debug("#{new_resource.share_name} does not exist - nothing to do")
226
222
  else
@@ -275,14 +271,11 @@ class Chef
275
271
  # users/groups will have their permissions updated with the same command that
276
272
  # sets it, but removes must be performed with Revoke-SmbShareAccess
277
273
  def users_to_revoke
278
- @users_to_revoke ||= begin
279
- # if the resource doesn't exist then nothing needs to be revoked
280
- if current_resource.nil?
281
- []
282
- else # if it exists then calculate the current to new resource diffs
283
- (current_resource.full_users + current_resource.change_users + current_resource.read_users) - (new_resource.full_users + new_resource.change_users + new_resource.read_users)
284
- end
285
- end
274
+ @users_to_revoke ||= if current_resource.nil?
275
+ []
276
+ else # if it exists then calculate the current to new resource diffs
277
+ (current_resource.full_users + current_resource.change_users + current_resource.read_users) - (new_resource.full_users + new_resource.change_users + new_resource.read_users)
278
+ end
286
279
  end
287
280
 
288
281
  # update existing permissions on a share
@@ -57,11 +57,11 @@ class Chef
57
57
  property :iconlocation, String,
58
58
  description: "Icon to use for the shortcut. Accepts the format of `path, index`, where index is the icon file to use. See Microsoft's [documentation](https://msdn.microsoft.com/en-us/library/3s9bx7at.aspx) for details"
59
59
 
60
- load_current_value do |desired|
60
+ load_current_value do |new_resource|
61
61
  require "win32ole" if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
62
62
 
63
- link = WIN32OLE.new("WScript.Shell").CreateShortcut(desired.shortcut_name)
64
- name desired.shortcut_name
63
+ link = WIN32OLE.new("WScript.Shell").CreateShortcut(new_resource.shortcut_name)
64
+ name new_resource.shortcut_name
65
65
  target(link.TargetPath)
66
66
  arguments(link.Arguments)
67
67
  description(link.Description)
@@ -69,9 +69,7 @@ class Chef
69
69
  iconlocation(link.IconLocation)
70
70
  end
71
71
 
72
- action :create do
73
- description "Create or modify a Windows shortcut."
74
-
72
+ action :create, description: "Create or modify a Windows shortcut" do
75
73
  converge_if_changed do
76
74
  converge_by "creating shortcut #{new_resource.shortcut_name}" do
77
75
  link = WIN32OLE.new("WScript.Shell").CreateShortcut(new_resource.shortcut_name)
@@ -21,6 +21,7 @@ require_relative "../resource"
21
21
  require_relative "../win32/security" if ChefUtils.windows_ruby?
22
22
  autoload :ISO8601, "iso8601" if ChefUtils.windows_ruby?
23
23
  require_relative "../util/path_helper"
24
+ require_relative "../util/backup"
24
25
  require "win32/taskscheduler" if ChefUtils.windows_ruby?
25
26
 
26
27
  class Chef
@@ -236,6 +237,10 @@ class Chef
236
237
  introduced: "14.15", default: false,
237
238
  description: "To start the task at any time after its scheduled time has passed."
238
239
 
240
+ property :backup, [Integer, FalseClass],
241
+ introduced: "17.0", default: 5,
242
+ description: "Number of backups to keep of the task when modified/deleted. Set to false to disable backups."
243
+
239
244
  attr_accessor :exists, :task, :command_arguments
240
245
 
241
246
  VALID_WEEK_DAYS = %w{ mon tue wed thu fri sat sun * }.freeze
@@ -564,6 +569,7 @@ class Chef
564
569
 
565
570
  def update_task(task)
566
571
  converge_by("#{new_resource} task updated") do
572
+ do_backup
567
573
  task.set_account_information(new_resource.user, new_resource.password, new_resource.interactive_enabled)
568
574
  task.application_name = new_resource.command if new_resource.command
569
575
  task.parameters = new_resource.command_arguments if new_resource.command_arguments
@@ -948,6 +954,11 @@ class Chef
948
954
  def get_day(date)
949
955
  Date.strptime(date, "%m/%d/%Y").strftime("%a").upcase
950
956
  end
957
+
958
+ def do_backup
959
+ file = "C:/Windows/System32/Tasks/#{new_resource.task_name}"
960
+ Chef::Util::Backup.new(new_resource, file).backup!
961
+ end
951
962
  end
952
963
 
953
964
  action :create do
@@ -998,7 +1009,7 @@ class Chef
998
1009
  end
999
1010
  end
1000
1011
  else
1001
- logger.warn "#{new_resource} task does not exist - nothing to do"
1012
+ logger.debug "#{new_resource} task does not exist - nothing to do"
1002
1013
  end
1003
1014
  end
1004
1015
 
@@ -1006,11 +1017,12 @@ class Chef
1006
1017
  if current_resource.exists
1007
1018
  logger.trace "#{new_resource} task exists"
1008
1019
  converge_by("delete scheduled task #{new_resource}") do
1020
+ do_backup
1009
1021
  ts = ::Win32::TaskScheduler.new
1010
1022
  ts.delete(current_resource.task_name)
1011
1023
  end
1012
1024
  else
1013
- logger.warn "#{new_resource} task does not exist - nothing to do"
1025
+ logger.debug "#{new_resource} task does not exist - nothing to do"
1014
1026
  end
1015
1027
  end
1016
1028
 
@@ -1018,14 +1030,14 @@ class Chef
1018
1030
  if current_resource.exists
1019
1031
  logger.trace "#{new_resource} task exists"
1020
1032
  if current_resource.task.status != "running"
1021
- logger.trace "#{new_resource} is not running - nothing to do"
1033
+ logger.debug "#{new_resource} is not running - nothing to do"
1022
1034
  else
1023
1035
  converge_by("#{new_resource} task ended") do
1024
1036
  current_resource.task.stop
1025
1037
  end
1026
1038
  end
1027
1039
  else
1028
- logger.warn "#{new_resource} task does not exist - nothing to do"
1040
+ logger.debug "#{new_resource} task does not exist - nothing to do"
1029
1041
  end
1030
1042
  end
1031
1043
 
@@ -1038,7 +1050,7 @@ class Chef
1038
1050
  run_schtasks "CHANGE", "ENABLE" => ""
1039
1051
  end
1040
1052
  else
1041
- logger.trace "#{new_resource} already enabled - nothing to do"
1053
+ logger.debug "#{new_resource} already enabled - nothing to do"
1042
1054
  end
1043
1055
  else
1044
1056
  logger.fatal "#{new_resource} task does not exist - nothing to do"
@@ -72,7 +72,7 @@ class Chef
72
72
  equal_to: %i{auto_deny secure_prompt_for_creds prompt_for_creds},
73
73
  default: :prompt_for_creds
74
74
 
75
- action :configure do
75
+ action :configure, description: "Configures UAC by setting registry keys at `HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System`" do
76
76
  description 'Configures UAC by setting registry keys at \'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\''
77
77
 
78
78
  registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' do
@@ -106,9 +106,7 @@ class Chef
106
106
  #
107
107
  # @return [Integer]
108
108
  def consent_behavior_users_symbol_to_reg(sym)
109
- # Since 2 isn't a valid value for ConsentPromptBehaviorUser, assign the value at index as nil.
110
- # https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#registry-key-settings
111
- [:auto_deny, :secure_prompt_for_creds, nil, :prompt_for_creds].index(sym)
109
+ %i{auto_deny secure_prompt_for_creds prompt_for_creds}.index(sym)
112
110
  end
113
111
  end
114
112
  end
@@ -24,7 +24,7 @@ class Chef
24
24
  unified_mode true
25
25
 
26
26
  provides :windows_user_privilege
27
- description "The windows_user_privilege resource allows to add a privilege to a principal or (User/Group).\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
27
+ description "The windows_user_privilege resource allows to add and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
28
28
 
29
29
  introduced "16.0"
30
30
 
@@ -39,32 +39,23 @@ class Chef
39
39
  end
40
40
  ```
41
41
 
42
- **Provide only the Builtin Guests and Administrator Groups with the SeCreatePageFile Privilege**:
43
-
44
- ```ruby
45
- windows_user_privilege 'Create Pagefile' do
46
- privilege 'SeCreatePagefilePrivilege'
47
- users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
48
- action :set
49
- end
50
- ```
51
-
52
- **Add the SeDenyRemoteInteractiveLogonRight Privilege to the 'Remote interactive logon' principal**:
42
+ **Add the SeDenyRemoteInteractiveLogonRight Privilege to the Builtin Guests and Local Accounts User Groups**:
53
43
 
54
44
  ```ruby
55
45
  windows_user_privilege 'Remote interactive logon' do
56
46
  privilege 'SeDenyRemoteInteractiveLogonRight'
47
+ users ['Builtin\\Guests', 'NT AUTHORITY\\Local Account']
57
48
  action :add
58
49
  end
59
50
  ```
60
51
 
61
- **Add to the Builtin Guests Group the SeCreatePageFile Privilege**:
52
+ **Provide only the Builtin Guests and Administrator Groups with the SeCreatePageFile Privilege**:
62
53
 
63
54
  ```ruby
64
- windows_user_privilege 'Guests add Create Pagefile' do
65
- principal 'BUILTIN\\Guests'
55
+ windows_user_privilege 'Create Pagefile' do
66
56
  privilege 'SeCreatePagefilePrivilege'
67
- action :add
57
+ users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
58
+ action :set
68
59
  end
69
60
  ```
70
61
 
@@ -99,7 +90,6 @@ class Chef
99
90
  SeCreateSymbolicLinkPrivilege
100
91
  SeCreateTokenPrivilege
101
92
  SeDebugPrivilege
102
- SeDelegateSessionUserImpersonatePrivilege
103
93
  SeDenyBatchLogonRight
104
94
  SeDenyInteractiveLogonRight
105
95
  SeDenyNetworkLogonRight
@@ -136,20 +126,20 @@ class Chef
136
126
  }.freeze
137
127
 
138
128
  property :principal, String,
139
- description: "An optional property to add the privilege for given principal. Use only with add and remove action. Principal can either be a User/Group or one of special identities found here Ref: https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/special-identities",
140
- name_property: true
129
+ description: "An optional property to add the user to the given privilege. Use only with add and remove action.",
130
+ name_property: true
141
131
 
142
132
  property :users, [Array, String],
143
- description: "An optional property to set the privilege for given users. Use only with set action.",
144
- coerce: proc { |v| Array(v) }
133
+ description: "An optional property to set the privilege for given users. Use only with set action.",
134
+ coerce: proc { |v| Array(v) }
145
135
 
146
136
  property :privilege, [Array, String],
147
- description: "One or more privileges to set for principal or users/groups. For more information on what each privilege does Ref: https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment",
148
- required: true,
149
- coerce: proc { |v| Array(v) },
150
- callbacks: {
151
- "Privilege property restricted to the following values: #{PRIVILEGE_OPTS}" => lambda { |n| (n - PRIVILEGE_OPTS).empty? },
152
- }, identity: true
137
+ description: "One or more privileges to set for users.",
138
+ required: true,
139
+ coerce: proc { |v| Array(v) },
140
+ callbacks: {
141
+ "Privilege property restricted to the following values: #{PRIVILEGE_OPTS}" => lambda { |n| (n - PRIVILEGE_OPTS).empty? },
142
+ }
153
143
 
154
144
  load_current_value do |new_resource|
155
145
  if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
@@ -157,15 +147,15 @@ class Chef
157
147
  end
158
148
  end
159
149
 
160
- action :add, description: "Add a privileges to a principal." do
161
- ([*new_resource.privilege] - [*current_resource.privilege]).each do |principal_right|
162
- converge_by("adding principal '#{new_resource.principal}' privilege #{principal_right}") do
163
- Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal, principal_right)
150
+ action :add, description: "Add a user privilege" do
151
+ ([*new_resource.privilege] - [*current_resource.privilege]).each do |user_right|
152
+ converge_by("adding user '#{new_resource.principal}' privilege #{user_right}") do
153
+ Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal, user_right)
164
154
  end
165
155
  end
166
156
  end
167
157
 
168
- action :set, description: "Set the privileges that are listed in the `privilege` property for only the users listed in the `users` property. All other users not listed with given privilege will be have the privilege removed." do
158
+ action :set, description: "Set the privileges that are listed in the `privilege` property for only the users listed in the `users` property" do
169
159
  if new_resource.users.nil? || new_resource.users.empty?
170
160
  raise Chef::Exceptions::ValidationFailed, "Users are required property with set action."
171
161
  end
@@ -214,7 +204,7 @@ class Chef
214
204
  end
215
205
  end
216
206
 
217
- action :remove, description: "Remove a principal privilege" do
207
+ action :remove, description: "Remove a user privilege" do
218
208
  curr_res_privilege = current_resource.privilege
219
209
  missing_res_privileges = (new_resource.privilege - curr_res_privilege)
220
210
 
@@ -222,9 +212,9 @@ class Chef
222
212
  Chef::Log.info("User \'#{new_resource.principal}\' for Privilege: #{missing_res_privileges.join(", ")} not found. Nothing to remove.")
223
213
  end
224
214
 
225
- (new_resource.privilege - missing_res_privileges).each do |principal_right|
226
- converge_by("removing principal #{new_resource.principal} from privilege #{principal_right}") do
227
- Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal, principal_right)
215
+ (new_resource.privilege - missing_res_privileges).each do |user_right|
216
+ converge_by("removing user #{new_resource.principal} from privilege #{user_right}") do
217
+ Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal, user_right)
228
218
  end
229
219
  end
230
220
  end
@@ -87,8 +87,7 @@ class Chef
87
87
  property :sensitive, [TrueClass, FalseClass],
88
88
  default: true, desired_state: false
89
89
 
90
- action :join do
91
- description "Update the workgroup."
90
+ action :join, description: "Update the workgroup." do
92
91
 
93
92
  unless workgroup_member?
94
93
  converge_by("join workstation workgroup #{new_resource.workgroup_name}") do
data/lib/chef/resource.rb CHANGED
@@ -1513,7 +1513,7 @@ class Chef
1513
1513
  # @return Chef::CookbookVersion The cookbook in which this Resource was defined.
1514
1514
  #
1515
1515
  def cookbook_version
1516
- if cookbook_name && cookbook_name != "@recipe_files"
1516
+ if cookbook_name
1517
1517
  run_context.cookbook_collection[cookbook_name]
1518
1518
  end
1519
1519
  end
@@ -41,7 +41,7 @@ class Chef
41
41
  as_hash["result"] = action_record.action.to_s
42
42
  if new_resource.cookbook_name
43
43
  as_hash["cookbook_name"] = new_resource.cookbook_name
44
- as_hash["cookbook_version"] = new_resource.cookbook_version&.version
44
+ as_hash["cookbook_version"] = new_resource.cookbook_version.version
45
45
  end
46
46
 
47
47
  as_hash
@@ -125,7 +125,6 @@ require_relative "resource/smartos_package"
125
125
  require_relative "resource/template"
126
126
  require_relative "resource/user"
127
127
  require_relative "resource/user/aix_user"
128
- require_relative "resource/user/dscl_user"
129
128
  require_relative "resource/user/linux_user"
130
129
  require_relative "resource/user/mac_user"
131
130
  require_relative "resource/user/pw_user"
@@ -198,9 +198,9 @@ module Shell
198
198
  prints a detailed explanation of the command if available, or the
199
199
  description if no explanation is available.
200
200
  E
201
- def help(command = nil)
202
- if command
203
- explain_command(command)
201
+ def help(commmand = nil)
202
+ if commmand
203
+ explain_command(commmand)
204
204
  else
205
205
  puts help_banner
206
206
  end
data/lib/chef/user.rb CHANGED
@@ -36,7 +36,6 @@ require_relative "server_api"
36
36
  # should be removed once client support for Open Source Chef Server 11 expires.
37
37
  class Chef
38
38
  class User
39
-
40
39
  include Chef::Mixin::FromFile
41
40
  include Chef::Mixin::ParamsValidate
42
41
 
data/lib/chef/user_v1.rb CHANGED
@@ -145,11 +145,11 @@ class Chef
145
145
  payload = {
146
146
  username: @username,
147
147
  display_name: @display_name,
148
- first_name: @first_name,
149
- last_name: @last_name,
150
148
  email: @email,
151
- password: @password,
152
149
  }
150
+ payload[:first_name] = @first_name unless @first_name.nil?
151
+ payload[:last_name] = @last_name unless @last_name.nil?
152
+ payload[:password] = @password unless @password.nil?
153
153
  payload[:public_key] = @public_key unless @public_key.nil?
154
154
  payload[:create_key] = @create_key unless @create_key.nil?
155
155
  payload[:middle_name] = @middle_name unless @middle_name.nil?
@@ -258,7 +258,6 @@ class Chef
258
258
  end
259
259
 
260
260
  # Class Methods
261
-
262
261
  def self.from_hash(user_hash)
263
262
  user = Chef::UserV1.new
264
263
  user.username user_hash["username"]
@@ -88,6 +88,7 @@ class Chef::Util::DSC
88
88
  when FalseClass
89
89
  switch_present = false
90
90
  when TrueClass
91
+ # nothing
91
92
  when String
92
93
  switch_argument = escape_string_parameter_value(switch_value)
93
94
  else