chef 16.10.8-universal-mingw32 → 17.0.242-universal-mingw32

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 (662) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -10
  3. data/README.md +1 -1
  4. data/Rakefile +13 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +7 -9
  7. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.Wrapper.dll +0 -0
  8. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.dll +0 -0
  9. data/distro/ruby_bin_folder/AMD64/Newtonsoft.Json.dll +0 -0
  10. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  11. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  12. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  13. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
  14. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
  15. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
  16. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
  17. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
  18. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
  19. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
  20. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
  21. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
  22. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
  23. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
  24. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
  25. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
  26. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
  27. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
  28. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
  29. data/distro/ruby_bin_folder/x86/Chef.PowerShell.dll +0 -0
  30. data/distro/ruby_bin_folder/x86/Chef.Powershell.Wrapper.dll +0 -0
  31. data/distro/ruby_bin_folder/x86/Newtonsoft.Json.dll +0 -0
  32. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  33. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  34. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  35. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +153 -149
  36. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Diagnostics.dll +0 -0
  37. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Management.dll +0 -0
  38. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Commands.Utility.dll +0 -0
  39. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.ConsoleHost.dll +0 -0
  40. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.CoreCLR.Eventing.dll +0 -0
  41. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.MarkdownRender.dll +0 -0
  42. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.PowerShell.Security.dll +0 -0
  43. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Management.dll +0 -0
  44. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Microsoft.WSMan.Runtime.dll +0 -0
  45. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Newtonsoft.Json.dll +0 -0
  46. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.Messages.dll +0 -0
  47. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.EventLog.dll +0 -0
  48. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Common.dll +0 -0
  49. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Management.Automation.dll +0 -0
  50. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Pkcs.dll +0 -0
  51. data/lib/chef/application/base.rb +1 -1
  52. data/lib/chef/applications.rb +0 -1
  53. data/lib/chef/chef_fs/command_line.rb +5 -2
  54. data/lib/chef/chef_fs/file_system.rb +9 -10
  55. data/lib/chef/client.rb +2 -2
  56. data/lib/chef/compliance/default_attributes.rb +10 -5
  57. data/lib/chef/compliance/fetcher/automate.rb +15 -11
  58. data/lib/chef/compliance/reporter/automate.rb +17 -7
  59. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  60. data/lib/chef/compliance/reporter/cli.rb +77 -0
  61. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  62. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  63. data/lib/chef/compliance/runner.rb +71 -28
  64. data/lib/chef/cookbook/synchronizer.rb +3 -5
  65. data/lib/chef/cookbook_loader.rb +2 -4
  66. data/lib/chef/cookbook_uploader.rb +0 -1
  67. data/lib/chef/data_bag_item.rb +11 -2
  68. data/lib/chef/delayed_evaluator.rb +4 -0
  69. data/lib/chef/deprecated.rb +4 -0
  70. data/lib/chef/dsl/chef_vault.rb +6 -6
  71. data/lib/chef/dsl/reboot_pending.rb +1 -2
  72. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  73. data/lib/chef/group.rb +75 -0
  74. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  75. data/lib/chef/node/attribute.rb +6 -4
  76. data/lib/chef/node/immutable_collections.rb +13 -0
  77. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  78. data/lib/chef/org.rb +3 -2
  79. data/lib/chef/property.rb +18 -0
  80. data/lib/chef/provider.rb +1 -1
  81. data/lib/chef/provider/cron.rb +1 -1
  82. data/lib/chef/provider/execute.rb +2 -1
  83. data/lib/chef/provider/file.rb +2 -2
  84. data/lib/chef/provider/git.rb +5 -7
  85. data/lib/chef/provider/group/groupadd.rb +3 -3
  86. data/lib/chef/provider/group/groupmod.rb +3 -3
  87. data/lib/chef/provider/group/pw.rb +3 -3
  88. data/lib/chef/provider/ifconfig.rb +2 -2
  89. data/lib/chef/provider/link.rb +2 -2
  90. data/lib/chef/provider/mount.rb +12 -7
  91. data/lib/chef/provider/mount/aix.rb +3 -3
  92. data/lib/chef/provider/mount/mount.rb +6 -6
  93. data/lib/chef/provider/mount/windows.rb +1 -1
  94. data/lib/chef/provider/package.rb +17 -21
  95. data/lib/chef/provider/package/apt.rb +27 -1
  96. data/lib/chef/provider/package/deb.rb +3 -3
  97. data/lib/chef/provider/package/dnf/dnf_helper.py +5 -1
  98. data/lib/chef/provider/package/portage.rb +2 -2
  99. data/lib/chef/provider/package/rubygems.rb +11 -17
  100. data/lib/chef/provider/package/windows.rb +2 -4
  101. data/lib/chef/provider/package/yum/yum_helper.py +5 -1
  102. data/lib/chef/provider/route.rb +2 -2
  103. data/lib/chef/provider/service.rb +6 -6
  104. data/lib/chef/provider/service/aixinit.rb +1 -1
  105. data/lib/chef/provider/service/debian.rb +1 -1
  106. data/lib/chef/provider/service/freebsd.rb +15 -21
  107. data/lib/chef/provider/service/macosx.rb +7 -7
  108. data/lib/chef/provider/service/systemd.rb +43 -14
  109. data/lib/chef/provider/service/upstart.rb +2 -13
  110. data/lib/chef/provider/service/windows.rb +12 -12
  111. data/lib/chef/provider/subversion.rb +10 -12
  112. data/lib/chef/provider/systemd_unit.rb +36 -10
  113. data/lib/chef/provider/template/content.rb +2 -6
  114. data/lib/chef/provider/user.rb +2 -2
  115. data/lib/chef/provider/user/dscl.rb +1 -1
  116. data/lib/chef/provider/user/mac.rb +17 -20
  117. data/lib/chef/provider/user/pw.rb +1 -1
  118. data/lib/chef/provider/user/windows.rb +1 -1
  119. data/lib/chef/provider/zypper_repository.rb +2 -2
  120. data/lib/chef/providers.rb +0 -1
  121. data/lib/chef/resource/alternatives.rb +6 -6
  122. data/lib/chef/resource/apt_package.rb +1 -1
  123. data/lib/chef/resource/apt_preference.rb +2 -2
  124. data/lib/chef/resource/apt_repository.rb +6 -6
  125. data/lib/chef/resource/apt_update.rb +3 -2
  126. data/lib/chef/resource/archive_file.rb +2 -3
  127. data/lib/chef/resource/breakpoint.rb +1 -1
  128. data/lib/chef/resource/build_essential.rb +2 -6
  129. data/lib/chef/resource/chef_client_config.rb +2 -2
  130. data/lib/chef/resource/chef_client_cron.rb +5 -5
  131. data/lib/chef/resource/chef_client_launchd.rb +4 -4
  132. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  133. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  134. data/lib/chef/resource/chef_handler.rb +3 -7
  135. data/lib/chef/resource/chef_sleep.rb +1 -1
  136. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  137. data/lib/chef/resource/chocolatey_config.rb +2 -6
  138. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  139. data/lib/chef/resource/chocolatey_source.rb +4 -10
  140. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  141. data/lib/chef/resource/cron_access.rb +2 -4
  142. data/lib/chef/resource/dmg_package.rb +6 -10
  143. data/lib/chef/resource/dpkg_package.rb +1 -1
  144. data/lib/chef/resource/execute.rb +6 -1
  145. data/lib/chef/resource/file.rb +1 -1
  146. data/lib/chef/resource/group.rb +2 -2
  147. data/lib/chef/resource/homebrew_cask.rb +2 -6
  148. data/lib/chef/resource/homebrew_tap.rb +2 -6
  149. data/lib/chef/resource/hostname.rb +21 -17
  150. data/lib/chef/resource/http_request.rb +1 -1
  151. data/lib/chef/resource/kernel_module.rb +6 -17
  152. data/lib/chef/resource/locale.rb +2 -3
  153. data/lib/chef/resource/lwrp_base.rb +4 -0
  154. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  155. data/lib/chef/resource/mdadm.rb +53 -7
  156. data/lib/chef/resource/mount.rb +2 -1
  157. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  158. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  159. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  160. data/lib/chef/resource/plist.rb +7 -7
  161. data/lib/chef/resource/powershell_script.rb +1 -1
  162. data/lib/chef/resource/remote_file.rb +1 -1
  163. data/lib/chef/resource/rhsm_errata.rb +16 -1
  164. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  165. data/lib/chef/resource/rhsm_register.rb +12 -6
  166. data/lib/chef/resource/rhsm_repo.rb +2 -6
  167. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  168. data/lib/chef/resource/scm/git.rb +1 -1
  169. data/lib/chef/resource/sudo.rb +6 -6
  170. data/lib/chef/resource/sysctl.rb +2 -6
  171. data/lib/chef/resource/systemd_unit.rb +2 -2
  172. data/lib/chef/resource/template.rb +1 -1
  173. data/lib/chef/resource/timezone.rb +1 -3
  174. data/lib/chef/resource/user/mac_user.rb +1 -1
  175. data/lib/chef/resource/user_ulimit.rb +2 -2
  176. data/lib/chef/resource/windows_ad_join.rb +2 -6
  177. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  178. data/lib/chef/resource/windows_auto_run.rb +2 -5
  179. data/lib/chef/resource/windows_certificate.rb +207 -73
  180. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  181. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  182. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  183. data/lib/chef/resource/windows_dns_record.rb +2 -6
  184. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  185. data/lib/chef/resource/windows_env.rb +5 -4
  186. data/lib/chef/resource/windows_feature.rb +3 -9
  187. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  188. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  189. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  190. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  191. data/lib/chef/resource/windows_font.rb +2 -4
  192. data/lib/chef/resource/windows_pagefile.rb +2 -6
  193. data/lib/chef/resource/windows_path.rb +2 -2
  194. data/lib/chef/resource/windows_printer.rb +4 -4
  195. data/lib/chef/resource/windows_printer_port.rb +6 -6
  196. data/lib/chef/resource/windows_security_policy.rb +53 -40
  197. data/lib/chef/resource/windows_share.rb +14 -21
  198. data/lib/chef/resource/windows_shortcut.rb +4 -6
  199. data/lib/chef/resource/windows_task.rb +17 -5
  200. data/lib/chef/resource/windows_uac.rb +1 -1
  201. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  202. data/lib/chef/resource/windows_workgroup.rb +1 -2
  203. data/lib/chef/resources.rb +0 -1
  204. data/lib/chef/user.rb +0 -1
  205. data/lib/chef/user_v1.rb +3 -4
  206. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  207. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  208. data/lib/chef/version.rb +1 -1
  209. data/lib/chef/win32/registry.rb +4 -2
  210. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  211. data/spec/data/lwrp/resources/bar.rb +2 -0
  212. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  213. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  214. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  215. data/spec/data/lwrp/resources/foo.rb +2 -0
  216. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  217. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  218. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  219. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  220. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  221. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  222. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  223. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  224. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  225. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  226. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  227. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  228. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  229. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  230. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  231. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  232. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  233. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  234. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  235. data/spec/functional/resource/apt_package_spec.rb +1 -1
  236. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  237. data/spec/functional/resource/cron_spec.rb +1 -1
  238. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  239. data/spec/functional/resource/registry_spec.rb +8 -8
  240. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  241. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  242. data/spec/functional/version_spec.rb +1 -1
  243. data/spec/functional/win32/registry_spec.rb +1 -1
  244. data/spec/integration/client/client_spec.rb +5 -2
  245. data/spec/integration/client/exit_code_spec.rb +1 -1
  246. data/spec/integration/client/ipv6_spec.rb +1 -1
  247. data/spec/integration/compliance/compliance_spec.rb +3 -2
  248. data/spec/integration/ohai/ohai_spec.rb +7 -6
  249. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  250. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  251. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  252. data/spec/integration/recipes/notifies_spec.rb +15 -1
  253. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  254. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  255. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  256. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  257. data/spec/spec_helper.rb +11 -13
  258. data/spec/support/chef_helpers.rb +0 -16
  259. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  260. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  261. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  262. data/spec/support/matchers/leak.rb +7 -9
  263. data/spec/support/platform_helpers.rb +5 -8
  264. data/spec/support/shared/integration/integration_helper.rb +0 -1
  265. data/spec/support/shared/unit/provider/file.rb +14 -0
  266. data/spec/support/shared/unit/script_resource.rb +2 -2
  267. data/spec/unit/application/solo_spec.rb +2 -2
  268. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  269. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  270. data/spec/unit/compliance/fetcher/automate_spec.rb +5 -13
  271. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  272. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  273. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  274. data/spec/unit/compliance/runner_spec.rb +84 -9
  275. data/spec/unit/data_bag_item_spec.rb +1 -6
  276. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  277. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  278. data/spec/unit/lwrp_spec.rb +1 -1
  279. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  280. data/spec/unit/node/attribute_spec.rb +1 -1
  281. data/spec/unit/node_spec.rb +78 -0
  282. data/spec/unit/org_group_spec.rb +45 -0
  283. data/spec/unit/property_spec.rb +23 -22
  284. data/spec/unit/provider/cron_spec.rb +1 -1
  285. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  286. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  287. data/spec/unit/provider/group/pw_spec.rb +2 -2
  288. data/spec/unit/provider/group_spec.rb +1 -1
  289. data/spec/unit/provider/mount/mount_spec.rb +52 -0
  290. data/spec/unit/provider/package/apt_spec.rb +84 -18
  291. data/spec/unit/provider/package/deb_spec.rb +3 -3
  292. data/spec/unit/provider/package/rubygems_spec.rb +21 -33
  293. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  294. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  295. data/spec/unit/provider/service/macosx_spec.rb +5 -5
  296. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  297. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  298. data/spec/unit/provider/service/windows_spec.rb +2 -2
  299. data/spec/unit/provider/subversion_spec.rb +2 -2
  300. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  301. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  302. data/spec/unit/provider_spec.rb +0 -8
  303. data/spec/unit/resource/chef_client_cron_spec.rb +8 -8
  304. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  305. data/spec/unit/resource/windows_task_spec.rb +1 -1
  306. data/spec/unit/user_spec.rb +1 -1
  307. data/spec/unit/user_v1_spec.rb +6 -4
  308. data/tasks/rspec.rb +16 -8
  309. metadata +25 -386
  310. data/bin/knife +0 -24
  311. data/lib/chef/application/knife.rb +0 -234
  312. data/lib/chef/application/windows_service.rb +0 -338
  313. data/lib/chef/application/windows_service_manager.rb +0 -205
  314. data/lib/chef/chef_fs/knife.rb +0 -160
  315. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  316. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  317. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  318. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  319. data/lib/chef/knife.rb +0 -665
  320. data/lib/chef/knife/acl_add.rb +0 -57
  321. data/lib/chef/knife/acl_base.rb +0 -183
  322. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  323. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  324. data/lib/chef/knife/acl_remove.rb +0 -62
  325. data/lib/chef/knife/acl_show.rb +0 -56
  326. data/lib/chef/knife/bootstrap.rb +0 -1192
  327. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  328. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  329. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  330. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  331. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  332. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  333. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  334. data/lib/chef/knife/client_create.rb +0 -101
  335. data/lib/chef/knife/client_delete.rb +0 -62
  336. data/lib/chef/knife/client_edit.rb +0 -52
  337. data/lib/chef/knife/client_key_create.rb +0 -73
  338. data/lib/chef/knife/client_key_delete.rb +0 -80
  339. data/lib/chef/knife/client_key_edit.rb +0 -83
  340. data/lib/chef/knife/client_key_list.rb +0 -73
  341. data/lib/chef/knife/client_key_show.rb +0 -80
  342. data/lib/chef/knife/client_list.rb +0 -41
  343. data/lib/chef/knife/client_reregister.rb +0 -58
  344. data/lib/chef/knife/client_show.rb +0 -48
  345. data/lib/chef/knife/config_get.rb +0 -39
  346. data/lib/chef/knife/config_get_profile.rb +0 -37
  347. data/lib/chef/knife/config_list.rb +0 -139
  348. data/lib/chef/knife/config_list_profiles.rb +0 -37
  349. data/lib/chef/knife/config_show.rb +0 -127
  350. data/lib/chef/knife/config_use.rb +0 -61
  351. data/lib/chef/knife/config_use_profile.rb +0 -47
  352. data/lib/chef/knife/configure.rb +0 -150
  353. data/lib/chef/knife/configure_client.rb +0 -48
  354. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  355. data/lib/chef/knife/cookbook_delete.rb +0 -151
  356. data/lib/chef/knife/cookbook_download.rb +0 -142
  357. data/lib/chef/knife/cookbook_list.rb +0 -47
  358. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  359. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  360. data/lib/chef/knife/cookbook_show.rb +0 -98
  361. data/lib/chef/knife/cookbook_upload.rb +0 -292
  362. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  363. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  364. data/lib/chef/knife/core/formatting_options.rb +0 -49
  365. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  366. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  367. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  368. data/lib/chef/knife/core/node_editor.rb +0 -130
  369. data/lib/chef/knife/core/node_presenter.rb +0 -133
  370. data/lib/chef/knife/core/object_loader.rb +0 -115
  371. data/lib/chef/knife/core/status_presenter.rb +0 -147
  372. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  373. data/lib/chef/knife/core/text_formatter.rb +0 -85
  374. data/lib/chef/knife/core/ui.rb +0 -338
  375. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
  376. data/lib/chef/knife/data_bag_create.rb +0 -81
  377. data/lib/chef/knife/data_bag_delete.rb +0 -49
  378. data/lib/chef/knife/data_bag_edit.rb +0 -74
  379. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  380. data/lib/chef/knife/data_bag_list.rb +0 -42
  381. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  382. data/lib/chef/knife/data_bag_show.rb +0 -69
  383. data/lib/chef/knife/delete.rb +0 -125
  384. data/lib/chef/knife/deps.rb +0 -156
  385. data/lib/chef/knife/diff.rb +0 -83
  386. data/lib/chef/knife/download.rb +0 -84
  387. data/lib/chef/knife/edit.rb +0 -88
  388. data/lib/chef/knife/environment_compare.rb +0 -128
  389. data/lib/chef/knife/environment_create.rb +0 -52
  390. data/lib/chef/knife/environment_delete.rb +0 -44
  391. data/lib/chef/knife/environment_edit.rb +0 -44
  392. data/lib/chef/knife/environment_from_file.rb +0 -84
  393. data/lib/chef/knife/environment_list.rb +0 -41
  394. data/lib/chef/knife/environment_show.rb +0 -47
  395. data/lib/chef/knife/exec.rb +0 -99
  396. data/lib/chef/knife/group_add.rb +0 -55
  397. data/lib/chef/knife/group_create.rb +0 -49
  398. data/lib/chef/knife/group_destroy.rb +0 -53
  399. data/lib/chef/knife/group_list.rb +0 -43
  400. data/lib/chef/knife/group_remove.rb +0 -56
  401. data/lib/chef/knife/group_show.rb +0 -49
  402. data/lib/chef/knife/key_create.rb +0 -112
  403. data/lib/chef/knife/key_create_base.rb +0 -50
  404. data/lib/chef/knife/key_delete.rb +0 -55
  405. data/lib/chef/knife/key_edit.rb +0 -118
  406. data/lib/chef/knife/key_edit_base.rb +0 -55
  407. data/lib/chef/knife/key_list.rb +0 -90
  408. data/lib/chef/knife/key_list_base.rb +0 -45
  409. data/lib/chef/knife/key_show.rb +0 -53
  410. data/lib/chef/knife/list.rb +0 -177
  411. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  412. data/lib/chef/knife/node_create.rb +0 -47
  413. data/lib/chef/knife/node_delete.rb +0 -46
  414. data/lib/chef/knife/node_edit.rb +0 -70
  415. data/lib/chef/knife/node_environment_set.rb +0 -53
  416. data/lib/chef/knife/node_from_file.rb +0 -51
  417. data/lib/chef/knife/node_list.rb +0 -44
  418. data/lib/chef/knife/node_policy_set.rb +0 -79
  419. data/lib/chef/knife/node_run_list_add.rb +0 -104
  420. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  421. data/lib/chef/knife/node_run_list_set.rb +0 -66
  422. data/lib/chef/knife/node_show.rb +0 -63
  423. data/lib/chef/knife/null.rb +0 -12
  424. data/lib/chef/knife/raw.rb +0 -123
  425. data/lib/chef/knife/recipe_list.rb +0 -32
  426. data/lib/chef/knife/rehash.rb +0 -50
  427. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  428. data/lib/chef/knife/role_create.rb +0 -53
  429. data/lib/chef/knife/role_delete.rb +0 -46
  430. data/lib/chef/knife/role_edit.rb +0 -45
  431. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  432. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  433. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  434. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  435. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  436. data/lib/chef/knife/role_from_file.rb +0 -51
  437. data/lib/chef/knife/role_list.rb +0 -42
  438. data/lib/chef/knife/role_run_list_add.rb +0 -87
  439. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  440. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  441. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  442. data/lib/chef/knife/role_run_list_set.rb +0 -69
  443. data/lib/chef/knife/role_show.rb +0 -48
  444. data/lib/chef/knife/search.rb +0 -194
  445. data/lib/chef/knife/serve.rb +0 -65
  446. data/lib/chef/knife/show.rb +0 -72
  447. data/lib/chef/knife/ssh.rb +0 -645
  448. data/lib/chef/knife/ssl_check.rb +0 -284
  449. data/lib/chef/knife/ssl_fetch.rb +0 -161
  450. data/lib/chef/knife/status.rb +0 -95
  451. data/lib/chef/knife/supermarket_download.rb +0 -121
  452. data/lib/chef/knife/supermarket_install.rb +0 -192
  453. data/lib/chef/knife/supermarket_list.rb +0 -76
  454. data/lib/chef/knife/supermarket_search.rb +0 -53
  455. data/lib/chef/knife/supermarket_share.rb +0 -166
  456. data/lib/chef/knife/supermarket_show.rb +0 -66
  457. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  458. data/lib/chef/knife/tag_create.rb +0 -52
  459. data/lib/chef/knife/tag_delete.rb +0 -60
  460. data/lib/chef/knife/tag_list.rb +0 -47
  461. data/lib/chef/knife/upload.rb +0 -86
  462. data/lib/chef/knife/user_create.rb +0 -107
  463. data/lib/chef/knife/user_delete.rb +0 -44
  464. data/lib/chef/knife/user_dissociate.rb +0 -42
  465. data/lib/chef/knife/user_edit.rb +0 -52
  466. data/lib/chef/knife/user_invite_add.rb +0 -43
  467. data/lib/chef/knife/user_invite_list.rb +0 -34
  468. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  469. data/lib/chef/knife/user_key_create.rb +0 -73
  470. data/lib/chef/knife/user_key_delete.rb +0 -80
  471. data/lib/chef/knife/user_key_edit.rb +0 -83
  472. data/lib/chef/knife/user_key_list.rb +0 -73
  473. data/lib/chef/knife/user_key_show.rb +0 -80
  474. data/lib/chef/knife/user_list.rb +0 -42
  475. data/lib/chef/knife/user_reregister.rb +0 -59
  476. data/lib/chef/knife/user_show.rb +0 -48
  477. data/lib/chef/knife/xargs.rb +0 -282
  478. data/lib/chef/knife/yaml_convert.rb +0 -91
  479. data/lib/chef/resource/user/dscl_user.rb +0 -35
  480. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  481. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  482. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  483. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  484. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  485. data/spec/functional/knife/configure_spec.rb +0 -33
  486. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  487. data/spec/functional/knife/exec_spec.rb +0 -55
  488. data/spec/functional/knife/rehash_spec.rb +0 -39
  489. data/spec/functional/knife/smoke_test.rb +0 -42
  490. data/spec/functional/knife/ssh_spec.rb +0 -352
  491. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  492. data/spec/functional/resource/windows_service_spec.rb +0 -105
  493. data/spec/functional/win32/service_manager_spec.rb +0 -220
  494. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  495. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  496. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  497. data/spec/integration/knife/chefignore_spec.rb +0 -301
  498. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  499. data/spec/integration/knife/client_create_spec.rb +0 -70
  500. data/spec/integration/knife/client_delete_spec.rb +0 -64
  501. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  502. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  503. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  504. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  505. data/spec/integration/knife/client_list_spec.rb +0 -49
  506. data/spec/integration/knife/client_show_spec.rb +0 -37
  507. data/spec/integration/knife/common_options_spec.rb +0 -174
  508. data/spec/integration/knife/config_list_spec.rb +0 -220
  509. data/spec/integration/knife/config_show_spec.rb +0 -192
  510. data/spec/integration/knife/config_use_spec.rb +0 -198
  511. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  512. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  513. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  514. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  515. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  516. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  517. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  518. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  519. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  520. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  521. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  522. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  523. data/spec/integration/knife/delete_spec.rb +0 -1018
  524. data/spec/integration/knife/deps_spec.rb +0 -703
  525. data/spec/integration/knife/diff_spec.rb +0 -605
  526. data/spec/integration/knife/download_spec.rb +0 -1336
  527. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  528. data/spec/integration/knife/environment_create_spec.rb +0 -41
  529. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  530. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  531. data/spec/integration/knife/environment_list_spec.rb +0 -42
  532. data/spec/integration/knife/environment_show_spec.rb +0 -77
  533. data/spec/integration/knife/list_spec.rb +0 -1060
  534. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  535. data/spec/integration/knife/node_create_spec.rb +0 -47
  536. data/spec/integration/knife/node_delete_spec.rb +0 -48
  537. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  538. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  539. data/spec/integration/knife/node_list_spec.rb +0 -45
  540. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  541. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  542. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  543. data/spec/integration/knife/node_show_spec.rb +0 -36
  544. data/spec/integration/knife/raw_spec.rb +0 -297
  545. data/spec/integration/knife/redirection_spec.rb +0 -64
  546. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  547. data/spec/integration/knife/role_create_spec.rb +0 -41
  548. data/spec/integration/knife/role_delete_spec.rb +0 -48
  549. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  550. data/spec/integration/knife/role_list_spec.rb +0 -45
  551. data/spec/integration/knife/role_show_spec.rb +0 -51
  552. data/spec/integration/knife/search_node_spec.rb +0 -40
  553. data/spec/integration/knife/serve_spec.rb +0 -92
  554. data/spec/integration/knife/show_spec.rb +0 -197
  555. data/spec/integration/knife/upload_spec.rb +0 -1617
  556. data/spec/support/shared/functional/knife.rb +0 -37
  557. data/spec/support/shared/functional/win32_service.rb +0 -57
  558. data/spec/support/shared/integration/knife_support.rb +0 -192
  559. data/spec/support/shared/unit/knife_shared.rb +0 -39
  560. data/spec/unit/application/knife_spec.rb +0 -241
  561. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  562. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  563. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  564. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  565. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  566. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  567. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  568. data/spec/unit/knife/client_create_spec.rb +0 -169
  569. data/spec/unit/knife/client_delete_spec.rb +0 -99
  570. data/spec/unit/knife/client_edit_spec.rb +0 -53
  571. data/spec/unit/knife/client_list_spec.rb +0 -34
  572. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  573. data/spec/unit/knife/client_show_spec.rb +0 -52
  574. data/spec/unit/knife/configure_client_spec.rb +0 -81
  575. data/spec/unit/knife/configure_spec.rb +0 -190
  576. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  577. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  578. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  579. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  580. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  581. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  582. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  583. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  584. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  585. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  586. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  587. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  588. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  589. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  590. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  591. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  592. data/spec/unit/knife/core/ui_spec.rb +0 -656
  593. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  594. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  595. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  596. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  597. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  598. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  599. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  600. data/spec/unit/knife/environment_create_spec.rb +0 -91
  601. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  602. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  603. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  604. data/spec/unit/knife/environment_list_spec.rb +0 -54
  605. data/spec/unit/knife/environment_show_spec.rb +0 -52
  606. data/spec/unit/knife/key_create_spec.rb +0 -223
  607. data/spec/unit/knife/key_delete_spec.rb +0 -133
  608. data/spec/unit/knife/key_edit_spec.rb +0 -264
  609. data/spec/unit/knife/key_helper.rb +0 -74
  610. data/spec/unit/knife/key_list_spec.rb +0 -216
  611. data/spec/unit/knife/key_show_spec.rb +0 -126
  612. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  613. data/spec/unit/knife/node_delete_spec.rb +0 -77
  614. data/spec/unit/knife/node_edit_spec.rb +0 -116
  615. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  616. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  617. data/spec/unit/knife/node_list_spec.rb +0 -62
  618. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  619. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  620. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  621. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  622. data/spec/unit/knife/node_show_spec.rb +0 -65
  623. data/spec/unit/knife/raw_spec.rb +0 -43
  624. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  625. data/spec/unit/knife/role_create_spec.rb +0 -80
  626. data/spec/unit/knife/role_delete_spec.rb +0 -67
  627. data/spec/unit/knife/role_edit_spec.rb +0 -77
  628. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  629. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  630. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  631. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  632. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  633. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  634. data/spec/unit/knife/role_list_spec.rb +0 -54
  635. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  636. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  637. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  638. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  639. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  640. data/spec/unit/knife/role_show_spec.rb +0 -59
  641. data/spec/unit/knife/ssh_spec.rb +0 -403
  642. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  643. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  644. data/spec/unit/knife/status_spec.rb +0 -112
  645. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  646. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  647. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  648. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  649. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  650. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  651. data/spec/unit/knife/tag_create_spec.rb +0 -23
  652. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  653. data/spec/unit/knife/tag_list_spec.rb +0 -23
  654. data/spec/unit/knife/user_create_spec.rb +0 -184
  655. data/spec/unit/knife/user_delete_spec.rb +0 -46
  656. data/spec/unit/knife/user_edit_spec.rb +0 -48
  657. data/spec/unit/knife/user_list_spec.rb +0 -36
  658. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  659. data/spec/unit/knife/user_show_spec.rb +0 -46
  660. data/spec/unit/knife_spec.rb +0 -634
  661. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  662. data/spec/unit/windows_service_spec.rb +0 -118
