chef 16.13.16-universal-mingw32 → 17.3.48-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +11 -22
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +12 -24
  7. data/lib/chef/action_collection.rb +6 -26
  8. data/lib/chef/application.rb +1 -1
  9. data/lib/chef/application/base.rb +16 -1
  10. data/lib/chef/applications.rb +0 -1
  11. data/lib/chef/chef_fs/command_line.rb +5 -2
  12. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  13. data/lib/chef/chef_fs/file_system.rb +9 -10
  14. data/lib/chef/client.rb +9 -3
  15. data/lib/chef/compliance/default_attributes.rb +5 -4
  16. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  17. data/lib/chef/compliance/reporter/automate.rb +17 -7
  18. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  19. data/lib/chef/compliance/reporter/cli.rb +77 -0
  20. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  21. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  22. data/lib/chef/compliance/runner.rb +65 -27
  23. data/lib/chef/cookbook/cookbook_version_loader.rb +3 -3
  24. data/lib/chef/cookbook/gem_installer.rb +5 -1
  25. data/lib/chef/cookbook/synchronizer.rb +3 -5
  26. data/lib/chef/cookbook_loader.rb +2 -4
  27. data/lib/chef/cookbook_uploader.rb +0 -1
  28. data/lib/chef/cookbook_version.rb +26 -4
  29. data/lib/chef/data_bag_item.rb +11 -2
  30. data/lib/chef/data_collector.rb +0 -1
  31. data/lib/chef/data_collector/run_end_message.rb +1 -1
  32. data/lib/chef/delayed_evaluator.rb +4 -0
  33. data/lib/chef/deprecated.rb +18 -4
  34. data/lib/chef/dsl.rb +1 -0
  35. data/lib/chef/dsl/chef_vault.rb +6 -6
  36. data/lib/chef/dsl/declare_resource.rb +5 -10
  37. data/lib/chef/dsl/reboot_pending.rb +1 -2
  38. data/lib/chef/{knife/group_list.rb → dsl/render_helpers.rb} +18 -17
  39. data/lib/chef/dsl/secret.rb +64 -0
  40. data/lib/chef/dsl/toml.rb +116 -0
  41. data/lib/chef/dsl/universal.rb +5 -0
  42. data/lib/chef/event_dispatch/base.rb +2 -1
  43. data/lib/chef/exceptions.rb +25 -0
  44. data/lib/chef/formatters/doc.rb +2 -1
  45. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  46. data/lib/chef/group.rb +75 -0
  47. data/lib/chef/handler.rb +46 -8
  48. data/lib/chef/handler/slow_report.rb +66 -0
  49. data/lib/chef/json_compat.rb +1 -1
  50. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  51. data/lib/chef/node.rb +21 -20
  52. data/lib/chef/node/attribute.rb +6 -4
  53. data/lib/chef/node/immutable_collections.rb +13 -0
  54. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  55. data/lib/chef/org.rb +3 -2
  56. data/lib/chef/policy_builder/policyfile.rb +88 -45
  57. data/lib/chef/property.rb +18 -0
  58. data/lib/chef/provider.rb +1 -1
  59. data/lib/chef/provider/cron.rb +1 -1
  60. data/lib/chef/provider/directory.rb +6 -6
  61. data/lib/chef/provider/execute.rb +2 -1
  62. data/lib/chef/provider/file.rb +3 -3
  63. data/lib/chef/provider/git.rb +5 -7
  64. data/lib/chef/provider/group/groupadd.rb +3 -3
  65. data/lib/chef/provider/group/groupmod.rb +3 -3
  66. data/lib/chef/provider/group/pw.rb +3 -3
  67. data/lib/chef/provider/ifconfig.rb +2 -2
  68. data/lib/chef/provider/link.rb +3 -3
  69. data/lib/chef/provider/lwrp_base.rb +1 -1
  70. data/lib/chef/provider/mount.rb +5 -5
  71. data/lib/chef/provider/mount/aix.rb +3 -3
  72. data/lib/chef/provider/mount/mount.rb +5 -5
  73. data/lib/chef/provider/mount/windows.rb +1 -1
  74. data/lib/chef/provider/package.rb +17 -21
  75. data/lib/chef/provider/package/apt.rb +27 -1
  76. data/lib/chef/provider/package/deb.rb +3 -3
  77. data/lib/chef/provider/package/dnf/dnf_helper.py +12 -11
  78. data/lib/chef/provider/package/dnf/python_helper.rb +9 -8
  79. data/lib/chef/provider/package/habitat.rb +168 -0
  80. data/lib/chef/provider/package/portage.rb +2 -2
  81. data/lib/chef/provider/package/powershell.rb +5 -0
  82. data/lib/chef/provider/package/rubygems.rb +11 -17
  83. data/lib/chef/provider/package/windows.rb +2 -4
  84. data/lib/chef/provider/package/yum.rb +1 -4
  85. data/lib/chef/provider/package/yum/python_helper.rb +15 -10
  86. data/lib/chef/provider/package/yum/yum_helper.py +47 -63
  87. data/lib/chef/provider/registry_key.rb +1 -1
  88. data/lib/chef/provider/route.rb +2 -2
  89. data/lib/chef/provider/service.rb +6 -6
  90. data/lib/chef/provider/service/aixinit.rb +1 -1
  91. data/lib/chef/provider/service/debian.rb +1 -1
  92. data/lib/chef/provider/service/freebsd.rb +15 -21
  93. data/lib/chef/provider/service/macosx.rb +4 -4
  94. data/lib/chef/provider/service/systemd.rb +43 -14
  95. data/lib/chef/provider/service/upstart.rb +2 -13
  96. data/lib/chef/provider/service/windows.rb +12 -12
  97. data/lib/chef/provider/subversion.rb +10 -12
  98. data/lib/chef/provider/support/zypper_repo.erb +4 -2
  99. data/lib/chef/provider/systemd_unit.rb +36 -10
  100. data/lib/chef/provider/template/content.rb +3 -7
  101. data/lib/chef/provider/user.rb +2 -2
  102. data/lib/chef/provider/user/dscl.rb +1 -1
  103. data/lib/chef/provider/user/mac.rb +17 -20
  104. data/lib/chef/provider/user/pw.rb +1 -1
  105. data/lib/chef/provider/user/windows.rb +1 -1
  106. data/lib/chef/provider/windows_script.rb +1 -1
  107. data/lib/chef/provider/zypper_repository.rb +28 -32
  108. data/lib/chef/providers.rb +1 -1
  109. data/lib/chef/resource.rb +6 -7
  110. data/lib/chef/resource/alternatives.rb +6 -6
  111. data/lib/chef/resource/apt_package.rb +1 -1
  112. data/lib/chef/resource/apt_preference.rb +2 -2
  113. data/lib/chef/resource/apt_repository.rb +6 -6
  114. data/lib/chef/resource/apt_update.rb +5 -4
  115. data/lib/chef/resource/archive_file.rb +2 -3
  116. data/lib/chef/resource/breakpoint.rb +1 -1
  117. data/lib/chef/resource/build_essential.rb +2 -6
  118. data/lib/chef/resource/chef_client_config.rb +10 -5
  119. data/lib/chef/resource/chef_client_cron.rb +5 -5
  120. data/lib/chef/resource/chef_client_launchd.rb +6 -6
  121. data/lib/chef/resource/chef_client_scheduled_task.rb +16 -16
  122. data/lib/chef/resource/chef_client_systemd_timer.rb +5 -5
  123. data/lib/chef/resource/chef_client_trusted_certificate.rb +2 -2
  124. data/lib/chef/resource/chef_handler.rb +3 -7
  125. data/lib/chef/resource/chef_sleep.rb +1 -1
  126. data/lib/chef/resource/chef_vault_secret.rb +5 -10
  127. data/lib/chef/resource/chocolatey_config.rb +2 -6
  128. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  129. data/lib/chef/resource/chocolatey_source.rb +4 -10
  130. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  131. data/lib/chef/resource/cron/cron_d.rb +4 -6
  132. data/lib/chef/resource/cron_access.rb +2 -4
  133. data/lib/chef/resource/dmg_package.rb +6 -10
  134. data/lib/chef/resource/dpkg_package.rb +1 -1
  135. data/lib/chef/resource/dsc_resource.rb +1 -1
  136. data/lib/chef/resource/execute.rb +11 -6
  137. data/lib/chef/resource/file.rb +1 -1
  138. data/lib/chef/resource/gem_package.rb +2 -1
  139. data/lib/chef/resource/group.rb +6 -6
  140. data/lib/chef/{knife/recipe_list.rb → resource/habitat/_habitat_shared.rb} +13 -17
  141. data/lib/chef/resource/habitat/habitat_package.rb +129 -0
  142. data/lib/chef/resource/habitat/habitat_sup.rb +329 -0
  143. data/lib/chef/resource/habitat/habitat_sup_systemd.rb +67 -0
  144. data/lib/chef/resource/habitat/habitat_sup_windows.rb +90 -0
  145. data/lib/chef/resource/habitat_config.rb +107 -0
  146. data/lib/chef/resource/habitat_install.rb +247 -0
  147. data/lib/chef/resource/habitat_service.rb +451 -0
  148. data/lib/chef/resource/habitat_user_toml.rb +92 -0
  149. data/lib/chef/resource/homebrew_cask.rb +17 -10
  150. data/lib/chef/resource/homebrew_package.rb +1 -1
  151. data/lib/chef/resource/homebrew_tap.rb +4 -7
  152. data/lib/chef/resource/homebrew_update.rb +2 -2
  153. data/lib/chef/resource/hostname.rb +68 -22
  154. data/lib/chef/resource/http_request.rb +1 -1
  155. data/lib/chef/resource/inspec_waiver_file_entry.rb +156 -0
  156. data/lib/chef/resource/kernel_module.rb +6 -17
  157. data/lib/chef/resource/locale.rb +2 -3
  158. data/lib/chef/resource/lwrp_base.rb +20 -1
  159. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  160. data/lib/chef/resource/mdadm.rb +53 -7
  161. data/lib/chef/resource/mount.rb +2 -1
  162. data/lib/chef/resource/ohai_hint.rb +2 -6
  163. data/lib/chef/resource/openbsd_package.rb +17 -0
  164. data/lib/chef/resource/openssl_dhparam.rb +1 -2
  165. data/lib/chef/resource/openssl_ec_private_key.rb +3 -5
  166. data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
  167. data/lib/chef/resource/openssl_rsa_private_key.rb +2 -4
  168. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
  169. data/lib/chef/resource/openssl_x509_certificate.rb +3 -6
  170. data/lib/chef/resource/openssl_x509_crl.rb +1 -3
  171. data/lib/chef/resource/openssl_x509_request.rb +1 -3
  172. data/lib/chef/resource/osx_profile.rb +3 -3
  173. data/lib/chef/resource/plist.rb +8 -8
  174. data/lib/chef/resource/powershell_package_source.rb +2 -4
  175. data/lib/chef/resource/powershell_script.rb +1 -1
  176. data/lib/chef/resource/reboot.rb +38 -9
  177. data/lib/chef/resource/remote_directory.rb +2 -2
  178. data/lib/chef/resource/remote_file.rb +3 -3
  179. data/lib/chef/resource/rhsm_errata.rb +16 -3
  180. data/lib/chef/resource/rhsm_errata_level.rb +11 -6
  181. data/lib/chef/resource/rhsm_register.rb +12 -6
  182. data/lib/chef/resource/rhsm_repo.rb +17 -6
  183. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  184. data/lib/chef/resource/scm/git.rb +1 -1
  185. data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
  186. data/lib/chef/resource/sudo.rb +8 -12
  187. data/lib/chef/resource/support/HabService.dll.config.erb +19 -0
  188. data/lib/chef/resource/support/client.erb +8 -1
  189. data/lib/chef/resource/support/sup.toml.erb +179 -0
  190. data/lib/chef/resource/swap_file.rb +2 -6
  191. data/lib/chef/resource/sysctl.rb +2 -6
  192. data/lib/chef/resource/systemd_unit.rb +2 -2
  193. data/lib/chef/resource/template.rb +1 -1
  194. data/lib/chef/resource/timezone.rb +1 -3
  195. data/lib/chef/resource/user/mac_user.rb +1 -1
  196. data/lib/chef/resource/user_ulimit.rb +2 -2
  197. data/lib/chef/resource/windows_ad_join.rb +2 -6
  198. data/lib/chef/resource/windows_audit_policy.rb +2 -2
  199. data/lib/chef/resource/windows_auto_run.rb +2 -5
  200. data/lib/chef/resource/windows_certificate.rb +207 -73
  201. data/lib/chef/resource/windows_defender.rb +163 -0
  202. data/lib/chef/resource/windows_defender_exclusion.rb +125 -0
  203. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  204. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  205. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  206. data/lib/chef/resource/windows_dns_record.rb +2 -6
  207. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  208. data/lib/chef/resource/windows_env.rb +6 -5
  209. data/lib/chef/resource/windows_feature.rb +3 -9
  210. data/lib/chef/resource/windows_feature_dism.rb +3 -9
  211. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  212. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  213. data/lib/chef/resource/windows_firewall_rule.rb +20 -9
  214. data/lib/chef/resource/windows_font.rb +3 -5
  215. data/lib/chef/resource/windows_pagefile.rb +104 -69
  216. data/lib/chef/resource/windows_path.rb +4 -4
  217. data/lib/chef/resource/windows_printer.rb +80 -61
  218. data/lib/chef/resource/windows_printer_port.rb +49 -66
  219. data/lib/chef/resource/windows_security_policy.rb +56 -40
  220. data/lib/chef/resource/windows_share.rb +14 -21
  221. data/lib/chef/resource/windows_shortcut.rb +4 -6
  222. data/lib/chef/resource/windows_task.rb +19 -7
  223. data/lib/chef/resource/windows_uac.rb +3 -5
  224. data/lib/chef/resource/windows_update_settings.rb +259 -0
  225. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  226. data/lib/chef/resource/windows_workgroup.rb +3 -4
  227. data/lib/chef/resource/yum_package.rb +10 -10
  228. data/lib/chef/resource/zypper_package.rb +4 -4
  229. data/lib/chef/resource/zypper_repository.rb +28 -8
  230. data/lib/chef/resource_builder.rb +8 -2
  231. data/lib/chef/resource_reporter.rb +0 -1
  232. data/lib/chef/resources.rb +13 -2
  233. data/lib/chef/run_lock.rb +1 -1
  234. data/lib/chef/runner.rb +1 -1
  235. data/lib/chef/secret_fetcher.rb +54 -0
  236. data/lib/chef/secret_fetcher/aws_secrets_manager.rb +53 -0
  237. data/lib/chef/secret_fetcher/azure_key_vault.rb +56 -0
  238. data/lib/chef/secret_fetcher/base.rb +72 -0
  239. data/lib/chef/secret_fetcher/example.rb +46 -0
  240. data/lib/chef/shell/ext.rb +3 -3
  241. data/lib/chef/user.rb +0 -1
  242. data/lib/chef/user_v1.rb +3 -4
  243. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  244. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  245. data/lib/chef/version.rb +1 -1
  246. data/lib/chef/win32/api.rb +9 -2
  247. data/lib/chef/win32/registry.rb +4 -2
  248. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  249. data/spec/data/lwrp/resources/bar.rb +2 -0
  250. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  251. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  252. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  253. data/spec/data/lwrp/resources/foo.rb +2 -0
  254. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  255. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  256. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  257. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  258. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  259. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  260. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  261. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  262. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  263. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  264. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  265. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  266. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  267. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  268. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  269. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  270. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  271. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  272. data/spec/functional/mixin/from_file_spec.rb +1 -1
  273. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  274. data/spec/functional/resource/apt_package_spec.rb +1 -1
  275. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  276. data/spec/functional/resource/dnf_package_spec.rb +857 -534
  277. data/spec/functional/resource/group_spec.rb +1 -1
  278. data/spec/functional/resource/link_spec.rb +1 -1
  279. data/spec/functional/resource/registry_spec.rb +8 -8
  280. data/spec/functional/resource/remote_file_spec.rb +1 -1
  281. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  282. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  283. data/spec/functional/resource/windows_env_spec.rb +2 -2
  284. data/spec/functional/resource/windows_hostname_spec.rb +91 -0
  285. data/spec/functional/resource/windows_pagefile_spec.rb +98 -0
  286. data/spec/functional/resource/yum_package_spec.rb +495 -428
  287. data/spec/functional/version_spec.rb +1 -1
  288. data/spec/functional/win32/registry_spec.rb +1 -1
  289. data/spec/integration/client/client_spec.rb +5 -22
  290. data/spec/integration/client/exit_code_spec.rb +1 -1
  291. data/spec/integration/client/ipv6_spec.rb +1 -1
  292. data/spec/integration/compliance/compliance_spec.rb +1 -1
  293. data/spec/integration/ohai/ohai_spec.rb +7 -6
  294. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  295. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  296. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  297. data/spec/integration/recipes/notifies_spec.rb +15 -1
  298. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  299. data/spec/integration/recipes/recipe_dsl_spec.rb +10 -10
  300. data/spec/integration/recipes/resource_action_spec.rb +4 -4
  301. data/spec/integration/recipes/unified_mode_spec.rb +71 -1
  302. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  303. data/spec/spec_helper.rb +13 -13
  304. data/spec/support/chef_helpers.rb +1 -17
  305. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  306. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  307. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  308. data/spec/support/matchers/leak.rb +7 -9
  309. data/spec/support/platform_helpers.rb +1 -8
  310. data/spec/support/shared/functional/execute_resource.rb +1 -1
  311. data/spec/support/shared/integration/integration_helper.rb +0 -1
  312. data/spec/support/shared/unit/provider/file.rb +3 -9
  313. data/spec/support/shared/unit/script_resource.rb +2 -2
  314. data/spec/unit/application/solo_spec.rb +2 -2
  315. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  316. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
  317. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  318. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  319. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  320. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  321. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  322. data/spec/unit/compliance/runner_spec.rb +31 -5
  323. data/spec/unit/cookbook_version_spec.rb +52 -0
  324. data/spec/unit/data_bag_item_spec.rb +1 -6
  325. data/spec/unit/data_collector_spec.rb +47 -1
  326. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  327. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  328. data/spec/unit/dsl/render_helpers_spec.rb +102 -0
  329. data/spec/unit/dsl/secret_spec.rb +65 -0
  330. data/spec/unit/handler_spec.rb +8 -2
  331. data/spec/unit/lwrp_spec.rb +1 -1
  332. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  333. data/spec/unit/node/attribute_spec.rb +1 -1
  334. data/spec/unit/node_spec.rb +78 -0
  335. data/spec/unit/org_group_spec.rb +45 -0
  336. data/spec/unit/policy_builder/dynamic_spec.rb +0 -5
  337. data/spec/unit/policy_builder/policyfile_spec.rb +144 -56
  338. data/spec/unit/property_spec.rb +23 -22
  339. data/spec/unit/provider/apt_update_spec.rb +3 -1
  340. data/spec/unit/provider/cron_spec.rb +1 -1
  341. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  342. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  343. data/spec/unit/provider/group/pw_spec.rb +2 -2
  344. data/spec/unit/provider/group_spec.rb +1 -1
  345. data/spec/unit/provider/link_spec.rb +1 -1
  346. data/spec/unit/provider/mount/aix_spec.rb +1 -1
  347. data/spec/unit/provider/package/apt_spec.rb +84 -18
  348. data/spec/unit/provider/package/deb_spec.rb +3 -3
  349. data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -0
  350. data/spec/unit/provider/package/powershell_spec.rb +74 -12
  351. data/spec/unit/provider/package/rubygems_spec.rb +21 -33
  352. data/spec/unit/provider/package/yum/python_helper_spec.rb +1 -0
  353. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  354. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  355. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  356. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  357. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  358. data/spec/unit/provider/service/windows_spec.rb +2 -2
  359. data/spec/unit/provider/subversion_spec.rb +2 -2
  360. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  361. data/spec/unit/provider/zypper_repository_spec.rb +5 -12
  362. data/spec/unit/provider_spec.rb +0 -8
  363. data/spec/unit/resource/inspec_waiver_file_entry_spec.rb +80 -0
  364. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  365. data/spec/unit/resource/windows_defender_exclusion_spec.rb +62 -0
  366. data/spec/unit/resource/windows_defender_spec.rb +71 -0
  367. data/spec/unit/resource/windows_firewall_rule_spec.rb +12 -7
  368. data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
  369. data/spec/unit/resource/windows_task_spec.rb +1 -1
  370. data/spec/unit/resource/windows_update_settings_spec.rb +64 -0
  371. data/spec/unit/resource/zypper_repository_spec.rb +1 -1
  372. data/spec/unit/secret_fetcher/azure_key_vault_spec.rb +63 -0
  373. data/spec/unit/secret_fetcher_spec.rb +82 -0
  374. data/spec/unit/user_spec.rb +1 -1
  375. data/spec/unit/user_v1_spec.rb +6 -4
  376. data/tasks/rspec.rb +9 -6
  377. metadata +59 -519
  378. data/bin/knife +0 -24
  379. data/lib/chef/application/knife.rb +0 -234
  380. data/lib/chef/application/windows_service.rb +0 -338
  381. data/lib/chef/application/windows_service_manager.rb +0 -205
  382. data/lib/chef/chef_fs/knife.rb +0 -160
  383. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  384. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  385. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  386. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  387. data/lib/chef/knife.rb +0 -665
  388. data/lib/chef/knife/acl_add.rb +0 -57
  389. data/lib/chef/knife/acl_base.rb +0 -183
  390. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  391. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  392. data/lib/chef/knife/acl_remove.rb +0 -62
  393. data/lib/chef/knife/acl_show.rb +0 -56
  394. data/lib/chef/knife/bootstrap.rb +0 -1192
  395. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  396. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  397. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  398. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  399. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  400. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  401. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  402. data/lib/chef/knife/client_create.rb +0 -101
  403. data/lib/chef/knife/client_delete.rb +0 -62
  404. data/lib/chef/knife/client_edit.rb +0 -52
  405. data/lib/chef/knife/client_key_create.rb +0 -73
  406. data/lib/chef/knife/client_key_delete.rb +0 -80
  407. data/lib/chef/knife/client_key_edit.rb +0 -83
  408. data/lib/chef/knife/client_key_list.rb +0 -73
  409. data/lib/chef/knife/client_key_show.rb +0 -80
  410. data/lib/chef/knife/client_list.rb +0 -41
  411. data/lib/chef/knife/client_reregister.rb +0 -58
  412. data/lib/chef/knife/client_show.rb +0 -48
  413. data/lib/chef/knife/config_get.rb +0 -39
  414. data/lib/chef/knife/config_get_profile.rb +0 -37
  415. data/lib/chef/knife/config_list.rb +0 -139
  416. data/lib/chef/knife/config_list_profiles.rb +0 -37
  417. data/lib/chef/knife/config_show.rb +0 -127
  418. data/lib/chef/knife/config_use.rb +0 -61
  419. data/lib/chef/knife/config_use_profile.rb +0 -47
  420. data/lib/chef/knife/configure.rb +0 -150
  421. data/lib/chef/knife/configure_client.rb +0 -48
  422. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  423. data/lib/chef/knife/cookbook_delete.rb +0 -151
  424. data/lib/chef/knife/cookbook_download.rb +0 -142
  425. data/lib/chef/knife/cookbook_list.rb +0 -47
  426. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  427. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  428. data/lib/chef/knife/cookbook_show.rb +0 -98
  429. data/lib/chef/knife/cookbook_upload.rb +0 -292
  430. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  431. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  432. data/lib/chef/knife/core/formatting_options.rb +0 -49
  433. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  434. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  435. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  436. data/lib/chef/knife/core/node_editor.rb +0 -130
  437. data/lib/chef/knife/core/node_presenter.rb +0 -133
  438. data/lib/chef/knife/core/object_loader.rb +0 -115
  439. data/lib/chef/knife/core/status_presenter.rb +0 -147
  440. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  441. data/lib/chef/knife/core/text_formatter.rb +0 -85
  442. data/lib/chef/knife/core/ui.rb +0 -338
  443. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
  444. data/lib/chef/knife/data_bag_create.rb +0 -81
  445. data/lib/chef/knife/data_bag_delete.rb +0 -49
  446. data/lib/chef/knife/data_bag_edit.rb +0 -74
  447. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  448. data/lib/chef/knife/data_bag_list.rb +0 -42
  449. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  450. data/lib/chef/knife/data_bag_show.rb +0 -69
  451. data/lib/chef/knife/delete.rb +0 -125
  452. data/lib/chef/knife/deps.rb +0 -156
  453. data/lib/chef/knife/diff.rb +0 -83
  454. data/lib/chef/knife/download.rb +0 -84
  455. data/lib/chef/knife/edit.rb +0 -88
  456. data/lib/chef/knife/environment_compare.rb +0 -128
  457. data/lib/chef/knife/environment_create.rb +0 -52
  458. data/lib/chef/knife/environment_delete.rb +0 -44
  459. data/lib/chef/knife/environment_edit.rb +0 -44
  460. data/lib/chef/knife/environment_from_file.rb +0 -84
  461. data/lib/chef/knife/environment_list.rb +0 -41
  462. data/lib/chef/knife/environment_show.rb +0 -47
  463. data/lib/chef/knife/exec.rb +0 -99
  464. data/lib/chef/knife/group_add.rb +0 -55
  465. data/lib/chef/knife/group_create.rb +0 -49
  466. data/lib/chef/knife/group_destroy.rb +0 -53
  467. data/lib/chef/knife/group_remove.rb +0 -56
  468. data/lib/chef/knife/group_show.rb +0 -49
  469. data/lib/chef/knife/key_create.rb +0 -112
  470. data/lib/chef/knife/key_create_base.rb +0 -50
  471. data/lib/chef/knife/key_delete.rb +0 -55
  472. data/lib/chef/knife/key_edit.rb +0 -118
  473. data/lib/chef/knife/key_edit_base.rb +0 -55
  474. data/lib/chef/knife/key_list.rb +0 -90
  475. data/lib/chef/knife/key_list_base.rb +0 -45
  476. data/lib/chef/knife/key_show.rb +0 -53
  477. data/lib/chef/knife/list.rb +0 -177
  478. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  479. data/lib/chef/knife/node_create.rb +0 -47
  480. data/lib/chef/knife/node_delete.rb +0 -46
  481. data/lib/chef/knife/node_edit.rb +0 -70
  482. data/lib/chef/knife/node_environment_set.rb +0 -53
  483. data/lib/chef/knife/node_from_file.rb +0 -51
  484. data/lib/chef/knife/node_list.rb +0 -44
  485. data/lib/chef/knife/node_policy_set.rb +0 -79
  486. data/lib/chef/knife/node_run_list_add.rb +0 -104
  487. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  488. data/lib/chef/knife/node_run_list_set.rb +0 -66
  489. data/lib/chef/knife/node_show.rb +0 -63
  490. data/lib/chef/knife/null.rb +0 -12
  491. data/lib/chef/knife/raw.rb +0 -123
  492. data/lib/chef/knife/rehash.rb +0 -50
  493. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  494. data/lib/chef/knife/role_create.rb +0 -53
  495. data/lib/chef/knife/role_delete.rb +0 -46
  496. data/lib/chef/knife/role_edit.rb +0 -45
  497. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  498. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  499. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  500. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  501. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  502. data/lib/chef/knife/role_from_file.rb +0 -51
  503. data/lib/chef/knife/role_list.rb +0 -42
  504. data/lib/chef/knife/role_run_list_add.rb +0 -87
  505. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  506. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  507. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  508. data/lib/chef/knife/role_run_list_set.rb +0 -69
  509. data/lib/chef/knife/role_show.rb +0 -48
  510. data/lib/chef/knife/search.rb +0 -194
  511. data/lib/chef/knife/serve.rb +0 -65
  512. data/lib/chef/knife/show.rb +0 -72
  513. data/lib/chef/knife/ssh.rb +0 -645
  514. data/lib/chef/knife/ssl_check.rb +0 -284
  515. data/lib/chef/knife/ssl_fetch.rb +0 -161
  516. data/lib/chef/knife/status.rb +0 -95
  517. data/lib/chef/knife/supermarket_download.rb +0 -121
  518. data/lib/chef/knife/supermarket_install.rb +0 -192
  519. data/lib/chef/knife/supermarket_list.rb +0 -76
  520. data/lib/chef/knife/supermarket_search.rb +0 -53
  521. data/lib/chef/knife/supermarket_share.rb +0 -166
  522. data/lib/chef/knife/supermarket_show.rb +0 -66
  523. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  524. data/lib/chef/knife/tag_create.rb +0 -52
  525. data/lib/chef/knife/tag_delete.rb +0 -60
  526. data/lib/chef/knife/tag_list.rb +0 -47
  527. data/lib/chef/knife/upload.rb +0 -86
  528. data/lib/chef/knife/user_create.rb +0 -107
  529. data/lib/chef/knife/user_delete.rb +0 -44
  530. data/lib/chef/knife/user_dissociate.rb +0 -42
  531. data/lib/chef/knife/user_edit.rb +0 -52
  532. data/lib/chef/knife/user_invite_add.rb +0 -43
  533. data/lib/chef/knife/user_invite_list.rb +0 -34
  534. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  535. data/lib/chef/knife/user_key_create.rb +0 -73
  536. data/lib/chef/knife/user_key_delete.rb +0 -80
  537. data/lib/chef/knife/user_key_edit.rb +0 -83
  538. data/lib/chef/knife/user_key_list.rb +0 -73
  539. data/lib/chef/knife/user_key_show.rb +0 -80
  540. data/lib/chef/knife/user_list.rb +0 -42
  541. data/lib/chef/knife/user_reregister.rb +0 -59
  542. data/lib/chef/knife/user_show.rb +0 -48
  543. data/lib/chef/knife/xargs.rb +0 -282
  544. data/lib/chef/knife/yaml_convert.rb +0 -91
  545. data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +0 -79
  546. data/lib/chef/provider/package/yum/simplejson/__init__.py +0 -318
  547. data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
  548. data/lib/chef/provider/package/yum/simplejson/decoder.py +0 -354
  549. data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
  550. data/lib/chef/provider/package/yum/simplejson/encoder.py +0 -440
  551. data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
  552. data/lib/chef/provider/package/yum/simplejson/scanner.py +0 -65
  553. data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
  554. data/lib/chef/provider/package/yum/simplejson/tool.py +0 -37
  555. data/lib/chef/resource/user/dscl_user.rb +0 -35
  556. data/spec/functional/knife/configure_spec.rb +0 -33
  557. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  558. data/spec/functional/knife/exec_spec.rb +0 -55
  559. data/spec/functional/knife/rehash_spec.rb +0 -39
  560. data/spec/functional/knife/smoke_test.rb +0 -42
  561. data/spec/functional/knife/ssh_spec.rb +0 -352
  562. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  563. data/spec/functional/resource/windows_service_spec.rb +0 -105
  564. data/spec/functional/win32/service_manager_spec.rb +0 -220
  565. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  566. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  567. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  568. data/spec/integration/knife/chefignore_spec.rb +0 -301
  569. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  570. data/spec/integration/knife/client_create_spec.rb +0 -70
  571. data/spec/integration/knife/client_delete_spec.rb +0 -64
  572. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  573. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  574. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  575. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  576. data/spec/integration/knife/client_list_spec.rb +0 -49
  577. data/spec/integration/knife/client_show_spec.rb +0 -37
  578. data/spec/integration/knife/common_options_spec.rb +0 -174
  579. data/spec/integration/knife/config_list_spec.rb +0 -220
  580. data/spec/integration/knife/config_show_spec.rb +0 -192
  581. data/spec/integration/knife/config_use_spec.rb +0 -198
  582. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  583. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  584. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  585. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  586. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  587. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  588. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  589. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  590. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  591. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  592. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  593. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  594. data/spec/integration/knife/delete_spec.rb +0 -1018
  595. data/spec/integration/knife/deps_spec.rb +0 -703
  596. data/spec/integration/knife/diff_spec.rb +0 -605
  597. data/spec/integration/knife/download_spec.rb +0 -1336
  598. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  599. data/spec/integration/knife/environment_create_spec.rb +0 -41
  600. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  601. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  602. data/spec/integration/knife/environment_list_spec.rb +0 -42
  603. data/spec/integration/knife/environment_show_spec.rb +0 -77
  604. data/spec/integration/knife/list_spec.rb +0 -1060
  605. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  606. data/spec/integration/knife/node_create_spec.rb +0 -47
  607. data/spec/integration/knife/node_delete_spec.rb +0 -48
  608. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  609. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  610. data/spec/integration/knife/node_list_spec.rb +0 -45
  611. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  612. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  613. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  614. data/spec/integration/knife/node_show_spec.rb +0 -36
  615. data/spec/integration/knife/raw_spec.rb +0 -297
  616. data/spec/integration/knife/redirection_spec.rb +0 -64
  617. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  618. data/spec/integration/knife/role_create_spec.rb +0 -41
  619. data/spec/integration/knife/role_delete_spec.rb +0 -48
  620. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  621. data/spec/integration/knife/role_list_spec.rb +0 -45
  622. data/spec/integration/knife/role_show_spec.rb +0 -51
  623. data/spec/integration/knife/search_node_spec.rb +0 -40
  624. data/spec/integration/knife/serve_spec.rb +0 -92
  625. data/spec/integration/knife/show_spec.rb +0 -197
  626. data/spec/integration/knife/upload_spec.rb +0 -1617
  627. data/spec/support/shared/functional/win32_service.rb +0 -57
  628. data/spec/unit/application/knife_spec.rb +0 -241
  629. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  630. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  631. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  632. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  633. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  634. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  635. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  636. data/spec/unit/knife/client_create_spec.rb +0 -169
  637. data/spec/unit/knife/client_delete_spec.rb +0 -99
  638. data/spec/unit/knife/client_edit_spec.rb +0 -53
  639. data/spec/unit/knife/client_list_spec.rb +0 -34
  640. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  641. data/spec/unit/knife/client_show_spec.rb +0 -52
  642. data/spec/unit/knife/configure_client_spec.rb +0 -81
  643. data/spec/unit/knife/configure_spec.rb +0 -190
  644. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  645. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  646. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  647. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  648. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  649. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  650. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  651. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  652. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  653. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  654. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  655. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  656. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  657. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  658. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  659. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  660. data/spec/unit/knife/core/ui_spec.rb +0 -656
  661. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  662. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  663. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  664. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  665. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  666. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  667. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  668. data/spec/unit/knife/environment_create_spec.rb +0 -91
  669. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  670. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  671. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  672. data/spec/unit/knife/environment_list_spec.rb +0 -54
  673. data/spec/unit/knife/environment_show_spec.rb +0 -52
  674. data/spec/unit/knife/key_create_spec.rb +0 -223
  675. data/spec/unit/knife/key_delete_spec.rb +0 -133
  676. data/spec/unit/knife/key_edit_spec.rb +0 -264
  677. data/spec/unit/knife/key_helper.rb +0 -74
  678. data/spec/unit/knife/key_list_spec.rb +0 -216
  679. data/spec/unit/knife/key_show_spec.rb +0 -126
  680. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  681. data/spec/unit/knife/node_delete_spec.rb +0 -77
  682. data/spec/unit/knife/node_edit_spec.rb +0 -116
  683. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  684. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  685. data/spec/unit/knife/node_list_spec.rb +0 -62
  686. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  687. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  688. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  689. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  690. data/spec/unit/knife/node_show_spec.rb +0 -65
  691. data/spec/unit/knife/raw_spec.rb +0 -43
  692. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  693. data/spec/unit/knife/role_create_spec.rb +0 -80
  694. data/spec/unit/knife/role_delete_spec.rb +0 -67
  695. data/spec/unit/knife/role_edit_spec.rb +0 -77
  696. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  697. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  698. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  699. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  700. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  701. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  702. data/spec/unit/knife/role_list_spec.rb +0 -54
  703. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  704. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  705. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  706. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  707. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  708. data/spec/unit/knife/role_show_spec.rb +0 -59
  709. data/spec/unit/knife/ssh_spec.rb +0 -403
  710. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  711. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  712. data/spec/unit/knife/status_spec.rb +0 -112
  713. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  714. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  715. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  716. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  717. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  718. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  719. data/spec/unit/knife/tag_create_spec.rb +0 -23
  720. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  721. data/spec/unit/knife/tag_list_spec.rb +0 -23
  722. data/spec/unit/knife/user_create_spec.rb +0 -184
  723. data/spec/unit/knife/user_delete_spec.rb +0 -46
  724. data/spec/unit/knife/user_edit_spec.rb +0 -48
  725. data/spec/unit/knife/user_list_spec.rb +0 -36
  726. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  727. data/spec/unit/knife/user_show_spec.rb +0 -46
  728. data/spec/unit/knife_spec.rb +0 -634
  729. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  730. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,962 +0,0 @@
