chef 16.18.0-universal-mingw32 → 17.0.242-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (649) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -13
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +6 -8
  7. data/lib/chef/action_collection.rb +1 -1
  8. data/lib/chef/application/base.rb +1 -1
  9. data/lib/chef/application.rb +1 -1
  10. data/lib/chef/applications.rb +0 -1
  11. data/lib/chef/chef_fs/command_line.rb +5 -2
  12. data/lib/chef/chef_fs/file_system.rb +9 -10
  13. data/lib/chef/client.rb +5 -5
  14. data/lib/chef/compliance/default_attributes.rb +4 -3
  15. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  16. data/lib/chef/compliance/reporter/automate.rb +17 -7
  17. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  18. data/lib/chef/compliance/reporter/cli.rb +77 -0
  19. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  20. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  21. data/lib/chef/compliance/runner.rb +65 -27
  22. data/lib/chef/cookbook/gem_installer.rb +1 -5
  23. data/lib/chef/cookbook/synchronizer.rb +3 -5
  24. data/lib/chef/cookbook_loader.rb +2 -4
  25. data/lib/chef/cookbook_uploader.rb +0 -1
  26. data/lib/chef/cookbook_version.rb +4 -26
  27. data/lib/chef/data_bag_item.rb +11 -2
  28. data/lib/chef/data_collector/run_end_message.rb +2 -2
  29. data/lib/chef/delayed_evaluator.rb +4 -0
  30. data/lib/chef/deprecated.rb +6 -12
  31. data/lib/chef/dsl/chef_vault.rb +6 -6
  32. data/lib/chef/dsl/reboot_pending.rb +1 -2
  33. data/lib/chef/exceptions.rb +0 -3
  34. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  35. data/lib/chef/formatters/error_mapper.rb +2 -2
  36. data/lib/chef/group.rb +75 -0
  37. data/lib/chef/http.rb +5 -5
  38. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  39. data/lib/chef/node/attribute.rb +9 -24
  40. data/lib/chef/node/immutable_collections.rb +13 -0
  41. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  42. data/lib/chef/node.rb +19 -20
  43. data/lib/chef/org.rb +3 -2
  44. data/lib/chef/policy_builder/policyfile.rb +0 -5
  45. data/lib/chef/property.rb +18 -0
  46. data/lib/chef/provider/cron.rb +1 -1
  47. data/lib/chef/provider/execute.rb +2 -1
  48. data/lib/chef/provider/file.rb +1 -1
  49. data/lib/chef/provider/git.rb +5 -7
  50. data/lib/chef/provider/group/dscl.rb +1 -1
  51. data/lib/chef/provider/group/groupadd.rb +3 -3
  52. data/lib/chef/provider/group/groupmod.rb +3 -3
  53. data/lib/chef/provider/group/pw.rb +3 -3
  54. data/lib/chef/provider/ifconfig.rb +2 -2
  55. data/lib/chef/provider/link.rb +2 -2
  56. data/lib/chef/provider/mount/aix.rb +3 -3
  57. data/lib/chef/provider/mount/mount.rb +5 -5
  58. data/lib/chef/provider/mount/windows.rb +1 -1
  59. data/lib/chef/provider/mount.rb +5 -5
  60. data/lib/chef/provider/package/apt.rb +27 -1
  61. data/lib/chef/provider/package/deb.rb +3 -3
  62. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  63. data/lib/chef/provider/package/portage.rb +2 -2
  64. data/lib/chef/provider/package/powershell.rb +0 -5
  65. data/lib/chef/provider/package/rubygems.rb +9 -15
  66. data/lib/chef/provider/package/windows.rb +2 -4
  67. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  68. data/lib/chef/provider/package.rb +17 -21
  69. data/lib/chef/provider/route.rb +2 -2
  70. data/lib/chef/provider/service/aixinit.rb +1 -1
  71. data/lib/chef/provider/service/debian.rb +1 -1
  72. data/lib/chef/provider/service/freebsd.rb +15 -21
  73. data/lib/chef/provider/service/macosx.rb +4 -4
  74. data/lib/chef/provider/service/systemd.rb +43 -14
  75. data/lib/chef/provider/service/upstart.rb +2 -13
  76. data/lib/chef/provider/service/windows.rb +12 -12
  77. data/lib/chef/provider/service.rb +6 -6
  78. data/lib/chef/provider/subversion.rb +10 -12
  79. data/lib/chef/provider/systemd_unit.rb +36 -10
  80. data/lib/chef/provider/template/content.rb +3 -7
  81. data/lib/chef/provider/user/dscl.rb +1 -1
  82. data/lib/chef/provider/user/mac.rb +17 -20
  83. data/lib/chef/provider/user/pw.rb +1 -1
  84. data/lib/chef/provider/user/windows.rb +1 -1
  85. data/lib/chef/provider/user.rb +2 -2
  86. data/lib/chef/provider/zypper_repository.rb +2 -2
  87. data/lib/chef/provider.rb +1 -1
  88. data/lib/chef/providers.rb +0 -1
  89. data/lib/chef/resource/alternatives.rb +6 -6
  90. data/lib/chef/resource/apt_package.rb +1 -1
  91. data/lib/chef/resource/apt_preference.rb +2 -2
  92. data/lib/chef/resource/apt_repository.rb +6 -6
  93. data/lib/chef/resource/apt_update.rb +3 -2
  94. data/lib/chef/resource/archive_file.rb +8 -9
  95. data/lib/chef/resource/breakpoint.rb +1 -1
  96. data/lib/chef/resource/build_essential.rb +2 -6
  97. data/lib/chef/resource/chef_client_config.rb +2 -2
  98. data/lib/chef/resource/chef_client_cron.rb +4 -4
  99. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  100. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  101. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  102. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  103. data/lib/chef/resource/chef_handler.rb +3 -7
  104. data/lib/chef/resource/chef_sleep.rb +1 -1
  105. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  106. data/lib/chef/resource/chocolatey_config.rb +2 -6
  107. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  108. data/lib/chef/resource/chocolatey_source.rb +4 -10
  109. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  110. data/lib/chef/resource/cron_access.rb +2 -4
  111. data/lib/chef/resource/dmg_package.rb +6 -10
  112. data/lib/chef/resource/dpkg_package.rb +1 -1
  113. data/lib/chef/resource/execute.rb +6 -1
  114. data/lib/chef/resource/file.rb +1 -1
  115. data/lib/chef/resource/group.rb +2 -2
  116. data/lib/chef/resource/homebrew_cask.rb +5 -15
  117. data/lib/chef/resource/homebrew_tap.rb +2 -6
  118. data/lib/chef/resource/hostname.rb +21 -17
  119. data/lib/chef/resource/http_request.rb +1 -1
  120. data/lib/chef/resource/kernel_module.rb +6 -17
  121. data/lib/chef/resource/locale.rb +2 -3
  122. data/lib/chef/resource/lwrp_base.rb +4 -0
  123. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  124. data/lib/chef/resource/mdadm.rb +53 -7
  125. data/lib/chef/resource/mount.rb +3 -2
  126. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  127. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  128. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  129. data/lib/chef/resource/plist.rb +7 -7
  130. data/lib/chef/resource/powershell_script.rb +1 -1
  131. data/lib/chef/resource/remote_file.rb +1 -1
  132. data/lib/chef/resource/rhsm_errata.rb +16 -1
  133. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  134. data/lib/chef/resource/rhsm_register.rb +12 -6
  135. data/lib/chef/resource/rhsm_repo.rb +2 -6
  136. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  137. data/lib/chef/resource/scm/git.rb +1 -1
  138. data/lib/chef/resource/sudo.rb +6 -6
  139. data/lib/chef/resource/support/client.erb +2 -6
  140. data/lib/chef/resource/sysctl.rb +2 -6
  141. data/lib/chef/resource/systemd_unit.rb +3 -3
  142. data/lib/chef/resource/template.rb +1 -1
  143. data/lib/chef/resource/timezone.rb +1 -3
  144. data/lib/chef/resource/user/mac_user.rb +1 -1
  145. data/lib/chef/resource/user_ulimit.rb +2 -3
  146. data/lib/chef/resource/windows_ad_join.rb +2 -6
  147. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  148. data/lib/chef/resource/windows_auto_run.rb +2 -5
  149. data/lib/chef/resource/windows_certificate.rb +207 -73
  150. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  151. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  152. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  153. data/lib/chef/resource/windows_dns_record.rb +2 -6
  154. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  155. data/lib/chef/resource/windows_env.rb +5 -4
  156. data/lib/chef/resource/windows_feature.rb +3 -9
  157. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  158. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  159. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  160. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  161. data/lib/chef/resource/windows_font.rb +2 -4
  162. data/lib/chef/resource/windows_pagefile.rb +2 -6
  163. data/lib/chef/resource/windows_path.rb +2 -2
  164. data/lib/chef/resource/windows_printer.rb +4 -4
  165. data/lib/chef/resource/windows_printer_port.rb +6 -6
  166. data/lib/chef/resource/windows_security_policy.rb +9 -12
  167. data/lib/chef/resource/windows_share.rb +14 -21
  168. data/lib/chef/resource/windows_shortcut.rb +4 -6
  169. data/lib/chef/resource/windows_task.rb +17 -5
  170. data/lib/chef/resource/windows_uac.rb +2 -4
  171. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  172. data/lib/chef/resource/windows_workgroup.rb +1 -2
  173. data/lib/chef/resource.rb +1 -1
  174. data/lib/chef/resource_reporter.rb +1 -1
  175. data/lib/chef/resources.rb +0 -1
  176. data/lib/chef/shell/ext.rb +3 -3
  177. data/lib/chef/user.rb +0 -1
  178. data/lib/chef/user_v1.rb +3 -4
  179. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  180. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  181. data/lib/chef/version.rb +1 -1
  182. data/lib/chef/win32/api.rb +2 -9
  183. data/lib/chef/win32/registry.rb +4 -2
  184. data/lib/chef/win32/version.rb +1 -2
  185. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  186. data/spec/data/lwrp/resources/bar.rb +2 -0
  187. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  188. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  189. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  190. data/spec/data/lwrp/resources/foo.rb +2 -0
  191. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  192. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  193. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  194. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  195. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  196. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  197. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  198. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  199. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  200. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  201. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  202. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  203. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  206. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  207. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  208. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  209. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  210. data/spec/functional/resource/apt_package_spec.rb +1 -1
  211. data/spec/functional/resource/chocolatey_package_spec.rb +9 -0
  212. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  213. data/spec/functional/resource/group_spec.rb +1 -5
  214. data/spec/functional/resource/link_spec.rb +0 -8
  215. data/spec/functional/resource/registry_spec.rb +8 -8
  216. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  217. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  218. data/spec/functional/version_spec.rb +1 -1
  219. data/spec/functional/win32/registry_spec.rb +1 -1
  220. data/spec/integration/client/client_spec.rb +5 -2
  221. data/spec/integration/client/exit_code_spec.rb +1 -1
  222. data/spec/integration/client/ipv6_spec.rb +1 -1
  223. data/spec/integration/compliance/compliance_spec.rb +1 -1
  224. data/spec/integration/ohai/ohai_spec.rb +7 -6
  225. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  226. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  227. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  228. data/spec/integration/recipes/notifies_spec.rb +15 -1
  229. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  230. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  231. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  232. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  233. data/spec/spec_helper.rb +10 -13
  234. data/spec/support/chef_helpers.rb +0 -16
  235. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  236. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  237. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  238. data/spec/support/matchers/leak.rb +7 -9
  239. data/spec/support/platform_helpers.rb +1 -8
  240. data/spec/support/shared/integration/integration_helper.rb +0 -1
  241. data/spec/support/shared/unit/script_resource.rb +2 -2
  242. data/spec/unit/application/solo_spec.rb +2 -2
  243. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  244. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  245. data/spec/unit/client_spec.rb +4 -4
  246. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  247. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  248. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  249. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  250. data/spec/unit/compliance/runner_spec.rb +30 -4
  251. data/spec/unit/cookbook_version_spec.rb +0 -52
  252. data/spec/unit/data_bag_item_spec.rb +1 -6
  253. data/spec/unit/data_collector_spec.rb +2 -71
  254. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  255. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  256. data/spec/unit/lwrp_spec.rb +1 -1
  257. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  258. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  259. data/spec/unit/node/attribute_spec.rb +1 -1
  260. data/spec/unit/node_spec.rb +78 -0
  261. data/spec/unit/org_group_spec.rb +45 -0
  262. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  263. data/spec/unit/property_spec.rb +23 -22
  264. data/spec/unit/provider/cron_spec.rb +1 -1
  265. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  266. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  267. data/spec/unit/provider/group/pw_spec.rb +2 -2
  268. data/spec/unit/provider/group_spec.rb +1 -1
  269. data/spec/unit/provider/package/apt_spec.rb +84 -18
  270. data/spec/unit/provider/package/deb_spec.rb +3 -3
  271. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  272. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  273. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  274. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  275. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  276. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  277. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  278. data/spec/unit/provider/service/windows_spec.rb +2 -2
  279. data/spec/unit/provider/subversion_spec.rb +2 -2
  280. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  281. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  282. data/spec/unit/provider_spec.rb +0 -8
  283. data/spec/unit/resource/archive_file_spec.rb +1 -13
  284. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  285. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  286. data/spec/unit/resource/mount_spec.rb +0 -10
  287. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  288. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  289. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  290. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  291. data/spec/unit/resource/windows_task_spec.rb +1 -1
  292. data/spec/unit/resource_spec.rb +2 -7
  293. data/spec/unit/user_spec.rb +1 -1
  294. data/spec/unit/user_v1_spec.rb +6 -4
  295. data/tasks/rspec.rb +15 -7
  296. metadata +19 -382
  297. data/bin/knife +0 -24
  298. data/lib/chef/application/knife.rb +0 -234
  299. data/lib/chef/application/windows_service.rb +0 -338
  300. data/lib/chef/application/windows_service_manager.rb +0 -205
  301. data/lib/chef/chef_fs/knife.rb +0 -160
  302. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  303. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  304. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  305. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  306. data/lib/chef/knife/acl_add.rb +0 -57
  307. data/lib/chef/knife/acl_base.rb +0 -183
  308. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  309. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  310. data/lib/chef/knife/acl_remove.rb +0 -62
  311. data/lib/chef/knife/acl_show.rb +0 -56
  312. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  313. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  314. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  315. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  316. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  317. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  318. data/lib/chef/knife/bootstrap.rb +0 -1192
  319. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  320. data/lib/chef/knife/client_create.rb +0 -101
  321. data/lib/chef/knife/client_delete.rb +0 -62
  322. data/lib/chef/knife/client_edit.rb +0 -52
  323. data/lib/chef/knife/client_key_create.rb +0 -73
  324. data/lib/chef/knife/client_key_delete.rb +0 -80
  325. data/lib/chef/knife/client_key_edit.rb +0 -83
  326. data/lib/chef/knife/client_key_list.rb +0 -73
  327. data/lib/chef/knife/client_key_show.rb +0 -80
  328. data/lib/chef/knife/client_list.rb +0 -41
  329. data/lib/chef/knife/client_reregister.rb +0 -58
  330. data/lib/chef/knife/client_show.rb +0 -48
  331. data/lib/chef/knife/config_get.rb +0 -39
  332. data/lib/chef/knife/config_get_profile.rb +0 -37
  333. data/lib/chef/knife/config_list.rb +0 -139
  334. data/lib/chef/knife/config_list_profiles.rb +0 -37
  335. data/lib/chef/knife/config_show.rb +0 -127
  336. data/lib/chef/knife/config_use.rb +0 -61
  337. data/lib/chef/knife/config_use_profile.rb +0 -47
  338. data/lib/chef/knife/configure.rb +0 -150
  339. data/lib/chef/knife/configure_client.rb +0 -48
  340. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  341. data/lib/chef/knife/cookbook_delete.rb +0 -151
  342. data/lib/chef/knife/cookbook_download.rb +0 -142
  343. data/lib/chef/knife/cookbook_list.rb +0 -47
  344. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  345. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  346. data/lib/chef/knife/cookbook_show.rb +0 -98
  347. data/lib/chef/knife/cookbook_upload.rb +0 -292
  348. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  349. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  350. data/lib/chef/knife/core/formatting_options.rb +0 -49
  351. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  352. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  353. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  354. data/lib/chef/knife/core/node_editor.rb +0 -130
  355. data/lib/chef/knife/core/node_presenter.rb +0 -133
  356. data/lib/chef/knife/core/object_loader.rb +0 -115
  357. data/lib/chef/knife/core/status_presenter.rb +0 -147
  358. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  359. data/lib/chef/knife/core/text_formatter.rb +0 -85
  360. data/lib/chef/knife/core/ui.rb +0 -338
  361. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  362. data/lib/chef/knife/data_bag_create.rb +0 -81
  363. data/lib/chef/knife/data_bag_delete.rb +0 -49
  364. data/lib/chef/knife/data_bag_edit.rb +0 -74
  365. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  366. data/lib/chef/knife/data_bag_list.rb +0 -42
  367. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  368. data/lib/chef/knife/data_bag_show.rb +0 -69
  369. data/lib/chef/knife/delete.rb +0 -125
  370. data/lib/chef/knife/deps.rb +0 -156
  371. data/lib/chef/knife/diff.rb +0 -83
  372. data/lib/chef/knife/download.rb +0 -84
  373. data/lib/chef/knife/edit.rb +0 -88
  374. data/lib/chef/knife/environment_compare.rb +0 -128
  375. data/lib/chef/knife/environment_create.rb +0 -52
  376. data/lib/chef/knife/environment_delete.rb +0 -44
  377. data/lib/chef/knife/environment_edit.rb +0 -44
  378. data/lib/chef/knife/environment_from_file.rb +0 -84
  379. data/lib/chef/knife/environment_list.rb +0 -41
  380. data/lib/chef/knife/environment_show.rb +0 -47
  381. data/lib/chef/knife/exec.rb +0 -99
  382. data/lib/chef/knife/group_add.rb +0 -55
  383. data/lib/chef/knife/group_create.rb +0 -49
  384. data/lib/chef/knife/group_destroy.rb +0 -53
  385. data/lib/chef/knife/group_list.rb +0 -43
  386. data/lib/chef/knife/group_remove.rb +0 -56
  387. data/lib/chef/knife/group_show.rb +0 -49
  388. data/lib/chef/knife/key_create.rb +0 -112
  389. data/lib/chef/knife/key_create_base.rb +0 -50
  390. data/lib/chef/knife/key_delete.rb +0 -55
  391. data/lib/chef/knife/key_edit.rb +0 -118
  392. data/lib/chef/knife/key_edit_base.rb +0 -55
  393. data/lib/chef/knife/key_list.rb +0 -90
  394. data/lib/chef/knife/key_list_base.rb +0 -45
  395. data/lib/chef/knife/key_show.rb +0 -53
  396. data/lib/chef/knife/list.rb +0 -177
  397. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  398. data/lib/chef/knife/node_create.rb +0 -47
  399. data/lib/chef/knife/node_delete.rb +0 -46
  400. data/lib/chef/knife/node_edit.rb +0 -70
  401. data/lib/chef/knife/node_environment_set.rb +0 -53
  402. data/lib/chef/knife/node_from_file.rb +0 -51
  403. data/lib/chef/knife/node_list.rb +0 -44
  404. data/lib/chef/knife/node_policy_set.rb +0 -79
  405. data/lib/chef/knife/node_run_list_add.rb +0 -104
  406. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  407. data/lib/chef/knife/node_run_list_set.rb +0 -66
  408. data/lib/chef/knife/node_show.rb +0 -63
  409. data/lib/chef/knife/null.rb +0 -12
  410. data/lib/chef/knife/raw.rb +0 -123
  411. data/lib/chef/knife/recipe_list.rb +0 -32
  412. data/lib/chef/knife/rehash.rb +0 -50
  413. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  414. data/lib/chef/knife/role_create.rb +0 -53
  415. data/lib/chef/knife/role_delete.rb +0 -46
  416. data/lib/chef/knife/role_edit.rb +0 -45
  417. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  418. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  419. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  420. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  421. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  422. data/lib/chef/knife/role_from_file.rb +0 -51
  423. data/lib/chef/knife/role_list.rb +0 -42
  424. data/lib/chef/knife/role_run_list_add.rb +0 -87
  425. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  426. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  427. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  428. data/lib/chef/knife/role_run_list_set.rb +0 -69
  429. data/lib/chef/knife/role_show.rb +0 -48
  430. data/lib/chef/knife/search.rb +0 -194
  431. data/lib/chef/knife/serve.rb +0 -65
  432. data/lib/chef/knife/show.rb +0 -72
  433. data/lib/chef/knife/ssh.rb +0 -645
  434. data/lib/chef/knife/ssl_check.rb +0 -284
  435. data/lib/chef/knife/ssl_fetch.rb +0 -161
  436. data/lib/chef/knife/status.rb +0 -95
  437. data/lib/chef/knife/supermarket_download.rb +0 -121
  438. data/lib/chef/knife/supermarket_install.rb +0 -192
  439. data/lib/chef/knife/supermarket_list.rb +0 -76
  440. data/lib/chef/knife/supermarket_search.rb +0 -53
  441. data/lib/chef/knife/supermarket_share.rb +0 -166
  442. data/lib/chef/knife/supermarket_show.rb +0 -66
  443. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  444. data/lib/chef/knife/tag_create.rb +0 -52
  445. data/lib/chef/knife/tag_delete.rb +0 -60
  446. data/lib/chef/knife/tag_list.rb +0 -47
  447. data/lib/chef/knife/upload.rb +0 -86
  448. data/lib/chef/knife/user_create.rb +0 -107
  449. data/lib/chef/knife/user_delete.rb +0 -44
  450. data/lib/chef/knife/user_dissociate.rb +0 -42
  451. data/lib/chef/knife/user_edit.rb +0 -52
  452. data/lib/chef/knife/user_invite_add.rb +0 -43
  453. data/lib/chef/knife/user_invite_list.rb +0 -34
  454. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  455. data/lib/chef/knife/user_key_create.rb +0 -73
  456. data/lib/chef/knife/user_key_delete.rb +0 -80
  457. data/lib/chef/knife/user_key_edit.rb +0 -83
  458. data/lib/chef/knife/user_key_list.rb +0 -73
  459. data/lib/chef/knife/user_key_show.rb +0 -80
  460. data/lib/chef/knife/user_list.rb +0 -42
  461. data/lib/chef/knife/user_reregister.rb +0 -59
  462. data/lib/chef/knife/user_show.rb +0 -48
  463. data/lib/chef/knife/xargs.rb +0 -282
  464. data/lib/chef/knife/yaml_convert.rb +0 -91
  465. data/lib/chef/knife.rb +0 -665
  466. data/lib/chef/resource/user/dscl_user.rb +0 -35
  467. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  468. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  469. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  470. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  471. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  472. data/spec/functional/knife/configure_spec.rb +0 -33
  473. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  474. data/spec/functional/knife/exec_spec.rb +0 -55
  475. data/spec/functional/knife/rehash_spec.rb +0 -39
  476. data/spec/functional/knife/smoke_test.rb +0 -42
  477. data/spec/functional/knife/ssh_spec.rb +0 -352
  478. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  479. data/spec/functional/resource/windows_service_spec.rb +0 -105
  480. data/spec/functional/win32/service_manager_spec.rb +0 -220
  481. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  482. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  483. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  484. data/spec/integration/knife/chefignore_spec.rb +0 -301
  485. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  486. data/spec/integration/knife/client_create_spec.rb +0 -70
  487. data/spec/integration/knife/client_delete_spec.rb +0 -64
  488. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  489. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  490. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  491. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  492. data/spec/integration/knife/client_list_spec.rb +0 -49
  493. data/spec/integration/knife/client_show_spec.rb +0 -37
  494. data/spec/integration/knife/common_options_spec.rb +0 -174
  495. data/spec/integration/knife/config_list_spec.rb +0 -220
  496. data/spec/integration/knife/config_show_spec.rb +0 -192
  497. data/spec/integration/knife/config_use_spec.rb +0 -198
  498. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  499. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  500. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  501. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  502. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  503. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  504. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  505. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  506. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  507. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  508. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  509. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  510. data/spec/integration/knife/delete_spec.rb +0 -1018
  511. data/spec/integration/knife/deps_spec.rb +0 -703
  512. data/spec/integration/knife/diff_spec.rb +0 -605
  513. data/spec/integration/knife/download_spec.rb +0 -1336
  514. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  515. data/spec/integration/knife/environment_create_spec.rb +0 -41
  516. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  517. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  518. data/spec/integration/knife/environment_list_spec.rb +0 -42
  519. data/spec/integration/knife/environment_show_spec.rb +0 -77
  520. data/spec/integration/knife/list_spec.rb +0 -1060
  521. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  522. data/spec/integration/knife/node_create_spec.rb +0 -47
  523. data/spec/integration/knife/node_delete_spec.rb +0 -48
  524. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  525. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  526. data/spec/integration/knife/node_list_spec.rb +0 -45
  527. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  528. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  529. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  530. data/spec/integration/knife/node_show_spec.rb +0 -36
  531. data/spec/integration/knife/raw_spec.rb +0 -297
  532. data/spec/integration/knife/redirection_spec.rb +0 -64
  533. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  534. data/spec/integration/knife/role_create_spec.rb +0 -41
  535. data/spec/integration/knife/role_delete_spec.rb +0 -48
  536. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  537. data/spec/integration/knife/role_list_spec.rb +0 -45
  538. data/spec/integration/knife/role_show_spec.rb +0 -51
  539. data/spec/integration/knife/search_node_spec.rb +0 -40
  540. data/spec/integration/knife/serve_spec.rb +0 -92
  541. data/spec/integration/knife/show_spec.rb +0 -197
  542. data/spec/integration/knife/upload_spec.rb +0 -1616
  543. data/spec/support/shared/functional/knife.rb +0 -37
  544. data/spec/support/shared/functional/win32_service.rb +0 -57
  545. data/spec/support/shared/integration/knife_support.rb +0 -192
  546. data/spec/support/shared/unit/knife_shared.rb +0 -39
  547. data/spec/unit/application/knife_spec.rb +0 -241
  548. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  549. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  550. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  551. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  552. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  553. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  554. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  555. data/spec/unit/knife/client_create_spec.rb +0 -169
  556. data/spec/unit/knife/client_delete_spec.rb +0 -99
  557. data/spec/unit/knife/client_edit_spec.rb +0 -53
  558. data/spec/unit/knife/client_list_spec.rb +0 -34
  559. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  560. data/spec/unit/knife/client_show_spec.rb +0 -52
  561. data/spec/unit/knife/configure_client_spec.rb +0 -81
  562. data/spec/unit/knife/configure_spec.rb +0 -190
  563. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  564. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  565. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  566. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  567. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  568. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  569. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  570. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  571. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  572. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  573. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  574. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  575. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  576. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  577. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  578. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  579. data/spec/unit/knife/core/ui_spec.rb +0 -656
  580. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  581. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  582. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  583. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  584. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  585. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  586. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  587. data/spec/unit/knife/environment_create_spec.rb +0 -91
  588. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  589. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  590. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  591. data/spec/unit/knife/environment_list_spec.rb +0 -54
  592. data/spec/unit/knife/environment_show_spec.rb +0 -52
  593. data/spec/unit/knife/key_create_spec.rb +0 -223
  594. data/spec/unit/knife/key_delete_spec.rb +0 -133
  595. data/spec/unit/knife/key_edit_spec.rb +0 -264
  596. data/spec/unit/knife/key_helper.rb +0 -74
  597. data/spec/unit/knife/key_list_spec.rb +0 -216
  598. data/spec/unit/knife/key_show_spec.rb +0 -126
  599. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  600. data/spec/unit/knife/node_delete_spec.rb +0 -77
  601. data/spec/unit/knife/node_edit_spec.rb +0 -116
  602. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  603. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  604. data/spec/unit/knife/node_list_spec.rb +0 -62
  605. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  606. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  607. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  608. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  609. data/spec/unit/knife/node_show_spec.rb +0 -65
  610. data/spec/unit/knife/raw_spec.rb +0 -43
  611. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  612. data/spec/unit/knife/role_create_spec.rb +0 -80
  613. data/spec/unit/knife/role_delete_spec.rb +0 -67
  614. data/spec/unit/knife/role_edit_spec.rb +0 -77
  615. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  616. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  617. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  618. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  619. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  620. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  621. data/spec/unit/knife/role_list_spec.rb +0 -54
  622. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  623. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  624. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  625. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  626. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  627. data/spec/unit/knife/role_show_spec.rb +0 -59
  628. data/spec/unit/knife/ssh_spec.rb +0 -403
  629. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  630. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  631. data/spec/unit/knife/status_spec.rb +0 -112
  632. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  633. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  634. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  635. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  636. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  637. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  638. data/spec/unit/knife/tag_create_spec.rb +0 -23
  639. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  640. data/spec/unit/knife/tag_list_spec.rb +0 -23
  641. data/spec/unit/knife/user_create_spec.rb +0 -184
  642. data/spec/unit/knife/user_delete_spec.rb +0 -46
  643. data/spec/unit/knife/user_edit_spec.rb +0 -48
  644. data/spec/unit/knife/user_list_spec.rb +0 -36
  645. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  646. data/spec/unit/knife/user_show_spec.rb +0 -46
  647. data/spec/unit/knife_spec.rb +0 -634
  648. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  649. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,220 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config list", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