@@ -0,0 +1,45 @@
1
+
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ #
14
+
15
+ require "spec_helper"
16
+ require "chef/org"
17
+
18
+ describe Chef::Org do
19
+ let(:org) { Chef::Org.new("myorg") }
20
+
21
+ describe "API Interactions" do
22
+ before(:each) do
23
+ Chef::Config[:chef_server_root] = "http://www.example.com"
24
+ @rest = double("rest")
25
+ allow(Chef::ServerAPI).to receive(:new).and_return(@rest)
26
+ end
27
+
28
+ describe "group" do
29
+ it "should load group data when it's not loaded." do
30
+ expect(@rest).to receive(:get_rest).with("organizations/myorg/groups/admins").and_return({})
31
+ org.group("admins")
32
+ end
33
+
34
+ it "should not load group data a second time when it's already loaded." do
35
+ expect(@rest).to receive(:get_rest)
36
+ .with("organizations/myorg/groups/admins")
37
+ .and_return({ anything: "goes" })
38
+ .exactly(:once)
39
+ admin1 = org.group("admins")
40
+ admin2 = org.group("admins")
41
+ expect(admin1).to eq admin2
42
+ end
43
+ end
44
+ end
45
+ end
@@ -541,13 +541,16 @@ describe "Chef::Resource.property" do
541
541
  it "when x is not set, it returns ''" do
