chef 16.17.51-universal-mingw32 → 17.0.242-universal-mingw32

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