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,703 +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/deps"
22
-
23
- describe "knife deps", :workstation do
24
- include IntegrationSupport
25
- include KnifeSupport
26
-
27
- context "local" do
28
- when_the_repository "has a role with no run_list" do
29
- before { file "roles/starring.json", {} }
30
- it "knife deps reports no dependencies" do
31
- knife("deps /roles/starring.json").should_succeed "/roles/starring.json\n"
32
- end
33
- end
34
-
35
- when_the_repository "has a role with a default run_list" do
36
- before do
37
- file "roles/starring.json", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
38
- file "roles/minor.json", {}
39
- file "cookbooks/quiche/metadata.rb", 'name "quiche"'
40
- file "cookbooks/quiche/recipes/default.rb", ""
41
- file "cookbooks/soup/metadata.rb", 'name "soup"'
42
- file "cookbooks/soup/recipes/chicken.rb", ""
43
- end
44
- it "knife deps reports all dependencies" do
45
- knife("deps /roles/starring.json").should_succeed <<~EOM
46
- /roles/minor.json
47
- /cookbooks/quiche
48
- /cookbooks/soup
49
- /roles/starring.json
50
- EOM
51
- end
52
- end
53
-
54
- when_the_repository "has a role with an env_run_list" do
55
- before do
56
- file "roles/starring.json", { "env_run_lists" => { "desert" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} } }
57
- file "roles/minor.json", {}
58
- file "cookbooks/quiche/metadata.rb", 'name "quiche"'
59
- file "cookbooks/quiche/recipes/default.rb", ""
60
- file "cookbooks/soup/metadata.rb", 'name "soup"'
61
- file "cookbooks/soup/recipes/chicken.rb", ""
62
- end
63
- it "knife deps reports all dependencies" do
64
- knife("deps /roles/starring.json").should_succeed <<~EOM
65
- /roles/minor.json
66
- /cookbooks/quiche
67
- /cookbooks/soup
68
- /roles/starring.json
69
- EOM
70
- end
71
- end
72
-
73
- when_the_repository "has a node with no environment or run_list" do
74
- before { file "nodes/mort.json", {} }
75
- it "knife deps reports just the node" do
76
- knife("deps /nodes/mort.json").should_succeed "/nodes/mort.json\n"
77
- end
78
- end
79
- when_the_repository "has a node with an environment" do
80
- before do
81
- file "environments/desert.json", {}
82
- file "nodes/mort.json", { "chef_environment" => "desert" }
83
- end
84
- it "knife deps reports just the node" do
85
- knife("deps /nodes/mort.json").should_succeed "/environments/desert.json\n/nodes/mort.json\n"
86
- end
87
- end
88
- when_the_repository "has a node with roles and recipes in its run_list" do
89
- before do
90
- file "roles/minor.json", {}
91
- file "cookbooks/quiche/metadata.rb", 'name "quiche"'
92
- file "cookbooks/quiche/recipes/default.rb", ""
93
- file "cookbooks/soup/metadata.rb", 'name "soup"'
94
- file "cookbooks/soup/recipes/chicken.rb", ""
95
- file "nodes/mort.json", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
96
- end
97
- it "knife deps reports just the node" do
98
- knife("deps /nodes/mort.json").should_succeed <<~EOM
99
- /roles/minor.json
100
- /cookbooks/quiche
101
- /cookbooks/soup
102
- /nodes/mort.json
103
- EOM
104
- end
105
- end
106
- when_the_repository "has a cookbook with no dependencies" do
107
- before do
108
- file "cookbooks/quiche/metadata.rb", 'name "quiche"'
109
- file "cookbooks/quiche/recipes/default.rb", ""
110
- end
111
- it "knife deps reports just the cookbook" do
112
- knife("deps /cookbooks/quiche").should_succeed "/cookbooks/quiche\n"
113
- end
114
- end
115
- when_the_repository "has a cookbook with dependencies" do
116
- before do
117
- file "cookbooks/kettle/metadata.rb", 'name "kettle"'
118
- file "cookbooks/quiche/metadata.rb", 'name "quiche"
119
- depends "kettle"'
120
- file "cookbooks/quiche/recipes/default.rb", ""
121
- end
122
- it "knife deps reports just the cookbook" do
123
- knife("deps /cookbooks/quiche").should_succeed "/cookbooks/kettle\n/cookbooks/quiche\n"
124
- end
125
- end
126
- when_the_repository "has a data bag" do
127
- before { file "data_bags/bag/item.json", {} }
128
- it "knife deps reports just the data bag" do
129
- knife("deps /data_bags/bag/item.json").should_succeed "/data_bags/bag/item.json\n"
130
- end
131
- end
132
- when_the_repository "has an environment" do
133
- before { file "environments/desert.json", {} }
134
- it "knife deps reports just the environment" do
135
- knife("deps /environments/desert.json").should_succeed "/environments/desert.json\n"
136
- end
137
- end
138
- when_the_repository "has a deep dependency tree" do
139
- before do
140
- file "roles/starring.json", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
141
- file "roles/minor.json", {}
142
- file "cookbooks/quiche/metadata.rb", 'name "quiche"'
143
- file "cookbooks/quiche/recipes/default.rb", ""
144
- file "cookbooks/soup/metadata.rb", 'name "soup"'
145
- file "cookbooks/soup/recipes/chicken.rb", ""
146
- file "environments/desert.json", {}
147
- file "nodes/mort.json", { "chef_environment" => "desert", "run_list" => [ "role[starring]" ] }
148
- file "nodes/bart.json", { "run_list" => [ "role[minor]" ] }
149
- end
150
-
151
- it "knife deps reports all dependencies" do
152
- knife("deps /nodes/mort.json").should_succeed <<~EOM
153
- /environments/desert.json
154
- /roles/minor.json
155
- /cookbooks/quiche
156
- /cookbooks/soup
157
- /roles/starring.json
158
- /nodes/mort.json
159
- EOM
160
- end
161
- it "knife deps * reports all dependencies of all things" do
162
- knife("deps /nodes/*").should_succeed <<~EOM
163
- /roles/minor.json
164
- /nodes/bart.json
165
- /environments/desert.json
166
- /cookbooks/quiche
167
- /cookbooks/soup
168
- /roles/starring.json
169
- /nodes/mort.json
170
- EOM
171
- end
172
- it "knife deps a b reports all dependencies of a and b" do
173
- knife("deps /nodes/bart.json /nodes/mort.json").should_succeed <<~EOM
174
- /roles/minor.json
175
- /nodes/bart.json
176
- /environments/desert.json
177
- /cookbooks/quiche
178
- /cookbooks/soup
179
- /roles/starring.json
180
- /nodes/mort.json
181
- EOM
182
- end
183
- it "knife deps --tree /* shows dependencies in a tree" do
184
- knife("deps --tree /nodes/*").should_succeed <<~EOM
185
- /nodes/bart.json
186
- /roles/minor.json
187
- /nodes/mort.json
188
- /environments/desert.json
189
- /roles/starring.json
190
- /roles/minor.json
191
- /cookbooks/quiche
192
- /cookbooks/soup
193
- EOM
194
- end
195
- it "knife deps --tree --no-recurse shows only the first level of dependencies" do
196
- knife("deps --tree --no-recurse /nodes/*").should_succeed <<~EOM
197
- /nodes/bart.json
198
- /roles/minor.json
199
- /nodes/mort.json
200
- /environments/desert.json
201
- /roles/starring.json
202
- EOM
203
- end
204
- end
205
-
206
- context "circular dependencies" do
207
- when_the_repository "has cookbooks with circular dependencies" do
208
- before do
209
- file "cookbooks/foo/metadata.rb", 'name "foo"
210
- depends "bar"'
211
- file "cookbooks/bar/metadata.rb", 'name "bar"
212
- depends "baz"'
213
- file "cookbooks/baz/metadata.rb", 'name "baz"
214
- depends "foo"'
215
- end
216
-
217
- it "knife deps prints each once" do
218
- knife("deps /cookbooks/foo").should_succeed(
219
- stdout: "/cookbooks/baz\n/cookbooks/bar\n/cookbooks/foo\n"
220
- )
221
- end
222
- it "knife deps --tree prints each once" do
223
- knife("deps --tree /cookbooks/foo").should_succeed(
224
- stdout: "/cookbooks/foo\n /cookbooks/bar\n /cookbooks/baz\n /cookbooks/foo\n"
225
- )
226
- end
227
- end
228
- when_the_repository "has roles with circular dependencies" do
229
- before do
230
- file "roles/foo.json", { "run_list" => [ "role[bar]" ] }
231
- file "roles/bar.json", { "run_list" => [ "role[baz]" ] }
232
- file "roles/baz.json", { "run_list" => [ "role[foo]" ] }
233
- file "roles/self.json", { "run_list" => [ "role[self]" ] }
234
- end
235
- it "knife deps prints each once" do
236
- knife("deps /roles/foo.json /roles/self.json").should_succeed <<~EOM
237
- /roles/baz.json
238
- /roles/bar.json
239
- /roles/foo.json
240
- /roles/self.json
241
- EOM
242
- end
243
- it "knife deps --tree prints each once" do
244
- knife("deps --tree /roles/foo.json /roles/self.json") do
245
- expect(stdout).to eq("/roles/foo.json\n /roles/bar.json\n /roles/baz.json\n /roles/foo.json\n/roles/self.json\n /roles/self.json\n")
246
- expect(stderr).to eq("WARNING: No knife configuration file found. See https://docs.chef.io/config_rb/ for details.\n")
247
- end
248
- end
249
- end
250
- end
251
-
252
- context "missing objects" do
253
- when_the_repository "is empty" do
254
- it "knife deps /blah reports an error" do
255
- knife("deps /blah").should_fail(
256
- exit_code: 2,
257
- stdout: "/blah\n",
258
- stderr: "ERROR: /blah: No such file or directory\n"
259
- )
260
- end
261
- it "knife deps /roles/x.json reports an error" do
262
- knife("deps /roles/x.json").should_fail(
263
- exit_code: 2,
264
- stdout: "/roles/x.json\n",
265
- stderr: "ERROR: /roles/x.json: No such file or directory\n"
266
- )
267
- end
268
- it "knife deps /nodes/x.json reports an error" do
269
- knife("deps /nodes/x.json").should_fail(
270
- exit_code: 2,
271
- stdout: "/nodes/x.json\n",
272
- stderr: "ERROR: /nodes/x.json: No such file or directory\n"
273
- )
274
- end
275
- it "knife deps /environments/x.json reports an error" do
276
- knife("deps /environments/x.json").should_fail(
277
- exit_code: 2,
278
- stdout: "/environments/x.json\n",
279
- stderr: "ERROR: /environments/x.json: No such file or directory\n"
280
- )
281
- end
282
- it "knife deps /cookbooks/x reports an error" do
283
- knife("deps /cookbooks/x").should_fail(
284
- exit_code: 2,
285
- stdout: "/cookbooks/x\n",
286
- stderr: "ERROR: /cookbooks/x: No such file or directory\n"
287
- )
288
- end
289
- it "knife deps /data_bags/bag/item.json reports an error" do
290
- knife("deps /data_bags/bag/item.json").should_fail(
291
- exit_code: 2,
292
- stdout: "/data_bags/bag/item.json\n",
293
- stderr: "ERROR: /data_bags/bag/item.json: No such file or directory\n"
294
- )
295
- end
296
- end
297
- when_the_repository "is missing a dependent cookbook" do
298
- before do
299
- file "roles/starring.json", { "run_list" => [ "recipe[quiche]"] }
300
- end
301
- it "knife deps reports the cookbook, along with an error" do
302
- knife("deps /roles/starring.json").should_fail(
303
- exit_code: 2,
304
- stdout: "/cookbooks/quiche\n/roles/starring.json\n",
305
- stderr: "ERROR: /cookbooks/quiche: No such file or directory\n"
306
- )
307
- end
308
- end
309
- when_the_repository "is missing a dependent environment" do
310
- before do
311
- file "nodes/mort.json", { "chef_environment" => "desert" }
312
- end
313
- it "knife deps reports the environment, along with an error" do
314
- knife("deps /nodes/mort.json").should_fail(
315
- exit_code: 2,
316
- stdout: "/environments/desert.json\n/nodes/mort.json\n",
317
- stderr: "ERROR: /environments/desert.json: No such file or directory\n"
318
- )
319
- end
320
- end
321
- when_the_repository "is missing a dependent role" do
322
- before do
323
- file "roles/starring.json", { "run_list" => [ "role[minor]"] }
324
- end
325
- it "knife deps reports the role, along with an error" do
326
- knife("deps /roles/starring.json").should_fail(
327
- exit_code: 2,
328
- stdout: "/roles/minor.json\n/roles/starring.json\n",
329
- stderr: "ERROR: /roles/minor.json: No such file or directory\n"
330
- )
331
- end
332
- end
333
- end
334
- context "invalid objects" do
335
- when_the_repository "is empty" do
336
- it "knife deps / reports itself only" do
337
- knife("deps /").should_succeed("/\n")
338
- end
339
- it "knife deps /roles reports an error" do
340
- knife("deps /roles").should_fail(
341
- exit_code: 2,
342
- stderr: "ERROR: /roles: No such file or directory\n",
343
- stdout: "/roles\n"
344
- )
345
- end
346
- end
347
- when_the_repository "has a data bag" do
348
- before { file "data_bags/bag/item.json", "" }
349
- it "knife deps /data_bags/bag shows no dependencies" do
350
- knife("deps /data_bags/bag").should_succeed("/data_bags/bag\n")
351
- end
352
- end
353
- when_the_repository "has a cookbook" do
354
- before { file "cookbooks/blah/metadata.rb", 'name "blah"' }
355
- it "knife deps on a cookbook file shows no dependencies" do
356
- knife("deps /cookbooks/blah/metadata.rb").should_succeed(
357
- "/cookbooks/blah/metadata.rb\n"
358
- )
359
- end
360
- end
361
- end
362
- end
363
-
364
- context "remote" do
365
- include_context "default config options"
366
-
367
- when_the_chef_server "has a role with no run_list" do
368
- before { role "starring", {} }
369
- it "knife deps reports no dependencies" do
370
- knife("deps --remote /roles/starring.json").should_succeed "/roles/starring.json\n"
371
- end
372
- end
373
-
374
- when_the_chef_server "has a role with a default run_list" do
375
- before do
376
- role "starring", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
377
- role "minor", {}
378
- cookbook "quiche", "1.0.0", { "metadata.rb" => %Q{name "quiche"\nversion "1.0.0"\n}, "recipes" => { "default.rb" => "" } }
379
- cookbook "soup", "1.0.0", { "metadata.rb" => %Q{name "soup"\nversion "1.0.0"\n}, "recipes" => { "chicken.rb" => "" } }
380
- end
381
- it "knife deps reports all dependencies" do
382
- knife("deps --remote /roles/starring.json").should_succeed <<~EOM
383
- /roles/minor.json
384
- /cookbooks/quiche
385
- /cookbooks/soup
386
- /roles/starring.json
387
- EOM
388
- end
389
- end
390
-
391
- when_the_chef_server "has a role with an env_run_list" do
392
- before do
393
- role "starring", { "env_run_lists" => { "desert" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} } }
394
- role "minor", {}
395
- cookbook "quiche", "1.0.0", { "metadata.rb" => %Q{name "quiche"\nversion "1.0.0"\n}, "recipes" => { "default.rb" => "" } }
396
- cookbook "soup", "1.0.0", { "metadata.rb" => %Q{name "soup"\nversion "1.0.0"\n}, "recipes" => { "chicken.rb" => "" } }
397
- end
398
- it "knife deps reports all dependencies" do
399
- knife("deps --remote /roles/starring.json").should_succeed <<~EOM
400
- /roles/minor.json
401
- /cookbooks/quiche
402
- /cookbooks/soup
403
- /roles/starring.json
404
- EOM
405
- end
406
- end
407
-
408
- when_the_chef_server "has a node with no environment or run_list" do
409
- before { node "mort", {} }
410
- it "knife deps reports just the node" do
411
- knife("deps --remote /nodes/mort.json").should_succeed "/nodes/mort.json\n"
412
- end
413
- end
414
- when_the_chef_server "has a node with an environment" do
415
- before do
416
- environment "desert", {}
417
- node "mort", { "chef_environment" => "desert" }
418
- end
419
- it "knife deps reports just the node" do
420
- knife("deps --remote /nodes/mort.json").should_succeed "/environments/desert.json\n/nodes/mort.json\n"
421
- end
422
- end
423
- when_the_chef_server "has a node with roles and recipes in its run_list" do
424
- before do
425
- role "minor", {}
426
- cookbook "quiche", "1.0.0", { "metadata.rb" => %Q{name "quiche"\nversion "1.0.0"\n}, "recipes" => { "default.rb" => "" } }
427
- cookbook "soup", "1.0.0", { "metadata.rb" => %Q{name "soup"\nversion "1.0.0"\n}, "recipes" => { "chicken.rb" => "" } }
428
- node "mort", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
429
- end
430
- it "knife deps reports just the node" do
431
- knife("deps --remote /nodes/mort.json").should_succeed <<~EOM
432
- /roles/minor.json
433
- /cookbooks/quiche
434
- /cookbooks/soup
435
- /nodes/mort.json
436
- EOM
437
- end
438
- end
439
- when_the_chef_server "has a cookbook with no dependencies" do
440
- before do
441
- cookbook "quiche", "1.0.0", { "metadata.rb" => %Q{name "quiche"\nversion "1.0.0"\n}, "recipes" => { "default.rb" => "" } }
442
- end
443
- it "knife deps reports just the cookbook" do
444
- knife("deps --remote /cookbooks/quiche").should_succeed "/cookbooks/quiche\n"
445
- end
446
- end
447
- when_the_chef_server "has a cookbook with dependencies" do
448
- before do
449
- cookbook "kettle", "1.0.0", { "metadata.rb" => %Q{name "kettle"\nversion "1.0.0"\n} }
450
- cookbook "quiche", "1.0.0", { "metadata.rb" => 'name "quiche"
451
- depends "kettle"', "recipes" => { "default.rb" => "" } }
452
- end
453
- it "knife deps reports the cookbook and its dependencies" do
454
- knife("deps --remote /cookbooks/quiche").should_succeed "/cookbooks/kettle\n/cookbooks/quiche\n"
455
- end
456
- end
457
- when_the_chef_server "has a data bag" do
458
- before { data_bag "bag", { "item" => {} } }
459
- it "knife deps reports just the data bag" do
460
- knife("deps --remote /data_bags/bag/item.json").should_succeed "/data_bags/bag/item.json\n"
461
- end
462
- end
463
- when_the_chef_server "has an environment" do
464
- before { environment "desert", {} }
465
- it "knife deps reports just the environment" do
466
- knife("deps --remote /environments/desert.json").should_succeed "/environments/desert.json\n"
467
- end
468
- end
469
- when_the_chef_server "has a deep dependency tree" do
470
- before do
471
- role "starring", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} }
472
- role "minor", {}
473
- cookbook "quiche", "1.0.0", { "metadata.rb" => %Q{name "quiche"\nversion "1.0.0"\n}, "recipes" => { "default.rb" => "" } }
474
- cookbook "soup", "1.0.0", { "metadata.rb" => %Q{name "soup"\nversion "1.0.0"\n}, "recipes" => { "chicken.rb" => "" } }
475
- environment "desert", {}
476
- node "mort", { "chef_environment" => "desert", "run_list" => [ "role[starring]" ] }
477
- node "bart", { "run_list" => [ "role[minor]" ] }
478
- end
479
-
480
- it "knife deps reports all dependencies" do
481
- knife("deps --remote /nodes/mort.json").should_succeed <<~EOM
482
- /environments/desert.json
483
- /roles/minor.json
484
- /cookbooks/quiche
485
- /cookbooks/soup
486
- /roles/starring.json
487
- /nodes/mort.json
488
- EOM
489
- end
490
- it "knife deps * reports all dependencies of all things" do
491
- knife("deps --remote /nodes/*").should_succeed <<~EOM
492
- /roles/minor.json
493
- /nodes/bart.json
494
- /environments/desert.json
495
- /cookbooks/quiche
496
- /cookbooks/soup
497
- /roles/starring.json
498
- /nodes/mort.json
499
- EOM
500
- end
501
- it "knife deps a b reports all dependencies of a and b" do
502
- knife("deps --remote /nodes/bart.json /nodes/mort.json").should_succeed <<~EOM
503
- /roles/minor.json
504
- /nodes/bart.json
505
- /environments/desert.json
506
- /cookbooks/quiche
507
- /cookbooks/soup
508
- /roles/starring.json
509
- /nodes/mort.json
510
- EOM
511
- end
512
- it "knife deps --tree /* shows dependencies in a tree" do
513
- knife("deps --remote --tree /nodes/*").should_succeed <<~EOM
514
- /nodes/bart.json
515
- /roles/minor.json
516
- /nodes/mort.json
517
- /environments/desert.json
518
- /roles/starring.json
519
- /roles/minor.json
520
- /cookbooks/quiche
521
- /cookbooks/soup
522
- EOM
523
- end
524
- it "knife deps --tree --no-recurse shows only the first level of dependencies" do
525
- knife("deps --remote --tree --no-recurse /nodes/*").should_succeed <<~EOM
526
- /nodes/bart.json
527
- /roles/minor.json
528
- /nodes/mort.json
529
- /environments/desert.json
530
- /roles/starring.json
531
- EOM
532
- end
533
- end
534
-
535
- context "circular dependencies" do
536
- when_the_chef_server "has cookbooks with circular dependencies" do
537
- before do
538
- cookbook "foo", "1.0.0", { "metadata.rb" => 'name "foo"
539
- depends "bar"' }
540
- cookbook "bar", "1.0.0", { "metadata.rb" => 'name "bar"
541
- depends "baz"' }
542
- cookbook "baz", "1.0.0", { "metadata.rb" => 'name "baz"
543
- depends "foo"' }
544
- cookbook "self", "1.0.0", { "metadata.rb" => 'name "self"
545
- depends "self"' }
546
- end
547
- it "knife deps prints each once" do
548
- knife("deps --remote /cookbooks/foo /cookbooks/self").should_succeed <<~EOM
549
- /cookbooks/baz
550
- /cookbooks/bar
551
- /cookbooks/foo
552
- /cookbooks/self
553
- EOM
554
- end
555
- it "knife deps --tree prints each once" do
556
- knife("deps --remote --tree /cookbooks/foo /cookbooks/self").should_succeed <<~EOM
557
- /cookbooks/foo
558
- /cookbooks/bar
559
- /cookbooks/baz
560
- /cookbooks/foo
561
- /cookbooks/self
562
- /cookbooks/self
563
- EOM
564
- end
565
- end
566
- when_the_chef_server "has roles with circular dependencies" do
567
- before do
568
- role "foo", { "run_list" => [ "role[bar]" ] }
569
- role "bar", { "run_list" => [ "role[baz]" ] }
570
- role "baz", { "run_list" => [ "role[foo]" ] }
571
- role "self", { "run_list" => [ "role[self]" ] }
572
- end
573
- it "knife deps prints each once" do
574
- knife("deps --remote /roles/foo.json /roles/self.json").should_succeed <<~EOM
575
- /roles/baz.json
576
- /roles/bar.json
577
- /roles/foo.json
578
- /roles/self.json
579
- EOM
580
- end
581
- it "knife deps --tree prints each once" do
582
- knife("deps --remote --tree /roles/foo.json /roles/self.json") do
583
- expect(stdout).to eq("/roles/foo.json\n /roles/bar.json\n /roles/baz.json\n /roles/foo.json\n/roles/self.json\n /roles/self.json\n")
584
- expect(stderr).to eq("WARNING: No knife configuration file found. See https://docs.chef.io/config_rb/ for details.\n")
585
- end
586
- end
587
- end
588
- end
589
-
590
- context "missing objects" do
591
- when_the_chef_server "is empty" do
592
- it "knife deps /blah reports an error" do
593
- knife("deps --remote /blah").should_fail(
594
- exit_code: 2,
595
- stdout: "/blah\n",
596
- stderr: "ERROR: /blah: No such file or directory\n"
597
- )
598
- end
599
- it "knife deps /roles/x.json reports an error" do
600
- knife("deps --remote /roles/x.json").should_fail(
601
- exit_code: 2,
602
- stdout: "/roles/x.json\n",
603
- stderr: "ERROR: /roles/x.json: No such file or directory\n"
604
- )
605
- end
606
- it "knife deps /nodes/x.json reports an error" do
607
- knife("deps --remote /nodes/x.json").should_fail(
608
- exit_code: 2,
609
- stdout: "/nodes/x.json\n",
610
- stderr: "ERROR: /nodes/x.json: No such file or directory\n"
611
- )
612
- end
613
- it "knife deps /environments/x.json reports an error" do
614
- knife("deps --remote /environments/x.json").should_fail(
615
- exit_code: 2,
616
- stdout: "/environments/x.json\n",
617
- stderr: "ERROR: /environments/x.json: No such file or directory\n"
618
- )
619
- end
620
- it "knife deps /cookbooks/x reports an error" do
621
- knife("deps --remote /cookbooks/x").should_fail(
622
- exit_code: 2,
623
- stdout: "/cookbooks/x\n",
624
- stderr: "ERROR: /cookbooks/x: No such file or directory\n"
625
- )
626
- end
627
- it "knife deps /data_bags/bag/item reports an error" do
628
- knife("deps --remote /data_bags/bag/item.json").should_fail(
629
- exit_code: 2,
630
- stdout: "/data_bags/bag/item.json\n",
631
- stderr: "ERROR: /data_bags/bag/item.json: No such file or directory\n"
632
- )
633
- end
634
- end
635
- when_the_chef_server "is missing a dependent cookbook" do
636
- before do
637
- role "starring", { "run_list" => [ "recipe[quiche]"] }
638
- end
639
- it "knife deps reports the cookbook, along with an error" do
640
- knife("deps --remote /roles/starring.json").should_fail(
641
- exit_code: 2,
642
- stdout: "/cookbooks/quiche\n/roles/starring.json\n",
643
- stderr: "ERROR: /cookbooks/quiche: No such file or directory\n"
644
- )
645
- end
646
- end
647
- when_the_chef_server "is missing a dependent environment" do
648
- before do
649
- node "mort", { "chef_environment" => "desert" }
650
- end
651
- it "knife deps reports the environment, along with an error" do
652
- knife("deps --remote /nodes/mort.json").should_fail(
653
- exit_code: 2,
654
- stdout: "/environments/desert.json\n/nodes/mort.json\n",
655
- stderr: "ERROR: /environments/desert.json: No such file or directory\n"
656
- )
657
- end
658
- end
659
- when_the_chef_server "is missing a dependent role" do
660
- before do
661
- role "starring", { "run_list" => [ "role[minor]"] }
662
- end
663
- it "knife deps reports the role, along with an error" do
664
- knife("deps --remote /roles/starring.json").should_fail(
665
- exit_code: 2,
666
- stdout: "/roles/minor.json\n/roles/starring.json\n",
667
- stderr: "ERROR: /roles/minor.json: No such file or directory\n"
668
- )
669
- end
670
- end
671
- end
672
- context "invalid objects" do
673
- when_the_chef_server "is empty" do
674
- it "knife deps / reports an error" do
675
- knife("deps --remote /").should_succeed("/\n")
676
- end
677
- it "knife deps /roles reports an error" do
678
- knife("deps --remote /roles").should_succeed("/roles\n")
679
- end
680
- end
681
- when_the_chef_server "has a data bag" do
682
- before { data_bag "bag", { "item" => {} } }
683
- it "knife deps /data_bags/bag shows no dependencies" do
684
- knife("deps --remote /data_bags/bag").should_succeed("/data_bags/bag\n")
685
- end
686
- end
687
- when_the_chef_server "has a cookbook" do
688
- before do
689
- cookbook "blah", "1.0.0", { "metadata.rb" => 'name "blah"' }
690
- end
691
- it "knife deps on a cookbook file shows no dependencies" do
692
- knife("deps --remote /cookbooks/blah/metadata.rb").should_succeed(
693
- "/cookbooks/blah/metadata.rb\n"
694
- )
695
- end
696
- end
697
- end
698
- end
699
-
700
- it "knife deps --no-recurse reports an error" do
701
- knife("deps --no-recurse /").should_fail("ERROR: --no-recurse requires --tree\n")
702
- end
703
- end