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