542
542
  expect(resource.x).to eq ""
543
543
  end
544
- it "x is immutable" do
545
- expect { resource.x << "foo" }.to raise_error(FrozenError, /can't modify frozen String/)
544
+ it "setting x does not mutate the default" do
545
+ expect(resource.x).to eq ""
546
+ resource.x << "foo"
547
+ expect(resource.x).to eq "foo"
548
+ expect(resource_class.new("other").x).to eq ""
546
549
  end
547
550
  end
548
551
 
549
552
  with_property ":x, default: lazy { '' }" do
550
- it "x is immutable" do
553
+ it "setting x does not mutate the default" do
551
554
  expect(resource.x).to eq ""
552
555
  resource.x << "foo"
553
556
  expect(resource.x).to eq "foo"
@@ -561,16 +564,14 @@ describe "Chef::Resource.property" do
561
564
  it "when x is not set, it returns {}" do
562
565
  expect(resource.x).to eq({})
563
566
  end
564
- it "x is immutable" do
565
- expect { resource.x["foo"] = "bar" }.to raise_error(FrozenError, /can't modify frozen Hash/)
566
- end
567
- it "The same exact value is returned multiple times in a row" do
568
- value = resource.x
569
- expect(value).to eq({})
570
- expect(resource.x.object_id).to eq(value.object_id)
567
+ it "setting x does not mutate the default" do
568
+ expect(resource.x).to eq({})
569
+ resource.x["plants"] = "zombies"
570
+ expect(resource.x).to eq({ "plants" => "zombies" })
571
+ expect(resource_class.new("other").x).to eq({})
571
572
  end
572
- it "Multiple instances of x receive the exact same value" do
573
- expect(resource.x.object_id).to eq(resource_class.new("blah2").x.object_id)
573
+ it "Multiple instances of x receive different values" do
574
+ expect(resource.x.object_id).not_to eq(resource_class.new("blah2").x.object_id)
574
575
  end
575
576
  end
576
577
 
@@ -594,14 +595,14 @@ describe "Chef::Resource.property" do
594
595
  it "when x is not set, it returns [{foo: 'bar'}]" do
595
596
  expect(resource.x).to eq([{ foo: "bar" }])
596
597
  end
597
- it "x is immutable" do
598
- expect { resource.x << :other }.to raise_error(FrozenError, /can't modify frozen Array/)
599
- end
600
- it "x.first is immutable" do
601
- expect { resource.x.first[:foo] = "other" }.to raise_error(FrozenError, /can't modify frozen Hash/)
598
+ it "setting x does not mutate the default" do
599
+ expect(resource.x).to eq([{ foo: "bar" }])
600
+ resource.x[0][:foo] << "baz"
601
+ expect(resource.x).to eq([{ foo: "barbaz" }])
602
+ expect(resource_class.new("other").x).to eq([{ foo: "bar" }])
602
603
  end
603
- it "x.first[:foo] is immutable" do
604
- expect { resource.x.first[:foo] << "other" }.to raise_error(FrozenError, /can't modify frozen String/)
604
+ it "Multiple instances of x receive different values" do
605
+ expect(resource.x.object_id).not_to eq(resource_class.new("blah2").x.object_id)
605
606
  end
606
607
  end
607
608
  end
@@ -708,10 +709,10 @@ describe "Chef::Resource.property" do
708
709
  expect(resource.x).to eq "hi1"
709
710
  expect(Namer.current_index).to eq 1
710
711
  end
711
- it "when x is retrieved, coercion is run each time" do
712
+ it "when x is retrieved, coercion is run exactly once" do
712
713
  expect(resource.x).to eq "101"
713
- expect(resource.x).to eq "102"
714
- expect(Namer.current_index).to eq 2
714
+ expect(resource.x).to eq "101"
715
+ expect(Namer.current_index).to eq 1
715
716
  end
716
717
  end
717
718
 
@@ -719,7 +719,7 @@ describe Chef::Provider::Cron do
719
719
 
720
720
  it "should log nothing changed" do
721
721
  expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
722
- expect(logger).to receive(:trace).with("Skipping existing cron entry '#{@new_resource.name}'")
722
+ expect(logger).to receive(:debug).with("#{@new_resource}: Skipping existing cron entry")
723
723
  @provider.run_action(:create)
724
724
  end
725
725
  end
@@ -68,7 +68,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
68
68
  end
69
69
 
70
70
  it "logs a message and sets group's members to 'none'" do
71
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
71
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: none")
72
72
  expect(@provider).to receive(:shell_out_compacted!).with("gpasswd", "-M", "", "wheel")
73
73
  @provider.modify_group_members
74
74
  end
@@ -88,7 +88,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
88
88
 
89
89
  describe "when the resource specifies group members" do
90
90
  it "should log an appropriate debug message" do
91
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: lobster, rage, fist")
91
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
92
92
  allow(@provider).to receive(:shell_out_compacted!)
93
93
  @provider.modify_group_members
94
94
  end
@@ -64,7 +64,7 @@ describe Chef::Provider::Group::Groupmod do
64
64
  end
65
65
 
66
66
  it "logs a message and sets group's members to 'none', then removes existing group members" do
67
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
67
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: none")
68
68
  expect(@provider).to receive(:shell_out_compacted!).with("group", "mod", "-n", "wheel_bak", "wheel")
69
69
  expect(@provider).to receive(:shell_out_compacted!).with("group", "add", "-g", "123", "-o", "wheel")
70
70
  expect(@provider).to receive(:shell_out_compacted!).with("group", "del", "wheel_bak")
@@ -79,7 +79,7 @@ describe Chef::Provider::Group::Groupmod do
79
79
  end
80
80
 
81
81
  it "logs a message and does not modify group membership" do
82
- expect(logger).to receive(:trace).with("group[wheel] not changing group members, the group has no members to add")
82
+ expect(logger).to receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
83
83
  expect(@provider).not_to receive(:shell_out_compacted!)
84
84
  @provider.manage_group
85
85
  end
@@ -96,7 +96,7 @@ describe Chef::Provider::Group::Pw do
96
96
  end
97
97
 
98
98
  it "should log an appropriate message" do
99
- expect(logger).to receive(:trace).with("group[wheel] removing group members: all,your,base")
99
+ expect(logger).to receive(:debug).with("group[wheel] removing group members: all,your,base")
100
100
  @provider.set_members_options
101
101
  end
102
102
 
@@ -112,7 +112,7 @@ describe Chef::Provider::Group::Pw do
112
112
  end
113
113
 
114
114
  it "should log an appropriate debug message" do
115
- expect(logger).to receive(:trace).with("group[wheel] adding group members: all,your,base")
115
+ expect(logger).to receive(:debug).with("group[wheel] adding group members: all,your,base")
116
116
  @provider.set_members_options
117
117
  end
118
118
 
@@ -119,7 +119,7 @@ describe Chef::Provider::User do
119
119
  end
120
120
 
121
121
  it "should return true if the append is true and excluded_members include an existing user" do
122
- @new_resource.members.each { |m| @new_resource.excluded_members << m }
122
+ @new_resource.excluded_members += @new_resource.members
123
123
  @new_resource.members.clear
124
124
  @new_resource.append(true)
125
125
  expect(@provider.compare_group).to be_truthy
@@ -66,6 +66,7 @@ describe Chef::Provider::Mount::Mount do
66
66
 
67
67
  describe "when dealing with network mounts" do
68
68
  { "nfs" => "nfsserver:/vol/path",
69
+ "cephfs" => "cephserver:6789:/",
69
70
  "cifs" => "//cifsserver/share" }.each do |type, fs_spec|
70
71
  it "should detect network fs_spec (#{type})" do
71
72
  @new_resource.device fs_spec
@@ -505,6 +506,57 @@ describe Chef::Provider::Mount::Mount do
505
506
  end
506
507
  end
507
508
 
509
+ context "network mount" do
510
+ before(:each) do
511
+ @node = Chef::Node.new
512
+ @events = Chef::EventDispatch::Dispatcher.new
513
+ @run_context = Chef::RunContext.new(@node, {}, @events)
514
+
515
+ @new_resource = Chef::Resource::Mount.new("/tmp/bar")
516
+ @new_resource.device "cephserver:6789:/"
517
+ @new_resource.device_type :device
518
+ @new_resource.fstype "cephfs"
519
+
520
+ @new_resource.supports remount: false
521
+
522
+ @provider = Chef::Provider::Mount::Mount.new(@new_resource, @run_context)
523
+
524
+ allow(::File).to receive(:exists?).with("cephserver:6789:/").and_return true
525
+ allow(::File).to receive(:exists?).with("/tmp/bar").and_return true
526
+ allow(::File).to receive(:realpath).with("cephserver:6789:/").and_return "cephserver:6789:/"
527
+ allow(::File).to receive(:realpath).with("/tmp/bar").and_return "/tmp/foo"
528
+ end
529
+
530
+ before do
531
+ @current_resource = Chef::Resource::Mount.new("/tmp/foo")
532
+ @current_resource.device "cephserver:6789:/"
533
+ @current_resource.device_type :device
534
+ @current_resource.fstype "cephfs"
535
+
536
+ @provider.current_resource = @current_resource
537
+ end
538
+
539
+ it "should enable network mount if enabled isn't true" do
540
+ @current_resource.enabled(false)
541
+
542
+ @fstab = StringIO.new
543
+ allow(::File).to receive(:open).with("/etc/fstab", "a").and_yield(@fstab)
544
+ @provider.enable_fs
545
+ expect(@fstab.string).to match(%r{^cephserver:6789:/\s+/tmp/bar\s+cephfs\s+defaults\s+0\s+2\s*$})
546
+ end
547
+
548
+ it "should not enable network if enabled is true and resources match" do
549
+ @current_resource.enabled(true)
550
+ @current_resource.fstype("cephfs")
551
+ @current_resource.options(["defaults"])
552
+ @current_resource.dump(0)
553
+ @current_resource.pass(2)
554
+ expect(::File).not_to receive(:open).with("/etc/fstab", "a")
555
+
556
+ @provider.enable_fs
557
+ end
558
+ end
559
+
508
560
  # the fstab might contain the mount with the device as a device but the resource has a label.
509
561
  # we should not create two mount lines, but update the existing one
510
562
  # not supported on solaris because it can't cope with a UUID device type
@@ -48,6 +48,21 @@ describe Chef::Provider::Package::Apt do
48
48
  @timeout = 900
49
49
  end
50
50
 
51
+ def ubuntu1804downgrade_stubs
52
+ so = instance_double(Mixlib::ShellOut, stdout: "apt 1.6~beta1 (amd64)\notherstuff\n")
53
+ so2 = instance_double(Mixlib::ShellOut, error?: false)
54
+ allow(@provider).to receive(:shell_out).with("apt-get --version").and_return(so)
55
+ allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.6~beta1", "gt", "1.1.0").and_return(so2)
56
+ end
57
+
58
+ def ubuntu1404downgrade_stubs
59
+ so = instance_double(Mixlib::ShellOut, stdout: "apt 1.0.1ubuntu2 for amd64 compiled on Dec 8 2016 16:23:38\notherstuff\n")
60
+ so2 = instance_double(Mixlib::ShellOut, error?: true)
61
+ allow(@provider).to receive(:shell_out).with("apt-get --version").and_return(so)
62
+ allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.0.1ubuntu2", "gt", "1.1.0").and_return(so2)
63
+ allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.0.1ubuntu2", "eq", "1.1.0").and_return(so2)
64
+ end
65
+
51
66
  describe "when loading current resource" do
52
67
 
53
68
  it "should create a current resource with the name of the new_resource" do
@@ -237,6 +252,72 @@ describe Chef::Provider::Package::Apt do
237
252
  ).and_return(@shell_out)
238
253
  expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
239
254
  end
255
+
256
+ it "downgrades when requested" do
257
+ ubuntu1804downgrade_stubs
258
+ so = instance_double(Mixlib::ShellOut, stdout: "apt 1.6~beta1 (amd64)\notherstuff\n")
259
+ so2 = instance_double(Mixlib::ShellOut, error?: false)
260
+ allow(@provider).to receive(:shell_out).with("apt-get --version").and_return(so)
261
+ allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.6~beta1", "gt", "1.1.0").and_return(so2)
262
+
263
+ @new_resource.package_name("libmysqlclient-dev")
264
+ @new_resource.version("5.1.41-3ubuntu12.7")
265
+ real_package_out = <<~RPKG_STDOUT
266
+ libmysqlclient-dev:
267
+ Installed: 5.1.41-3ubuntu12.10
268
+ Candidate: 5.1.41-3ubuntu12.10
269
+ Version table:
270
+ *** 5.1.41-3ubuntu12.10 0
271
+ 500 http://us.archive.ubuntu.com/ubuntu/ lucid-updates/main packages
272
+ 100 /var/lib/dpkg/status
273
+ 5.1.41-3ubuntu12.7 0
274
+ 500 http://security.ubuntu.com/ubuntu/ lucid-security/main packages
275
+ 5.1.41-3ubuntu12 0
276
+ 500 http://us.archive.ubuntu.com/ubuntu/ lucid/main packages
277
+ RPKG_STDOUT
278
+ real_package = double(stdout: real_package_out, exitstatus: 0)
279
+ expect(@provider).to receive(:shell_out_compacted!).with(
280
+ "apt-cache", "policy", "libmysqlclient-dev",
281
+ env: { "DEBIAN_FRONTEND" => "noninteractive" },
282
+ timeout: @timeout
283
+ ).and_return(real_package)
284
+ expect(@provider).to receive(:shell_out_compacted!).with(
285
+ "apt-get", "-q", "-y", "--allow-downgrades", "-o", "Dpkg::Options::=--force-confdef", "-o", "Dpkg::Options::=--force-confold", "install", "libmysqlclient-dev=5.1.41-3ubuntu12.7",
286
+ env: { "DEBIAN_FRONTEND" => "noninteractive" },
287
+ timeout: @timeout
288
+ )
289
+ @provider.run_action(:install)
290
+ end
291
+
292
+ it "raises an exception if bad version specified" do
293
+ @new_resource.package_name("libmysqlclient-dev")
294
+ @new_resource.version("non_existent")
295
+ real_package_out = <<~RPKG_STDOUT
296
+ libmysqlclient-dev:
297
+ Installed: 5.1.41-3ubuntu12.10
298
+ Candidate: 5.1.41-3ubuntu12.10
299
+ Version table:
300
+ *** 5.1.41-3ubuntu12.10 0
301
+ 500 http://us.archive.ubuntu.com/ubuntu/ lucid-updates/main packages
302
+ 100 /var/lib/dpkg/status
303
+ 5.1.41-3ubuntu12.7 0
304
+ 500 http://security.ubuntu.com/ubuntu/ lucid-security/main packages
305
+ 5.1.41-3ubuntu12 0
306
+ 500 http://us.archive.ubuntu.com/ubuntu/ lucid/main packages
307
+ RPKG_STDOUT
308
+ real_package = double(stdout: real_package_out, exitstatus: 0)
309
+ expect(@provider).to receive(:shell_out_compacted!).with(
310
+ "apt-cache", "policy", @new_resource.package_name,
311
+ env: { "DEBIAN_FRONTEND" => "noninteractive" } ,
312
+ timeout: @timeout
313
+ ).and_return(real_package)
314
+ expect(@provider).to receive(:shell_out_compacted!).with(
315
+ "apt-cache", "showpkg", @new_resource.package_name,
316
+ env: { "DEBIAN_FRONTEND" => "noninteractive" } ,
317
+ timeout: @timeout
318
+ ).and_return(real_package)
319
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
320
+ end
240
321
  end
241
322
 
242
323
  context "after loading the current resource" do
@@ -257,21 +338,6 @@ describe Chef::Provider::Package::Apt do
257
338
  })
258
339
  end
259
340
 
260
- def ubuntu1804downgrade_stubs
261
- so = instance_double(Mixlib::ShellOut, stdout: "apt 1.6~beta1 (amd64)\notherstuff\n")
262
- so2 = instance_double(Mixlib::ShellOut, error?: false)
263
- allow(@provider).to receive(:shell_out).with("apt-get --version").and_return(so)
264
- allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.6~beta1", "gt", "1.1.0").and_return(so2)
265
- end
266
-
267
- def ubuntu1404downgrade_stubs
268
- so = instance_double(Mixlib::ShellOut, stdout: "apt 1.0.1ubuntu2 for amd64 compiled on Dec 8 2016 16:23:38\notherstuff\n")
269
- so2 = instance_double(Mixlib::ShellOut, error?: true)
270
- allow(@provider).to receive(:shell_out).with("apt-get --version").and_return(so)
271
- allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.0.1ubuntu2", "gt", "1.1.0").and_return(so2)
272
- allow(@provider).to receive(:shell_out).with("dpkg", "--compare-versions", "1.0.1ubuntu2", "eq", "1.1.0").and_return(so2)
273
- end
274
-
275
341
  describe "install_package" do
276
342
  before(:each) do
277
343
  ubuntu1804downgrade_stubs
@@ -513,7 +579,7 @@ describe Chef::Provider::Package::Apt do
513
579
  ).and_return(instance_double(
514
580
  Mixlib::ShellOut, stdout: "irssi"
515
581
  ))
516
- expect(logger).to receive(:trace).with("#{@provider.new_resource} is already locked")
582
+ expect(logger).to receive(:debug).with("#{@provider.new_resource} is already locked")
517
583
 
518
584
  @provider.action_lock
519
585
  end
@@ -534,7 +600,7 @@ describe Chef::Provider::Package::Apt do
534
600
  ).and_return(instance_double(
535
601
  Mixlib::ShellOut, stdout: ""
536
602
  ))
