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
@@ -1,962 +0,0 @@
1
- #
2
- # Author:: John Keiser (<jkeiser@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
-
18
- require "spec_helper"
19
- require "support/shared/integration/integration_helper"
20
- require "support/shared/context/config"
21
- require "chef/knife/list"
22
- require "chef/knife/show"
23
-
24
- describe "chef_repo_path tests", :workstation do
25
- include IntegrationSupport
26
- include KnifeSupport
27
-
28
- let(:error_rel_path_outside_repo) { /^ERROR: Attempt to use relative path '' when current directory is outside the repository path/ }
29
-
30
- # TODO alternate repo_path / *_path
31
- context "alternate *_path" do
32
- when_the_repository "has clients and clients2, cookbooks and cookbooks2, etc." do
33
- before do
34
- file "clients/client1.json", {}
35
- file "cookbooks/cookbook1/metadata.rb", ""
36
- file "data_bags/bag/item.json", {}
37
- file "environments/env1.json", {}
38
- file "nodes/node1.json", {}
39
- file "roles/role1.json", {}
40
- file "users/user1.json", {}
41
-
42
- file "clients2/client2.json", {}
43
- file "cookbooks2/cookbook2/metadata.rb", ""
44
- file "data_bags2/bag2/item2.json", {}
45
- file "environments2/env2.json", {}
46
- file "nodes2/node2.json", {}
47
- file "roles2/role2.json", {}
48
- file "users2/user2.json", {}
49
-
50
- directory "chef_repo2" do
51
- file "clients/client3.json", {}
52
- file "cookbooks/cookbook3/metadata.rb", "name 'cookbook3'"
53
- file "data_bags/bag3/item3.json", {}
54
- file "environments/env3.json", {}
55
- file "nodes/node3.json", {}
56
- file "roles/role3.json", {}
57
- file "users/user3.json", {}
58
- end
59
- end
60
-
61
- it "knife list --local -Rfp --chef-repo-path chef_repo2 / grabs chef_repo2 stuff" do
62
- Chef::Config.delete(:chef_repo_path)
63
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_repo2")} /").should_succeed <<~EOM
64
- /clients/
65
- /clients/client3.json
66
- /cookbooks/
67
- /cookbooks/cookbook3/
68
- /cookbooks/cookbook3/metadata.rb
69
- /data_bags/
70
- /data_bags/bag3/
71
- /data_bags/bag3/item3.json
72
- /environments/
73
- /environments/env3.json
74
- /nodes/
75
- /nodes/node3.json
76
- /roles/
77
- /roles/role3.json
78
- /users/
79
- /users/user3.json
80
- EOM
81
- end
82
-
83
- # "Skipping for BK... As Windows 2019 has 8dot3name disabled by default"
84
- it "knife list --local -Rfp --chef-repo-path chef_r~1 / grabs chef_repo2 stuff", :windows_only, :skip_buildkite do
85
- Chef::Config.delete(:chef_repo_path)
86
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_r~1")} /").should_succeed <<~EOM
87
- /clients/
88
- /clients/client3.json
89
- /cookbooks/
90
- /cookbooks/cookbook3/
91
- /cookbooks/cookbook3/metadata.rb
92
- /data_bags/
93
- /data_bags/bag3/
94
- /data_bags/bag3/item3.json
95
- /environments/
96
- /environments/env3.json
97
- /nodes/
98
- /nodes/node3.json
99
- /roles/
100
- /roles/role3.json
101
- /users/
102
- /users/user3.json
103
- EOM
104
- end
105
-
106
- # "Skipping for BK... As Windows 2019 has 8dot3name disabled by default"
107
- it "knife list --local -Rfp --chef-repo-path chef_r~1 / grabs chef_repo2 stuff", :windows_only, :skip_buildkite do
108
- Chef::Config.delete(:chef_repo_path)
109
- knife("list -z -Rfp --chef-repo-path #{path_to("chef_r~1")} /").should_succeed <<~EOM
110
- /acls/
111
- /acls/clients/
112
- /acls/clients/client3.json
113
- /acls/containers/
114
- /acls/cookbook_artifacts/
115
- /acls/cookbooks/
116
- /acls/cookbooks/cookbook3.json
117
- /acls/data_bags/
118
- /acls/data_bags/bag3.json
119
- /acls/environments/
120
- /acls/environments/env3.json
121
- /acls/groups/
122
- /acls/nodes/
123
- /acls/nodes/node3.json
124
- /acls/organization.json
125
- /acls/policies/
126
- /acls/policy_groups/
127
- /acls/roles/
128
- /acls/roles/role3.json
129
- /clients/
130
- /clients/client3.json
131
- /containers/
132
- /cookbook_artifacts/
133
- /cookbooks/
134
- /cookbooks/cookbook3/
135
- /cookbooks/cookbook3/metadata.rb
136
- /data_bags/
137
- /data_bags/bag3/
138
- /data_bags/bag3/item3.json
139
- /environments/
140
- /environments/env3.json
141
- /groups/
142
- /invitations.json
143
- /members.json
144
- /nodes/
145
- /nodes/node3.json
146
- /org.json
147
- /policies/
148
- /policy_groups/
149
- /roles/
150
- /roles/role3.json
151
- EOM
152
- end
153
-
154
- context "when all _paths are set to alternates" do
155
- before :each do
156
- %w{client cookbook data_bag environment node role user}.each do |object_name|
157
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "#{object_name}s2")
158
- end
159
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
160
- end
161
-
162
- it "knife list --local -Rfp --chef-repo-path chef_repo2 / grabs chef_repo2 stuff" do
163
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_repo2")} /").should_succeed <<~EOM
164
- /clients/
165
- /clients/client3.json
166
- /cookbooks/
167
- /cookbooks/cookbook3/
168
- /cookbooks/cookbook3/metadata.rb
169
- /data_bags/
170
- /data_bags/bag3/
171
- /data_bags/bag3/item3.json
172
- /environments/
173
- /environments/env3.json
174
- /nodes/
175
- /nodes/node3.json
176
- /roles/
177
- /roles/role3.json
178
- /users/
179
- /users/user3.json
180
- EOM
181
- end
182
-
183
- context "when cwd is at the top level" do
184
- before { cwd "." }
185
- it "knife list --local -Rfp fails" do
186
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
187
- end
188
- end
189
-
190
- context "when cwd is inside the data_bags directory" do
191
- before { cwd "data_bags" }
192
- it "knife list --local -Rfp fails" do
193
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
194
- end
195
- end
196
-
197
- context "when cwd is inside chef_repo2" do
198
- before { cwd "chef_repo2" }
199
- it "knife list --local -Rfp lists everything" do
200
- knife("list --local -Rfp").should_succeed <<~EOM
201
- clients/
202
- clients/client2.json
203
- cookbooks/
204
- cookbooks/cookbook2/
205
- cookbooks/cookbook2/metadata.rb
206
- data_bags/
207
- data_bags/bag2/
208
- data_bags/bag2/item2.json
209
- environments/
210
- environments/env2.json
211
- nodes/
212
- nodes/node2.json
213
- roles/
214
- roles/role2.json
215
- users/
216
- users/user2.json
217
- EOM
218
- end
219
- end
220
-
221
- context "when cwd is inside data_bags2" do
222
- before { cwd "data_bags2" }
223
- it "knife list --local -Rfp lists data bags" do
224
- knife("list --local -Rfp").should_succeed <<~EOM
225
- bag2/
226
- bag2/item2.json
227
- EOM
228
- end
229
- it "knife list --local -Rfp ../roles lists roles" do
230
- knife("list --local -Rfp ../roles").should_succeed "/roles/role2.json\n"
231
- end
232
- end
233
- end
234
-
235
- context "when all _paths except chef_repo_path are set to alternates" do
236
- before :each do
237
- %w{client cookbook data_bag environment node role user}.each do |object_name|
238
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "#{object_name}s2")
239
- end
240
- end
241
-
242
- context "when cwd is at the top level" do
243
- before { cwd "." }
244
- it "knife list --local -Rfp lists everything" do
245
- knife("list --local -Rfp").should_succeed <<~EOM
246
- clients/
247
- clients/client2.json
248
- cookbooks/
249
- cookbooks/cookbook2/
250
- cookbooks/cookbook2/metadata.rb
251
- data_bags/
252
- data_bags/bag2/
253
- data_bags/bag2/item2.json
254
- environments/
255
- environments/env2.json
256
- nodes/
257
- nodes/node2.json
258
- roles/
259
- roles/role2.json
260
- users/
261
- users/user2.json
262
- EOM
263
- end
264
- end
265
-
266
- context "when cwd is inside the data_bags directory" do
267
- before { cwd "data_bags" }
268
- it "knife list --local -Rfp fails" do
269
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
270
- end
271
- end
272
-
273
- context "when cwd is inside chef_repo2" do
274
- before { cwd "chef_repo2" }
275
- it "knife list -Rfp fails" do
276
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
277
- end
278
- end
279
-
280
- context "when cwd is inside data_bags2" do
281
- before { cwd "data_bags2" }
282
- it "knife list --local -Rfp lists data bags" do
283
- knife("list --local -Rfp").should_succeed <<~EOM
284
- bag2/
285
- bag2/item2.json
286
- EOM
287
- end
288
- end
289
- end
290
-
291
- context "when only chef_repo_path is set to its alternate" do
292
- before :each do
293
- %w{client cookbook data_bag environment node role user}.each do |object_name|
294
- Chef::Config.delete("#{object_name}_path".to_sym)
295
- end
296
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
297
- end
298
-
299
- context "when cwd is at the top level" do
300
- before { cwd "." }
301
- it "knife list --local -Rfp fails" do
302
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
303
- end
304
- end
305
-
306
- context "when cwd is inside the data_bags directory" do
307
- before { cwd "data_bags" }
308
- it "knife list --local -Rfp fails" do
309
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
310
- end
311
- end
312
-
313
- context "when cwd is inside chef_repo2" do
314
- before { cwd "chef_repo2" }
315
- it "knife list --local -Rfp lists everything" do
316
- knife("list --local -Rfp").should_succeed <<~EOM
317
- clients/
318
- clients/client3.json
319
- cookbooks/
320
- cookbooks/cookbook3/
321
- cookbooks/cookbook3/metadata.rb
322
- data_bags/
323
- data_bags/bag3/
324
- data_bags/bag3/item3.json
325
- environments/
326
- environments/env3.json
327
- nodes/
328
- nodes/node3.json
329
- roles/
330
- roles/role3.json
331
- users/
332
- users/user3.json
333
- EOM
334
- end
335
- end
336
-
337
- context "when cwd is inside chef_repo2/data_bags" do
338
- before { cwd "chef_repo2/data_bags" }
339
- it "knife list --local -Rfp lists data bags" do
340
- knife("list --local -Rfp").should_succeed <<~EOM
341
- bag3/
342
- bag3/item3.json
343
- EOM
344
- end
345
- end
346
- end
347
-
348
- context "when paths are set to point to both versions of each" do
349
- before :each do
350
- %w{client cookbook data_bag environment node role user}.each do |object_name|
351
- Chef::Config["#{object_name}_path".to_sym] = [
352
- File.join(Chef::Config.chef_repo_path, "#{object_name}s"),
353
- File.join(Chef::Config.chef_repo_path, "#{object_name}s2"),
354
- ]
355
- end
356
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
357
- end
358
-
359
- context "when there is a directory in clients1 and file in clients2 with the same name" do
360
- before do
361
- directory "clients/blah.json"
362
- file "clients2/blah.json", {}
363
- end
364
- it "knife show /clients/blah.json succeeds" do
365
- knife("show --local /clients/blah.json").should_succeed <<~EOM
366
- /clients/blah.json:
367
- {
368
-
369
- }
370
- EOM
371
- end
372
- end
373
-
374
- context "when there is a file in cookbooks1 and directory in cookbooks2 with the same name" do
375
- before do
376
- file "cookbooks/blah", ""
377
- file "cookbooks2/blah/metadata.rb", ""
378
- end
379
- it "knife list -Rfp cookbooks shows files in blah" do
380
- knife("list --local -Rfp /cookbooks").should_succeed <<~EOM
381
- /cookbooks/blah/
382
- /cookbooks/blah/metadata.rb
383
- /cookbooks/cookbook1/
384
- /cookbooks/cookbook1/metadata.rb
385
- /cookbooks/cookbook2/
386
- /cookbooks/cookbook2/metadata.rb
387
- EOM
388
- end
389
- end
390
-
391
- context "when there is an empty directory in cookbooks1 and a real cookbook in cookbooks2 with the same name" do
392
- before do
393
- directory "cookbooks/blah"
394
- file "cookbooks2/blah/metadata.rb", ""
395
- end
396
- it "knife list -Rfp cookbooks shows files in blah" do
397
- knife("list --local -Rfp /cookbooks").should_succeed(<<~EOM, stderr: "WARN: Cookbook 'blah' is empty or entirely chefignored at #{Chef::Config.cookbook_path[0]}/blah\n")
398
- /cookbooks/blah/
399
- /cookbooks/blah/metadata.rb
400
- /cookbooks/cookbook1/
401
- /cookbooks/cookbook1/metadata.rb
402
- /cookbooks/cookbook2/
403
- /cookbooks/cookbook2/metadata.rb
404
- EOM
405
- end
406
- end
407
-
408
- context "when there is a cookbook in cookbooks1 and a cookbook in cookbooks2 with the same name" do
409
- before do
410
- file "cookbooks/blah/metadata.json", {}
411
- file "cookbooks2/blah/metadata.rb", ""
412
- end
413
- it "knife list -Rfp cookbooks shows files in the first cookbook and not the second" do
414
- knife("list --local -Rfp /cookbooks").should_succeed(<<~EOM, stderr: "WARN: Child with name 'blah' found in multiple directories: #{Chef::Config.cookbook_path[0]}/blah and #{Chef::Config.cookbook_path[1]}/blah\n")
415
- /cookbooks/blah/
416
- /cookbooks/blah/metadata.json
417
- /cookbooks/cookbook1/
418
- /cookbooks/cookbook1/metadata.rb
419
- /cookbooks/cookbook2/
420
- /cookbooks/cookbook2/metadata.rb
421
- EOM
422
- end
423
- end
424
-
425
- context "when there is a file in data_bags1 and a directory in data_bags2 with the same name" do
426
- before do
427
- file "data_bags/blah", ""
428
- file "data_bags2/blah/item.json", ""
429
- end
430
- it "knife list -Rfp data_bags shows files in blah" do
431
- knife("list --local -Rfp /data_bags").should_succeed <<~EOM
432
- /data_bags/bag/
433
- /data_bags/bag/item.json
434
- /data_bags/bag2/
435
- /data_bags/bag2/item2.json
436
- /data_bags/blah/
437
- /data_bags/blah/item.json
438
- EOM
439
- end
440
- end
441
-
442
- context "when there is a data bag in data_bags1 and a data bag in data_bags2 with the same name" do
443
- before do
444
- file "data_bags/blah/item1.json", ""
445
- file "data_bags2/blah/item2.json", ""
446
- end
447
- it "knife list -Rfp data_bags shows only items in data_bags1" do
448
- knife("list --local -Rfp /data_bags").should_succeed(<<~EOM, stderr: "WARN: Child with name 'blah' found in multiple directories: #{Chef::Config.data_bag_path[0]}/blah and #{Chef::Config.data_bag_path[1]}/blah\n")
449
- /data_bags/bag/
450
- /data_bags/bag/item.json
451
- /data_bags/bag2/
452
- /data_bags/bag2/item2.json
453
- /data_bags/blah/
454
- /data_bags/blah/item1.json
455
- EOM
456
- end
457
- end
458
-
459
- context "when there is a directory in environments1 and file in environments2 with the same name" do
460
- before do
461
- directory "environments/blah.json"
462
- file "environments2/blah.json", {}
463
- end
464
- it "knife show /environments/blah.json succeeds" do
465
- knife("show --local /environments/blah.json").should_succeed <<~EOM
466
- /environments/blah.json:
467
- {
468
-
469
- }
470
- EOM
471
- end
472
- end
473
-
474
- context "when there is a directory in nodes1 and file in nodes2 with the same name" do
475
- before do
476
- directory "nodes/blah.json"
477
- file "nodes2/blah.json", {}
478
- end
479
- it "knife show /nodes/blah.json succeeds" do
480
- knife("show --local /nodes/blah.json").should_succeed <<~EOM
481
- /nodes/blah.json:
482
- {
483
-
484
- }
485
- EOM
486
- end
487
- end
488
-
489
- context "when there is a directory in roles1 and file in roles2 with the same name" do
490
- before do
491
- directory "roles/blah.json"
492
- file "roles2/blah.json", {}
493
- end
494
- it "knife show /roles/blah.json succeeds" do
495
- knife("show --local /roles/blah.json").should_succeed <<~EOM
496
- /roles/blah.json:
497
- {
498
-
499
- }
500
- EOM
501
- end
502
- end
503
-
504
- context "when there is a directory in users1 and file in users2 with the same name" do
505
- before do
506
- directory "users/blah.json"
507
- file "users2/blah.json", {}
508
- end
509
- it "knife show /users/blah.json succeeds" do
510
- knife("show --local /users/blah.json").should_succeed <<~EOM
511
- /users/blah.json:
512
- {
513
-
514
- }
515
- EOM
516
- end
517
- end
518
-
519
- context "when cwd is at the top level" do
520
- before { cwd "." }
521
- it "knife list --local -Rfp fails" do
522
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
523
- end
524
- end
525
-
526
- context "when cwd is inside the data_bags directory" do
527
- before { cwd "data_bags" }
528
- it "knife list --local -Rfp lists data bags" do
529
- knife("list --local -Rfp").should_succeed <<~EOM
530
- bag/
531
- bag/item.json
532
- bag2/
533
- bag2/item2.json
534
- EOM
535
- end
536
- end
537
-
538
- context "when cwd is inside chef_repo2" do
539
- before { cwd "chef_repo2" }
540
- it "knife list --local -Rfp lists everything" do
541
- knife("list --local -Rfp").should_succeed <<~EOM
542
- clients/
543
- clients/client1.json
544
- clients/client2.json
545
- cookbooks/
546
- cookbooks/cookbook1/
547
- cookbooks/cookbook1/metadata.rb
548
- cookbooks/cookbook2/
549
- cookbooks/cookbook2/metadata.rb
550
- data_bags/
551
- data_bags/bag/
552
- data_bags/bag/item.json
553
- data_bags/bag2/
554
- data_bags/bag2/item2.json
555
- environments/
556
- environments/env1.json
557
- environments/env2.json
558
- nodes/
559
- nodes/node1.json
560
- nodes/node2.json
561
- roles/
562
- roles/role1.json
563
- roles/role2.json
564
- users/
565
- users/user1.json
566
- users/user2.json
567
- EOM
568
- end
569
- end
570
-
571
- context "when cwd is inside data_bags2" do
572
- before { cwd "data_bags2" }
573
- it "knife list --local -Rfp lists data bags" do
574
- knife("list --local -Rfp").should_succeed <<~EOM
575
- bag/
576
- bag/item.json
577
- bag2/
578
- bag2/item2.json
579
- EOM
580
- end
581
- end
582
- end
583
-
584
- context "when when chef_repo_path is set to both places and no other _path is set" do
585
- before :each do
586
- %w{client cookbook data_bag environment node role user}.each do |object_name|
587
- Chef::Config.delete("#{object_name}_path".to_sym)
588
- end
589
- Chef::Config.chef_repo_path = [
590
- Chef::Config.chef_repo_path,
591
- File.join(Chef::Config.chef_repo_path, "chef_repo2"),
592
- ]
593
- end
594
-
595
- context "when cwd is at the top level" do
596
- before { cwd "." }
597
- it "knife list --local -Rfp lists everything" do
598
- knife("list --local -Rfp").should_succeed <<~EOM
599
- clients/
600
- clients/client1.json
601
- clients/client3.json
602
- cookbooks/
603
- cookbooks/cookbook1/
604
- cookbooks/cookbook1/metadata.rb
605
- cookbooks/cookbook3/
606
- cookbooks/cookbook3/metadata.rb
607
- data_bags/
608
- data_bags/bag/
609
- data_bags/bag/item.json
610
- data_bags/bag3/
611
- data_bags/bag3/item3.json
612
- environments/
613
- environments/env1.json
614
- environments/env3.json
615
- nodes/
616
- nodes/node1.json
617
- nodes/node3.json
618
- roles/
619
- roles/role1.json
620
- roles/role3.json
621
- users/
622
- users/user1.json
623
- users/user3.json
624
- EOM
625
- end
626
- end
627
-
628
- context "when cwd is inside the data_bags directory" do
629
- before { cwd "data_bags" }
630
- it "knife list --local -Rfp lists data bags" do
631
- knife("list --local -Rfp").should_succeed <<~EOM
632
- bag/
633
- bag/item.json
634
- bag3/
635
- bag3/item3.json
636
- EOM
637
- end
638
- end
639
-
640
- context "when cwd is inside chef_repo2" do
641
- before { cwd "chef_repo2" }
642
- it "knife list --local -Rfp lists everything" do
643
- knife("list --local -Rfp").should_succeed <<~EOM
644
- clients/
645
- clients/client1.json
646
- clients/client3.json
647
- cookbooks/
648
- cookbooks/cookbook1/
649
- cookbooks/cookbook1/metadata.rb
650
- cookbooks/cookbook3/
651
- cookbooks/cookbook3/metadata.rb
652
- data_bags/
653
- data_bags/bag/
654
- data_bags/bag/item.json
655
- data_bags/bag3/
656
- data_bags/bag3/item3.json
657
- environments/
658
- environments/env1.json
659
- environments/env3.json
660
- nodes/
661
- nodes/node1.json
662
- nodes/node3.json
663
- roles/
664
- roles/role1.json
665
- roles/role3.json
666
- users/
667
- users/user1.json
668
- users/user3.json
669
- EOM
670
- end
671
- end
672
-
673
- context "when cwd is inside chef_repo2/data_bags" do
674
- before { cwd "chef_repo2/data_bags" }
675
- it "knife list --local -Rfp lists data bags" do
676
- knife("list --local -Rfp").should_succeed <<~EOM
677
- bag/
678
- bag/item.json
679
- bag3/
680
- bag3/item3.json
681
- EOM
682
- end
683
- end
684
- end
685
-
686
- context "when cookbook_path is set and nothing else" do
687
- before :each do
688
- %w{client data_bag environment node role user}.each do |object_name|
689
- Chef::Config.delete("#{object_name}_path".to_sym)
690
- end
691
- Chef::Config.delete(:chef_repo_path)
692
- Chef::Config.cookbook_path = File.join(@repository_dir, "chef_repo2", "cookbooks")
693
- end
694
-
695
- context "when cwd is at the top level" do
696
- before { cwd "." }
697
- it "knife list --local -Rfp fails" do
698
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
699
- end
700
- end
701
-
702
- context "when cwd is inside the data_bags directory" do
703
- before { cwd "data_bags" }
704
- it "knife list --local -Rfp fails" do
705
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
706
- end
707
- end
708
-
709
- context "when cwd is inside chef_repo2" do
710
- before { cwd "chef_repo2" }
711
- it "knife list --local -Rfp lists everything" do
712
- knife("list --local -Rfp").should_succeed <<~EOM
713
- clients/
714
- clients/client3.json
715
- cookbooks/
716
- cookbooks/cookbook3/
717
- cookbooks/cookbook3/metadata.rb
718
- data_bags/
719
- data_bags/bag3/
720
- data_bags/bag3/item3.json
721
- environments/
722
- environments/env3.json
723
- nodes/
724
- nodes/node3.json
725
- roles/
726
- roles/role3.json
727
- users/
728
- users/user3.json
729
- EOM
730
- end
731
- end
732
-
733
- context "when cwd is inside chef_repo2/data_bags" do
734
- before { cwd "chef_repo2/data_bags" }
735
- it "knife list --local -Rfp lists data bags" do
736
- knife("list --local -Rfp").should_succeed <<~EOM
737
- bag3/
738
- bag3/item3.json
739
- EOM
740
- end
741
- end
742
- end
743
-
744
- context "when cookbook_path is set to multiple places and nothing else is set" do
745
- before :each do
746
- %w{client data_bag environment node role user}.each do |object_name|
747
- Chef::Config.delete("#{object_name}_path".to_sym)
748
- end
749
- Chef::Config.delete(:chef_repo_path)
750
- Chef::Config.cookbook_path = [
751
- File.join(@repository_dir, "cookbooks"),
752
- File.join(@repository_dir, "chef_repo2", "cookbooks"),
753
- ]
754
- end
755
-
756
- context "when cwd is at the top level" do
757
- before { cwd "." }
758
- it "knife list --local -Rfp lists everything" do
759
- knife("list --local -Rfp").should_succeed <<~EOM
760
- clients/
761
- clients/client1.json
762
- clients/client3.json
763
- cookbooks/
764
- cookbooks/cookbook1/
765
- cookbooks/cookbook1/metadata.rb
766
- cookbooks/cookbook3/
767
- cookbooks/cookbook3/metadata.rb
768
- data_bags/
769
- data_bags/bag/
770
- data_bags/bag/item.json
771
- data_bags/bag3/
772
- data_bags/bag3/item3.json
773
- environments/
774
- environments/env1.json
775
- environments/env3.json
776
- nodes/
777
- nodes/node1.json
778
- nodes/node3.json
779
- roles/
780
- roles/role1.json
781
- roles/role3.json
782
- users/
783
- users/user1.json
784
- users/user3.json
785
- EOM
786
- end
787
- end
788
-
789
- context "when cwd is inside the data_bags directory" do
790
- before { cwd "data_bags" }
791
- it "knife list --local -Rfp lists data bags" do
792
- knife("list --local -Rfp").should_succeed <<~EOM
793
- bag/
794
- bag/item.json
795
- bag3/
796
- bag3/item3.json
797
- EOM
798
- end
799
- end
800
-
801
- context "when cwd is inside chef_repo2" do
802
- before { cwd "chef_repo2" }
803
- it "knife list --local -Rfp lists everything" do
804
- knife("list --local -Rfp").should_succeed <<~EOM
805
- clients/
806
- clients/client1.json
807
- clients/client3.json
808
- cookbooks/
809
- cookbooks/cookbook1/
810
- cookbooks/cookbook1/metadata.rb
811
- cookbooks/cookbook3/
812
- cookbooks/cookbook3/metadata.rb
813
- data_bags/
814
- data_bags/bag/
815
- data_bags/bag/item.json
816
- data_bags/bag3/
817
- data_bags/bag3/item3.json
818
- environments/
819
- environments/env1.json
820
- environments/env3.json
821
- nodes/
822
- nodes/node1.json
823
- nodes/node3.json
824
- roles/
825
- roles/role1.json
826
- roles/role3.json
827
- users/
828
- users/user1.json
829
- users/user3.json
830
- EOM
831
- end
832
- end
833
-
834
- context "when cwd is inside chef_repo2/data_bags" do
835
- before { cwd "chef_repo2/data_bags" }
836
- it "knife list --local -Rfp lists data bags" do
837
- knife("list --local -Rfp").should_succeed <<~EOM
838
- bag/
839
- bag/item.json
840
- bag3/
841
- bag3/item3.json
842
- EOM
843
- end
844
- end
845
- end
846
-
847
- context "when data_bag_path and chef_repo_path are set, and nothing else" do
848
- before :each do
849
- %w{client cookbook environment node role user}.each do |object_name|
850
- Chef::Config.delete("#{object_name}_path".to_sym)
851
- end
852
- Chef::Config.data_bag_path = File.join(Chef::Config.chef_repo_path, "data_bags")
853
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
854
- end
855
-
856
- context "when cwd is at the top level" do
857
- before { cwd "." }
858
- it "knife list --local -Rfp fails" do
859
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
860
- end
861
- end
862
-
863
- context "when cwd is inside the data_bags directory" do
864
- before { cwd "data_bags" }
865
- it "knife list --local -Rfp lists data bags" do
866
- knife("list --local -Rfp").should_succeed <<~EOM
867
- bag/
868
- bag/item.json
869
- EOM
870
- end
871
- end
872
-
873
- context "when cwd is inside chef_repo2" do
874
- before { cwd "chef_repo2" }
875
- it "knife list --local -Rfp lists everything" do
876
- knife("list --local -Rfp").should_succeed <<~EOM
877
- clients/
878
- clients/client3.json
879
- cookbooks/
880
- cookbooks/cookbook3/
881
- cookbooks/cookbook3/metadata.rb
882
- data_bags/
883
- data_bags/bag/
884
- data_bags/bag/item.json
885
- environments/
886
- environments/env3.json
887
- nodes/
888
- nodes/node3.json
889
- roles/
890
- roles/role3.json
891
- users/
892
- users/user3.json
893
- EOM
894
- end
895
- end
896
-
897
- context "when cwd is inside chef_repo2/data_bags" do
898
- before { cwd "chef_repo2/data_bags" }
899
- it "knife list --local -Rfp fails" do
900
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
901
- end
902
- end
903
- end
904
-
905
- context "when data_bag_path is set and nothing else" do
906
- include_context "default config options"
907
-
908
- before :each do
909
- %w{client cookbook environment node role user}.each do |object_name|
910
- Chef::Config.delete("#{object_name}_path".to_sym)
911
- end
912
- Chef::Config.delete(:chef_repo_path)
913
- Chef::Config.data_bag_path = File.join(@repository_dir, "data_bags")
914
- end
915
-
916
- it "knife list --local -Rfp / lists data bags" do
917
- knife("list --local -Rfp /").should_succeed <<~EOM
918
- /data_bags/
919
- /data_bags/bag/
920
- /data_bags/bag/item.json
921
- EOM
922
- end
923
-
924
- it "knife list --local -Rfp /data_bags lists data bags" do
925
- knife("list --local -Rfp /data_bags").should_succeed <<~EOM
926
- /data_bags/bag/
927
- /data_bags/bag/item.json
928
- EOM
929
- end
930
-
931
- context "when cwd is inside the data_bags directory" do
932
- before { cwd "data_bags" }
933
- it "knife list --local -Rfp lists data bags" do
934
- knife("list --local -Rfp").should_succeed <<~EOM
935
- bag/
936
- bag/item.json
937
- EOM
938
- end
939
- end
940
- end
941
- end
942
-
943
- when_the_repository "is empty" do
944
- context "when the repository _paths point to places that do not exist" do
945
- before :each do
946
- %w{client cookbook data_bag environment node role user}.each do |object_name|
947
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "nowhere", object_name)
948
- end
949
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "nowhere")
950
- end
951
-
952
- it "knife list --local -Rfp / fails" do
953
- knife("list --local -Rfp /").should_succeed ""
954
- end
955
-
956
- it "knife list --local -Rfp /data_bags fails" do
957
- knife("list --local -Rfp /data_bags").should_fail("ERROR: /data_bags: No such file or directory\n")
958
- end
959
- end
960
- end
961
- end
962
- end