chef 16.18.30 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (675) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -22
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -2
  6. data/chef.gemspec +7 -10
  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 +5 -5
  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/checksum.rb +0 -6
  39. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  40. data/lib/chef/mixin/powershell_exec.rb +26 -7
  41. data/lib/chef/node/attribute.rb +9 -24
  42. data/lib/chef/node/immutable_collections.rb +13 -0
  43. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  44. data/lib/chef/node.rb +19 -20
  45. data/lib/chef/org.rb +3 -2
  46. data/lib/chef/platform/query_helpers.rb +2 -2
  47. data/lib/chef/policy_builder/policyfile.rb +0 -5
  48. data/lib/chef/property.rb +18 -0
  49. data/lib/chef/provider/cron.rb +2 -6
  50. data/lib/chef/provider/execute.rb +2 -1
  51. data/lib/chef/provider/file.rb +3 -3
  52. data/lib/chef/provider/git.rb +5 -7
  53. data/lib/chef/provider/group/dscl.rb +1 -1
  54. data/lib/chef/provider/group/groupadd.rb +3 -3
  55. data/lib/chef/provider/group/groupmod.rb +3 -3
  56. data/lib/chef/provider/group/pw.rb +3 -3
  57. data/lib/chef/provider/ifconfig.rb +2 -2
  58. data/lib/chef/provider/link.rb +2 -2
  59. data/lib/chef/provider/mount/aix.rb +3 -3
  60. data/lib/chef/provider/mount/mount.rb +5 -5
  61. data/lib/chef/provider/mount/windows.rb +1 -1
  62. data/lib/chef/provider/mount.rb +5 -5
  63. data/lib/chef/provider/package/apt.rb +27 -1
  64. data/lib/chef/provider/package/deb.rb +3 -3
  65. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  66. data/lib/chef/provider/package/portage.rb +2 -2
  67. data/lib/chef/provider/package/powershell.rb +0 -5
  68. data/lib/chef/provider/package/rubygems.rb +9 -15
  69. data/lib/chef/provider/package/windows.rb +3 -5
  70. data/lib/chef/provider/package/yum/yum_helper.py +11 -1
  71. data/lib/chef/provider/package.rb +17 -21
  72. data/lib/chef/provider/route.rb +2 -2
  73. data/lib/chef/provider/service/aixinit.rb +1 -1
  74. data/lib/chef/provider/service/debian.rb +1 -1
  75. data/lib/chef/provider/service/freebsd.rb +15 -21
  76. data/lib/chef/provider/service/macosx.rb +4 -4
  77. data/lib/chef/provider/service/systemd.rb +43 -14
  78. data/lib/chef/provider/service/upstart.rb +2 -13
  79. data/lib/chef/provider/service/windows.rb +12 -12
  80. data/lib/chef/provider/service.rb +6 -6
  81. data/lib/chef/provider/subversion.rb +10 -12
  82. data/lib/chef/provider/systemd_unit.rb +36 -10
  83. data/lib/chef/provider/template/content.rb +3 -7
  84. data/lib/chef/provider/user/dscl.rb +1 -1
  85. data/lib/chef/provider/user/mac.rb +17 -20
  86. data/lib/chef/provider/user/pw.rb +1 -1
  87. data/lib/chef/provider/user/windows.rb +1 -1
  88. data/lib/chef/provider/user.rb +2 -2
  89. data/lib/chef/provider/zypper_repository.rb +2 -2
  90. data/lib/chef/provider.rb +1 -1
  91. data/lib/chef/providers.rb +0 -1
  92. data/lib/chef/resource/alternatives.rb +6 -6
  93. data/lib/chef/resource/apt_package.rb +1 -1
  94. data/lib/chef/resource/apt_preference.rb +2 -2
  95. data/lib/chef/resource/apt_repository.rb +6 -6
  96. data/lib/chef/resource/apt_update.rb +3 -2
  97. data/lib/chef/resource/archive_file.rb +8 -9
  98. data/lib/chef/resource/breakpoint.rb +1 -1
  99. data/lib/chef/resource/build_essential.rb +2 -6
  100. data/lib/chef/resource/chef_client_config.rb +2 -2
  101. data/lib/chef/resource/chef_client_cron.rb +4 -4
  102. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  103. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  104. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  105. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  106. data/lib/chef/resource/chef_handler.rb +3 -7
  107. data/lib/chef/resource/chef_sleep.rb +1 -1
  108. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  109. data/lib/chef/resource/chocolatey_config.rb +2 -6
  110. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  111. data/lib/chef/resource/chocolatey_source.rb +4 -10
  112. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  113. data/lib/chef/resource/cron_access.rb +2 -4
  114. data/lib/chef/resource/dmg_package.rb +6 -10
  115. data/lib/chef/resource/dpkg_package.rb +1 -1
  116. data/lib/chef/resource/execute.rb +6 -1
  117. data/lib/chef/resource/file.rb +1 -1
  118. data/lib/chef/resource/group.rb +2 -2
  119. data/lib/chef/resource/homebrew_cask.rb +5 -15
  120. data/lib/chef/resource/homebrew_tap.rb +2 -6
  121. data/lib/chef/resource/hostname.rb +21 -17
  122. data/lib/chef/resource/http_request.rb +1 -1
  123. data/lib/chef/resource/kernel_module.rb +6 -17
  124. data/lib/chef/resource/locale.rb +3 -4
  125. data/lib/chef/resource/lwrp_base.rb +4 -0
  126. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  127. data/lib/chef/resource/mdadm.rb +53 -7
  128. data/lib/chef/resource/mount.rb +3 -2
  129. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  130. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  131. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  132. data/lib/chef/resource/plist.rb +7 -7
  133. data/lib/chef/resource/powershell_script.rb +1 -1
  134. data/lib/chef/resource/remote_file.rb +1 -1
  135. data/lib/chef/resource/rhsm_errata.rb +16 -1
  136. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  137. data/lib/chef/resource/rhsm_register.rb +12 -23
  138. data/lib/chef/resource/rhsm_repo.rb +2 -6
  139. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  140. data/lib/chef/resource/scm/git.rb +1 -1
  141. data/lib/chef/resource/sudo.rb +6 -6
  142. data/lib/chef/resource/support/client.erb +2 -6
  143. data/lib/chef/resource/sysctl.rb +2 -6
  144. data/lib/chef/resource/systemd_unit.rb +3 -3
  145. data/lib/chef/resource/template.rb +1 -1
  146. data/lib/chef/resource/timezone.rb +1 -3
  147. data/lib/chef/resource/user/mac_user.rb +1 -1
  148. data/lib/chef/resource/user_ulimit.rb +2 -3
  149. data/lib/chef/resource/windows_ad_join.rb +2 -6
  150. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  151. data/lib/chef/resource/windows_auto_run.rb +2 -5
  152. data/lib/chef/resource/windows_certificate.rb +207 -73
  153. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  154. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  155. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  156. data/lib/chef/resource/windows_dns_record.rb +2 -6
  157. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  158. data/lib/chef/resource/windows_env.rb +5 -4
  159. data/lib/chef/resource/windows_feature.rb +3 -9
  160. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  161. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  162. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  163. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  164. data/lib/chef/resource/windows_font.rb +2 -4
  165. data/lib/chef/resource/windows_pagefile.rb +2 -6
  166. data/lib/chef/resource/windows_path.rb +2 -2
  167. data/lib/chef/resource/windows_printer.rb +4 -4
  168. data/lib/chef/resource/windows_printer_port.rb +6 -6
  169. data/lib/chef/resource/windows_security_policy.rb +9 -12
  170. data/lib/chef/resource/windows_share.rb +14 -21
  171. data/lib/chef/resource/windows_shortcut.rb +4 -6
  172. data/lib/chef/resource/windows_task.rb +17 -5
  173. data/lib/chef/resource/windows_uac.rb +2 -4
  174. data/lib/chef/resource/windows_user_privilege.rb +26 -36
  175. data/lib/chef/resource/windows_workgroup.rb +1 -2
  176. data/lib/chef/resource.rb +1 -1
  177. data/lib/chef/resource_reporter.rb +1 -1
  178. data/lib/chef/resources.rb +0 -1
  179. data/lib/chef/shell/ext.rb +3 -3
  180. data/lib/chef/user.rb +0 -1
  181. data/lib/chef/user_v1.rb +3 -4
  182. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  183. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  184. data/lib/chef/version.rb +1 -1
  185. data/lib/chef/win32/api.rb +2 -9
  186. data/lib/chef/win32/registry.rb +4 -2
  187. data/lib/chef/win32/version.rb +2 -4
  188. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  189. data/spec/data/lwrp/resources/bar.rb +2 -0
  190. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  191. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  192. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  193. data/spec/data/lwrp/resources/foo.rb +2 -0
  194. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  195. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  196. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  197. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  198. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  199. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  200. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  201. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  202. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  203. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  206. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  207. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  208. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  209. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  210. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  211. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  212. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  213. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  214. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  215. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  216. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  217. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  218. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  219. data/spec/functional/resource/apt_package_spec.rb +1 -1
  220. data/spec/functional/resource/chocolatey_package_spec.rb +9 -0
  221. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  222. data/spec/functional/resource/dsc_script_spec.rb +1 -1
  223. data/spec/functional/resource/group_spec.rb +1 -5
  224. data/spec/functional/resource/link_spec.rb +0 -8
  225. data/spec/functional/resource/registry_spec.rb +8 -8
  226. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  227. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  228. data/spec/functional/resource/windows_font_spec.rb +1 -2
  229. data/spec/functional/resource/yum_package_spec.rb +0 -12
  230. data/spec/functional/shell_spec.rb +0 -5
  231. data/spec/functional/version_spec.rb +1 -1
  232. data/spec/functional/win32/registry_spec.rb +1 -1
  233. data/spec/integration/client/client_spec.rb +5 -2
  234. data/spec/integration/client/exit_code_spec.rb +1 -1
  235. data/spec/integration/client/ipv6_spec.rb +1 -1
  236. data/spec/integration/compliance/compliance_spec.rb +1 -1
  237. data/spec/integration/ohai/ohai_spec.rb +7 -6
  238. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  239. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  240. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  241. data/spec/integration/recipes/notifies_spec.rb +15 -1
  242. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  243. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  244. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  245. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  246. data/spec/spec_helper.rb +10 -17
  247. data/spec/support/chef_helpers.rb +0 -16
  248. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  249. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  250. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  251. data/spec/support/matchers/leak.rb +7 -9
  252. data/spec/support/platform_helpers.rb +1 -12
  253. data/spec/support/shared/integration/integration_helper.rb +0 -1
  254. data/spec/support/shared/unit/script_resource.rb +2 -2
  255. data/spec/unit/application/solo_spec.rb +2 -2
  256. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  257. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  258. data/spec/unit/client_spec.rb +4 -4
  259. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  260. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  261. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  262. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  263. data/spec/unit/compliance/runner_spec.rb +30 -4
  264. data/spec/unit/cookbook_version_spec.rb +0 -52
  265. data/spec/unit/daemon_spec.rb +5 -1
  266. data/spec/unit/data_bag_item_spec.rb +1 -6
  267. data/spec/unit/data_collector_spec.rb +2 -71
  268. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  269. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  270. data/spec/unit/lwrp_spec.rb +1 -1
  271. data/spec/unit/mixin/checksum_spec.rb +0 -28
  272. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  273. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  274. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  275. data/spec/unit/node/attribute_spec.rb +1 -1
  276. data/spec/unit/node_spec.rb +78 -0
  277. data/spec/unit/org_group_spec.rb +45 -0
  278. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  279. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  280. data/spec/unit/property_spec.rb +23 -22
  281. data/spec/unit/provider/cron_spec.rb +1 -35
  282. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  283. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  284. data/spec/unit/provider/group/pw_spec.rb +2 -2
  285. data/spec/unit/provider/group_spec.rb +1 -1
  286. data/spec/unit/provider/package/apt_spec.rb +84 -18
  287. data/spec/unit/provider/package/deb_spec.rb +3 -3
  288. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  289. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  290. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  291. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  292. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  293. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  294. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  295. data/spec/unit/provider/service/windows_spec.rb +2 -2
  296. data/spec/unit/provider/subversion_spec.rb +2 -2
  297. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  298. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  299. data/spec/unit/provider_spec.rb +0 -8
  300. data/spec/unit/resource/archive_file_spec.rb +1 -13
  301. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  302. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  303. data/spec/unit/resource/mount_spec.rb +0 -10
  304. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  305. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  306. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  307. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  308. data/spec/unit/resource/windows_task_spec.rb +1 -1
  309. data/spec/unit/resource_spec.rb +2 -7
  310. data/spec/unit/user_spec.rb +1 -1
  311. data/spec/unit/user_v1_spec.rb +6 -4
  312. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  313. data/tasks/rspec.rb +15 -7
  314. metadata +43 -388
  315. data/bin/knife +0 -24
  316. data/lib/chef/application/knife.rb +0 -234
  317. data/lib/chef/application/windows_service.rb +0 -338
  318. data/lib/chef/application/windows_service_manager.rb +0 -205
  319. data/lib/chef/chef_fs/knife.rb +0 -160
  320. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  321. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  322. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  323. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  324. data/lib/chef/knife/acl_add.rb +0 -57
  325. data/lib/chef/knife/acl_base.rb +0 -183
  326. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  327. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  328. data/lib/chef/knife/acl_remove.rb +0 -62
  329. data/lib/chef/knife/acl_show.rb +0 -56
  330. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  331. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  332. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  333. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  334. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  335. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  336. data/lib/chef/knife/bootstrap.rb +0 -1192
  337. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  338. data/lib/chef/knife/client_create.rb +0 -101
  339. data/lib/chef/knife/client_delete.rb +0 -62
  340. data/lib/chef/knife/client_edit.rb +0 -52
  341. data/lib/chef/knife/client_key_create.rb +0 -73
  342. data/lib/chef/knife/client_key_delete.rb +0 -80
  343. data/lib/chef/knife/client_key_edit.rb +0 -83
  344. data/lib/chef/knife/client_key_list.rb +0 -73
  345. data/lib/chef/knife/client_key_show.rb +0 -80
  346. data/lib/chef/knife/client_list.rb +0 -41
  347. data/lib/chef/knife/client_reregister.rb +0 -58
  348. data/lib/chef/knife/client_show.rb +0 -48
  349. data/lib/chef/knife/config_get.rb +0 -39
  350. data/lib/chef/knife/config_get_profile.rb +0 -37
  351. data/lib/chef/knife/config_list.rb +0 -139
  352. data/lib/chef/knife/config_list_profiles.rb +0 -37
  353. data/lib/chef/knife/config_show.rb +0 -127
  354. data/lib/chef/knife/config_use.rb +0 -61
  355. data/lib/chef/knife/config_use_profile.rb +0 -47
  356. data/lib/chef/knife/configure.rb +0 -150
  357. data/lib/chef/knife/configure_client.rb +0 -48
  358. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  359. data/lib/chef/knife/cookbook_delete.rb +0 -151
  360. data/lib/chef/knife/cookbook_download.rb +0 -142
  361. data/lib/chef/knife/cookbook_list.rb +0 -47
  362. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  363. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  364. data/lib/chef/knife/cookbook_show.rb +0 -98
  365. data/lib/chef/knife/cookbook_upload.rb +0 -292
  366. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  367. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  368. data/lib/chef/knife/core/formatting_options.rb +0 -49
  369. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  370. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  371. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  372. data/lib/chef/knife/core/node_editor.rb +0 -130
  373. data/lib/chef/knife/core/node_presenter.rb +0 -133
  374. data/lib/chef/knife/core/object_loader.rb +0 -115
  375. data/lib/chef/knife/core/status_presenter.rb +0 -147
  376. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  377. data/lib/chef/knife/core/text_formatter.rb +0 -85
  378. data/lib/chef/knife/core/ui.rb +0 -338
  379. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  380. data/lib/chef/knife/data_bag_create.rb +0 -81
  381. data/lib/chef/knife/data_bag_delete.rb +0 -49
  382. data/lib/chef/knife/data_bag_edit.rb +0 -74
  383. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  384. data/lib/chef/knife/data_bag_list.rb +0 -42
  385. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  386. data/lib/chef/knife/data_bag_show.rb +0 -69
  387. data/lib/chef/knife/delete.rb +0 -125
  388. data/lib/chef/knife/deps.rb +0 -156
  389. data/lib/chef/knife/diff.rb +0 -83
  390. data/lib/chef/knife/download.rb +0 -84
  391. data/lib/chef/knife/edit.rb +0 -88
  392. data/lib/chef/knife/environment_compare.rb +0 -128
  393. data/lib/chef/knife/environment_create.rb +0 -52
  394. data/lib/chef/knife/environment_delete.rb +0 -44
  395. data/lib/chef/knife/environment_edit.rb +0 -44
  396. data/lib/chef/knife/environment_from_file.rb +0 -84
  397. data/lib/chef/knife/environment_list.rb +0 -41
  398. data/lib/chef/knife/environment_show.rb +0 -47
  399. data/lib/chef/knife/exec.rb +0 -99
  400. data/lib/chef/knife/group_add.rb +0 -55
  401. data/lib/chef/knife/group_create.rb +0 -49
  402. data/lib/chef/knife/group_destroy.rb +0 -53
  403. data/lib/chef/knife/group_list.rb +0 -43
  404. data/lib/chef/knife/group_remove.rb +0 -56
  405. data/lib/chef/knife/group_show.rb +0 -49
  406. data/lib/chef/knife/key_create.rb +0 -112
  407. data/lib/chef/knife/key_create_base.rb +0 -50
  408. data/lib/chef/knife/key_delete.rb +0 -55
  409. data/lib/chef/knife/key_edit.rb +0 -118
  410. data/lib/chef/knife/key_edit_base.rb +0 -55
  411. data/lib/chef/knife/key_list.rb +0 -90
  412. data/lib/chef/knife/key_list_base.rb +0 -45
  413. data/lib/chef/knife/key_show.rb +0 -53
  414. data/lib/chef/knife/list.rb +0 -177
  415. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  416. data/lib/chef/knife/node_create.rb +0 -47
  417. data/lib/chef/knife/node_delete.rb +0 -46
  418. data/lib/chef/knife/node_edit.rb +0 -70
  419. data/lib/chef/knife/node_environment_set.rb +0 -53
  420. data/lib/chef/knife/node_from_file.rb +0 -51
  421. data/lib/chef/knife/node_list.rb +0 -44
  422. data/lib/chef/knife/node_policy_set.rb +0 -79
  423. data/lib/chef/knife/node_run_list_add.rb +0 -104
  424. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  425. data/lib/chef/knife/node_run_list_set.rb +0 -66
  426. data/lib/chef/knife/node_show.rb +0 -63
  427. data/lib/chef/knife/null.rb +0 -12
  428. data/lib/chef/knife/raw.rb +0 -123
  429. data/lib/chef/knife/recipe_list.rb +0 -32
  430. data/lib/chef/knife/rehash.rb +0 -50
  431. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  432. data/lib/chef/knife/role_create.rb +0 -53
  433. data/lib/chef/knife/role_delete.rb +0 -46
  434. data/lib/chef/knife/role_edit.rb +0 -45
  435. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  436. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  437. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  438. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  439. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  440. data/lib/chef/knife/role_from_file.rb +0 -51
  441. data/lib/chef/knife/role_list.rb +0 -42
  442. data/lib/chef/knife/role_run_list_add.rb +0 -87
  443. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  444. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  445. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  446. data/lib/chef/knife/role_run_list_set.rb +0 -69
  447. data/lib/chef/knife/role_show.rb +0 -48
  448. data/lib/chef/knife/search.rb +0 -194
  449. data/lib/chef/knife/serve.rb +0 -65
  450. data/lib/chef/knife/show.rb +0 -72
  451. data/lib/chef/knife/ssh.rb +0 -645
  452. data/lib/chef/knife/ssl_check.rb +0 -284
  453. data/lib/chef/knife/ssl_fetch.rb +0 -161
  454. data/lib/chef/knife/status.rb +0 -95
  455. data/lib/chef/knife/supermarket_download.rb +0 -121
  456. data/lib/chef/knife/supermarket_install.rb +0 -192
  457. data/lib/chef/knife/supermarket_list.rb +0 -76
  458. data/lib/chef/knife/supermarket_search.rb +0 -53
  459. data/lib/chef/knife/supermarket_share.rb +0 -166
  460. data/lib/chef/knife/supermarket_show.rb +0 -66
  461. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  462. data/lib/chef/knife/tag_create.rb +0 -52
  463. data/lib/chef/knife/tag_delete.rb +0 -60
  464. data/lib/chef/knife/tag_list.rb +0 -47
  465. data/lib/chef/knife/upload.rb +0 -86
  466. data/lib/chef/knife/user_create.rb +0 -107
  467. data/lib/chef/knife/user_delete.rb +0 -44
  468. data/lib/chef/knife/user_dissociate.rb +0 -42
  469. data/lib/chef/knife/user_edit.rb +0 -52
  470. data/lib/chef/knife/user_invite_add.rb +0 -43
  471. data/lib/chef/knife/user_invite_list.rb +0 -34
  472. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  473. data/lib/chef/knife/user_key_create.rb +0 -73
  474. data/lib/chef/knife/user_key_delete.rb +0 -80
  475. data/lib/chef/knife/user_key_edit.rb +0 -83
  476. data/lib/chef/knife/user_key_list.rb +0 -73
  477. data/lib/chef/knife/user_key_show.rb +0 -80
  478. data/lib/chef/knife/user_list.rb +0 -42
  479. data/lib/chef/knife/user_reregister.rb +0 -59
  480. data/lib/chef/knife/user_show.rb +0 -48
  481. data/lib/chef/knife/xargs.rb +0 -282
  482. data/lib/chef/knife/yaml_convert.rb +0 -91
  483. data/lib/chef/knife.rb +0 -665
  484. data/lib/chef/resource/user/dscl_user.rb +0 -35
  485. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  486. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  487. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  488. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  489. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  490. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  491. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  492. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  493. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  494. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  495. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  496. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +0 -55
  497. data/spec/functional/knife/configure_spec.rb +0 -33
  498. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  499. data/spec/functional/knife/exec_spec.rb +0 -55
  500. data/spec/functional/knife/rehash_spec.rb +0 -39
  501. data/spec/functional/knife/smoke_test.rb +0 -42
  502. data/spec/functional/knife/ssh_spec.rb +0 -352
  503. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  504. data/spec/functional/resource/windows_service_spec.rb +0 -105
  505. data/spec/functional/win32/service_manager_spec.rb +0 -220
  506. data/spec/integration/client/fips_spec.rb +0 -21
  507. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  508. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  509. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  510. data/spec/integration/knife/chefignore_spec.rb +0 -301
  511. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  512. data/spec/integration/knife/client_create_spec.rb +0 -70
  513. data/spec/integration/knife/client_delete_spec.rb +0 -64
  514. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  515. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  516. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  517. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  518. data/spec/integration/knife/client_list_spec.rb +0 -49
  519. data/spec/integration/knife/client_show_spec.rb +0 -37
  520. data/spec/integration/knife/common_options_spec.rb +0 -174
  521. data/spec/integration/knife/config_list_spec.rb +0 -220
  522. data/spec/integration/knife/config_show_spec.rb +0 -192
  523. data/spec/integration/knife/config_use_spec.rb +0 -198
  524. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  525. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  526. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  527. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  528. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  529. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  530. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  531. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  532. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  533. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  534. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  535. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  536. data/spec/integration/knife/delete_spec.rb +0 -1018
  537. data/spec/integration/knife/deps_spec.rb +0 -703
  538. data/spec/integration/knife/diff_spec.rb +0 -605
  539. data/spec/integration/knife/download_spec.rb +0 -1336
  540. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  541. data/spec/integration/knife/environment_create_spec.rb +0 -41
  542. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  543. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  544. data/spec/integration/knife/environment_list_spec.rb +0 -42
  545. data/spec/integration/knife/environment_show_spec.rb +0 -77
  546. data/spec/integration/knife/list_spec.rb +0 -1060
  547. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  548. data/spec/integration/knife/node_create_spec.rb +0 -47
  549. data/spec/integration/knife/node_delete_spec.rb +0 -48
  550. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  551. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  552. data/spec/integration/knife/node_list_spec.rb +0 -45
  553. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  554. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  555. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  556. data/spec/integration/knife/node_show_spec.rb +0 -36
  557. data/spec/integration/knife/raw_spec.rb +0 -297
  558. data/spec/integration/knife/redirection_spec.rb +0 -64
  559. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  560. data/spec/integration/knife/role_create_spec.rb +0 -41
  561. data/spec/integration/knife/role_delete_spec.rb +0 -48
  562. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  563. data/spec/integration/knife/role_list_spec.rb +0 -45
  564. data/spec/integration/knife/role_show_spec.rb +0 -51
  565. data/spec/integration/knife/search_node_spec.rb +0 -40
  566. data/spec/integration/knife/serve_spec.rb +0 -92
  567. data/spec/integration/knife/show_spec.rb +0 -197
  568. data/spec/integration/knife/upload_spec.rb +0 -1616
  569. data/spec/support/shared/functional/knife.rb +0 -37
  570. data/spec/support/shared/functional/win32_service.rb +0 -57
  571. data/spec/support/shared/integration/knife_support.rb +0 -192
  572. data/spec/support/shared/unit/knife_shared.rb +0 -39
  573. data/spec/unit/application/knife_spec.rb +0 -241
  574. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  575. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  576. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  577. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  578. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  579. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  580. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  581. data/spec/unit/knife/client_create_spec.rb +0 -169
  582. data/spec/unit/knife/client_delete_spec.rb +0 -99
  583. data/spec/unit/knife/client_edit_spec.rb +0 -53
  584. data/spec/unit/knife/client_list_spec.rb +0 -34
  585. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  586. data/spec/unit/knife/client_show_spec.rb +0 -52
  587. data/spec/unit/knife/configure_client_spec.rb +0 -81
  588. data/spec/unit/knife/configure_spec.rb +0 -190
  589. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  590. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  591. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  592. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  593. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  594. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  595. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  596. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  597. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  598. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  599. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  600. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  601. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  602. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  603. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  604. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  605. data/spec/unit/knife/core/ui_spec.rb +0 -656
  606. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  607. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  608. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  609. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  610. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  611. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  612. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  613. data/spec/unit/knife/environment_create_spec.rb +0 -91
  614. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  615. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  616. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  617. data/spec/unit/knife/environment_list_spec.rb +0 -54
  618. data/spec/unit/knife/environment_show_spec.rb +0 -52
  619. data/spec/unit/knife/key_create_spec.rb +0 -223
  620. data/spec/unit/knife/key_delete_spec.rb +0 -133
  621. data/spec/unit/knife/key_edit_spec.rb +0 -264
  622. data/spec/unit/knife/key_helper.rb +0 -74
  623. data/spec/unit/knife/key_list_spec.rb +0 -216
  624. data/spec/unit/knife/key_show_spec.rb +0 -126
  625. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  626. data/spec/unit/knife/node_delete_spec.rb +0 -77
  627. data/spec/unit/knife/node_edit_spec.rb +0 -116
  628. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  629. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  630. data/spec/unit/knife/node_list_spec.rb +0 -62
  631. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  632. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  633. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  634. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  635. data/spec/unit/knife/node_show_spec.rb +0 -65
  636. data/spec/unit/knife/raw_spec.rb +0 -43
  637. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  638. data/spec/unit/knife/role_create_spec.rb +0 -80
  639. data/spec/unit/knife/role_delete_spec.rb +0 -67
  640. data/spec/unit/knife/role_edit_spec.rb +0 -77
  641. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  642. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  643. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  644. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  645. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  646. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  647. data/spec/unit/knife/role_list_spec.rb +0 -54
  648. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  649. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  650. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  651. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  652. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  653. data/spec/unit/knife/role_show_spec.rb +0 -59
  654. data/spec/unit/knife/ssh_spec.rb +0 -403
  655. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  656. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  657. data/spec/unit/knife/status_spec.rb +0 -112
  658. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  659. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  660. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  661. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  662. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  663. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  664. data/spec/unit/knife/tag_create_spec.rb +0 -23
  665. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  666. data/spec/unit/knife/tag_list_spec.rb +0 -23
  667. data/spec/unit/knife/user_create_spec.rb +0 -184
  668. data/spec/unit/knife/user_delete_spec.rb +0 -46
  669. data/spec/unit/knife/user_edit_spec.rb +0 -48
  670. data/spec/unit/knife/user_list_spec.rb +0 -36
  671. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  672. data/spec/unit/knife/user_show_spec.rb +0 -46
  673. data/spec/unit/knife_spec.rb +0 -634
  674. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  675. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,1018 +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 "chef/knife/delete"