1
- #
2
- # Author:: John Keiser (<jkeiser@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
-
18
- require "spec_helper"
19
- require "support/shared/integration/integration_helper"
20
- require "support/shared/context/config"
21
- require "chef/knife/list"
22
- require "chef/knife/show"
23
-
24
- describe "chef_repo_path tests", :workstation do
25
- include IntegrationSupport
26
- include KnifeSupport
27
-
28
- let(:error_rel_path_outside_repo) { /^ERROR: Attempt to use relative path '' when current directory is outside the repository path/ }
29
-
30
- # TODO alternate repo_path / *_path
31
- context "alternate *_path" do
32
- when_the_repository "has clients and clients2, cookbooks and cookbooks2, etc." do
33
- before do
34
- file "clients/client1.json", {}
35
- file "cookbooks/cookbook1/metadata.rb", ""
36
- file "data_bags/bag/item.json", {}
37
- file "environments/env1.json", {}
38
- file "nodes/node1.json", {}
39
- file "roles/role1.json", {}
40
- file "users/user1.json", {}
41
-
42
- file "clients2/client2.json", {}
43
- file "cookbooks2/cookbook2/metadata.rb", ""
44
- file "data_bags2/bag2/item2.json", {}
45
- file "environments2/env2.json", {}
46
- file "nodes2/node2.json", {}
47
- file "roles2/role2.json", {}
48
- file "users2/user2.json", {}
49
-
50
- directory "chef_repo2" do
51
- file "clients/client3.json", {}
52
- file "cookbooks/cookbook3/metadata.rb", "name 'cookbook3'"
53
- file "data_bags/bag3/item3.json", {}
54
- file "environments/env3.json", {}
55
- file "nodes/node3.json", {}
56
- file "roles/role3.json", {}
57
- file "users/user3.json", {}
58
- end
59
- end
60
-
61
- it "knife list --local -Rfp --chef-repo-path chef_repo2 / grabs chef_repo2 stuff" do
62
- Chef::Config.delete(:chef_repo_path)
63
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_repo2")} /").should_succeed <<~EOM
64
- /clients/
65
- /clients/client3.json
66
- /cookbooks/
67
- /cookbooks/cookbook3/
68
- /cookbooks/cookbook3/metadata.rb
69
- /data_bags/
70
- /data_bags/bag3/
71
- /data_bags/bag3/item3.json
72
- /environments/
73
- /environments/env3.json
74
- /nodes/
75
- /nodes/node3.json
76
- /roles/
77
- /roles/role3.json
78
- /users/
79
- /users/user3.json
80
- EOM
81
- end
82
-
83
- # "Skipping for BK... As Windows 2019 has 8dot3name disabled by default"
84
- it "knife list --local -Rfp --chef-repo-path chef_r~1 / grabs chef_repo2 stuff", :windows_only, :skip_buildkite do
85
- Chef::Config.delete(:chef_repo_path)
86
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_r~1")} /").should_succeed <<~EOM
87
- /clients/
88
- /clients/client3.json
89
- /cookbooks/
90
- /cookbooks/cookbook3/
91
- /cookbooks/cookbook3/metadata.rb
92
- /data_bags/
93
- /data_bags/bag3/
94
- /data_bags/bag3/item3.json
95
- /environments/
96
- /environments/env3.json
97
- /nodes/
98
- /nodes/node3.json
99
- /roles/
100
- /roles/role3.json
101
- /users/
102
- /users/user3.json
103
- EOM
104
- end
105
-
106
- # "Skipping for BK... As Windows 2019 has 8dot3name disabled by default"
107
- it "knife list --local -Rfp --chef-repo-path chef_r~1 / grabs chef_repo2 stuff", :windows_only, :skip_buildkite do
108
- Chef::Config.delete(:chef_repo_path)
109
- knife("list -z -Rfp --chef-repo-path #{path_to("chef_r~1")} /").should_succeed <<~EOM
110
- /acls/
111
- /acls/clients/
112
- /acls/clients/client3.json
113
- /acls/containers/
114
- /acls/cookbook_artifacts/
115
- /acls/cookbooks/
116
- /acls/cookbooks/cookbook3.json
117
- /acls/data_bags/
118
- /acls/data_bags/bag3.json
119
- /acls/environments/
120
- /acls/environments/env3.json
121
- /acls/groups/
122
- /acls/nodes/
123
- /acls/nodes/node3.json
124
- /acls/organization.json
125
- /acls/policies/
126
- /acls/policy_groups/
127
- /acls/roles/
128
- /acls/roles/role3.json
129
- /clients/
130
- /clients/client3.json
131
- /containers/
132
- /cookbook_artifacts/
133
- /cookbooks/
134
- /cookbooks/cookbook3/
135
- /cookbooks/cookbook3/metadata.rb
136
- /data_bags/
137
- /data_bags/bag3/
138
- /data_bags/bag3/item3.json
139
- /environments/
140
- /environments/env3.json
141
- /groups/
142
- /invitations.json
143
- /members.json
144
- /nodes/
145
- /nodes/node3.json
146
- /org.json
147
- /policies/
148
- /policy_groups/
149
- /roles/
150
- /roles/role3.json
151
- EOM
152
- end
153
-
154
- context "when all _paths are set to alternates" do
155
- before :each do
156
- %w{client cookbook data_bag environment node role user}.each do |object_name|
157
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "#{object_name}s2")
158
- end
159
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
160
- end
161
-
162
- it "knife list --local -Rfp --chef-repo-path chef_repo2 / grabs chef_repo2 stuff" do
163
- knife("list --local -Rfp --chef-repo-path #{path_to("chef_repo2")} /").should_succeed <<~EOM
164
- /clients/
165
- /clients/client3.json
166
- /cookbooks/
167
- /cookbooks/cookbook3/
168
- /cookbooks/cookbook3/metadata.rb
169
- /data_bags/
170
- /data_bags/bag3/
171
- /data_bags/bag3/item3.json
172
- /environments/
173
- /environments/env3.json
174
- /nodes/
175
- /nodes/node3.json
176
- /roles/
177
- /roles/role3.json
178
- /users/
179
- /users/user3.json
180
- EOM
181
- end
182
-
183
- context "when cwd is at the top level" do
184
- before { cwd "." }
185
- it "knife list --local -Rfp fails" do
186
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
187
- end
188
- end
189
-
190
- context "when cwd is inside the data_bags directory" do
191
- before { cwd "data_bags" }
192
- it "knife list --local -Rfp fails" do
193
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
194
- end
195
- end
196
-
197
- context "when cwd is inside chef_repo2" do
198
- before { cwd "chef_repo2" }
199
- it "knife list --local -Rfp lists everything" do
200
- knife("list --local -Rfp").should_succeed <<~EOM
201
- clients/
202
- clients/client2.json
203
- cookbooks/
204
- cookbooks/cookbook2/
205
- cookbooks/cookbook2/metadata.rb
206
- data_bags/
207
- data_bags/bag2/
208
- data_bags/bag2/item2.json
209
- environments/
210
- environments/env2.json
211
- nodes/
212
- nodes/node2.json
213
- roles/
214
- roles/role2.json
215
- users/
216
- users/user2.json
217
- EOM
218
- end
219
- end
220
-
221
- context "when cwd is inside data_bags2" do
222
- before { cwd "data_bags2" }
223
- it "knife list --local -Rfp lists data bags" do
224
- knife("list --local -Rfp").should_succeed <<~EOM
225
- bag2/
226
- bag2/item2.json
227
- EOM
228
- end
229
- it "knife list --local -Rfp ../roles lists roles" do
230
- knife("list --local -Rfp ../roles").should_succeed "/roles/role2.json\n"
231
- end
232
- end
233
- end
234
-
235
- context "when all _paths except chef_repo_path are set to alternates" do
236
- before :each do
237
- %w{client cookbook data_bag environment node role user}.each do |object_name|
238
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "#{object_name}s2")
239
- end
240
- end
241
-
242
- context "when cwd is at the top level" do
243
- before { cwd "." }
244
- it "knife list --local -Rfp lists everything" do
245
- knife("list --local -Rfp").should_succeed <<~EOM
246
- clients/
247
- clients/client2.json
248
- cookbooks/
249
- cookbooks/cookbook2/
250
- cookbooks/cookbook2/metadata.rb
251
- data_bags/
252
- data_bags/bag2/
253
- data_bags/bag2/item2.json
254
- environments/
255
- environments/env2.json
256
- nodes/
257
- nodes/node2.json
258
- roles/
259
- roles/role2.json
260
- users/
261
- users/user2.json
262
- EOM
263
- end
264
- end
265
-
266
- context "when cwd is inside the data_bags directory" do
267
- before { cwd "data_bags" }
268
- it "knife list --local -Rfp fails" do
269
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
270
- end
271
- end
272
-
273
- context "when cwd is inside chef_repo2" do
274
- before { cwd "chef_repo2" }
275
- it "knife list -Rfp fails" do
276
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
277
- end
278
- end
279
-
280
- context "when cwd is inside data_bags2" do
281
- before { cwd "data_bags2" }
282
- it "knife list --local -Rfp lists data bags" do
283
- knife("list --local -Rfp").should_succeed <<~EOM
284
- bag2/
285
- bag2/item2.json
286
- EOM
287
- end
288
- end
289
- end
290
-
291
- context "when only chef_repo_path is set to its alternate" do
292
- before :each do
293
- %w{client cookbook data_bag environment node role user}.each do |object_name|
294
- Chef::Config.delete("#{object_name}_path".to_sym)
295
- end
296
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
297
- end
298
-
299
- context "when cwd is at the top level" do
300
- before { cwd "." }
301
- it "knife list --local -Rfp fails" do
302
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
303
- end
304
- end
305
-
306
- context "when cwd is inside the data_bags directory" do
307
- before { cwd "data_bags" }
308
- it "knife list --local -Rfp fails" do
309
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
310
- end
311
- end
312
-
313
- context "when cwd is inside chef_repo2" do
314
- before { cwd "chef_repo2" }
315
- it "knife list --local -Rfp lists everything" do
316
- knife("list --local -Rfp").should_succeed <<~EOM
317
- clients/
318
- clients/client3.json
319
- cookbooks/
320
- cookbooks/cookbook3/
321
- cookbooks/cookbook3/metadata.rb
322
- data_bags/
323
- data_bags/bag3/
324
- data_bags/bag3/item3.json
325
- environments/
326
- environments/env3.json
327
- nodes/
328
- nodes/node3.json
329
- roles/
330
- roles/role3.json
331
- users/
332
- users/user3.json
333
- EOM
334
- end
335
- end
336
-
337
- context "when cwd is inside chef_repo2/data_bags" do
338
- before { cwd "chef_repo2/data_bags" }
339
- it "knife list --local -Rfp lists data bags" do
340
- knife("list --local -Rfp").should_succeed <<~EOM
341
- bag3/
342
- bag3/item3.json
343
- EOM
344
- end
345
- end
346
- end
347
-
348
- context "when paths are set to point to both versions of each" do
349
- before :each do
350
- %w{client cookbook data_bag environment node role user}.each do |object_name|
351
- Chef::Config["#{object_name}_path".to_sym] = [
352
- File.join(Chef::Config.chef_repo_path, "#{object_name}s"),
353
- File.join(Chef::Config.chef_repo_path, "#{object_name}s2"),
354
- ]
355
- end
356
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
357
- end
358
-
359
- context "when there is a directory in clients1 and file in clients2 with the same name" do
360
- before do
361
- directory "clients/blah.json"
362
- file "clients2/blah.json", {}
363
- end
364
- it "knife show /clients/blah.json succeeds" do
365
- knife("show --local /clients/blah.json").should_succeed <<~EOM
366
- /clients/blah.json:
367
- {
368
-
369
- }
370
- EOM
371
- end
372
- end
373
-
374
- context "when there is a file in cookbooks1 and directory in cookbooks2 with the same name" do
375
- before do
376
- file "cookbooks/blah", ""
377
- file "cookbooks2/blah/metadata.rb", ""
378
- end
379
- it "knife list -Rfp cookbooks shows files in blah" do
380
- knife("list --local -Rfp /cookbooks").should_succeed <<~EOM
381
- /cookbooks/blah/
382
- /cookbooks/blah/metadata.rb
383
- /cookbooks/cookbook1/
384
- /cookbooks/cookbook1/metadata.rb
385
- /cookbooks/cookbook2/
386
- /cookbooks/cookbook2/metadata.rb
387
- EOM
388
- end
389
- end
390
-
391
- context "when there is an empty directory in cookbooks1 and a real cookbook in cookbooks2 with the same name" do
392
- before do
393
- directory "cookbooks/blah"
394
- file "cookbooks2/blah/metadata.rb", ""
395
- end
396
- it "knife list -Rfp cookbooks shows files in blah" do
397
- knife("list --local -Rfp /cookbooks").should_succeed(<<~EOM, stderr: "WARN: Cookbook 'blah' is empty or entirely chefignored at #{Chef::Config.cookbook_path[0]}/blah\n")
398
- /cookbooks/blah/
399
- /cookbooks/blah/metadata.rb
400
- /cookbooks/cookbook1/
401
- /cookbooks/cookbook1/metadata.rb
402
- /cookbooks/cookbook2/
403
- /cookbooks/cookbook2/metadata.rb
404
- EOM
405
- end
406
- end
407
-
408
- context "when there is a cookbook in cookbooks1 and a cookbook in cookbooks2 with the same name" do
409
- before do
410
- file "cookbooks/blah/metadata.json", {}
411
- file "cookbooks2/blah/metadata.rb", ""
412
- end
413
- it "knife list -Rfp cookbooks shows files in the first cookbook and not the second" do
414
- knife("list --local -Rfp /cookbooks").should_succeed(<<~EOM, stderr: "WARN: Child with name 'blah' found in multiple directories: #{Chef::Config.cookbook_path[0]}/blah and #{Chef::Config.cookbook_path[1]}/blah\n")
415
- /cookbooks/blah/
416
- /cookbooks/blah/metadata.json
417
- /cookbooks/cookbook1/
418
- /cookbooks/cookbook1/metadata.rb
419
- /cookbooks/cookbook2/
420
- /cookbooks/cookbook2/metadata.rb
421
- EOM
422
- end
423
- end
424
-
425
- context "when there is a file in data_bags1 and a directory in data_bags2 with the same name" do
426
- before do
427
- file "data_bags/blah", ""
428
- file "data_bags2/blah/item.json", ""
429
- end
430
- it "knife list -Rfp data_bags shows files in blah" do
431
- knife("list --local -Rfp /data_bags").should_succeed <<~EOM
432
- /data_bags/bag/
433
- /data_bags/bag/item.json
434
- /data_bags/bag2/
435
- /data_bags/bag2/item2.json
436
- /data_bags/blah/
437
- /data_bags/blah/item.json
438
- EOM
439
- end
440
- end
441
-
442
- context "when there is a data bag in data_bags1 and a data bag in data_bags2 with the same name" do
443
- before do
444
- file "data_bags/blah/item1.json", ""
445
- file "data_bags2/blah/item2.json", ""
446
- end
447
- it "knife list -Rfp data_bags shows only items in data_bags1" do
448
- knife("list --local -Rfp /data_bags").should_succeed(<<~EOM, stderr: "WARN: Child with name 'blah' found in multiple directories: #{Chef::Config.data_bag_path[0]}/blah and #{Chef::Config.data_bag_path[1]}/blah\n")
449
- /data_bags/bag/
450
- /data_bags/bag/item.json
451
- /data_bags/bag2/
452
- /data_bags/bag2/item2.json
453
- /data_bags/blah/
454
- /data_bags/blah/item1.json
455
- EOM
456
- end
457
- end
458
-
459
- context "when there is a directory in environments1 and file in environments2 with the same name" do
460
- before do
461
- directory "environments/blah.json"
462
- file "environments2/blah.json", {}
463
- end
464
- it "knife show /environments/blah.json succeeds" do
465
- knife("show --local /environments/blah.json").should_succeed <<~EOM
466
- /environments/blah.json:
467
- {
468
-
469
- }
470
- EOM
471
- end
472
- end
473
-
474
- context "when there is a directory in nodes1 and file in nodes2 with the same name" do
475
- before do
476
- directory "nodes/blah.json"
477
- file "nodes2/blah.json", {}
478
- end
479
- it "knife show /nodes/blah.json succeeds" do
480
- knife("show --local /nodes/blah.json").should_succeed <<~EOM
481
- /nodes/blah.json:
482
- {
483
-
484
- }
485
- EOM
486
- end
487
- end
488
-
489
- context "when there is a directory in roles1 and file in roles2 with the same name" do
490
- before do
491
- directory "roles/blah.json"
492
- file "roles2/blah.json", {}
493
- end
494
- it "knife show /roles/blah.json succeeds" do
495
- knife("show --local /roles/blah.json").should_succeed <<~EOM
496
- /roles/blah.json:
497
- {
498
-
499
- }
500
- EOM
501
- end
502
- end
503
-
504
- context "when there is a directory in users1 and file in users2 with the same name" do
505
- before do
506
- directory "users/blah.json"
507
- file "users2/blah.json", {}
508
- end
509
- it "knife show /users/blah.json succeeds" do
510
- knife("show --local /users/blah.json").should_succeed <<~EOM
511
- /users/blah.json:
512
- {
513
-
514
- }
515
- EOM
516
- end
517
- end
518
-
519
- context "when cwd is at the top level" do
520
- before { cwd "." }
521
- it "knife list --local -Rfp fails" do
522
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
523
- end
524
- end
525
-
526
- context "when cwd is inside the data_bags directory" do
527
- before { cwd "data_bags" }
528
- it "knife list --local -Rfp lists data bags" do
529
- knife("list --local -Rfp").should_succeed <<~EOM
530
- bag/
531
- bag/item.json
532
- bag2/
533
- bag2/item2.json
534
- EOM
535
- end
536
- end
537
-
538
- context "when cwd is inside chef_repo2" do
539
- before { cwd "chef_repo2" }
540
- it "knife list --local -Rfp lists everything" do
541
- knife("list --local -Rfp").should_succeed <<~EOM
542
- clients/
543
- clients/client1.json
544
- clients/client2.json
545
- cookbooks/
546
- cookbooks/cookbook1/
547
- cookbooks/cookbook1/metadata.rb
548
- cookbooks/cookbook2/
549
- cookbooks/cookbook2/metadata.rb
550
- data_bags/
551
- data_bags/bag/
552
- data_bags/bag/item.json
553
- data_bags/bag2/
554
- data_bags/bag2/item2.json
555
- environments/
556
- environments/env1.json
557
- environments/env2.json
558
- nodes/
559
- nodes/node1.json
560
- nodes/node2.json
561
- roles/
562
- roles/role1.json
563
- roles/role2.json
564
- users/
565
- users/user1.json
566
- users/user2.json
567
- EOM
568
- end
569
- end
570
-
571
- context "when cwd is inside data_bags2" do
572
- before { cwd "data_bags2" }
573
- it "knife list --local -Rfp lists data bags" do
574
- knife("list --local -Rfp").should_succeed <<~EOM
575
- bag/
576
- bag/item.json
577
- bag2/
578
- bag2/item2.json
579
- EOM
580
- end
581
- end
582
- end
583
-
584
- context "when when chef_repo_path is set to both places and no other _path is set" do
585
- before :each do
586
- %w{client cookbook data_bag environment node role user}.each do |object_name|
587
- Chef::Config.delete("#{object_name}_path".to_sym)
588
- end
589
- Chef::Config.chef_repo_path = [
590
- Chef::Config.chef_repo_path,
591
- File.join(Chef::Config.chef_repo_path, "chef_repo2"),
592
- ]
593
- end
594
-
595
- context "when cwd is at the top level" do
596
- before { cwd "." }
597
- it "knife list --local -Rfp lists everything" do
598
- knife("list --local -Rfp").should_succeed <<~EOM
599
- clients/
600
- clients/client1.json
601
- clients/client3.json
602
- cookbooks/
603
- cookbooks/cookbook1/
604
- cookbooks/cookbook1/metadata.rb
605
- cookbooks/cookbook3/
606
- cookbooks/cookbook3/metadata.rb
607
- data_bags/
608
- data_bags/bag/
609
- data_bags/bag/item.json
610
- data_bags/bag3/
611
- data_bags/bag3/item3.json
612
- environments/
613
- environments/env1.json
614
- environments/env3.json
615
- nodes/
616
- nodes/node1.json
617
- nodes/node3.json
618
- roles/
619
- roles/role1.json
620
- roles/role3.json
621
- users/
622
- users/user1.json
623
- users/user3.json
624
- EOM
625
- end
626
- end
627
-
628
- context "when cwd is inside the data_bags directory" do
629
- before { cwd "data_bags" }
630
- it "knife list --local -Rfp lists data bags" do
631
- knife("list --local -Rfp").should_succeed <<~EOM
632
- bag/
633
- bag/item.json
634
- bag3/
635
- bag3/item3.json
636
- EOM
637
- end
638
- end
639
-
640
- context "when cwd is inside chef_repo2" do
641
- before { cwd "chef_repo2" }
642
- it "knife list --local -Rfp lists everything" do
643
- knife("list --local -Rfp").should_succeed <<~EOM
644
- clients/
645
- clients/client1.json
646
- clients/client3.json
647
- cookbooks/
648
- cookbooks/cookbook1/
649
- cookbooks/cookbook1/metadata.rb
650
- cookbooks/cookbook3/
651
- cookbooks/cookbook3/metadata.rb
652
- data_bags/
653
- data_bags/bag/
654
- data_bags/bag/item.json
655
- data_bags/bag3/
656
- data_bags/bag3/item3.json
657
- environments/
658
- environments/env1.json
659
- environments/env3.json
660
- nodes/
661
- nodes/node1.json
662
- nodes/node3.json
663
- roles/
664
- roles/role1.json
665
- roles/role3.json
666
- users/
667
- users/user1.json
668
- users/user3.json
669
- EOM
670
- end
671
- end
672
-
673
- context "when cwd is inside chef_repo2/data_bags" do
674
- before { cwd "chef_repo2/data_bags" }
675
- it "knife list --local -Rfp lists data bags" do
676
- knife("list --local -Rfp").should_succeed <<~EOM
677
- bag/
678
- bag/item.json
679
- bag3/
680
- bag3/item3.json
681
- EOM
682
- end
683
- end
684
- end
685
-
686
- context "when cookbook_path is set and nothing else" do
687
- before :each do
688
- %w{client data_bag environment node role user}.each do |object_name|
689
- Chef::Config.delete("#{object_name}_path".to_sym)
690
- end
691
- Chef::Config.delete(:chef_repo_path)
692
- Chef::Config.cookbook_path = File.join(@repository_dir, "chef_repo2", "cookbooks")
693
- end
694
-
695
- context "when cwd is at the top level" do
696
- before { cwd "." }
697
- it "knife list --local -Rfp fails" do
698
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
699
- end
700
- end
701
-
702
- context "when cwd is inside the data_bags directory" do
703
- before { cwd "data_bags" }
704
- it "knife list --local -Rfp fails" do
705
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
706
- end
707
- end
708
-
709
- context "when cwd is inside chef_repo2" do
710
- before { cwd "chef_repo2" }
711
- it "knife list --local -Rfp lists everything" do
712
- knife("list --local -Rfp").should_succeed <<~EOM
713
- clients/
714
- clients/client3.json
715
- cookbooks/
716
- cookbooks/cookbook3/
717
- cookbooks/cookbook3/metadata.rb
718
- data_bags/
719
- data_bags/bag3/
720
- data_bags/bag3/item3.json
721
- environments/
722
- environments/env3.json
723
- nodes/
724
- nodes/node3.json
725
- roles/
726
- roles/role3.json
727
- users/
728
- users/user3.json
729
- EOM
730
- end
731
- end
732
-
733
- context "when cwd is inside chef_repo2/data_bags" do
734
- before { cwd "chef_repo2/data_bags" }
735
- it "knife list --local -Rfp lists data bags" do
736
- knife("list --local -Rfp").should_succeed <<~EOM
737
- bag3/
738
- bag3/item3.json
739
- EOM
740
- end
741
- end
742
- end
743
-
744
- context "when cookbook_path is set to multiple places and nothing else is set" do
745
- before :each do
746
- %w{client data_bag environment node role user}.each do |object_name|
747
- Chef::Config.delete("#{object_name}_path".to_sym)
748
- end
749
- Chef::Config.delete(:chef_repo_path)
750
- Chef::Config.cookbook_path = [
751
- File.join(@repository_dir, "cookbooks"),
752
- File.join(@repository_dir, "chef_repo2", "cookbooks"),
753
- ]
754
- end
755
-
756
- context "when cwd is at the top level" do
757
- before { cwd "." }
758
- it "knife list --local -Rfp lists everything" do
759
- knife("list --local -Rfp").should_succeed <<~EOM
760
- clients/
761
- clients/client1.json
762
- clients/client3.json
763
- cookbooks/
764
- cookbooks/cookbook1/
765
- cookbooks/cookbook1/metadata.rb
766
- cookbooks/cookbook3/
767
- cookbooks/cookbook3/metadata.rb
768
- data_bags/
769
- data_bags/bag/
770
- data_bags/bag/item.json
771
- data_bags/bag3/
772
- data_bags/bag3/item3.json
773
- environments/
774
- environments/env1.json
775
- environments/env3.json
776
- nodes/
777
- nodes/node1.json
778
- nodes/node3.json
779
- roles/
780
- roles/role1.json
781
- roles/role3.json
782
- users/
783
- users/user1.json
784
- users/user3.json
785
- EOM
786
- end
787
- end
788
-
789
- context "when cwd is inside the data_bags directory" do
790
- before { cwd "data_bags" }
791
- it "knife list --local -Rfp lists data bags" do
792
- knife("list --local -Rfp").should_succeed <<~EOM
793
- bag/
794
- bag/item.json
795
- bag3/
796
- bag3/item3.json
797
- EOM
798
- end
799
- end
800
-
801
- context "when cwd is inside chef_repo2" do
802
- before { cwd "chef_repo2" }
803
- it "knife list --local -Rfp lists everything" do
804
- knife("list --local -Rfp").should_succeed <<~EOM
805
- clients/
806
- clients/client1.json
807
- clients/client3.json
808
- cookbooks/
809
- cookbooks/cookbook1/
810
- cookbooks/cookbook1/metadata.rb
811
- cookbooks/cookbook3/
812
- cookbooks/cookbook3/metadata.rb
813
- data_bags/
814
- data_bags/bag/
815
- data_bags/bag/item.json
816
- data_bags/bag3/
817
- data_bags/bag3/item3.json
818
- environments/
819
- environments/env1.json
820
- environments/env3.json
821
- nodes/
822
- nodes/node1.json
823
- nodes/node3.json
824
- roles/
825
- roles/role1.json
826
- roles/role3.json
827
- users/
828
- users/user1.json
829
- users/user3.json
830
- EOM
831
- end
832
- end
833
-
834
- context "when cwd is inside chef_repo2/data_bags" do
835
- before { cwd "chef_repo2/data_bags" }
836
- it "knife list --local -Rfp lists data bags" do
837
- knife("list --local -Rfp").should_succeed <<~EOM
838
- bag/
839
- bag/item.json
840
- bag3/
841
- bag3/item3.json
842
- EOM
843
- end
844
- end
845
- end
846
-
847
- context "when data_bag_path and chef_repo_path are set, and nothing else" do
848
- before :each do
849
- %w{client cookbook environment node role user}.each do |object_name|
850
- Chef::Config.delete("#{object_name}_path".to_sym)
851
- end
852
- Chef::Config.data_bag_path = File.join(Chef::Config.chef_repo_path, "data_bags")
853
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "chef_repo2")
854
- end
855
-
856
- context "when cwd is at the top level" do
857
- before { cwd "." }
858
- it "knife list --local -Rfp fails" do
859
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
860
- end
861
- end
862
-
863
- context "when cwd is inside the data_bags directory" do
864
- before { cwd "data_bags" }
865
- it "knife list --local -Rfp lists data bags" do
866
- knife("list --local -Rfp").should_succeed <<~EOM
867
- bag/
868
- bag/item.json
869
- EOM
870
- end
871
- end
872
-
873
- context "when cwd is inside chef_repo2" do
874
- before { cwd "chef_repo2" }
875
- it "knife list --local -Rfp lists everything" do
876
- knife("list --local -Rfp").should_succeed <<~EOM
877
- clients/
878
- clients/client3.json
879
- cookbooks/
880
- cookbooks/cookbook3/
881
- cookbooks/cookbook3/metadata.rb
882
- data_bags/
883
- data_bags/bag/
884
- data_bags/bag/item.json
885
- environments/
886
- environments/env3.json
887
- nodes/
888
- nodes/node3.json
889
- roles/
890
- roles/role3.json
891
- users/
892
- users/user3.json
893
- EOM
894
- end
895
- end
896
-
897
- context "when cwd is inside chef_repo2/data_bags" do
898
- before { cwd "chef_repo2/data_bags" }
899
- it "knife list --local -Rfp fails" do
900
- knife("list --local -Rfp").should_fail(error_rel_path_outside_repo)
901
- end
902
- end
903
- end
904
-
905
- context "when data_bag_path is set and nothing else" do
906
- include_context "default config options"
907
-
908
- before :each do
909
- %w{client cookbook environment node role user}.each do |object_name|
910
- Chef::Config.delete("#{object_name}_path".to_sym)
911
- end
912
- Chef::Config.delete(:chef_repo_path)
913
- Chef::Config.data_bag_path = File.join(@repository_dir, "data_bags")
914
- end
915
-
916
- it "knife list --local -Rfp / lists data bags" do
917
- knife("list --local -Rfp /").should_succeed <<~EOM
918
- /data_bags/
919
- /data_bags/bag/
920
- /data_bags/bag/item.json
921
- EOM
922
- end
923
-
924
- it "knife list --local -Rfp /data_bags lists data bags" do
925
- knife("list --local -Rfp /data_bags").should_succeed <<~EOM
926
- /data_bags/bag/
927
- /data_bags/bag/item.json
928
- EOM
929
- end
930
-
931
- context "when cwd is inside the data_bags directory" do
932
- before { cwd "data_bags" }
933
- it "knife list --local -Rfp lists data bags" do
934
- knife("list --local -Rfp").should_succeed <<~EOM
935
- bag/
936
- bag/item.json
937
- EOM
938
- end
939
- end
940
- end
941
- end
942
-
943
- when_the_repository "is empty" do
944
- context "when the repository _paths point to places that do not exist" do
945
- before :each do
946
- %w{client cookbook data_bag environment node role user}.each do |object_name|
947
- Chef::Config["#{object_name}_path".to_sym] = File.join(Chef::Config.chef_repo_path, "nowhere", object_name)
948
- end
949
- Chef::Config.chef_repo_path = File.join(Chef::Config.chef_repo_path, "nowhere")
950
- end
951
-
952
- it "knife list --local -Rfp / fails" do
953
- knife("list --local -Rfp /").should_succeed ""
954
- end
955
-
956
- it "knife list --local -Rfp /data_bags fails" do
957
- knife("list --local -Rfp /data_bags").should_fail("ERROR: /data_bags: No such file or directory\n")
958
- end
959
- end
960
- end
961
- end
962
- end