-
26
- when_the_repository("has a custom env") do
27
- let(:cmd_args) { [] }
28
- let(:knife_list) do
29
- knife("config", "list", *cmd_args, instance_filter: lambda { |instance|
30
- # Fake the failsafe check because this command doesn't actually process knife.rb.
31
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
32
- allow(File).to receive(:file?).and_call_original
33
- })
34
- end
35
- subject { knife_list.stdout }
36
-
37
- around do |ex|
38
- # Store and reset the value of some env vars.
39
- old_home = ENV["HOME"]
40
- old_wd = Dir.pwd
41
- # Clear these out because they are cached permanently.
42
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
43
- Chef::Knife::ConfigList.reset_config_loader!
44
- begin
45
- ex.run
46
- ensure
47
- ENV["HOME"] = old_home
48
- Dir.chdir(old_wd)
49
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
50
- end
51
- end
52
-
53
- before do
54
- # Always run from the temp folder. This can't be in the `around` block above
55
- # because it has to run after the before set in the "with a chef repo" shared context.
56
- directory("repo")
57
- Dir.chdir(path_to("repo"))
58
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
59
- ENV["HOME"] = path_to(".")
60
- allow(TTY::Screen).to receive(:width).and_return(200)
61
- end
62
-
63
- # NOTE: The funky formatting with # at the end of the line of some of the
64
- # output examples are because of how the format strings are built, there is
65
- # substantial trailing whitespace in most cases which many editors "helpfully" remove.
66
-
67
- context "with no credentials file" do
68
- subject { knife_list.stderr }
69
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
70
- end
71
-
72
- context "with an empty credentials file" do
73
- before { file(".chef/credentials", "") }
74
- subject { knife_list.stderr }
75
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
76
- end
77
-
78
- context "with a simple default profile" do
79
- before { file(".chef/credentials", <<~EOH) }
80
- [default]
81
- client_name = "testuser"
82
- client_key = "testkey.pem"
83
- chef_server_url = "https://example.com/organizations/testorg"
84
- EOH
85
- it { is_expected.to eq <<~EOH.delete("#") }
86
- Profile Client Key Server #
87
- --------------------------------------------------------------------------------#
88
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
89
- EOH
90
- end
91
-
92
- context "with multiple profiles" do
93
- before { file(".chef/credentials", <<~EOH) }
94
- [default]
95
- client_name = "testuser"
96
- client_key = "testkey.pem"
97
- chef_server_url = "https://example.com/organizations/testorg"
98
-
99
- [prod]
100
- client_name = "testuser"
101
- client_key = "testkey.pem"
102
- chef_server_url = "https://example.com/organizations/prod"
103
-
104
- [qa]
105
- client_name = "qauser"
106
- client_key = "~/src/qauser.pem"
107
- chef_server_url = "https://example.com/organizations/testorg"
108
- EOH
109
- it { is_expected.to eq <<~EOH.delete("#") }
110
- Profile Client Key Server #
111
- --------------------------------------------------------------------------------#
112
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
113
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
114
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
115
- EOH
116
- end
117
-
118
- context "with a non-default active profile" do
119
- let(:cmd_args) { %w{--profile prod} }
120
- before { file(".chef/credentials", <<~EOH) }
121
- [default]
122
- client_name = "testuser"
123
- client_key = "testkey.pem"
124
- chef_server_url = "https://example.com/organizations/testorg"
125
-
126
- [prod]
127
- client_name = "testuser"
128
- client_key = "testkey.pem"
129
- chef_server_url = "https://example.com/organizations/prod"
130
-
131
- [qa]
132
- client_name = "qauser"
133
- client_key = "~/src/qauser.pem"
134
- chef_server_url = "https://example.com/organizations/testorg"
135
- EOH
136
- it { is_expected.to eq <<~EOH.delete("#") }
137
- Profile Client Key Server #
138
- --------------------------------------------------------------------------------#
139
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
140
- *prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
141
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
142
- EOH
143
- end
144
-
145
- context "with a bad profile as an active profile" do
146
- let(:cmd_args) { %w{--profile production} }
147
- before { file(".chef/credentials", <<~EOH) }
148
- [default]
149
- client_name = "testuser"
150
- client_key = "testkey.pem"
151
- chef_server_url = "https://example.com/organizations/testorg"
152
-
153
- [prod]
154
- client_name = "testuser"
155
- client_key = "testkey.pem"
156
- chef_server_url = "https://example.com/organizations/prod"
157
-
158
- [qa]
159
- client_name = "qauser"
160
- client_key = "~/src/qauser.pem"
161
- chef_server_url = "https://example.com/organizations/testorg"
162
- EOH
163
- it { is_expected.to eq <<~EOH.delete("#") }
164
- Profile Client Key Server #
165
- --------------------------------------------------------------------------------#
166
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
167
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
168
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
169
- EOH
170
- end
171
-
172
- context "with a minimal profile" do
173
- before { file(".chef/credentials", <<~EOH) }
174
- [default]
175
- chef_server_url = "https://example.com/organizations/testorg"
176
- EOH
177
- it { is_expected.to match %r{^*default .*? https://example.com/organizations/testorg} }
178
- end
179
-
180
- context "with -i" do
181
- let(:cmd_args) { %w{-i} }
182
- before { file(".chef/credentials", <<~EOH) }
183
- [default]
184
- chef_server_url = "https://example.com/organizations/testorg"
185
- EOH
186
- it { is_expected.to eq <<~EOH.delete("#") }
187
- Profile Client Key Server #
188
- --------------------------------------------------------------#
189
- *default https://example.com/organizations/testorg #
190
- EOH
191
- end
192
-
193
- context "with --format=json" do
194
- let(:cmd_args) { %w{--format=json node_name} }
195
- before { file(".chef/credentials", <<~EOH) }
196
- [default]
197
- client_name = "testuser"
198
- client_key = "testkey.pem"
199
- chef_server_url = "https://example.com/organizations/testorg"
200
-
201
- [prod]
202
- client_name = "testuser"
203
- client_key = "testkey.pem"
204
- chef_server_url = "https://example.com/organizations/prod"
205
-
206
- [qa]
207
- client_name = "qauser"
208
- client_key = "~/src/qauser.pem"
209
- chef_server_url = "https://example.com/organizations/testorg"
210
- EOH
211
- it {
212
- expect(JSON.parse(subject)).to eq [
213
- { "profile" => "default", "active" => true, "client_name" => "testuser", "client_key" => path_to(".chef/testkey.pem"), "server_url" => "https://example.com/organizations/testorg" },
214
- { "profile" => "prod", "active" => false, "client_name" => "testuser", "client_key" => path_to(".chef/testkey.pem"), "server_url" => "https://example.com/organizations/prod" },
215
- { "profile" => "qa", "active" => false, "client_name" => "qauser", "client_key" => path_to("src/qauser.pem"), "server_url" => "https://example.com/organizations/testorg" },
216
- ]
217
- }
218
- end
219
- end
220
- end
@@ -1,192 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config show", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
-
26
- let(:cmd_args) { [] }
27
-
28
- when_the_repository("has a custom env") do
29
- subject do
30
- cmd = knife("config", "show", *cmd_args, instance_filter: lambda { |instance|
31
- # Clear the stub set up in KnifeSupport.
32
- allow(File).to receive(:file?).and_call_original
33
- # Lies, damn lies, and config files. We need to allow normal config loading
34
- # behavior to be able to test stuff.
35
- instance.config.delete(:config_file)
36
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
37
- })
38
- cmd.stdout
39
- end
40
-
41
- around do |ex|
42
- # Store and reset the value of some env vars.
43
- old_chef_home = ENV["CHEF_HOME"]
44
- old_knife_home = ENV["KNIFE_HOME"]
45
- old_home = ENV["HOME"]
46
- old_wd = Dir.pwd
47
- ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
48
- # Clear these out because they are cached permanently.
49
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
50
- Chef::Knife::ConfigShow.reset_config_loader!
51
- begin
52
- ex.run
53
- ensure
54
- ENV["CHEF_HOME"] = old_chef_home
55
- ENV["KNIFE_HOME"] = old_knife_home
56
- ENV["HOME"] = old_home
57
- Dir.chdir(old_wd)
58
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
59
- ChefConfig::PathHelper.per_tool_home_environment = nil
60
- end
61
- end
62
-
63
- before do
64
- # Always run from the temp folder. This can't be in the `around` block above
65
- # because it has to run after the before set in the "with a chef repo" shared context.
66
- directory("repo")
67
- Dir.chdir(path_to("repo"))
68
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
69
- ENV["HOME"] = path_to(".")
70
- end
71
-
72
- context "with a global knife.rb" do
73
- before { file(".chef/knife.rb", "node_name 'one'\n") }
74
-
75
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/.chef/knife.rb$}) }
76
- it { is_expected.to match(/^node_name:\s+one$/) }
77
- end
78
-
79
- context "with a repo knife.rb" do
80
- before { file("repo/.chef/knife.rb", "node_name 'two'\n") }
81
-
82
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/repo/.chef/knife.rb$}) }
83
- it { is_expected.to match(/^node_name:\s+two$/) }
84
- end
85
-
86
- context "with both knife.rb" do
87
- before do
88
- file(".chef/knife.rb", "node_name 'one'\n")
89
- file("repo/.chef/knife.rb", "node_name 'two'\n")
90
- end
91
-
92
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/repo/.chef/knife.rb$}) }
93
- it { is_expected.to match(/^node_name:\s+two$/) }
94
- end
95
-
96
- context "with a credentials file" do
97
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
98
-
99
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/.chef/credentials$}) }
100
- it { is_expected.to match(/^node_name:\s+three$/) }
101
- end
102
-
103
- context "with a credentials file and knife.rb" do
104
- before do
105
- file(".chef/knife.rb", "node_name 'one'\n")
106
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
107
- end
108
-
109
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/.chef/knife.rb$}) }
110
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/.chef/credentials$}) }
111
- it { is_expected.to match(/^node_name:\s+one$/) }
112
- end
113
-
114
- context "with a config dot d files" do
115
- before { file(".chef/config.d/abc.rb", "node_name 'one'\n") }
116
-
117
- it { is_expected.to match(%r{^Loading from .d/ configuration file .*/#{File.basename(path_to("."))}/.chef/config.d/abc.rb$}) }
118
- it { is_expected.to match(/^node_name:\s+one$/) }
119
- end
120
-
121
- context "with a credentials file and CHEF_HOME" do
122
- before do
123
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
124
- file("foo/.chef/credentials", "[default]\nclient_name = \"four\"\n")
125
- ENV["CHEF_HOME"] = path_to("foo")
126
- end
127
-
128
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/foo/.chef/credentials$}) }
129
- it { is_expected.to match(/^node_name:\s+four$/) }
130
- end
131
-
132
- context "with a credentials file and KNIFE_HOME" do
133
- before do
134
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
135
- file("bar/.chef/credentials", "[default]\nclient_name = \"four\"\n")
136
- ENV["KNIFE_HOME"] = path_to("bar")
137
- end
138
-
139
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/bar/.chef/credentials$}) }
140
- it { is_expected.to match(/^node_name:\s+four$/) }
141
- end
142
-
143
- context "with single argument" do
144
- let(:cmd_args) { %w{node_name} }
145
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
146
-
147
- it { is_expected.to match(/^node_name:\s+three\Z/) }
148
- end
149
-
150
- context "with two arguments" do
151
- let(:cmd_args) { %w{node_name client_key} }
152
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\nclient_key = \"three.pem\"") }
153
-
154
- it { is_expected.to match(%r{^client_key:\s+\S*/.chef/three.pem\nnode_name:\s+three\Z}) }
155
- end
156
-
157
- context "with a dotted argument" do
158
- let(:cmd_args) { %w{knife.ssh_user} }
159
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n[default.knife]\nssh_user = \"foo\"\n") }
160
-
161
- it { is_expected.to match(/^knife.ssh_user:\s+foo\Z/) }
162
- end
163
-
164
- context "with regex argument" do
165
- let(:cmd_args) { %w{/name/} }
166
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
167
-
168
- it { is_expected.to match(/^node_name:\s+three\Z/) }
169
- end
170
-
171
- context "with --all" do
172
- let(:cmd_args) { %w{-a /key_contents/} }
173
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
174
-
175
- it { is_expected.to match(/^client_key_contents:\s+\nvalidation_key_contents:\s+\Z/) }
176
- end
177
-
178
- context "with --raw" do
179
- let(:cmd_args) { %w{-r node_name} }
180
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
181
-
182
- it { is_expected.to eq("three\n") }
183
- end
184
-
185
- context "with --format=json" do
186
- let(:cmd_args) { %w{--format=json node_name} }
187
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
188
-
189
- it { expect(JSON.parse(subject)).to eq({ "node_name" => "three" }) }
190
- end
191
- end
192
- end
@@ -1,198 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config use", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
-
26
- let(:cmd_args) { [] }
27
-
28
- when_the_repository("has a custom env") do
29
- let(:knife_use) do
30
- knife("config", "use", *cmd_args, instance_filter: lambda { |instance|
31
- # Fake the failsafe check because this command doesn't actually process knife.rb.
32
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
33
- allow(File).to receive(:file?).and_call_original
34
- })
35
- end
36
-
37
- subject { knife_use.stdout }
38
-
39
- around do |ex|
40
- # Store and reset the value of some env vars.
41
- old_chef_home = ENV["CHEF_HOME"]
42
- old_knife_home = ENV["KNIFE_HOME"]
43
- old_home = ENV["HOME"]
44
- old_wd = Dir.pwd
45
- ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
46
- # Clear these out because they are cached permanently.
47
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
48
- Chef::Knife::ConfigUse.reset_config_loader!
49
- begin
50
- ex.run
51
- ensure
52
- ENV["CHEF_HOME"] = old_chef_home
53
- ENV["KNIFE_HOME"] = old_knife_home
54
- ENV["HOME"] = old_home
55
- Dir.chdir(old_wd)
56
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
57
- ChefConfig::PathHelper.per_tool_home_environment = nil
58
- end
59
- end
60
-
61
- before do
62
- # Always run from the temp folder. This can't be in the `around` block above
63
- # because it has to run after the before set in the "with a chef repo" shared context.
64
- directory("repo")
65
- Dir.chdir(path_to("repo"))
66
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
67
- ENV["HOME"] = path_to(".")
68
- end
69
-
70
- context "with no argument" do
71
- context "with no configuration" do
72
- it { is_expected.to eq "default\n" }
73
- end
74
-
75
- context "with --profile" do
76
- let(:cmd_args) { %w{--profile production} }
77
- it { is_expected.to eq "production\n" }
78
- end
79
-
80
- context "with an environment variable" do
81
- around do |ex|
82
- old_chef_profile = ENV["CHEF_PROFILE"]
83
- begin
84
- ENV["CHEF_PROFILE"] = "staging"
85
- ex.run
86
- ensure
87
- ENV["CHEF_PROFILE"] = old_chef_profile
88
- end
89
- end
90
-
91
- it { is_expected.to eq "staging\n" }
92
- end
93
-
94
- context "with a context file" do
95
- before { file(".chef/context", "development\n") }
96
- it { is_expected.to eq "development\n" }
97
- end
98
-
99
- context "with a context file under $CHEF_HOME" do
100
- before do
101
- file("chefhome/.chef/context", "other\n")
102
- ENV["CHEF_HOME"] = path_to("chefhome")
103
- end
104
-
105
- it { is_expected.to eq "other\n" }
106
- end
107
-
108
- context "with a context file under $KNIFE_HOME" do
109
- before do
110
- file("knifehome/.chef/context", "other\n")
111
- ENV["KNIFE_HOME"] = path_to("knifehome")
112
- end
113
-
114
- it { is_expected.to eq "other\n" }
115
- end
116
- end
117
-
118
- context "with an argument" do
119
- let(:cmd_args) { %w{production} }
120
- before { file(".chef/credentials", <<~EOH) }
121
- [production]
122
- client_name = "testuser"
123
- client_key = "testkey.pem"
124
- chef_server_url = "https://example.com/organizations/testorg"
125
- EOH
126
- it do
127
- is_expected.to eq "Set default profile to production\n"
128
- expect(File.read(path_to(".chef/context"))).to eq "production\n"
129
- end
130
- end
131
-
132
- context "with no credentials file" do
133
- let(:cmd_args) { %w{production} }
134
- subject { knife_use.stderr }
135
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
136
- end
137
-
138
- context "with an empty credentials file" do
139
- let(:cmd_args) { %w{production} }
140
- before { file(".chef/credentials", "") }
141
- subject { knife_use.stderr }
142
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
143
- end
144
-
145
- context "with an wrong argument" do
146
- let(:cmd_args) { %w{staging} }
147
- before { file(".chef/credentials", <<~EOH) }
148
- [production]
149
- client_name = "testuser"
150
- client_key = "testkey.pem"
151
- chef_server_url = "https://example.com/organizations/testorg"
152
- EOH
153
- subject { knife_use }
154
- it { expect { subject }.to raise_error ChefConfig::ConfigurationError, "Profile staging doesn't exist. Please add it to #{path_to(".chef/credentials")} and if it is profile with DNS name check that you are not missing single quotes around it as per docs https://docs.chef.io/workstation/knife_setup/#knife-profiles." }
155
- end
156
-
157
- context "with $CHEF_HOME" do
158
- let(:cmd_args) { %w{staging} }
159
- before do
160
- ENV["CHEF_HOME"] = path_to("chefhome"); file("chefhome/tmp", "")
161
- file("chefhome/.chef/credentials", <<~EOH
162
- [staging]
163
- client_name = "testuser"
164
- client_key = "testkey.pem"
165
- chef_server_url = "https://example.com/organizations/testorg"
166
- EOH
167
- )
168
- end
169
-
170
- it do
171
- is_expected.to eq "Set default profile to staging\n"
172
- expect(File.read(path_to("chefhome/.chef/context"))).to eq "staging\n"
173
- expect(File.exist?(path_to(".chef/context"))).to be_falsey
174
- end
175
- end
176
-
177
- context "with $KNIFE_HOME" do
178
- let(:cmd_args) { %w{development} }
179
-
180
- before do
181
- ENV["KNIFE_HOME"] = path_to("knifehome"); file("knifehome/tmp", "")
182
- file("knifehome/.chef/credentials", <<~EOH
183
- [development]
184
- client_name = "testuser"
185
- client_key = "testkey.pem"
186
- chef_server_url = "https://example.com/organizations/testorg"
187
- EOH
188
- )
189
- end
190
-
191
- it do
192
- is_expected.to eq "Set default profile to development\n"
193
- expect(File.read(path_to("knifehome/.chef/context"))).to eq "development\n"
194
- expect(File.exist?(path_to(".chef/context"))).to be_falsey
195
- end
196
- end
197
- end
198
- end