chef 16.18.30 → 17.10.163

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +24 -33
  3. data/README.md +1 -1
  4. data/Rakefile +4 -4
  5. data/chef-universal-mingw32.gemspec +3 -3
  6. data/chef.gemspec +25 -30
  7. data/lib/chef/action_collection.rb +6 -26
  8. data/lib/chef/api_client.rb +1 -1
  9. data/lib/chef/application/base.rb +28 -3
  10. data/lib/chef/application/exit_code.rb +7 -21
  11. data/lib/chef/application.rb +3 -1
  12. data/lib/chef/applications.rb +0 -1
  13. data/lib/chef/chef_fs/command_line.rb +5 -2
  14. data/lib/chef/chef_fs/file_pattern.rb +3 -3
  15. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  16. data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  18. data/lib/chef/chef_fs/file_system.rb +9 -10
  19. data/lib/chef/chef_fs/path_utils.rb +1 -1
  20. data/lib/chef/client.rb +10 -20
  21. data/lib/chef/compliance/default_attributes.rb +20 -7
  22. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  23. data/lib/chef/compliance/input.rb +115 -0
  24. data/lib/chef/compliance/input_collection.rb +139 -0
  25. data/lib/chef/compliance/profile.rb +122 -0
  26. data/lib/chef/compliance/profile_collection.rb +109 -0
  27. data/lib/chef/compliance/reporter/automate.rb +18 -8
  28. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  29. data/lib/chef/compliance/reporter/cli.rb +77 -0
  30. data/lib/chef/compliance/reporter/compliance_enforcer.rb +5 -1
  31. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  32. data/lib/chef/compliance/runner.rb +177 -37
  33. data/lib/chef/compliance/waiver.rb +115 -0
  34. data/lib/chef/compliance/waiver_collection.rb +143 -0
  35. data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
  36. data/lib/chef/cookbook/synchronizer.rb +3 -5
  37. data/lib/chef/cookbook/syntax_check.rb +1 -1
  38. data/lib/chef/cookbook_loader.rb +2 -4
  39. data/lib/chef/cookbook_uploader.rb +1 -2
  40. data/lib/chef/cookbook_version.rb +1 -1
  41. data/lib/chef/data_bag_item.rb +11 -2
  42. data/lib/chef/data_collector.rb +0 -1
  43. data/lib/chef/delayed_evaluator.rb +4 -0
  44. data/lib/chef/deprecated.rb +6 -2
  45. data/lib/chef/dsl/chef_vault.rb +6 -6
  46. data/lib/chef/{knife/group_list.rb → dsl/compliance.rb} +11 -16
  47. data/lib/chef/dsl/declare_resource.rb +5 -10
  48. data/lib/chef/{knife/client_show.rb → dsl/reader_helpers.rb} +24 -21
  49. data/lib/chef/dsl/reboot_pending.rb +2 -3
  50. data/lib/chef/dsl/recipe.rb +4 -2
  51. data/lib/chef/{knife/data_bag_list.rb → dsl/render_helpers.rb} +19 -17
  52. data/lib/chef/dsl/secret.rb +170 -0
  53. data/lib/chef/dsl/toml.rb +116 -0
  54. data/lib/chef/dsl/universal.rb +7 -0
  55. data/lib/chef/dsl.rb +1 -0
  56. data/lib/chef/event_dispatch/base.rb +46 -3
  57. data/lib/chef/exceptions.rb +30 -0
  58. data/lib/chef/formatters/doc.rb +62 -14
  59. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  60. data/lib/chef/formatters/minimal.rb +6 -5
  61. data/lib/chef/group.rb +75 -0
  62. data/lib/chef/handler/slow_report.rb +66 -0
  63. data/lib/chef/handler.rb +46 -8
  64. data/lib/chef/http/basic_client.rb +15 -7
  65. data/lib/chef/http/ssl_policies.rb +3 -3
  66. data/lib/chef/http.rb +7 -3
  67. data/lib/chef/json_compat.rb +1 -1
  68. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  69. data/lib/chef/mixin/homebrew_user.rb +15 -5
  70. data/lib/chef/mixin/openssl_helper.rb +17 -13
  71. data/lib/chef/mixin/powershell_exec.rb +27 -7
  72. data/lib/chef/mixin/properties.rb +6 -0
  73. data/lib/chef/mixin/why_run.rb +8 -2
  74. data/lib/chef/node/attribute.rb +6 -4
  75. data/lib/chef/node/immutable_collections.rb +13 -0
  76. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  77. data/lib/chef/node.rb +1 -1
  78. data/lib/chef/org.rb +3 -2
  79. data/lib/chef/platform/query_helpers.rb +2 -2
  80. data/lib/chef/policy_builder/expand_node_object.rb +1 -2
  81. data/lib/chef/policy_builder/policyfile.rb +84 -46
  82. data/lib/chef/powershell.rb +8 -6
  83. data/lib/chef/property.rb +18 -0
  84. data/lib/chef/provider/cron.rb +7 -4
  85. data/lib/chef/provider/directory.rb +8 -8
  86. data/lib/chef/provider/execute.rb +3 -2
  87. data/lib/chef/provider/file.rb +5 -3
  88. data/lib/chef/provider/git.rb +6 -8
  89. data/lib/chef/provider/group/groupadd.rb +3 -3
  90. data/lib/chef/provider/group/groupmod.rb +3 -3
  91. data/lib/chef/provider/group/pw.rb +3 -3
  92. data/lib/chef/provider/ifconfig/debian.rb +1 -1
  93. data/lib/chef/provider/ifconfig.rb +7 -7
  94. data/lib/chef/provider/launchd.rb +6 -6
  95. data/lib/chef/provider/link.rb +5 -5
  96. data/lib/chef/provider/lwrp_base.rb +1 -1
  97. data/lib/chef/provider/mount/aix.rb +3 -3
  98. data/lib/chef/provider/mount/linux.rb +16 -2
  99. data/lib/chef/provider/mount/mount.rb +6 -6
  100. data/lib/chef/provider/mount/windows.rb +1 -1
  101. data/lib/chef/provider/mount.rb +5 -5
  102. data/lib/chef/provider/package/apt.rb +27 -1
  103. data/lib/chef/provider/package/chocolatey.rb +14 -1
  104. data/lib/chef/provider/package/deb.rb +3 -3
  105. data/lib/chef/provider/package/dnf/dnf_helper.py +12 -11
  106. data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
  107. data/lib/chef/provider/package/dnf.rb +1 -1
  108. data/lib/chef/provider/package/habitat.rb +168 -0
  109. data/lib/chef/provider/package/portage.rb +2 -2
  110. data/lib/chef/provider/package/powershell.rb +13 -10
  111. data/lib/chef/provider/package/rubygems.rb +15 -21
  112. data/lib/chef/provider/package/windows.rb +2 -4
  113. data/lib/chef/provider/package/yum/python_helper.rb +109 -35
  114. data/lib/chef/provider/package/yum/yum_helper.py +42 -60
  115. data/lib/chef/provider/package/yum.rb +40 -16
  116. data/lib/chef/provider/package/zypper.rb +7 -0
  117. data/lib/chef/provider/package.rb +80 -49
  118. data/lib/chef/provider/registry_key.rb +4 -3
  119. data/lib/chef/provider/remote_file/http.rb +1 -1
  120. data/lib/chef/provider/route.rb +2 -2
  121. data/lib/chef/provider/service/aixinit.rb +1 -1
  122. data/lib/chef/provider/service/debian.rb +1 -1
  123. data/lib/chef/provider/service/freebsd.rb +15 -21
  124. data/lib/chef/provider/service/macosx.rb +4 -4
  125. data/lib/chef/provider/service/systemd.rb +43 -14
  126. data/lib/chef/provider/service/upstart.rb +2 -13
  127. data/lib/chef/provider/service/windows.rb +16 -16
  128. data/lib/chef/provider/service.rb +6 -6
  129. data/lib/chef/provider/subversion.rb +18 -20
  130. data/lib/chef/provider/support/yum_repo.erb +1 -1
  131. data/lib/chef/provider/support/zypper_repo.erb +4 -2
  132. data/lib/chef/provider/systemd_unit.rb +53 -26
  133. data/lib/chef/provider/template/content.rb +2 -6
  134. data/lib/chef/provider/template.rb +1 -1
  135. data/lib/chef/provider/user/dscl.rb +1 -1
  136. data/lib/chef/provider/user/mac.rb +23 -26
  137. data/lib/chef/provider/user/pw.rb +1 -1
  138. data/lib/chef/provider/user/windows.rb +3 -3
  139. data/lib/chef/provider/user.rb +7 -3
  140. data/lib/chef/provider/windows_script.rb +1 -1
  141. data/lib/chef/provider/yum_repository.rb +27 -43
  142. data/lib/chef/provider/zypper_repository.rb +31 -35
  143. data/lib/chef/provider.rb +32 -4
  144. data/lib/chef/provider_resolver.rb +8 -2
  145. data/lib/chef/providers.rb +1 -2
  146. data/lib/chef/pwsh.rb +3 -2
  147. data/lib/chef/resource/alternatives.rb +6 -6
  148. data/lib/chef/resource/apt_package.rb +3 -3
  149. data/lib/chef/resource/apt_preference.rb +2 -2
  150. data/lib/chef/resource/apt_repository.rb +6 -6
  151. data/lib/chef/resource/apt_update.rb +5 -4
  152. data/lib/chef/resource/archive_file.rb +19 -17
  153. data/lib/chef/resource/breakpoint.rb +1 -1
  154. data/lib/chef/resource/build_essential.rb +2 -6
  155. data/lib/chef/resource/chef_client_config.rb +38 -6
  156. data/lib/chef/resource/chef_client_cron.rb +5 -5
  157. data/lib/chef/resource/chef_client_launchd.rb +7 -7
  158. data/lib/chef/resource/chef_client_scheduled_task.rb +61 -18
  159. data/lib/chef/resource/chef_client_systemd_timer.rb +6 -6
  160. data/lib/chef/resource/chef_client_trusted_certificate.rb +2 -2
  161. data/lib/chef/resource/chef_handler.rb +3 -7
  162. data/lib/chef/resource/chef_sleep.rb +1 -1
  163. data/lib/chef/resource/chef_vault_secret.rb +5 -10
  164. data/lib/chef/resource/chocolatey_config.rb +16 -20
  165. data/lib/chef/resource/chocolatey_feature.rb +3 -7
  166. data/lib/chef/resource/chocolatey_package.rb +3 -3
  167. data/lib/chef/resource/chocolatey_source.rb +28 -12
  168. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  169. data/lib/chef/resource/cron/cron.rb +75 -1
  170. data/lib/chef/resource/cron/cron_d.rb +5 -6
  171. data/lib/chef/resource/cron_access.rb +2 -4
  172. data/lib/chef/resource/directory.rb +1 -1
  173. data/lib/chef/resource/dmg_package.rb +6 -10
  174. data/lib/chef/resource/dnf_package.rb +4 -6
  175. data/lib/chef/resource/dpkg_package.rb +6 -1
  176. data/lib/chef/resource/dsc_resource.rb +1 -1
  177. data/lib/chef/resource/execute.rb +14 -12
  178. data/lib/chef/resource/file/verification/json.rb +50 -0
  179. data/lib/chef/resource/{user/dscl_user.rb → file/verification/yaml.rb} +26 -9
  180. data/lib/chef/resource/file.rb +1 -1
  181. data/lib/chef/resource/gem_package.rb +2 -1
  182. data/lib/chef/resource/group.rb +6 -6
  183. data/lib/chef/{knife/recipe_list.rb → resource/habitat/_habitat_shared.rb} +13 -17
  184. data/lib/chef/resource/habitat/habitat_package.rb +129 -0
  185. data/lib/chef/resource/habitat/habitat_sup.rb +329 -0
  186. data/lib/chef/resource/habitat/habitat_sup_systemd.rb +67 -0
  187. data/lib/chef/resource/habitat/habitat_sup_windows.rb +90 -0
  188. data/lib/chef/resource/habitat_config.rb +107 -0
  189. data/lib/chef/resource/habitat_install.rb +247 -0
  190. data/lib/chef/resource/habitat_service.rb +451 -0
  191. data/lib/chef/resource/habitat_user_toml.rb +92 -0
  192. data/lib/chef/resource/homebrew_cask.rb +10 -10
  193. data/lib/chef/resource/homebrew_package.rb +1 -1
  194. data/lib/chef/resource/homebrew_tap.rb +9 -16
  195. data/lib/chef/resource/homebrew_update.rb +2 -2
  196. data/lib/chef/resource/hostname.rb +68 -22
  197. data/lib/chef/resource/http_request.rb +1 -1
  198. data/lib/chef/resource/inspec_input.rb +127 -0
  199. data/lib/chef/resource/inspec_waiver.rb +184 -0
  200. data/lib/chef/resource/inspec_waiver_file_entry.rb +156 -0
  201. data/lib/chef/resource/kernel_module.rb +32 -18
  202. data/lib/chef/resource/launchd.rb +5 -8
  203. data/lib/chef/resource/locale.rb +7 -5
  204. data/lib/chef/resource/lwrp_base.rb +20 -1
  205. data/lib/chef/resource/macos_userdefaults.rb +54 -144
  206. data/lib/chef/resource/mdadm.rb +53 -7
  207. data/lib/chef/resource/mount.rb +2 -1
  208. data/lib/chef/resource/ohai_hint.rb +2 -6
  209. data/lib/chef/resource/openbsd_package.rb +17 -0
  210. data/lib/chef/resource/openssl_dhparam.rb +1 -2
  211. data/lib/chef/resource/openssl_ec_private_key.rb +3 -5
  212. data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
  213. data/lib/chef/resource/openssl_rsa_private_key.rb +2 -4
  214. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
  215. data/lib/chef/resource/openssl_x509_certificate.rb +4 -7
  216. data/lib/chef/resource/openssl_x509_crl.rb +1 -3
  217. data/lib/chef/resource/openssl_x509_request.rb +1 -3
  218. data/lib/chef/resource/osx_profile.rb +3 -3
  219. data/lib/chef/resource/plist.rb +8 -8
  220. data/lib/chef/resource/powershell_package_source.rb +235 -73
  221. data/lib/chef/resource/powershell_script.rb +1 -1
  222. data/lib/chef/resource/reboot.rb +38 -9
  223. data/lib/chef/resource/registry_key.rb +36 -48
  224. data/lib/chef/resource/remote_directory.rb +2 -2
  225. data/lib/chef/resource/remote_file.rb +103 -7
  226. data/lib/chef/resource/rhsm_errata.rb +16 -3
  227. data/lib/chef/resource/rhsm_errata_level.rb +11 -6
  228. data/lib/chef/resource/rhsm_register.rb +42 -3
  229. data/lib/chef/resource/rhsm_repo.rb +17 -6
  230. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  231. data/lib/chef/resource/ruby_block.rb +100 -0
  232. data/lib/chef/resource/scm/git.rb +1 -1
  233. data/lib/chef/resource/scm/subversion.rb +1 -1
  234. data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
  235. data/lib/chef/resource/sudo.rb +8 -12
  236. data/lib/chef/resource/support/HabService.dll.config.erb +19 -0
  237. data/lib/chef/resource/support/client.erb +11 -1
  238. data/lib/chef/resource/support/sup.toml.erb +179 -0
  239. data/lib/chef/resource/swap_file.rb +2 -6
  240. data/lib/chef/resource/sysctl.rb +2 -6
  241. data/lib/chef/resource/systemd_unit.rb +2 -2
  242. data/lib/chef/resource/template.rb +1 -1
  243. data/lib/chef/resource/timezone.rb +3 -5
  244. data/lib/chef/resource/user/mac_user.rb +1 -1
  245. data/lib/chef/resource/user_ulimit.rb +2 -2
  246. data/lib/chef/resource/windows_ad_join.rb +2 -6
  247. data/lib/chef/resource/windows_audit_policy.rb +2 -2
  248. data/lib/chef/resource/windows_auto_run.rb +3 -6
  249. data/lib/chef/resource/windows_certificate.rb +235 -90
  250. data/lib/chef/resource/windows_defender.rb +163 -0
  251. data/lib/chef/resource/windows_defender_exclusion.rb +125 -0
  252. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  253. data/lib/chef/resource/windows_dfs_namespace.rb +4 -8
  254. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  255. data/lib/chef/resource/windows_dns_record.rb +2 -6
  256. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  257. data/lib/chef/resource/windows_env.rb +6 -5
  258. data/lib/chef/resource/windows_feature.rb +3 -9
  259. data/lib/chef/resource/windows_feature_dism.rb +3 -9
  260. data/lib/chef/resource/windows_feature_powershell.rb +11 -12
  261. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  262. data/lib/chef/resource/windows_firewall_rule.rb +20 -9
  263. data/lib/chef/resource/windows_font.rb +3 -5
  264. data/lib/chef/resource/windows_pagefile.rb +111 -69
  265. data/lib/chef/resource/windows_path.rb +4 -4
  266. data/lib/chef/resource/windows_printer.rb +80 -61
  267. data/lib/chef/resource/windows_printer_port.rb +49 -66
  268. data/lib/chef/resource/windows_security_policy.rb +10 -10
  269. data/lib/chef/resource/windows_share.rb +14 -21
  270. data/lib/chef/resource/windows_shortcut.rb +4 -6
  271. data/lib/chef/resource/windows_task.rb +44 -17
  272. data/lib/chef/resource/windows_uac.rb +3 -5
  273. data/lib/chef/resource/windows_update_settings.rb +259 -0
  274. data/lib/chef/resource/windows_workgroup.rb +3 -4
  275. data/lib/chef/resource/yum_package.rb +11 -15
  276. data/lib/chef/resource/zypper_package.rb +4 -4
  277. data/lib/chef/resource/zypper_repository.rb +28 -8
  278. data/lib/chef/resource.rb +24 -27
  279. data/lib/chef/resource_builder.rb +8 -2
  280. data/lib/chef/resource_inspector.rb +6 -2
  281. data/lib/chef/resource_reporter.rb +1 -2
  282. data/lib/chef/resources.rb +15 -2
  283. data/lib/chef/run_context/cookbook_compiler.rb +112 -28
  284. data/lib/chef/run_context.rb +47 -1
  285. data/lib/chef/run_lock.rb +2 -2
  286. data/lib/chef/runner.rb +1 -1
  287. data/lib/chef/secret_fetcher/akeyless_vault.rb +57 -0
  288. data/lib/chef/secret_fetcher/aws_secrets_manager.rb +65 -0
  289. data/lib/chef/secret_fetcher/azure_key_vault.rb +134 -0
  290. data/lib/chef/secret_fetcher/base.rb +76 -0
  291. data/lib/chef/secret_fetcher/example.rb +46 -0
  292. data/lib/chef/secret_fetcher/hashi_vault.rb +134 -0
  293. data/lib/chef/secret_fetcher.rb +60 -0
  294. data/lib/chef/user.rb +0 -1
  295. data/lib/chef/user_v1.rb +3 -4
  296. data/lib/chef/util/dsc/configuration_generator.rb +2 -1
  297. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  298. data/lib/chef/version.rb +1 -1
  299. data/lib/chef/win32/api.rb +1 -1
  300. data/lib/chef/win32/registry.rb +4 -2
  301. data/spec/data/archive_file/test_archive.tar.gz +0 -0
  302. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  303. data/spec/data/lwrp/resources/bar.rb +2 -0
  304. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  305. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  306. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  307. data/spec/data/lwrp/resources/foo.rb +2 -0
  308. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  309. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  310. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  311. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  312. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  313. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  314. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  315. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  316. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  317. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  318. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  319. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  320. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  321. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  322. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  323. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  324. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  325. data/spec/data/trusted_certs/example.crt +29 -20
  326. data/spec/data/trusted_certs/example_no_cn.crt +30 -34
  327. data/spec/data/trusted_certs/opscode.pem +33 -54
  328. data/spec/functional/assets/yumrepo/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  329. data/spec/functional/assets/yumrepo/repodata/401dc-filelists.xml.gz +0 -0
  330. data/spec/functional/assets/yumrepo/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  331. data/spec/functional/assets/yumrepo/repodata/6bf96-other.xml.gz +0 -0
  332. data/spec/functional/assets/yumrepo/repodata/7c365-other.sqlite.bz2 +0 -0
  333. data/spec/functional/assets/yumrepo/repodata/dabe2-primary.xml.gz +0 -0
  334. data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
  335. data/spec/functional/dsl/registry_helper_spec.rb +2 -2
  336. data/spec/functional/mixin/from_file_spec.rb +1 -1
  337. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  338. data/spec/functional/resource/apt_package_spec.rb +1 -1
  339. data/spec/functional/resource/archive_file_spec.rb +88 -0
  340. data/spec/functional/resource/chocolatey_package_spec.rb +41 -20
  341. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  342. data/spec/functional/resource/dnf_package_spec.rb +997 -645
  343. data/spec/functional/resource/dpkg_package_spec.rb +16 -0
  344. data/spec/functional/resource/dsc_script_spec.rb +5 -5
  345. data/spec/functional/resource/group_spec.rb +39 -19
  346. data/spec/functional/resource/link_spec.rb +1 -1
  347. data/spec/functional/resource/macos_userdefaults_spec.rb +139 -0
  348. data/spec/functional/resource/powershell_package_source_spec.rb +5 -6
  349. data/spec/functional/resource/registry_spec.rb +89 -89
  350. data/spec/functional/resource/remote_file_spec.rb +1 -1
  351. data/spec/functional/resource/template_spec.rb +1 -1
  352. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  353. data/spec/functional/resource/windows_certificate_spec.rb +122 -37
  354. data/spec/functional/resource/windows_env_spec.rb +2 -2
  355. data/spec/functional/resource/windows_font_spec.rb +1 -2
  356. data/spec/functional/resource/windows_hostname_spec.rb +91 -0
  357. data/spec/functional/resource/windows_pagefile_spec.rb +125 -0
  358. data/spec/functional/resource/yum_package_spec.rb +1197 -451
  359. data/spec/functional/resource/zypper_package_spec.rb +17 -0
  360. data/spec/functional/shell_spec.rb +1 -0
  361. data/spec/functional/version_spec.rb +1 -1
  362. data/spec/functional/win32/registry_spec.rb +12 -9
  363. data/spec/integration/client/client_spec.rb +37 -23
  364. data/spec/integration/client/exit_code_spec.rb +1 -1
  365. data/spec/integration/client/fips_spec.rb +9 -1
  366. data/spec/integration/client/ipv6_spec.rb +1 -1
  367. data/spec/integration/client/open_ssl_spec.rb +20 -0
  368. data/spec/integration/compliance/compliance_spec.rb +62 -1
  369. data/spec/integration/ohai/ohai_spec.rb +7 -6
  370. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  371. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  372. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  373. data/spec/integration/recipes/notifies_spec.rb +15 -1
  374. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  375. data/spec/integration/recipes/recipe_dsl_spec.rb +10 -10
  376. data/spec/integration/recipes/resource_action_spec.rb +6 -6
  377. data/spec/integration/recipes/unified_mode_spec.rb +71 -1
  378. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  379. data/spec/spec_helper.rb +20 -18
  380. data/spec/support/chef_helpers.rb +1 -17
  381. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  382. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  383. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  384. data/spec/support/matchers/leak.rb +7 -9
  385. data/spec/support/platform_helpers.rb +14 -13
  386. data/spec/support/ruby_installer.rb +51 -0
  387. data/spec/support/shared/functional/execute_resource.rb +1 -1
  388. data/spec/support/shared/functional/file_resource.rb +2 -2
  389. data/spec/support/shared/functional/http.rb +9 -9
  390. data/spec/support/shared/integration/integration_helper.rb +0 -1
  391. data/spec/support/shared/unit/provider/file.rb +3 -9
  392. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +1 -1
  393. data/spec/support/shared/unit/script_resource.rb +2 -2
  394. data/spec/unit/application/base_spec.rb +40 -0
  395. data/spec/unit/application/solo_spec.rb +2 -2
  396. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  397. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
  398. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  399. data/spec/unit/client_spec.rb +0 -16
  400. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  401. data/spec/unit/compliance/input_spec.rb +104 -0
  402. data/spec/unit/compliance/profile_spec.rb +120 -0
  403. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  404. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +21 -1
  405. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +4 -3
  406. data/spec/unit/compliance/runner_spec.rb +137 -6
  407. data/spec/unit/compliance/waiver_spec.rb +104 -0
  408. data/spec/unit/data_bag_item_spec.rb +1 -6
  409. data/spec/unit/dsl/reboot_pending_spec.rb +3 -3
  410. data/spec/unit/dsl/registry_helper_spec.rb +7 -7
  411. data/spec/unit/dsl/render_helpers_spec.rb +102 -0
  412. data/spec/unit/dsl/secret_spec.rb +175 -0
  413. data/spec/unit/file_access_control_spec.rb +1 -1
  414. data/spec/unit/formatters/doc_spec.rb +1 -1
  415. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
  416. data/spec/unit/handler_spec.rb +8 -2
  417. data/spec/unit/http/basic_client_spec.rb +30 -0
  418. data/spec/unit/http_spec.rb +8 -2
  419. data/spec/unit/lwrp_spec.rb +3 -3
  420. data/spec/unit/mixin/default_paths_spec.rb +1 -1
  421. data/spec/unit/mixin/homebrew_user_spec.rb +30 -7
  422. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  423. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  424. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  425. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  426. data/spec/unit/mixin/securable_spec.rb +3 -3
  427. data/spec/unit/mixin/why_run_spec.rb +53 -0
  428. data/spec/unit/node/attribute_spec.rb +1 -1
  429. data/spec/unit/node_spec.rb +78 -0
  430. data/spec/unit/org_group_spec.rb +45 -0
  431. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  432. data/spec/unit/policy_builder/dynamic_spec.rb +0 -5
  433. data/spec/unit/policy_builder/policyfile_spec.rb +133 -55
  434. data/spec/unit/property_spec.rb +23 -22
  435. data/spec/unit/provider/apt_update_spec.rb +3 -1
  436. data/spec/unit/provider/cron_spec.rb +46 -1
  437. data/spec/unit/provider/dsc_script_spec.rb +8 -8
  438. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  439. data/spec/unit/provider/group/groupadd_spec.rb +1 -0
  440. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  441. data/spec/unit/provider/group/pw_spec.rb +2 -2
  442. data/spec/unit/provider/group/usermod_spec.rb +4 -4
  443. data/spec/unit/provider/group_spec.rb +1 -1
  444. data/spec/unit/provider/ifconfig/aix_spec.rb +14 -14
  445. data/spec/unit/provider/ifconfig/debian_spec.rb +1 -1
  446. data/spec/unit/provider/ifconfig/redhat_spec.rb +1 -1
  447. data/spec/unit/provider/ifconfig_spec.rb +5 -3
  448. data/spec/unit/provider/link_spec.rb +14 -8
  449. data/spec/unit/provider/mount/aix_spec.rb +1 -1
  450. data/spec/unit/provider/mount/linux_spec.rb +16 -3
  451. data/spec/unit/provider/package/apt_spec.rb +84 -18
  452. data/spec/unit/provider/package/bff_spec.rb +1 -0
  453. data/spec/unit/provider/package/chocolatey_spec.rb +20 -3
  454. data/spec/unit/provider/package/deb_spec.rb +3 -3
  455. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
  456. data/spec/unit/provider/package/powershell_spec.rb +114 -114
  457. data/spec/unit/provider/package/rubygems_spec.rb +27 -36
  458. data/spec/unit/provider/package/solaris_spec.rb +1 -0
  459. data/spec/unit/provider/package/windows_spec.rb +1 -1
  460. data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
  461. data/spec/unit/provider/registry_key_spec.rb +4 -4
  462. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +3 -3
  463. data/spec/unit/provider/remote_file/http_spec.rb +10 -0
  464. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  465. data/spec/unit/provider/service/debian_service_spec.rb +2 -0
  466. data/spec/unit/provider/service/gentoo_service_spec.rb +3 -2
  467. data/spec/unit/provider/service/macosx_spec.rb +3 -2
  468. data/spec/unit/provider/service/redhat_spec.rb +4 -1
  469. data/spec/unit/provider/service/simple_service_spec.rb +6 -4
  470. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  471. data/spec/unit/provider/service/upstart_service_spec.rb +3 -32
  472. data/spec/unit/provider/service/windows_spec.rb +7 -7
  473. data/spec/unit/provider/subversion_spec.rb +6 -6
  474. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  475. data/spec/unit/provider/template_spec.rb +2 -2
  476. data/spec/unit/provider/user/linux_spec.rb +55 -0
  477. data/spec/unit/provider/user/solaris_spec.rb +1 -1
  478. data/spec/unit/provider/user_spec.rb +2 -0
  479. data/spec/unit/provider/windows_env_spec.rb +1 -1
  480. data/spec/unit/provider/zypper_repository_spec.rb +6 -13
  481. data/spec/unit/provider_spec.rb +23 -8
  482. data/spec/unit/resource/archive_file_spec.rb +400 -2
  483. data/spec/unit/resource/chef_client_config_spec.rb +8 -0
  484. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +69 -0
  485. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +1 -1
  486. data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
  487. data/spec/unit/resource/chocolatey_feature_spec.rb +1 -1
  488. data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
  489. data/spec/unit/resource/conditional_spec.rb +4 -4
  490. data/spec/unit/resource/dpkg_package_spec.rb +12 -0
  491. data/spec/unit/resource/file/verification/json_spec.rb +72 -0
  492. data/spec/unit/resource/file/verification/yaml_spec.rb +67 -0
  493. data/spec/unit/resource/inspec_input_spec.rb +300 -0
  494. data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
  495. data/spec/unit/resource/inspec_waiver_spec.rb +312 -0
  496. data/spec/unit/resource/kernel_module_spec.rb +2 -1
  497. data/spec/unit/resource/macos_user_defaults_spec.rb +36 -96
  498. data/spec/unit/resource/powershell_package_source_spec.rb +63 -62
  499. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  500. data/spec/unit/resource/registry_key_spec.rb +10 -10
  501. data/spec/unit/resource/rhsm_register_spec.rb +42 -0
  502. data/spec/unit/resource/windows_auto_run_spec.rb +1 -1
  503. data/spec/unit/resource/windows_defender_exclusion_spec.rb +62 -0
  504. data/spec/unit/resource/windows_defender_spec.rb +71 -0
  505. data/spec/unit/resource/windows_feature_powershell_spec.rb +1 -1
  506. data/spec/unit/resource/windows_firewall_rule_spec.rb +14 -9
  507. data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
  508. data/spec/unit/resource/windows_task_spec.rb +4 -4
  509. data/spec/unit/resource/windows_update_settings_spec.rb +64 -0
  510. data/spec/unit/resource/zypper_repository_spec.rb +1 -1
  511. data/spec/unit/resource_reporter_spec.rb +2 -2
  512. data/spec/unit/resource_spec.rb +56 -23
  513. data/spec/unit/run_context_spec.rb +16 -0
  514. data/spec/unit/secret_fetcher/akeyless_vault_spec.rb +37 -0
  515. data/spec/unit/secret_fetcher/aws_secrets_manager_spec.rb +70 -0
  516. data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +149 -0
  517. data/spec/unit/secret_fetcher/hashi_vault_spec.rb +126 -0
  518. data/spec/unit/secret_fetcher_spec.rb +82 -0
  519. data/spec/unit/user_spec.rb +1 -1
  520. data/spec/unit/user_v1_spec.rb +6 -4
  521. data/spec/unit/util/backup_spec.rb +1 -1
  522. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  523. data/spec/unit/win32/registry_spec.rb +3 -3
  524. data/tasks/rspec.rb +10 -6
  525. metadata +181 -532
  526. data/bin/knife +0 -24
  527. data/lib/chef/application/knife.rb +0 -234
  528. data/lib/chef/application/windows_service.rb +0 -338
  529. data/lib/chef/application/windows_service_manager.rb +0 -205
  530. data/lib/chef/chef_fs/knife.rb +0 -160
  531. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  532. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  533. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  534. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  535. data/lib/chef/knife/acl_add.rb +0 -57
  536. data/lib/chef/knife/acl_base.rb +0 -183
  537. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  538. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  539. data/lib/chef/knife/acl_remove.rb +0 -62
  540. data/lib/chef/knife/acl_show.rb +0 -56
  541. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  542. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  543. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  544. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  545. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  546. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  547. data/lib/chef/knife/bootstrap.rb +0 -1192
  548. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  549. data/lib/chef/knife/client_create.rb +0 -101
  550. data/lib/chef/knife/client_delete.rb +0 -62
  551. data/lib/chef/knife/client_edit.rb +0 -52
  552. data/lib/chef/knife/client_key_create.rb +0 -73
  553. data/lib/chef/knife/client_key_delete.rb +0 -80
  554. data/lib/chef/knife/client_key_edit.rb +0 -83
  555. data/lib/chef/knife/client_key_list.rb +0 -73
  556. data/lib/chef/knife/client_key_show.rb +0 -80
  557. data/lib/chef/knife/client_list.rb +0 -41
  558. data/lib/chef/knife/client_reregister.rb +0 -58
  559. data/lib/chef/knife/config_get.rb +0 -39
  560. data/lib/chef/knife/config_get_profile.rb +0 -37
  561. data/lib/chef/knife/config_list.rb +0 -139
  562. data/lib/chef/knife/config_list_profiles.rb +0 -37
  563. data/lib/chef/knife/config_show.rb +0 -127
  564. data/lib/chef/knife/config_use.rb +0 -61
  565. data/lib/chef/knife/config_use_profile.rb +0 -47
  566. data/lib/chef/knife/configure.rb +0 -150
  567. data/lib/chef/knife/configure_client.rb +0 -48
  568. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  569. data/lib/chef/knife/cookbook_delete.rb +0 -151
  570. data/lib/chef/knife/cookbook_download.rb +0 -142
  571. data/lib/chef/knife/cookbook_list.rb +0 -47
  572. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  573. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  574. data/lib/chef/knife/cookbook_show.rb +0 -98
  575. data/lib/chef/knife/cookbook_upload.rb +0 -292
  576. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  577. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  578. data/lib/chef/knife/core/formatting_options.rb +0 -49
  579. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  580. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  581. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  582. data/lib/chef/knife/core/node_editor.rb +0 -130
  583. data/lib/chef/knife/core/node_presenter.rb +0 -133
  584. data/lib/chef/knife/core/object_loader.rb +0 -115
  585. data/lib/chef/knife/core/status_presenter.rb +0 -147
  586. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  587. data/lib/chef/knife/core/text_formatter.rb +0 -85
  588. data/lib/chef/knife/core/ui.rb +0 -338
  589. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  590. data/lib/chef/knife/data_bag_create.rb +0 -81
  591. data/lib/chef/knife/data_bag_delete.rb +0 -49
  592. data/lib/chef/knife/data_bag_edit.rb +0 -74
  593. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  594. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  595. data/lib/chef/knife/data_bag_show.rb +0 -69
  596. data/lib/chef/knife/delete.rb +0 -125
  597. data/lib/chef/knife/deps.rb +0 -156
  598. data/lib/chef/knife/diff.rb +0 -83
  599. data/lib/chef/knife/download.rb +0 -84
  600. data/lib/chef/knife/edit.rb +0 -88
  601. data/lib/chef/knife/environment_compare.rb +0 -128
  602. data/lib/chef/knife/environment_create.rb +0 -52
  603. data/lib/chef/knife/environment_delete.rb +0 -44
  604. data/lib/chef/knife/environment_edit.rb +0 -44
  605. data/lib/chef/knife/environment_from_file.rb +0 -84
  606. data/lib/chef/knife/environment_list.rb +0 -41
  607. data/lib/chef/knife/environment_show.rb +0 -47
  608. data/lib/chef/knife/exec.rb +0 -99
  609. data/lib/chef/knife/group_add.rb +0 -55
  610. data/lib/chef/knife/group_create.rb +0 -49
  611. data/lib/chef/knife/group_destroy.rb +0 -53
  612. data/lib/chef/knife/group_remove.rb +0 -56
  613. data/lib/chef/knife/group_show.rb +0 -49
  614. data/lib/chef/knife/key_create.rb +0 -112
  615. data/lib/chef/knife/key_create_base.rb +0 -50
  616. data/lib/chef/knife/key_delete.rb +0 -55
  617. data/lib/chef/knife/key_edit.rb +0 -118
  618. data/lib/chef/knife/key_edit_base.rb +0 -55
  619. data/lib/chef/knife/key_list.rb +0 -90
  620. data/lib/chef/knife/key_list_base.rb +0 -45
  621. data/lib/chef/knife/key_show.rb +0 -53
  622. data/lib/chef/knife/list.rb +0 -177
  623. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  624. data/lib/chef/knife/node_create.rb +0 -47
  625. data/lib/chef/knife/node_delete.rb +0 -46
  626. data/lib/chef/knife/node_edit.rb +0 -70
  627. data/lib/chef/knife/node_environment_set.rb +0 -53
  628. data/lib/chef/knife/node_from_file.rb +0 -51
  629. data/lib/chef/knife/node_list.rb +0 -44
  630. data/lib/chef/knife/node_policy_set.rb +0 -79
  631. data/lib/chef/knife/node_run_list_add.rb +0 -104
  632. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  633. data/lib/chef/knife/node_run_list_set.rb +0 -66
  634. data/lib/chef/knife/node_show.rb +0 -63
  635. data/lib/chef/knife/null.rb +0 -12
  636. data/lib/chef/knife/raw.rb +0 -123
  637. data/lib/chef/knife/rehash.rb +0 -50
  638. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  639. data/lib/chef/knife/role_create.rb +0 -53
  640. data/lib/chef/knife/role_delete.rb +0 -46
  641. data/lib/chef/knife/role_edit.rb +0 -45
  642. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  643. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  644. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  645. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  646. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  647. data/lib/chef/knife/role_from_file.rb +0 -51
  648. data/lib/chef/knife/role_list.rb +0 -42
  649. data/lib/chef/knife/role_run_list_add.rb +0 -87
  650. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  651. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  652. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  653. data/lib/chef/knife/role_run_list_set.rb +0 -69
  654. data/lib/chef/knife/role_show.rb +0 -48
  655. data/lib/chef/knife/search.rb +0 -194
  656. data/lib/chef/knife/serve.rb +0 -65
  657. data/lib/chef/knife/show.rb +0 -72
  658. data/lib/chef/knife/ssh.rb +0 -645
  659. data/lib/chef/knife/ssl_check.rb +0 -284
  660. data/lib/chef/knife/ssl_fetch.rb +0 -161
  661. data/lib/chef/knife/status.rb +0 -95
  662. data/lib/chef/knife/supermarket_download.rb +0 -121
  663. data/lib/chef/knife/supermarket_install.rb +0 -192
  664. data/lib/chef/knife/supermarket_list.rb +0 -76
  665. data/lib/chef/knife/supermarket_search.rb +0 -53
  666. data/lib/chef/knife/supermarket_share.rb +0 -166
  667. data/lib/chef/knife/supermarket_show.rb +0 -66
  668. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  669. data/lib/chef/knife/tag_create.rb +0 -52
  670. data/lib/chef/knife/tag_delete.rb +0 -60
  671. data/lib/chef/knife/tag_list.rb +0 -47
  672. data/lib/chef/knife/upload.rb +0 -86
  673. data/lib/chef/knife/user_create.rb +0 -107
  674. data/lib/chef/knife/user_delete.rb +0 -44
  675. data/lib/chef/knife/user_dissociate.rb +0 -42
  676. data/lib/chef/knife/user_edit.rb +0 -52
  677. data/lib/chef/knife/user_invite_add.rb +0 -43
  678. data/lib/chef/knife/user_invite_list.rb +0 -34
  679. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  680. data/lib/chef/knife/user_key_create.rb +0 -73
  681. data/lib/chef/knife/user_key_delete.rb +0 -80
  682. data/lib/chef/knife/user_key_edit.rb +0 -83
  683. data/lib/chef/knife/user_key_list.rb +0 -73
  684. data/lib/chef/knife/user_key_show.rb +0 -80
  685. data/lib/chef/knife/user_list.rb +0 -42
  686. data/lib/chef/knife/user_reregister.rb +0 -59
  687. data/lib/chef/knife/user_show.rb +0 -48
  688. data/lib/chef/knife/xargs.rb +0 -282
  689. data/lib/chef/knife/yaml_convert.rb +0 -91
  690. data/lib/chef/knife.rb +0 -665
  691. data/lib/chef/provider/group/suse.rb +0 -82
  692. data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
  693. data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
  694. data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
  695. data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
  696. data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
  697. data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
  698. data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
  699. data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
  700. data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
  701. data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
  702. data/spec/functional/knife/configure_spec.rb +0 -33
  703. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  704. data/spec/functional/knife/exec_spec.rb +0 -55
  705. data/spec/functional/knife/rehash_spec.rb +0 -39
  706. data/spec/functional/knife/smoke_test.rb +0 -42
  707. data/spec/functional/knife/ssh_spec.rb +0 -352
  708. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  709. data/spec/functional/resource/windows_service_spec.rb +0 -105
  710. data/spec/functional/win32/service_manager_spec.rb +0 -220
  711. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  712. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  713. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  714. data/spec/integration/knife/chefignore_spec.rb +0 -301
  715. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  716. data/spec/integration/knife/client_create_spec.rb +0 -70
  717. data/spec/integration/knife/client_delete_spec.rb +0 -64
  718. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  719. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  720. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  721. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  722. data/spec/integration/knife/client_list_spec.rb +0 -49
  723. data/spec/integration/knife/client_show_spec.rb +0 -37
  724. data/spec/integration/knife/common_options_spec.rb +0 -174
  725. data/spec/integration/knife/config_list_spec.rb +0 -220
  726. data/spec/integration/knife/config_show_spec.rb +0 -192
  727. data/spec/integration/knife/config_use_spec.rb +0 -198
  728. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  729. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  730. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  731. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  732. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  733. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  734. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  735. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  736. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  737. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  738. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  739. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  740. data/spec/integration/knife/delete_spec.rb +0 -1018
  741. data/spec/integration/knife/deps_spec.rb +0 -703
  742. data/spec/integration/knife/diff_spec.rb +0 -605
  743. data/spec/integration/knife/download_spec.rb +0 -1336
  744. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  745. data/spec/integration/knife/environment_create_spec.rb +0 -41
  746. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  747. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  748. data/spec/integration/knife/environment_list_spec.rb +0 -42
  749. data/spec/integration/knife/environment_show_spec.rb +0 -77
  750. data/spec/integration/knife/list_spec.rb +0 -1060
  751. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  752. data/spec/integration/knife/node_create_spec.rb +0 -47
  753. data/spec/integration/knife/node_delete_spec.rb +0 -48
  754. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  755. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  756. data/spec/integration/knife/node_list_spec.rb +0 -45
  757. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  758. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  759. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  760. data/spec/integration/knife/node_show_spec.rb +0 -36
  761. data/spec/integration/knife/raw_spec.rb +0 -297
  762. data/spec/integration/knife/redirection_spec.rb +0 -64
  763. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  764. data/spec/integration/knife/role_create_spec.rb +0 -41
  765. data/spec/integration/knife/role_delete_spec.rb +0 -48
  766. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  767. data/spec/integration/knife/role_list_spec.rb +0 -45
  768. data/spec/integration/knife/role_show_spec.rb +0 -51
  769. data/spec/integration/knife/search_node_spec.rb +0 -40
  770. data/spec/integration/knife/serve_spec.rb +0 -92
  771. data/spec/integration/knife/show_spec.rb +0 -197
  772. data/spec/integration/knife/upload_spec.rb +0 -1616
  773. data/spec/support/shared/functional/win32_service.rb +0 -57
  774. data/spec/unit/application/knife_spec.rb +0 -241
  775. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  776. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  777. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  778. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  779. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  780. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  781. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  782. data/spec/unit/knife/client_create_spec.rb +0 -169
  783. data/spec/unit/knife/client_delete_spec.rb +0 -99
  784. data/spec/unit/knife/client_edit_spec.rb +0 -53
  785. data/spec/unit/knife/client_list_spec.rb +0 -34
  786. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  787. data/spec/unit/knife/client_show_spec.rb +0 -52
  788. data/spec/unit/knife/configure_client_spec.rb +0 -81
  789. data/spec/unit/knife/configure_spec.rb +0 -190
  790. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  791. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  792. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  793. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  794. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  795. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  796. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  797. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  798. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  799. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  800. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  801. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  802. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  803. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  804. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  805. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  806. data/spec/unit/knife/core/ui_spec.rb +0 -656
  807. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  808. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  809. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  810. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  811. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  812. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  813. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  814. data/spec/unit/knife/environment_create_spec.rb +0 -91
  815. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  816. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  817. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  818. data/spec/unit/knife/environment_list_spec.rb +0 -54
  819. data/spec/unit/knife/environment_show_spec.rb +0 -52
  820. data/spec/unit/knife/key_create_spec.rb +0 -223
  821. data/spec/unit/knife/key_delete_spec.rb +0 -133
  822. data/spec/unit/knife/key_edit_spec.rb +0 -264
  823. data/spec/unit/knife/key_helper.rb +0 -74
  824. data/spec/unit/knife/key_list_spec.rb +0 -216
  825. data/spec/unit/knife/key_show_spec.rb +0 -126
  826. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  827. data/spec/unit/knife/node_delete_spec.rb +0 -77
  828. data/spec/unit/knife/node_edit_spec.rb +0 -116
  829. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  830. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  831. data/spec/unit/knife/node_list_spec.rb +0 -62
  832. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  833. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  834. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  835. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  836. data/spec/unit/knife/node_show_spec.rb +0 -65
  837. data/spec/unit/knife/raw_spec.rb +0 -43
  838. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  839. data/spec/unit/knife/role_create_spec.rb +0 -80
  840. data/spec/unit/knife/role_delete_spec.rb +0 -67
  841. data/spec/unit/knife/role_edit_spec.rb +0 -77
  842. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  843. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  844. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  845. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  846. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  847. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  848. data/spec/unit/knife/role_list_spec.rb +0 -54
  849. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  850. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  851. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  852. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  853. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  854. data/spec/unit/knife/role_show_spec.rb +0 -59
  855. data/spec/unit/knife/ssh_spec.rb +0 -403
  856. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  857. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  858. data/spec/unit/knife/status_spec.rb +0 -112
  859. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  860. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  861. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  862. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  863. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  864. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  865. data/spec/unit/knife/tag_create_spec.rb +0 -23
  866. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  867. data/spec/unit/knife/tag_list_spec.rb +0 -23
  868. data/spec/unit/knife/user_create_spec.rb +0 -184
  869. data/spec/unit/knife/user_delete_spec.rb +0 -46
  870. data/spec/unit/knife/user_edit_spec.rb +0 -48
  871. data/spec/unit/knife/user_list_spec.rb +0 -36
  872. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  873. data/spec/unit/knife/user_show_spec.rb +0 -46
  874. data/spec/unit/knife_spec.rb +0 -634
  875. data/spec/unit/provider/group/suse_spec.rb +0 -90
  876. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  877. data/spec/unit/windows_service_spec.rb +0 -118
  878. /data/spec/functional/assets/chocolatey_feed/{test-A.1.0.nupkg → test-A.1.0.0.nupkg} +0 -0
  879. /data/spec/functional/assets/chocolatey_feed/{test-A.1.5.nupkg → test-A.1.5.0.nupkg} +0 -0
  880. /data/spec/functional/assets/chocolatey_feed/{test-A.2.0.nupkg → test-A.2.0.0.nupkg} +0 -0
  881. /data/spec/functional/assets/chocolatey_feed/{test-B.1.0.nupkg → test-B.1.0.0.nupkg} +0 -0