21
- require "chef/knife/list"
22
- require "chef/knife/raw"
23
-
24
- describe "knife delete", :workstation do
25
- include IntegrationSupport
26
- include KnifeSupport
27
-
28
- let :everything do
29
- <<~EOM
30
- /clients
31
- /clients/x.json
32
- /cookbooks
33
- /cookbooks/x
34
- /cookbooks/x/metadata.rb
35
- /data_bags
36
- /data_bags/x
37
- /data_bags/x/y.json
38
- /environments
39
- /environments/_default.json
40
- /environments/x.json
41
- /nodes
42
- /nodes/x.json
43
- /roles
44
- /roles/x.json
45
- /users
46
- /users/x.json
47
- EOM
48
- end
49
-
50
- let :server_everything do
51
- <<~EOM
52
- /clients
53
- /clients/chef-validator.json
54
- /clients/chef-webui.json
55
- /clients/x.json
56
- /cookbooks
57
- /cookbooks/x
58
- /cookbooks/x/metadata.rb
59
- /data_bags
60
- /data_bags/x
61
- /data_bags/x/y.json
62
- /environments
63
- /environments/_default.json
64
- /environments/x.json
65
- /nodes
66
- /nodes/x.json
67
- /roles
68
- /roles/x.json
69
- /users
70
- /users/admin.json
71
- /users/x.json
72
- EOM
73
- end
74
- let :server_nothing do
75
- <<~EOM
76
- /clients
77
- /clients/chef-validator.json
78
- /clients/chef-webui.json
79
- /cookbooks
80
- /data_bags
81
- /environments
82
- /environments/_default.json
83
- /nodes
84
- /roles
85
- /users
86
- /users/admin.json
87
- EOM
88
- end
89
-
90
- let :nothing do
91
- <<~EOM
92
- /clients
93
- /cookbooks
94
- /data_bags
95
- /environments
96
- /nodes
97
- /roles
98
- /users
99
- EOM
100
- end
101
-
102
- when_the_chef_server "has one of each thing" do
103
- before do
104
- client "x", "{}"
105
- cookbook "x", "1.0.0"
106
- data_bag "x", { "y" => "{}" }
107
- environment "x", "{}"
108
- node "x", "{}"
109
- role "x", "{}"
110
- user "x", "{}"
111
- end
112
-
113
- when_the_repository "also has one of each thing" do
114
- before do
115
- file "clients/x.json", {}
116
- file "cookbooks/x/metadata.rb", ""
117
- file "data_bags/x/y.json", {}
118
- file "environments/_default.json", {}
119
- file "environments/x.json", {}
120
- file "nodes/x.json", {}
121
- file "roles/x.json", {}
122
- file "users/x.json", {}
123
- end
124
-
125
- it "knife delete --both /cookbooks/x fails" do
126
- knife("delete --both /cookbooks/x").should_fail <<~EOM
127
- ERROR: /cookbooks/x (remote) must be deleted recursively! Pass -r to knife delete.
128
- ERROR: /cookbooks/x (local) must be deleted recursively! Pass -r to knife delete.
129
- EOM
130
- knife("list -Rf /").should_succeed server_everything
131
- knife("list -Rf --local /").should_succeed everything
132
- end
133
-
134
- it "knife delete --both -r /cookbooks/x deletes x" do
135
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
136
- knife("list -Rf /").should_succeed <<~EOM
137
- /clients
138
- /clients/chef-validator.json
139
- /clients/chef-webui.json
140
- /clients/x.json
141
- /cookbooks
142
- /data_bags
143
- /data_bags/x
144
- /data_bags/x/y.json
145
- /environments
146
- /environments/_default.json
147
- /environments/x.json
148
- /nodes
149
- /nodes/x.json
150
- /roles
151
- /roles/x.json
152
- /users
153
- /users/admin.json
154
- /users/x.json
155
- EOM
156
- knife("list -Rf --local /").should_succeed <<~EOM
157
- /clients
158
- /clients/x.json
159
- /cookbooks
160
- /data_bags
161
- /data_bags/x
162
- /data_bags/x/y.json
163
- /environments
164
- /environments/_default.json
165
- /environments/x.json
166
- /nodes
167
- /nodes/x.json
168
- /roles
169
- /roles/x.json
170
- /users
171
- /users/x.json
172
- EOM
173
- end
174
-
175
- it "knife delete -r --local /cookbooks/x deletes x locally but not remotely" do
176
- knife("delete -r --local /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
177
- knife("list -Rf /").should_succeed server_everything
178
- knife("list -Rf --local /").should_succeed <<~EOM
179
- /clients
180
- /clients/x.json
181
- /cookbooks
182
- /data_bags
183
- /data_bags/x
184
- /data_bags/x/y.json
185
- /environments
186
- /environments/_default.json
187
- /environments/x.json
188
- /nodes
189
- /nodes/x.json
190
- /roles
191
- /roles/x.json
192
- /users
193
- /users/x.json
194
- EOM
195
- end
196
-
197
- it "knife delete -r /cookbooks/x deletes x remotely but not locally" do
198
- knife("delete -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
199
- knife("list -Rf /").should_succeed <<~EOM
200
- /clients
201
- /clients/chef-validator.json
202
- /clients/chef-webui.json
203
- /clients/x.json
204
- /cookbooks
205
- /data_bags
206
- /data_bags/x
207
- /data_bags/x/y.json
208
- /environments
209
- /environments/_default.json
210
- /environments/x.json
211
- /nodes
212
- /nodes/x.json
213
- /roles
214
- /roles/x.json
215
- /users
216
- /users/admin.json
217
- /users/x.json
218
- EOM
219
- knife("list -Rf --local /").should_succeed everything
220
- end
221
-
222
- # TODO delete empty data bag (particularly different on local side)
223
- context "with an empty data bag on both" do
224
- before do
225
- data_bag "empty", {}
226
- directory "data_bags/empty"
227
- end
228
-
229
- it "knife delete --both /data_bags/empty fails but deletes local version" do
230
- knife("delete --both /data_bags/empty").should_fail <<~EOM
231
- ERROR: /data_bags/empty (remote) must be deleted recursively! Pass -r to knife delete.
232
- ERROR: /data_bags/empty (local) must be deleted recursively! Pass -r to knife delete.
233
- EOM
234
- knife("list -Rf /").should_succeed <<~EOM
235
- /clients
236
- /clients/chef-validator.json
237
- /clients/chef-webui.json
238
- /clients/x.json
239
- /cookbooks
240
- /cookbooks/x
241
- /cookbooks/x/metadata.rb
242
- /data_bags
243
- /data_bags/empty
244
- /data_bags/x
245
- /data_bags/x/y.json
246
- /environments
247
- /environments/_default.json
248
- /environments/x.json
249
- /nodes
250
- /nodes/x.json
251
- /roles
252
- /roles/x.json
253
- /users
254
- /users/admin.json
255
- /users/x.json
256
- EOM
257
- knife("list -Rf --local /").should_succeed <<~EOM
258
- /clients
259
- /clients/x.json
260
- /cookbooks
261
- /cookbooks/x
262
- /cookbooks/x/metadata.rb
263
- /data_bags
264
- /data_bags/empty
265
- /data_bags/x
266
- /data_bags/x/y.json
267
- /environments
268
- /environments/_default.json
269
- /environments/x.json
270
- /nodes
271
- /nodes/x.json
272
- /roles
273
- /roles/x.json
274
- /users
275
- /users/x.json
276
- EOM
277
- end
278
- end
279
-
280
- it "knife delete --both /data_bags/x fails" do
281
- knife("delete --both /data_bags/x").should_fail <<~EOM
282
- ERROR: /data_bags/x (remote) must be deleted recursively! Pass -r to knife delete.
283
- ERROR: /data_bags/x (local) must be deleted recursively! Pass -r to knife delete.
284
- EOM
285
- knife("list -Rf /").should_succeed server_everything
286
- knife("list -Rf --local /").should_succeed everything
287
- end
288
-
289
- it "knife delete --both -r /data_bags/x deletes x" do
290
- knife("delete --both -r /data_bags/x").should_succeed "Deleted /data_bags/x\n"
291
- knife("list -Rf /").should_succeed <<~EOM
292
- /clients
293
- /clients/chef-validator.json
294
- /clients/chef-webui.json
295
- /clients/x.json
296
- /cookbooks
297
- /cookbooks/x
298
- /cookbooks/x/metadata.rb
299
- /data_bags
300
- /environments
301
- /environments/_default.json
302
- /environments/x.json
303
- /nodes
304
- /nodes/x.json
305
- /roles
306
- /roles/x.json
307
- /users
308
- /users/admin.json
309
- /users/x.json
310
- EOM
311
- knife("list -Rf --local /").should_succeed <<~EOM
312
- /clients
313
- /clients/x.json
314
- /cookbooks
315
- /cookbooks/x
316
- /cookbooks/x/metadata.rb
317
- /data_bags
318
- /environments
319
- /environments/_default.json
320
- /environments/x.json
321
- /nodes
322
- /nodes/x.json
323
- /roles
324
- /roles/x.json
325
- /users
326
- /users/x.json
327
- EOM
328
- end
329
-
330
- it "knife delete --both /environments/x.json deletes x" do
331
- knife("delete --both /environments/x.json").should_succeed "Deleted /environments/x.json\n"
332
- knife("list -Rf /").should_succeed <<~EOM
333
- /clients
334
- /clients/chef-validator.json
335
- /clients/chef-webui.json
336
- /clients/x.json
337
- /cookbooks
338
- /cookbooks/x
339
- /cookbooks/x/metadata.rb
340
- /data_bags
341
- /data_bags/x
342
- /data_bags/x/y.json
343
- /environments
344
- /environments/_default.json
345
- /nodes
346
- /nodes/x.json
347
- /roles
348
- /roles/x.json
349
- /users
350
- /users/admin.json
351
- /users/x.json
352
- EOM
353
- knife("list -Rf --local /").should_succeed <<~EOM
354
- /clients
355
- /clients/x.json
356
- /cookbooks
357
- /cookbooks/x
358
- /cookbooks/x/metadata.rb
359
- /data_bags
360
- /data_bags/x
361
- /data_bags/x/y.json
362
- /environments
363
- /environments/_default.json
364
- /nodes
365
- /nodes/x.json
366
- /roles
367
- /roles/x.json
368
- /users
369
- /users/x.json
370
- EOM
371
- end
372
-
373
- it "knife delete --both /roles/x.json deletes x" do
374
- knife("delete --both /roles/x.json").should_succeed "Deleted /roles/x.json\n"
375
- knife("list -Rf /").should_succeed <<~EOM
376
- /clients
377
- /clients/chef-validator.json
378
- /clients/chef-webui.json
379
- /clients/x.json
380
- /cookbooks
381
- /cookbooks/x
382
- /cookbooks/x/metadata.rb
383
- /data_bags
384
- /data_bags/x
385
- /data_bags/x/y.json
386
- /environments
387
- /environments/_default.json
388
- /environments/x.json
389
- /nodes
390
- /nodes/x.json
391
- /roles
392
- /users
393
- /users/admin.json
394
- /users/x.json
395
- EOM
396
- knife("list -Rf --local /").should_succeed <<~EOM
397
- /clients
398
- /clients/x.json
399
- /cookbooks
400
- /cookbooks/x
401
- /cookbooks/x/metadata.rb
402
- /data_bags
403
- /data_bags/x
404
- /data_bags/x/y.json
405
- /environments
406
- /environments/_default.json
407
- /environments/x.json
408
- /nodes
409
- /nodes/x.json
410
- /roles
411
- /users
412
- /users/x.json
413
- EOM
414
- end
415
-
416
- it "knife delete --both /environments/_default.json fails but still deletes the local copy" do
417
- knife("delete --both /environments/_default.json").should_fail stderr: "ERROR: /environments/_default.json (remote) cannot be deleted (default environment cannot be modified).\n", stdout: "Deleted /environments/_default.json\n"
418
- knife("list -Rf /").should_succeed server_everything
419
- knife("list -Rf --local /").should_succeed <<~EOM
420
- /clients
421
- /clients/x.json
422
- /cookbooks
423
- /cookbooks/x
424
- /cookbooks/x/metadata.rb
425
- /data_bags
426
- /data_bags/x
427
- /data_bags/x/y.json
428
- /environments
429
- /environments/x.json
430
- /nodes
431
- /nodes/x.json
432
- /roles
433
- /roles/x.json
434
- /users
435
- /users/x.json
436
- EOM
437
- end
438
-
439
- it "knife delete --both /environments/nonexistent.json fails" do
440
- knife("delete --both /environments/nonexistent.json").should_fail "ERROR: /environments/nonexistent.json: No such file or directory\n"
441
- knife("list -Rf /").should_succeed server_everything
442
- knife("list -Rf --local /").should_succeed everything
443
- end
444
-
445
- it "knife delete --both / fails" do
446
- knife("delete --both /").should_fail <<~EOM
447
- ERROR: / (remote) cannot be deleted.
448
- ERROR: / (local) cannot be deleted.
449
- EOM
450
- knife("list -Rf /").should_succeed server_everything
451
- knife("list -Rf --local /").should_succeed everything
452
- end
453
-
454
- it "knife delete --both -r /* fails" do
455
- knife("delete --both -r /*").should_fail <<~EOM
456
- ERROR: / (remote) cannot be deleted.
457
- ERROR: / (local) cannot be deleted.
458
- ERROR: /clients (remote) cannot be deleted.
459
- ERROR: /clients (local) cannot be deleted.
460
- ERROR: /cookbooks (remote) cannot be deleted.
461
- ERROR: /cookbooks (local) cannot be deleted.
462
- ERROR: /data_bags (remote) cannot be deleted.
463
- ERROR: /data_bags (local) cannot be deleted.
464
- ERROR: /environments (remote) cannot be deleted.
465
- ERROR: /environments (local) cannot be deleted.
466
- ERROR: /nodes (remote) cannot be deleted.
467
- ERROR: /nodes (local) cannot be deleted.
468
- ERROR: /roles (remote) cannot be deleted.
469
- ERROR: /roles (local) cannot be deleted.
470
- ERROR: /users (remote) cannot be deleted.
471
- ERROR: /users (local) cannot be deleted.
472
- EOM
473
- knife("list -Rf /").should_succeed server_everything
474
- knife("list -Rf --local /").should_succeed everything
475
- end
476
- end
477
-
478
- when_the_repository "has only top-level directories" do
479
- before do
480
- directory "clients"
481
- directory "cookbooks"
482
- directory "data_bags"
483
- directory "environments"
484
- directory "nodes"
485
- directory "roles"
486
- directory "users"
487
- end
488
-
489
- it "knife delete --both /cookbooks/x fails" do
490
- knife("delete --both /cookbooks/x").should_fail "ERROR: /cookbooks/x (remote) must be deleted recursively! Pass -r to knife delete.\n"
491
- knife("list -Rf /").should_succeed server_everything
492
- knife("list -Rf --local /").should_succeed nothing
493
- end
494
-
495
- it "knife delete --both -r /cookbooks/x deletes x" do
496
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
497
- knife("list -Rf /").should_succeed <<~EOM
498
- /clients
499
- /clients/chef-validator.json
500
- /clients/chef-webui.json
501
- /clients/x.json
502
- /cookbooks
503
- /data_bags
504
- /data_bags/x
505
- /data_bags/x/y.json
506
- /environments
507
- /environments/_default.json
508
- /environments/x.json
509
- /nodes
510
- /nodes/x.json
511
- /roles
512
- /roles/x.json
513
- /users
514
- /users/admin.json
515
- /users/x.json
516
- EOM
517
- knife("list -Rf --local /").should_succeed nothing
518
- end
519
-
520
- it "knife delete --both /data_bags/x fails" do
521
- knife("delete --both /data_bags/x").should_fail "ERROR: /data_bags/x (remote) must be deleted recursively! Pass -r to knife delete.\n"
522
- knife("list -Rf /").should_succeed server_everything
523
- knife("list -Rf --local /").should_succeed nothing
524
- end
525
-
526
- it "knife delete --both -r /data_bags/x deletes x" do
527
- knife("delete --both -r /data_bags/x").should_succeed "Deleted /data_bags/x\n"
528
- knife("list -Rf /").should_succeed <<~EOM
529
- /clients
530
- /clients/chef-validator.json
531
- /clients/chef-webui.json
532
- /clients/x.json
533
- /cookbooks
534
- /cookbooks/x
535
- /cookbooks/x/metadata.rb
536
- /data_bags
537
- /environments
538
- /environments/_default.json
539
- /environments/x.json
540
- /nodes
541
- /nodes/x.json
542
- /roles
543
- /roles/x.json
544
- /users
545
- /users/admin.json
546
- /users/x.json
547
- EOM
548
- knife("list -Rf --local /").should_succeed nothing
549
- end
550
-
551
- it "knife delete --both /environments/x.json deletes x" do
552
- knife("delete --both /environments/x.json").should_succeed "Deleted /environments/x.json\n"
553
- knife("list -Rf /").should_succeed <<~EOM
554
- /clients
555
- /clients/chef-validator.json
556
- /clients/chef-webui.json
557
- /clients/x.json
558
- /cookbooks
559
- /cookbooks/x
560
- /cookbooks/x/metadata.rb
561
- /data_bags
562
- /data_bags/x
563
- /data_bags/x/y.json
564
- /environments
565
- /environments/_default.json
566
- /nodes
567
- /nodes/x.json
568
- /roles
569
- /roles/x.json
570
- /users
571
- /users/admin.json
572
- /users/x.json
573
- EOM
574
- knife("list -Rf --local /").should_succeed nothing
575
- end
576
-
577
- it "knife delete --both /roles/x.json deletes x" do
578
- knife("delete --both /roles/x.json").should_succeed "Deleted /roles/x.json\n"
579
- knife("list -Rf /").should_succeed <<~EOM
580
- /clients
581
- /clients/chef-validator.json
582
- /clients/chef-webui.json
583
- /clients/x.json
584
- /cookbooks
585
- /cookbooks/x
586
- /cookbooks/x/metadata.rb
587
- /data_bags
588
- /data_bags/x
589
- /data_bags/x/y.json
590
- /environments
591
- /environments/_default.json
592
- /environments/x.json
593
- /nodes
594
- /nodes/x.json
595
- /roles
596
- /users
597
- /users/admin.json
598
- /users/x.json
599
- EOM
600
- knife("list -Rf --local /").should_succeed nothing
601
- end
602
-
603
- it "knife delete --both /environments/_default.json fails" do
604
- knife("delete --both /environments/_default.json").should_fail "", stderr: "ERROR: /environments/_default.json (remote) cannot be deleted (default environment cannot be modified).\n"
605
- knife("list -Rf /").should_succeed server_everything
606
- knife("list -Rf --local /").should_succeed nothing
607
- end
608
-
609
- it "knife delete --both / fails" do
610
- knife("delete --both /").should_fail "ERROR: / (remote) cannot be deleted.\nERROR: / (local) cannot be deleted.\n"
611
- knife("list -Rf /").should_succeed server_everything
612
- knife("list -Rf --local /").should_succeed nothing
613
- end
614
-
615
- it "knife delete --both -r /* fails" do
616
- knife("delete --both -r /*").should_fail <<~EOM
617
- ERROR: / (remote) cannot be deleted.
618
- ERROR: / (local) cannot be deleted.
619
- ERROR: /clients (remote) cannot be deleted.
620
- ERROR: /clients (local) cannot be deleted.
621
- ERROR: /cookbooks (remote) cannot be deleted.
622
- ERROR: /cookbooks (local) cannot be deleted.
623
- ERROR: /data_bags (remote) cannot be deleted.
624
- ERROR: /data_bags (local) cannot be deleted.
625
- ERROR: /environments (remote) cannot be deleted.
626
- ERROR: /environments (local) cannot be deleted.
627
- ERROR: /nodes (remote) cannot be deleted.
628
- ERROR: /nodes (local) cannot be deleted.
629
- ERROR: /roles (remote) cannot be deleted.
630
- ERROR: /roles (local) cannot be deleted.
631
- ERROR: /users (remote) cannot be deleted.
632
- ERROR: /users (local) cannot be deleted.
633
- EOM
634
- knife("list -Rf /").should_succeed server_everything
635
- knife("list -Rf --local /").should_succeed nothing
636
- end
637
-
638
- it "knife delete --both /environments/nonexistent.json fails" do
639
- knife("delete --both /environments/nonexistent.json").should_fail "ERROR: /environments/nonexistent.json: No such file or directory\n"
640
- knife("list -Rf /").should_succeed server_everything
641
- knife("list -Rf --local /").should_succeed nothing
642
- end
643
-
644
- context "and cwd is at the top level" do
645
- before { cwd "." }
646
- it "knife delete fails" do
647
- knife("delete").should_fail "FATAL: You must specify at least one argument. If you want to delete everything in this directory, run \"knife delete --recurse .\"\n", stdout: /USAGE/
648
- knife("list -Rf /").should_succeed <<~EOM
649
- clients
650
- clients/chef-validator.json
651
- clients/chef-webui.json
652
- clients/x.json
653
- cookbooks
654
- cookbooks/x
655
- cookbooks/x/metadata.rb
656
- data_bags
657
- data_bags/x
658
- data_bags/x/y.json
659
- environments
660
- environments/_default.json
661
- environments/x.json
662
- nodes
663
- nodes/x.json
664
- roles
665
- roles/x.json
666
- users
667
- users/admin.json
668
- users/x.json
669
- EOM
670
- knife("list -Rf --local /").should_succeed <<~EOM
671
- clients
672
- cookbooks
673
- data_bags
674
- environments
675
- nodes
676
- roles
677
- users
678
- EOM
679
- end
680
- end
681
- end
682
- end
683
-
684
- when_the_chef_server "is empty" do
685
- when_the_repository "has one of each thing" do
686
- before do
687
- file "clients/x.json", {}
688
- file "cookbooks/x/metadata.rb", ""
689
- file "data_bags/x/y.json", {}
690
- file "environments/_default.json", {}
691
- file "environments/x.json", {}
692
- file "nodes/x.json", {}
693
- file "roles/x.json", {}
694
- file "users/x.json", {}
695
- end
696
-
697
- it "knife delete --both /cookbooks/x fails" do
698
- knife("delete --both /cookbooks/x").should_fail "ERROR: /cookbooks/x (local) must be deleted recursively! Pass -r to knife delete.\n"
699
- knife("list -Rf /").should_succeed server_nothing
700
- knife("list -Rf --local /").should_succeed everything
701
- end
702
-
703
- it "knife delete --both -r /cookbooks/x deletes x" do
704
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
705
- knife("list -Rf /").should_succeed server_nothing
706
- knife("list -Rf --local /").should_succeed <<~EOM
707
- /clients
708
- /clients/x.json
709
- /cookbooks
710
- /data_bags
711
- /data_bags/x
712
- /data_bags/x/y.json
713
- /environments
714
- /environments/_default.json
715
- /environments/x.json
716
- /nodes
717
- /nodes/x.json
718
- /roles
719
- /roles/x.json
720
- /users
721
- /users/x.json
722
- EOM
723
- end
724
-
725
- it "knife delete --both /data_bags/x fails" do
726
- knife("delete --both /data_bags/x").should_fail "ERROR: /data_bags/x (local) must be deleted recursively! Pass -r to knife delete.\n"
727
- knife("list -Rf /").should_succeed server_nothing
728
- knife("list -Rf --local /").should_succeed everything
729
- end
730
-
731
- it "knife delete --both -r /data_bags/x deletes x" do
732
- knife("delete --both -r /data_bags/x").should_succeed "Deleted /data_bags/x\n"
733
- knife("list -Rf /").should_succeed server_nothing
734
- knife("list -Rf --local /").should_succeed <<~EOM
735
- /clients
736
- /clients/x.json
737
- /cookbooks
738
- /cookbooks/x
739
- /cookbooks/x/metadata.rb
740
- /data_bags
741
- /environments
742
- /environments/_default.json
743
- /environments/x.json
744
- /nodes
745
- /nodes/x.json
746
- /roles
747
- /roles/x.json
748
- /users
749
- /users/x.json
750
- EOM
751
- end
752
-
753
- it "knife delete --both /environments/x.json deletes x" do
754
- knife("delete --both /environments/x.json").should_succeed "Deleted /environments/x.json\n"
755
- knife("list -Rf /").should_succeed server_nothing
756
- knife("list -Rf --local /").should_succeed <<~EOM
757
- /clients
758
- /clients/x.json
759
- /cookbooks
760
- /cookbooks/x
761
- /cookbooks/x/metadata.rb
762
- /data_bags
763
- /data_bags/x
764
- /data_bags/x/y.json
765
- /environments
766
- /environments/_default.json
767
- /nodes
768
- /nodes/x.json
769
- /roles
770
- /roles/x.json
771
- /users
772
- /users/x.json
773
- EOM
774
- end
775
-
776
- it "knife delete --both /roles/x.json deletes x" do
777
- knife("delete --both /roles/x.json").should_succeed "Deleted /roles/x.json\n"
778
- knife("list -Rf /").should_succeed server_nothing
779
- knife("list -Rf --local /").should_succeed <<~EOM
780
- /clients
781
- /clients/x.json
782
- /cookbooks
783
- /cookbooks/x
784
- /cookbooks/x/metadata.rb
785
- /data_bags
786
- /data_bags/x
787
- /data_bags/x/y.json
788
- /environments
789
- /environments/_default.json
790
- /environments/x.json
791
- /nodes
792
- /nodes/x.json
793
- /roles
794
- /users
795
- /users/x.json
796
- EOM
797
- end
798
-
799
- it "knife delete --both /environments/_default.json fails but still deletes the local copy" do
800
- knife("delete --both /environments/_default.json").should_fail stderr: "ERROR: /environments/_default.json (remote) cannot be deleted (default environment cannot be modified).\n", stdout: "Deleted /environments/_default.json\n"
801
- knife("list -Rf /").should_succeed server_nothing
802
- knife("list -Rf --local /").should_succeed <<~EOM
803
- /clients
804
- /clients/x.json
805
- /cookbooks
806
- /cookbooks/x
807
- /cookbooks/x/metadata.rb
808
- /data_bags
809
- /data_bags/x
810
- /data_bags/x/y.json
811
- /environments
812
- /environments/x.json
813
- /nodes
814
- /nodes/x.json
815
- /roles
816
- /roles/x.json
817
- /users
818
- /users/x.json
819
- EOM
820
- end
821
-
822
- it "knife delete --both / fails" do
823
- knife("delete --both /").should_fail "ERROR: / (remote) cannot be deleted.\nERROR: / (local) cannot be deleted.\n"
824
- knife("list -Rf /").should_succeed server_nothing
825
- knife("list -Rf --local /").should_succeed everything
826
- end
827
-
828
- it "knife delete --both -r /* fails" do
829
- knife("delete --both -r /*").should_fail <<~EOM
830
- ERROR: / (remote) cannot be deleted.
831
- ERROR: / (local) cannot be deleted.
832
- ERROR: /clients (remote) cannot be deleted.
833
- ERROR: /clients (local) cannot be deleted.
834
- ERROR: /cookbooks (remote) cannot be deleted.
835
- ERROR: /cookbooks (local) cannot be deleted.
836
- ERROR: /data_bags (remote) cannot be deleted.
837
- ERROR: /data_bags (local) cannot be deleted.
838
- ERROR: /environments (remote) cannot be deleted.
839
- ERROR: /environments (local) cannot be deleted.
840
- ERROR: /nodes (remote) cannot be deleted.
841
- ERROR: /nodes (local) cannot be deleted.
842
- ERROR: /roles (remote) cannot be deleted.
843
- ERROR: /roles (local) cannot be deleted.
844
- ERROR: /users (remote) cannot be deleted.
845
- ERROR: /users (local) cannot be deleted.
846
- EOM
847
- knife("list -Rf /").should_succeed server_nothing
848
- knife("list -Rf --local /").should_succeed everything
849
- end
850
-
851
- it "knife delete --both /environments/nonexistent.json fails" do
852
- knife("delete --both /environments/nonexistent.json").should_fail "ERROR: /environments/nonexistent.json: No such file or directory\n"
853
- knife("list -Rf /").should_succeed server_nothing
854
- knife("list -Rf --local /").should_succeed everything
855
- end
856
-
857
- context "and cwd is at the top level" do
858
- before { cwd "." }
859
- it "knife delete fails" do
860
- knife("delete").should_fail "FATAL: You must specify at least one argument. If you want to delete everything in this directory, run \"knife delete --recurse .\"\n", stdout: /USAGE/
861
- knife("list -Rf /").should_succeed <<~EOM
862
- clients
863
- clients/chef-validator.json
864
- clients/chef-webui.json
865
- cookbooks
866
- data_bags
867
- environments
868
- environments/_default.json
869
- nodes
870
- roles
871
- users
872
- users/admin.json
873
- EOM
874
- knife("list -Rf --local /").should_succeed <<~EOM
875
- clients
876
- clients/x.json
877
- cookbooks
878
- cookbooks/x
879
- cookbooks/x/metadata.rb
880
- data_bags
881
- data_bags/x
882
- data_bags/x/y.json
883
- environments
884
- environments/_default.json
885
- environments/x.json
886
- nodes
887
- nodes/x.json
888
- roles
889
- roles/x.json
890
- users
891
- users/x.json
892
- EOM
893
- end
894
- end
895
- end
896
- end
897
-
898
- when_the_repository "has a cookbook" do
899
- before do
900
- file "cookbooks/x/metadata.rb", 'version "1.0.0"'
901
- file "cookbooks/x/onlyin1.0.0.rb", "old_text"
902
- end
903
-
904
- when_the_chef_server "has a later version for the cookbook" do
905
- before do
906
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
907
- cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "hi" }
908
- end
909
-
910
- # TODO this seems wrong
911
- it "knife delete --both -r /cookbooks/x deletes the latest version on the server and the local version" do
912
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
913
- knife("raw /cookbooks/x").should_succeed(/1.0.0/)
914
- knife("list --local /cookbooks").should_succeed ""
915
- end
916
- end
917
-
918
- when_the_chef_server "has an earlier version for the cookbook" do
919
- before do
920
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
921
- cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "hi" }
922
- end
923
-
924
- it "knife delete --both /cookbooks/x deletes the latest version on the server and the local version" do
925
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
926
- knife("raw /cookbooks/x").should_succeed(/0.9.9/)
927
- knife("list --local /cookbooks").should_succeed ""
928
- end
929
- end
930
-
931
- when_the_chef_server "has a later version for the cookbook, and no current version" do
932
- before { cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "hi" } }
933
-
934
- it "knife delete --both /cookbooks/x deletes the server and client version of the cookbook" do
935
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
936
- knife("raw /cookbooks/x").should_fail(/404/)
937
- knife("list --local /cookbooks").should_succeed ""
938
- end
939
- end
940
-
941
- when_the_chef_server "has an earlier version for the cookbook, and no current version" do
942
- before { cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "hi" } }
943
-
944
- it "knife delete --both /cookbooks/x deletes the server and client version of the cookbook" do
945
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
946
- knife("raw /cookbooks/x").should_fail(/404/)
947
- knife("list --local /cookbooks").should_succeed ""
948
- end
949
- end
950
- end
951
-
952
- when_the_repository "is empty" do
953
- when_the_chef_server "has two versions of a cookbook" do
954
- before do
955
- cookbook "x", "2.0.11"
956
- cookbook "x", "11.0.0"
957
- end
958
-
959
- it "knife delete deletes the latest version" do
960
- knife("delete --both -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n"
961
- knife("raw /cookbooks/x").should_succeed( /2.0.11/ )
962
- end
963
- end
964
- end
965
-
966
- when_the_chef_server "is in Enterprise mode", osc_compat: false, single_org: false do
967
- before do
968
- organization "foo" do
969
- container "x", {}
970
- group "x", {}
971
- policy "x", "1.2.3", {}
972
- policy_group "x", { "policies" => { "x" => { "revision_id" => "1.2.3" } } }
973
- end
974
- end
975
-
976
- before :each do
977
- Chef::Config.chef_server_url = URI.join(Chef::Config.chef_server_url, "/organizations/foo")
978
- end
979
-
980
- it "knife delete /acls/containers/environments.json fails with a reasonable error" do
981
- knife("delete /acls/containers/environments.json").should_fail "ERROR: /acls/containers/environments.json (remote) ACLs cannot be deleted.\n"
982
- end
983
-
984
- it "knife delete /containers/x.json succeeds" do
985
- knife("delete /containers/x.json").should_succeed "Deleted /containers/x.json\n"
986
- knife("raw /containers/x.json").should_fail(/404/)
987
- end
988
-
989
- it "knife delete /groups/x.json succeeds" do
990
- knife("delete /groups/x.json").should_succeed "Deleted /groups/x.json\n"
991
- knife("raw /groups/x.json").should_fail(/404/)
992
- end
993
-
994
- it "knife delete /policies/x-1.2.3.json succeeds" do
995
- knife("raw /policies/x/revisions/1.2.3").should_succeed "{\n \"policy_group_list\": [\n \"x\"\n ],\n \"name\": \"x\",\n \"revision_id\": \"1.2.3\",\n \"run_list\": [\n\n ],\n \"cookbook_locks\": {\n\n }\n}\n"
996
- knife("delete /policies/x-1.2.3.json").should_succeed "Deleted /policies/x-1.2.3.json\n"
997
- knife("raw /policies/x/revisions/1.2.3").should_fail(/404/)
998
- end
999
-
1000
- it "knife delete /policy_groups/x.json succeeds" do
1001
- knife("raw /policy_groups/x").should_succeed "{\n \"uri\": \"http://127.0.0.1:8900/organizations/foo/policy_groups/x\",\n \"policies\": {\n \"x\": {\n \"revision_id\": \"1.2.3\"\n }\n }\n}\n"
1002
- knife("delete /policy_groups/x.json").should_succeed "Deleted /policy_groups/x.json\n"
1003
- knife("raw /policy_groups/x").should_fail(/404/)
1004
- end
1005
-
1006
- it "knife delete /org.json fails with a reasonable error" do
1007
- knife("delete /org.json").should_fail "ERROR: /org.json (remote) cannot be deleted.\n"
1008
- end
1009
-
1010
- it "knife delete /invitations.json fails with a reasonable error" do
1011
- knife("delete /invitations.json").should_fail "ERROR: /invitations.json (remote) cannot be deleted.\n"
1012
- end
1013
-
1014
- it "knife delete /members.json fails with a reasonable error" do
1015
- knife("delete /members.json").should_fail "ERROR: /members.json (remote) cannot be deleted.\n"
1016
- end
1017
- end
1018
- end