537
- expect(logger).to receive(:trace).with("#{@provider.new_resource} is already unlocked")
603
+ expect(logger).to receive(:debug).with("#{@provider.new_resource} is already unlocked")
538
604
 
539
605
  @provider.action_unlock
540
606
  end
@@ -590,7 +656,7 @@ describe Chef::Provider::Package::Apt do
590
656
  end
591
657
  end
592
658
 
593
- describe "#action_install" do
659
+ describe "#action_upgrade" do
594
660
  it "should run dpkg to compare versions if an existing version is installed" do
595
661
  allow(@provider).to receive(:get_current_versions).and_return("1.4.0")
596
662
  allow(@new_resource).to receive(:allow_downgrade).and_return(false)
@@ -66,7 +66,7 @@ describe Chef::Provider::Package::Deb do
66
66
  it "does not reconfigure the package if the package is not installed" do
67
67
  allow(provider).to receive(:get_current_versions).and_return(nil)
68
68
  allow(provider.load_current_resource).to receive(:version).and_return(nil)
69
- expect(logger).to receive(:trace).with("apt_package[emacs] is NOT installed - nothing to do")
69
+ expect(logger).to receive(:debug).with("apt_package[emacs] is NOT installed - nothing to do")
70
70
  expect(provider).not_to receive(:reconfig_package)