@@ -184,6 +184,22 @@ describe Chef::Resource::DpkgPackage, :requires_root, :debian_family_only, arch:
184
184
  dpkg_package.run_action(action)
185
185
  expect(dpkg_package).to be_updated_by_last_action
186
186
  end
187
+
188
+ it "should not allow downgrade a package" do
189
+ dpkg_package.allow_downgrade false
190
+ shell_out!("dpkg -i #{test1_1}")
191
+ set_dpkg_package_name test1_0
192
+ dpkg_package.run_action(action)
193
+ expect(dpkg_package).not_to be_updated_by_last_action
194
+ end
195
+
196
+ it "should allow downgrade a package" do
197
+ dpkg_package.allow_downgrade true
198
+ shell_out!("dpkg -i #{test1_1}")
199
+ set_dpkg_package_name test1_0
200
+ dpkg_package.run_action(action)
201
+ expect(dpkg_package).to be_updated_by_last_action
202
+ end
187
203
  end
188
204
 
189
205
  shared_examples_for "common behavior for remove or purge" do
@@ -85,7 +85,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
85
85
  let(:dsc_test_resource_base) do
86
86
  Chef::Resource::DscScript.new(dsc_test_resource_name, dsc_test_run_context)
87
87
  end
88
- let(:test_registry_key) { 'HKEY_LOCAL_MACHINE\Software\Chef\Spec\Functional\Resource\dsc_script_spec' }
88
+ let(:test_registry_key) { "HKEY_LOCAL_MACHINE\\Software\\Chef\\Spec\\Functional\\Resource\\dsc_script_spec" }
89
89
  let(:test_registry_value) { "Registration" }
