chef 16.17.18-universal-mingw32 → 17.0.242-universal-mingw32

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