71
71
  provider.run_action(:reconfig)
72
72
  expect(new_resource).not_to be_updated_by_last_action
@@ -75,7 +75,7 @@ describe Chef::Provider::Package::Deb do
75
75
  it "does not reconfigure the package if no response_file is given" do
76
76
  allow(provider).to receive(:get_current_versions).and_return("1.0")
77
77
  allow(new_resource).to receive(:response_file).and_return(nil)
78
- expect(logger).to receive(:trace).with("apt_package[emacs] no response_file provided - nothing to do")
78
+ expect(logger).to receive(:debug).with("apt_package[emacs] no response_file provided - nothing to do")
79
79
  expect(provider).not_to receive(:reconfig_package)
80
80
  provider.run_action(:reconfig)
81
81
  expect(new_resource).not_to be_updated_by_last_action
@@ -86,7 +86,7 @@ describe Chef::Provider::Package::Deb do
86
86
  allow(new_resource).to receive(:response_file).and_return(true)
87
87
  expect(provider).to receive(:get_preseed_file).and_return(false)
88
88
  allow(provider).to receive(:preseed_package).and_return(false)
89
- expect(logger).to receive(:trace).with("apt_package[emacs] preseeding has not changed - nothing to do")
89
+ expect(logger).to receive(:debug).with("apt_package[emacs] preseeding has not changed - nothing to do")
90
90
  expect(provider).not_to receive(:reconfig_package)
