chef 16.16.13 → 17.0.242

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