chef 16.17.51-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 (647) 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 +8 -9
  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/archive_file_spec.rb +1 -13
  282. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  283. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  284. data/spec/unit/resource/mount_spec.rb +0 -10
  285. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  286. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  287. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  288. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  289. data/spec/unit/resource/windows_task_spec.rb +1 -1
  290. data/spec/unit/resource_spec.rb +0 -5
  291. data/spec/unit/user_spec.rb +1 -1
  292. data/spec/unit/user_v1_spec.rb +6 -4
  293. data/tasks/rspec.rb +15 -7
  294. metadata +19 -382
  295. data/bin/knife +0 -24
  296. data/lib/chef/application/knife.rb +0 -234
  297. data/lib/chef/application/windows_service.rb +0 -338
  298. data/lib/chef/application/windows_service_manager.rb +0 -205
  299. data/lib/chef/chef_fs/knife.rb +0 -160
  300. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  301. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  302. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  303. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  304. data/lib/chef/knife/acl_add.rb +0 -57
  305. data/lib/chef/knife/acl_base.rb +0 -183
  306. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  307. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  308. data/lib/chef/knife/acl_remove.rb +0 -62
  309. data/lib/chef/knife/acl_show.rb +0 -56
  310. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  311. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  312. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  313. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  314. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  315. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  316. data/lib/chef/knife/bootstrap.rb +0 -1192
  317. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  318. data/lib/chef/knife/client_create.rb +0 -101
  319. data/lib/chef/knife/client_delete.rb +0 -62
  320. data/lib/chef/knife/client_edit.rb +0 -52
  321. data/lib/chef/knife/client_key_create.rb +0 -73
  322. data/lib/chef/knife/client_key_delete.rb +0 -80
  323. data/lib/chef/knife/client_key_edit.rb +0 -83
  324. data/lib/chef/knife/client_key_list.rb +0 -73
  325. data/lib/chef/knife/client_key_show.rb +0 -80
  326. data/lib/chef/knife/client_list.rb +0 -41
  327. data/lib/chef/knife/client_reregister.rb +0 -58
  328. data/lib/chef/knife/client_show.rb +0 -48
  329. data/lib/chef/knife/config_get.rb +0 -39
  330. data/lib/chef/knife/config_get_profile.rb +0 -37
  331. data/lib/chef/knife/config_list.rb +0 -139
  332. data/lib/chef/knife/config_list_profiles.rb +0 -37
  333. data/lib/chef/knife/config_show.rb +0 -127
  334. data/lib/chef/knife/config_use.rb +0 -61
  335. data/lib/chef/knife/config_use_profile.rb +0 -47
  336. data/lib/chef/knife/configure.rb +0 -150
  337. data/lib/chef/knife/configure_client.rb +0 -48
  338. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  339. data/lib/chef/knife/cookbook_delete.rb +0 -151
  340. data/lib/chef/knife/cookbook_download.rb +0 -142
  341. data/lib/chef/knife/cookbook_list.rb +0 -47
  342. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  343. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  344. data/lib/chef/knife/cookbook_show.rb +0 -98
  345. data/lib/chef/knife/cookbook_upload.rb +0 -292
  346. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  347. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  348. data/lib/chef/knife/core/formatting_options.rb +0 -49
  349. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  350. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  351. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  352. data/lib/chef/knife/core/node_editor.rb +0 -130
  353. data/lib/chef/knife/core/node_presenter.rb +0 -133
  354. data/lib/chef/knife/core/object_loader.rb +0 -115
  355. data/lib/chef/knife/core/status_presenter.rb +0 -147
  356. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  357. data/lib/chef/knife/core/text_formatter.rb +0 -85
  358. data/lib/chef/knife/core/ui.rb +0 -338
  359. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  360. data/lib/chef/knife/data_bag_create.rb +0 -81
  361. data/lib/chef/knife/data_bag_delete.rb +0 -49
  362. data/lib/chef/knife/data_bag_edit.rb +0 -74
  363. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  364. data/lib/chef/knife/data_bag_list.rb +0 -42
  365. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  366. data/lib/chef/knife/data_bag_show.rb +0 -69
  367. data/lib/chef/knife/delete.rb +0 -125
  368. data/lib/chef/knife/deps.rb +0 -156
  369. data/lib/chef/knife/diff.rb +0 -83
  370. data/lib/chef/knife/download.rb +0 -84
  371. data/lib/chef/knife/edit.rb +0 -88
  372. data/lib/chef/knife/environment_compare.rb +0 -128
  373. data/lib/chef/knife/environment_create.rb +0 -52
  374. data/lib/chef/knife/environment_delete.rb +0 -44
  375. data/lib/chef/knife/environment_edit.rb +0 -44
  376. data/lib/chef/knife/environment_from_file.rb +0 -84
  377. data/lib/chef/knife/environment_list.rb +0 -41
  378. data/lib/chef/knife/environment_show.rb +0 -47
  379. data/lib/chef/knife/exec.rb +0 -99
  380. data/lib/chef/knife/group_add.rb +0 -55
  381. data/lib/chef/knife/group_create.rb +0 -49
  382. data/lib/chef/knife/group_destroy.rb +0 -53
  383. data/lib/chef/knife/group_list.rb +0 -43
  384. data/lib/chef/knife/group_remove.rb +0 -56
  385. data/lib/chef/knife/group_show.rb +0 -49
  386. data/lib/chef/knife/key_create.rb +0 -112
  387. data/lib/chef/knife/key_create_base.rb +0 -50
  388. data/lib/chef/knife/key_delete.rb +0 -55
  389. data/lib/chef/knife/key_edit.rb +0 -118
  390. data/lib/chef/knife/key_edit_base.rb +0 -55
  391. data/lib/chef/knife/key_list.rb +0 -90
  392. data/lib/chef/knife/key_list_base.rb +0 -45
  393. data/lib/chef/knife/key_show.rb +0 -53
  394. data/lib/chef/knife/list.rb +0 -177
  395. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  396. data/lib/chef/knife/node_create.rb +0 -47
  397. data/lib/chef/knife/node_delete.rb +0 -46
  398. data/lib/chef/knife/node_edit.rb +0 -70
  399. data/lib/chef/knife/node_environment_set.rb +0 -53
  400. data/lib/chef/knife/node_from_file.rb +0 -51
  401. data/lib/chef/knife/node_list.rb +0 -44
  402. data/lib/chef/knife/node_policy_set.rb +0 -79
  403. data/lib/chef/knife/node_run_list_add.rb +0 -104
  404. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  405. data/lib/chef/knife/node_run_list_set.rb +0 -66
  406. data/lib/chef/knife/node_show.rb +0 -63
  407. data/lib/chef/knife/null.rb +0 -12
  408. data/lib/chef/knife/raw.rb +0 -123
  409. data/lib/chef/knife/recipe_list.rb +0 -32
  410. data/lib/chef/knife/rehash.rb +0 -50
  411. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  412. data/lib/chef/knife/role_create.rb +0 -53
  413. data/lib/chef/knife/role_delete.rb +0 -46
  414. data/lib/chef/knife/role_edit.rb +0 -45
  415. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  416. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  417. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  418. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  419. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  420. data/lib/chef/knife/role_from_file.rb +0 -51
  421. data/lib/chef/knife/role_list.rb +0 -42
  422. data/lib/chef/knife/role_run_list_add.rb +0 -87
  423. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  424. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  425. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  426. data/lib/chef/knife/role_run_list_set.rb +0 -69
  427. data/lib/chef/knife/role_show.rb +0 -48
  428. data/lib/chef/knife/search.rb +0 -194
  429. data/lib/chef/knife/serve.rb +0 -65
  430. data/lib/chef/knife/show.rb +0 -72
  431. data/lib/chef/knife/ssh.rb +0 -645
  432. data/lib/chef/knife/ssl_check.rb +0 -284
  433. data/lib/chef/knife/ssl_fetch.rb +0 -161
  434. data/lib/chef/knife/status.rb +0 -95
  435. data/lib/chef/knife/supermarket_download.rb +0 -121
  436. data/lib/chef/knife/supermarket_install.rb +0 -192
  437. data/lib/chef/knife/supermarket_list.rb +0 -76
  438. data/lib/chef/knife/supermarket_search.rb +0 -53
  439. data/lib/chef/knife/supermarket_share.rb +0 -166
  440. data/lib/chef/knife/supermarket_show.rb +0 -66
  441. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  442. data/lib/chef/knife/tag_create.rb +0 -52
  443. data/lib/chef/knife/tag_delete.rb +0 -60
  444. data/lib/chef/knife/tag_list.rb +0 -47
  445. data/lib/chef/knife/upload.rb +0 -86
  446. data/lib/chef/knife/user_create.rb +0 -107
  447. data/lib/chef/knife/user_delete.rb +0 -44
  448. data/lib/chef/knife/user_dissociate.rb +0 -42
  449. data/lib/chef/knife/user_edit.rb +0 -52
  450. data/lib/chef/knife/user_invite_add.rb +0 -43
  451. data/lib/chef/knife/user_invite_list.rb +0 -34
  452. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  453. data/lib/chef/knife/user_key_create.rb +0 -73
  454. data/lib/chef/knife/user_key_delete.rb +0 -80
  455. data/lib/chef/knife/user_key_edit.rb +0 -83
  456. data/lib/chef/knife/user_key_list.rb +0 -73
  457. data/lib/chef/knife/user_key_show.rb +0 -80
  458. data/lib/chef/knife/user_list.rb +0 -42
  459. data/lib/chef/knife/user_reregister.rb +0 -59
  460. data/lib/chef/knife/user_show.rb +0 -48
  461. data/lib/chef/knife/xargs.rb +0 -282
  462. data/lib/chef/knife/yaml_convert.rb +0 -91
  463. data/lib/chef/knife.rb +0 -665
  464. data/lib/chef/resource/user/dscl_user.rb +0 -35
  465. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  466. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  467. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  468. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  469. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  470. data/spec/functional/knife/configure_spec.rb +0 -33
  471. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  472. data/spec/functional/knife/exec_spec.rb +0 -55
  473. data/spec/functional/knife/rehash_spec.rb +0 -39
  474. data/spec/functional/knife/smoke_test.rb +0 -42
  475. data/spec/functional/knife/ssh_spec.rb +0 -352
  476. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  477. data/spec/functional/resource/windows_service_spec.rb +0 -105
  478. data/spec/functional/win32/service_manager_spec.rb +0 -220
  479. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  480. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  481. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  482. data/spec/integration/knife/chefignore_spec.rb +0 -301
  483. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  484. data/spec/integration/knife/client_create_spec.rb +0 -70
  485. data/spec/integration/knife/client_delete_spec.rb +0 -64
  486. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  487. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  488. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  489. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  490. data/spec/integration/knife/client_list_spec.rb +0 -49
  491. data/spec/integration/knife/client_show_spec.rb +0 -37
  492. data/spec/integration/knife/common_options_spec.rb +0 -174
  493. data/spec/integration/knife/config_list_spec.rb +0 -220
  494. data/spec/integration/knife/config_show_spec.rb +0 -192
  495. data/spec/integration/knife/config_use_spec.rb +0 -198
  496. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  497. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  498. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  499. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  500. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  501. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  502. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  503. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  504. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  505. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  506. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  507. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  508. data/spec/integration/knife/delete_spec.rb +0 -1018
  509. data/spec/integration/knife/deps_spec.rb +0 -703
  510. data/spec/integration/knife/diff_spec.rb +0 -605
  511. data/spec/integration/knife/download_spec.rb +0 -1336
  512. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  513. data/spec/integration/knife/environment_create_spec.rb +0 -41
  514. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  515. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  516. data/spec/integration/knife/environment_list_spec.rb +0 -42
  517. data/spec/integration/knife/environment_show_spec.rb +0 -77
  518. data/spec/integration/knife/list_spec.rb +0 -1060
  519. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  520. data/spec/integration/knife/node_create_spec.rb +0 -47
  521. data/spec/integration/knife/node_delete_spec.rb +0 -48
  522. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  523. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  524. data/spec/integration/knife/node_list_spec.rb +0 -45
  525. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  526. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  527. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  528. data/spec/integration/knife/node_show_spec.rb +0 -36
  529. data/spec/integration/knife/raw_spec.rb +0 -297
  530. data/spec/integration/knife/redirection_spec.rb +0 -64
  531. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  532. data/spec/integration/knife/role_create_spec.rb +0 -41
  533. data/spec/integration/knife/role_delete_spec.rb +0 -48
  534. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  535. data/spec/integration/knife/role_list_spec.rb +0 -45
  536. data/spec/integration/knife/role_show_spec.rb +0 -51
  537. data/spec/integration/knife/search_node_spec.rb +0 -40
  538. data/spec/integration/knife/serve_spec.rb +0 -92
  539. data/spec/integration/knife/show_spec.rb +0 -197
  540. data/spec/integration/knife/upload_spec.rb +0 -1616
  541. data/spec/support/shared/functional/knife.rb +0 -37
  542. data/spec/support/shared/functional/win32_service.rb +0 -57
  543. data/spec/support/shared/integration/knife_support.rb +0 -192
  544. data/spec/support/shared/unit/knife_shared.rb +0 -39
  545. data/spec/unit/application/knife_spec.rb +0 -241
  546. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  547. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  548. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  549. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  550. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  551. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  552. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  553. data/spec/unit/knife/client_create_spec.rb +0 -169
  554. data/spec/unit/knife/client_delete_spec.rb +0 -99
  555. data/spec/unit/knife/client_edit_spec.rb +0 -53
  556. data/spec/unit/knife/client_list_spec.rb +0 -34
  557. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  558. data/spec/unit/knife/client_show_spec.rb +0 -52
  559. data/spec/unit/knife/configure_client_spec.rb +0 -81
  560. data/spec/unit/knife/configure_spec.rb +0 -190
  561. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  562. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  563. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  564. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  565. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  566. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  567. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  568. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  569. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  570. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  571. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  572. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  573. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  574. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  575. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  576. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  577. data/spec/unit/knife/core/ui_spec.rb +0 -656
  578. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  579. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  580. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  581. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  582. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  583. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  584. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  585. data/spec/unit/knife/environment_create_spec.rb +0 -91
  586. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  587. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  588. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  589. data/spec/unit/knife/environment_list_spec.rb +0 -54
  590. data/spec/unit/knife/environment_show_spec.rb +0 -52
  591. data/spec/unit/knife/key_create_spec.rb +0 -223
  592. data/spec/unit/knife/key_delete_spec.rb +0 -133
  593. data/spec/unit/knife/key_edit_spec.rb +0 -264
  594. data/spec/unit/knife/key_helper.rb +0 -74
  595. data/spec/unit/knife/key_list_spec.rb +0 -216
  596. data/spec/unit/knife/key_show_spec.rb +0 -126
  597. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  598. data/spec/unit/knife/node_delete_spec.rb +0 -77
  599. data/spec/unit/knife/node_edit_spec.rb +0 -116
  600. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  601. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  602. data/spec/unit/knife/node_list_spec.rb +0 -62
  603. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  604. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  605. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  606. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  607. data/spec/unit/knife/node_show_spec.rb +0 -65
  608. data/spec/unit/knife/raw_spec.rb +0 -43
  609. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  610. data/spec/unit/knife/role_create_spec.rb +0 -80
  611. data/spec/unit/knife/role_delete_spec.rb +0 -67
  612. data/spec/unit/knife/role_edit_spec.rb +0 -77
  613. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  614. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  615. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  616. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  617. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  618. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  619. data/spec/unit/knife/role_list_spec.rb +0 -54
  620. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  621. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  622. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  623. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  624. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  625. data/spec/unit/knife/role_show_spec.rb +0 -59
  626. data/spec/unit/knife/ssh_spec.rb +0 -403
  627. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  628. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  629. data/spec/unit/knife/status_spec.rb +0 -112
  630. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  631. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  632. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  633. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  634. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  635. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  636. data/spec/unit/knife/tag_create_spec.rb +0 -23
  637. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  638. data/spec/unit/knife/tag_list_spec.rb +0 -23
  639. data/spec/unit/knife/user_create_spec.rb +0 -184
  640. data/spec/unit/knife/user_delete_spec.rb +0 -46
  641. data/spec/unit/knife/user_edit_spec.rb +0 -48
  642. data/spec/unit/knife/user_list_spec.rb +0 -36
  643. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  644. data/spec/unit/knife/user_show_spec.rb +0 -46
  645. data/spec/unit/knife_spec.rb +0 -634
  646. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  647. 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