91
91
  provider.run_action(:reconfig)
92
92
  expect(new_resource).not_to be_updated_by_last_action
@@ -63,10 +63,8 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
63
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7")
64
64
  expect(Gem::Specification).to receive(:dirs).and_return(["/path/to/gems/specifications", "/another/path/to/gems/specifications"])
65
65
  expect(Gem::Specification).to receive(:installed_stubs).with(["/path/to/gems/specifications", "/another/path/to/gems/specifications"], "rspec-core-*.gemspec").and_return(gems)
66
- elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
66
+ else # >= Rubygems 1.8 behavior
67
67
  expect(Gem::Specification).to receive(:find_all_by_name).with("rspec-core", Gem::Dependency.new("rspec-core").requirement).and_return(gems)
68
- else
69
- expect(Gem.source_index).to receive(:search).with(Gem::Dependency.new("rspec-core", nil)).and_return(gems)
70
68
  end
71
69
  expect(@gem_env.installed_versions(Gem::Dependency.new("rspec-core", nil))).to eq(gems)
72
70
  end
@@ -105,7 +103,7 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
105
103
  expect(Gem.sources).to eq(normal_sources)
106
104
  end
107
105
 
108
- context "new default rubygems behavior" do
106
+ context "new default rubygems behavior", ruby: ">= 3.0" do
109
107
  before do