90
90
  let(:test_registry_data1) { "LL927" }
91
91
  let(:test_registry_data2) { "LL928" }
@@ -263,7 +263,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
263
263
  dsc_test_resource.cwd(dsc_environment_fail_etc_directory)
264
264
  expect {
265
265
  dsc_test_resource.run_action(:run)
266
- }.to raise_error(ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed, /#{exception_message_signature}/)
266
+ }.to raise_error(Chef::PowerShell::CommandFailed, /#{exception_message_signature}/)
267
267
  end
268
268
  end
269
269
  end
@@ -345,7 +345,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
345
345
  let(:config_param_section) { config_params }
346
346
  let(:config_flags) { { "#{dsc_user_prefix_param_name}": (dsc_user_prefix).to_s, "#{dsc_user_suffix_param_name}": (dsc_user_suffix).to_s } }
347
347
  it "does not directly contain the user name" do
348
- configuration_script_content = ::File.open(dsc_test_resource.command, &:read)
348
+ configuration_script_content = ::File.read(dsc_test_resource.command)
349
349
  expect(configuration_script_content.include?(dsc_user)).to be(false)
350
350
  end
351
351
  it_behaves_like "a dsc_script with configuration data"
@@ -355,7 +355,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
355
355
  let(:dsc_user_code) { dsc_user_env_code }
356
356
 
357
357
  it "does not directly contain the user name" do
358
- configuration_script_content = ::File.open(dsc_test_resource.command, &:read)
358
+ configuration_script_content = ::File.read(dsc_test_resource.command)
359
359
  expect(configuration_script_content.include?(dsc_user)).to be(false)
360
360
  end
361
361
  it_behaves_like "a dsc_script with configuration data"
@@ -394,7 +394,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
394
394
  dsc_test_run_context.node.consume_external_attrs(OHAI_SYSTEM.data, {})
395
395
  end
396
396
 
397
- let(:configuration_data_path) { 'C:\\configurationdata.psd1' }
397
+ let(:configuration_data_path) { "C:\\configurationdata.psd1" }
398
398
 
399
399
  let(:self_signed_cert_path) do
400
400
  File.join(CHEF_SPEC_DATA, "dsc_lcm.pfx")
@@ -25,24 +25,33 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
25
25
 
26
26
  def group_should_exist(group)
27
27
  case ohai[:os]
28
- when "linux"
29
- expect { Etc.getgrnam(group) }.not_to raise_error
30
- expect(group).to eq(Etc.getgrnam(group).name)
28
+ when "freebsd"
29
+ expect(shell_out("pw groupshow -n #{group}").exitstatus).to eq(0)
31
30
  when "windows"
32
31
  expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.not_to raise_error
32
+ else
33
+ expect { Etc.getgrnam(group) }.not_to raise_error
34
+ expect(group).to eq(Etc.getgrnam(group).name)
33
35
  end
34
36
  end
35
37
 
36
38
  def user_exist_in_group?(user)
37
39
  case ohai[:platform_family]
38
- when "windows"
39
- user_sid = sid_string_from_user(user)
40
- user_sid.nil? ? false : Chef::Util::Windows::NetGroup.new(group_name).local_get_members.include?(user_sid)
40
+ when "freebsd"
41
+ cmd = Mixlib::ShellOut.new("getent group #{group_name} #{user}").run_command.stdout
42
+ if cmd.include? user
43
+ true
44
+ else
45
+ false
46
+ end
41
47
  when "mac_os_x"
42
48
  membership_info = shell_out("dscl . -read /Groups/#{group_name}").stdout
43
49
  members = membership_info.split(" ")
44
50
  members.shift # Get rid of GroupMembership: string
45
51
  members.include?(user)
52
+ when "windows"
53
+ user_sid = sid_string_from_user(user)
54
+ user_sid.nil? ? false : Chef::Util::Windows::NetGroup.new(group_name).local_get_members.include?(user_sid)
46
55
  else
47
56
  # TODO For some reason our temporary AIX 7.2 system does not correctly report group membership immediately after changes have been made.
48
57
  # Adding a 2 second delay for this platform is enough to get correct results.
@@ -54,10 +63,12 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
54
63
 
55
64
  def group_should_not_exist(group)
56
65
  case ohai[:os]
57
- when "linux"
58
- expect { Etc.getgrnam(group) }.to raise_error(ArgumentError, "can't find group for #{group}")
66
+ when "freebsd"
67
+ expect(shell_out("pw groupshow -n #{group}").exitstatus).to eq(65)
59
68
  when "windows"
60
69
  expect { Chef::Util::Windows::NetGroup.new(group).local_get_members }.to raise_error(ArgumentError, /The group name could not be found./)
70
+ else
71
+ expect { Etc.getgrnam(group) }.to raise_error(ArgumentError, "can't find group for #{group}")
61
72
  end
62
73
  end
63
74
 
@@ -76,7 +87,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
76
87
  end
77
88
 
78
89
  def windows_domain_user?(user_name)
79
- domain, user = user_name.split('\\')
90
+ domain, user = user_name.split("\\")
80
91
 
81
92
  if user && domain != "."
82
93
  computer_name = ENV["computername"]
@@ -158,7 +169,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
158
169
  end
159
170
 
160
171
  # dscl doesn't perform any error checking and will let you add users that don't exist.
161
- describe "when no users exist", :not_supported_on_macos do
172
+ describe "when no users exist", :not_supported_on_macos, :not_supported_on_freebsd_gte_12_3 do
162
173
  describe "when append is not set" do
163
174
  # excluded_members can only be used when append is set. It is ignored otherwise.
164
175
  let(:excluded_members) { [] }
@@ -199,13 +210,14 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
199
210
  end
200
211
  end
201
212
 
202
- describe "when append is not set" do
213
+ describe "when append is not set", :not_supported_on_freebsd_gte_12_3 do
203
214
  it "should set the group to to contain given members" do
204
215
  group_resource.run_action(tested_action)
205
216
 
206
217
  included_members.each do |member|
207
218
  expect(user_exist_in_group?(member)).to eq(true)
208
219
  end
220
+
209
221
  (spec_members - included_members).each do |member|
210
222
  expect(user_exist_in_group?(member)).to eq(false)
211
223
  end
@@ -223,14 +235,16 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
223
235
  included_members.each do |member|
224
236
  expect(user_exist_in_group?(member)).to eq(true)
225
237
  end
226
- (spec_members - included_members).each do |member|
227
- expect(user_exist_in_group?(member)).to eq(false)
238
+ unless freebsd?
239
+ (spec_members - included_members).each do |member|
240
+ expect(user_exist_in_group?(member)).to eq(false)
241
+ end
228
242
  end
229
243
  end
230
244
  end
231
245
  end
232
246
 
233
- describe "when append is set" do
247
+ describe "when append is set", :not_supported_on_freebsd_gte_12_3 do
234
248
  before(:each) do
235
249
  group_resource.append(true)
236
250
  end
@@ -241,6 +255,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
241
255
  included_members.each do |member|
242
256
  expect(user_exist_in_group?(member)).to eq(true)
243
257
  end
258
+
244
259
  excluded_members.each do |member|
245
260
  expect(user_exist_in_group?(member)).to eq(false)
246
261
  end
@@ -257,6 +272,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
257
272
  included_members.each do |member|
258
273
  expect(user_exist_in_group?(member)).to eq(true)
259
274
  end
275
+
260
276
  excluded_members.each do |member|
261
277
  expect(user_exist_in_group?(member)).to eq(false)
262
278
  end
@@ -336,7 +352,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
336
352
  expect(group_resource.append).to eq(false)
337
353
  end
338
354
 
339
- describe "group create action" do
355
+ describe "group create action", :not_supported_on_freebsd_gte_12_3, :not_supported_on_macos, :not_supported_on_aix do
340
356
  after(:each) do
341
357
  group_resource.run_action(:remove)
342
358
  group_should_not_exist(group_name)
@@ -393,7 +409,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
393
409
  end
394
410
 
395
411
  describe "group remove action" do
396
- describe "when there is a group" do
412
+ describe "when there is a group", :not_supported_on_freebsd_gte_12_3, :not_supported_on_macos, :not_supported_on_aix do
397
413
  before do
398
414
  group_resource.run_action(:create)
399
415
  group_should_exist(group_name)
@@ -425,7 +441,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
425
441
  end
426
442
  end
427
443
 
428
- describe "when there is a group" do
444
+ describe "when there is a group", :not_supported_on_macos, :not_supported_on_aix do
429
445
  it_behaves_like "correct group management"
430
446
  end
431
447
 
@@ -458,12 +474,16 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
458
474
  end
459
475
 
460
476
  it "does not raise an error on manage" do
461
- allow(Etc).to receive(:getpwnam).and_return(double("User"))
477
+ if freebsd?
478
+ allow(shell_out).to receive("pw user show").and_return(double("User"))
479
+ else
480
+ allow(Etc).to receive(:getpwnam).and_return(double("User"))
481
+ end
462
482
  expect { group_resource.run_action(:manage) }.not_to raise_error
463
483
  end
464
484
  end
465
485
 
466
- describe "when there is a group" do
486
+ describe "when there is a group", :not_supported_on_macos, :not_supported_on_aix do
467
487
  it_behaves_like "correct group management"
468
488
  end
469
489
 
@@ -84,7 +84,7 @@ describe Chef::Resource::Link do
84
84
  end
85
85
 
86
86
  def canonicalize(path)
87
- windows? ? path.tr("/", '\\') : path
87
+ windows? ? path.tr("/", "\\") : path
88
88
  end
89
89
 
90
90
  def symlink(a, b)
@@ -0,0 +1,139 @@
1
+ #
2
+ # Copyright:: Copyright (c) Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ require "spec_helper"
18
+
19
+ describe Chef::Resource::MacosUserDefaults, :macos_only do
20
+ def create_resource
21
+ node = Chef::Node.new
22
+ events = Chef::EventDispatch::Dispatcher.new
23
+ run_context = Chef::RunContext.new(node, {}, events)
24
+ resource = Chef::Resource::MacosUserDefaults.new("test", run_context)
25
+ resource
26
+ end
27
+
28
+ let(:resource) do
29
+ create_resource
30
+ end
31
+
32
+ context "has a default value" do
33
+ it ":macos_userdefaults for resource name" do
34
+ expect(resource.name).to eq("test")
35
+ end
36
+
37
+ it "NSGlobalDomain for the domain property" do
38
+ expect(resource.domain).to eq("NSGlobalDomain")
39
+ end
40
+
41
+ it ":all for the host property" do
42
+ expect(resource.host).to eq(:all)
43
+ end
44
+
45
+ it ":current for the user property" do
46
+ expect(resource.user).to eq(:current)
47
+ end
48
+
49
+ it ":write for resource action" do
50
+ expect(resource.action).to eq([:write])
51
+ end
52
+ end
53
+
54
+ it "supports :write, :delete actions" do
55
+ expect { resource.action :write }.not_to raise_error
56
+ expect { resource.action :delete }.not_to raise_error
57
+ end
58
+
59
+ context "can process expected data" do
60
+ it "set array values" do
61
+ resource.domain "/Library/Preferences/ManagedInstalls"
62
+ resource.key "TestArrayValues"
63
+ resource.value [ "/Library/Managed Installs/fake.log", "/Library/Managed Installs/also_fake.log"]
64
+ resource.run_action(:write)
65
+ expect(resource.get_preference resource).to eq([ "/Library/Managed Installs/fake.log", "/Library/Managed Installs/also_fake.log"])
66
+ end
67
+
68
+ it "set dictionary value" do
69
+ resource.domain "/Library/Preferences/ManagedInstalls"
70
+ resource.key "TestDictionaryValues"
71
+ resource.value "User": "/Library/Managed Installs/way_fake.log"
72
+ resource.run_action(:write)
73
+ expect(resource.get_preference resource).to eq("User" => "/Library/Managed Installs/way_fake.log")
74
+ end
75
+
76
+ it "set array of dictionaries" do
77
+ resource.domain "/Library/Preferences/ManagedInstalls"
78
+ resource.key "TestArrayWithDictionary"
79
+ resource.value [ { "User": "/Library/Managed Installs/way_fake.log" } ]
80
+ resource.run_action(:write)
81
+ expect(resource.get_preference resource).to eq([ { "User" => "/Library/Managed Installs/way_fake.log" } ])
82
+ end
83
+
84
+ it "set boolean for preference value" do
85
+ resource.domain "/Library/Preferences/ManagedInstalls"
86
+ resource.key "TestBooleanValue"
87
+ resource.value true
88
+ resource.run_action(:write)
89
+ expect(resource.get_preference resource).to eq(true)
90
+ end
91
+
92
+ it "sets value to global domain when domain is not passed" do
93
+ resource.key "TestKey"
94
+ resource.value 1
95
+ resource.run_action(:write)
96
+ expect(resource.get_preference resource).to eq(1)
97
+ end
98
+
99
+ it "short domain names" do
100
+ resource.domain "com.apple.dock"
101
+ resource.key "titlesize"
102
+ resource.value "20"
103
+ resource.run_action(:write)
104
+ expect(resource.get_preference resource).to eq("20")
105
+ end
106
+ end
107
+
108
+ it "we can delete a preference with full path" do
109
+ resource.domain "/Library/Preferences/ManagedInstalls"
110
+ resource.key "TestKey"
111
+ expect { resource.run_action(:delete) }. to_not raise_error
112
+ end
113
+
114
+ it "we can delete a preference with short name" do
115
+ resource.domain "com.apple.dock"
116
+ resource.key "titlesize"
117
+ expect { resource.run_action(:delete) }. to_not raise_error
118
+ end
119
+
120
+ context "resource can process FFI::Pointer type" do
121
+ it "for host property" do
122
+ resource.domain "/Library/Preferences/ManagedInstalls"
123
+ resource.key "TestDictionaryValues"
124
+ resource.value "User": "/Library/Managed Installs/way_fake.log"
125
+ resource.host :current
126
+ resource.run_action(:write)
127
+ expect { resource.run_action(:write) }. to_not raise_error
128
+ end
129
+
130
+ it "for user property" do
131
+ resource.domain "/Library/Preferences/ManagedInstalls"
132
+ resource.key "TestDictionaryValues"
133
+ resource.value "User": "/Library/Managed Installs/way_fake.log"
134
+ resource.user :current
135
+ resource.run_action(:write)
136
+ expect { resource.run_action(:write) }. to_not raise_error
137
+ end
138
+ end
139
+ end
@@ -22,7 +22,7 @@ describe Chef::Resource::PowershellPackageSource, :windows_gte_10 do
22
22
  include Chef::Mixin::PowershellExec
23
23
 
24
24
  let(:source_name) { "fake" }
25
- let(:url) { "https://www.nuget.org/api/v2" }
25
+ let(:source_location) { "https://www.nuget.org/api/v2" }
26
26
  let(:trusted) { true }
27
27
 
28
28
  let(:run_context) do
@@ -32,7 +32,7 @@ describe Chef::Resource::PowershellPackageSource, :windows_gte_10 do
32
32
  subject do
33
33
  new_resource = Chef::Resource::PowershellPackageSource.new("test powershell package source", run_context)
34
34
  new_resource.source_name source_name
35
- new_resource.url url
35
+ new_resource.source_location source_location
36
36
  new_resource.trusted trusted
37
37
  new_resource.provider_name provider_name
38
38
  new_resource
@@ -61,7 +61,7 @@ describe Chef::Resource::PowershellPackageSource, :windows_gte_10 do
61
61
  it "updates an existing package source if changed" do
62
62
  subject.run_action(:register)
63
63
  subject.trusted !trusted
64
- subject.run_action(:register)
64
+ subject.run_action(:set)
65
65
  expect(subject).to be_updated_by_last_action
66
66
  end
67
67
  end
@@ -73,9 +73,8 @@ describe Chef::Resource::PowershellPackageSource, :windows_gte_10 do
73
73
  expect(get_installed_package_source_name).to be_empty
74
74
  end
75
75
 
76
- it "does not unregister the package source if not already installed" do
77
- subject.run_action(:unregister)
78
- expect(subject).not_to be_updated_by_last_action
76
+ it "does not unregister the package source if not installed" do
77
+ expect { subject.run_action(:unregister) }.to_not raise_error
79
78
  end
80
79
  end
81
80
  end