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

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