110
108
  Chef::Config[:rubygems_cache_enabled] = false
111
109
 
@@ -115,12 +113,11 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
115
113
  end
116
114
 
117
115
  it "finds a matching gem candidate version on rubygems 2.0.0+" do
118
- stub_request(:head, "https://rubygems.org/api/v1/dependencies")
119
-
120
- stub_request(:get, "https://rubygems.org/api/v1/dependencies?gems=sexp_processor")
121
- .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor")))
122
-
123
- stub_request(:get, "https://rubygems.org/quick/Marshal.4.8/sexp_processor-4.15.1.gemspec.rz")
116
+ stub_request(:head, "https://index.rubygems.org/")
117
+ .to_return(status: 200, body: "", headers: {})
118
+ stub_request(:get, "https://index.rubygems.org/info/sexp_processor")
119
+ .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor-info")))
120
+ stub_request(:get, "https://index.rubygems.org/quick/Marshal.4.8/sexp_processor-4.15.1.gemspec.rz")
124
121
  .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor-4.15.1.gemspec.rz")))
125
122
 
126
123
  dep = Gem::Dependency.new("sexp_processor", ">= 0")
@@ -128,21 +125,20 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
128
125
  end
129
126
 
130
127
  it "gives the candidate version as nil if none is found" do
131
- stub_request(:head, "https://rubygems.org/api/v1/dependencies")
132
-
133
- stub_request(:get, "https://rubygems.org/api/v1/dependencies?gems=nonexistent_gem")
134
- .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "nonexistent_gem")))
128
+ stub_request(:head, "https://index.rubygems.org/")
129
+ .to_return(status: 200, body: "", headers: {})
130
+ stub_request(:get, "https://index.rubygems.org/info/nonexistent_gem")
131
+ .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "nonexistent_gem-info")))
135
132
 
