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