136
133
  dep = Gem::Dependency.new("nonexistent_gem", ">= 0")
137
134
  expect(@gem_env.candidate_version_from_remote(dep)).to be_nil
138
135
  end
139
136
 
140
137
  it "finds a matching gem from a specific gemserver when explicit sources are given (to a server that doesn't respond to api requests)" do
141
- stub_request(:head, "https://rubygems2.org/api/v1/dependencies")
142
-
143
- stub_request(:get, "https://rubygems2.org/api/v1/dependencies?gems=sexp_processor")
144
- .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor")))
145
-
138
+ stub_request(:head, "https://rubygems2.org/")
139
+ .to_return(status: 200, body: "", headers: {})
140
+ stub_request(:get, "https://rubygems2.org/info/sexp_processor")
141
+ .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor-info")))
146
142
  stub_request(:get, "https://rubygems2.org/quick/Marshal.4.8/sexp_processor-4.15.1.gemspec.rz")
147
143
  .to_return(status: 200, body: File.binread(File.join(CHEF_SPEC_DATA, "rubygems.org", "sexp_processor-4.15.1.gemspec.rz")))
148
144
 
@@ -252,13 +248,8 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
252
248
 
253
249
  it "builds the gems source index from the gem paths" do
254
250
  allow(@gem_env).to receive(:gem_paths).and_return(["/path/to/gems", "/another/path/to/gems"])
255
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
256
- @gem_env.gem_specification
257
- expect(Gem::Specification.dirs).to eq([ "/path/to/gems/specifications", "/another/path/to/gems/specifications" ])
258
- else
259
- expect(Gem::SourceIndex).to receive(:from_gems_in).with("/path/to/gems/specifications", "/another/path/to/gems/specifications")
260
- @gem_env.gem_source_index
261
- end
251
+ @gem_env.gem_specification
252
+ expect(Gem::Specification.dirs).to eq([ "/path/to/gems/specifications", "/another/path/to/gems/specifications" ])
262
253
  end
263
254
 
264
255
  it "determines the installed versions of gems from the source index" do
@@ -268,12 +259,9 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
268
259
  allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
269
260
  expect(Gem::Specification).to receive(:dirs).and_return(["/path/to/gems/specifications", "/another/path/to/gems/specifications"])
270
261
  expect(Gem::Specification).to receive(:installed_stubs).with(["/path/to/gems/specifications", "/another/path/to/gems/specifications"], "rspec-*.gemspec").and_return(gems)
271
- elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new("1.8.0")
262
+ else # >= rubygems 1.8 behavior
272
263
  allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
273
264
  expect(@gem_env.gem_specification).to receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
274
- else
275
- allow(@gem_env).to receive(:gem_source_index).and_return(Gem.source_index)
276
- expect(@gem_env.gem_source_index).to receive(:search).with(rspec_dep).and_return(gems)
277
265
  end
278
266
  expect(@gem_env.installed_versions(Gem::Dependency.new("rspec", nil))).to eq(gems)
279
267
  end
@@ -482,10 +470,10 @@ describe Chef::Provider::Package::Rubygems do
482
470
  end
483
471
  end
484
472
 
485
- context "when in omnibus chefdk" do
486
- let(:bindir) { "/opt/chefdk/embedded/bin" }
473
+ context "when in omnibus chef-workstation" do
474
+ let(:bindir) { "/opt/chef-workstation/embedded/bin" }
487
475
 
488
- it "recognizes chefdk as omnibus" do
476
+ it "recognizes chef-workstation as omnibus" do
489
477
  expect(provider.is_omnibus?).to be true
490
478
  end
491
479
  end