chef 16.17.18-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 (646) 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 +2 -3
  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/chef_client_trusted_certificate_spec.rb +0 -14
  282. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  283. data/spec/unit/resource/mount_spec.rb +0 -10
  284. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  285. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  286. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  287. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  288. data/spec/unit/resource/windows_task_spec.rb +1 -1
  289. data/spec/unit/resource_spec.rb +0 -5
  290. data/spec/unit/user_spec.rb +1 -1
  291. data/spec/unit/user_v1_spec.rb +6 -4
  292. data/tasks/rspec.rb +15 -7
  293. metadata +19 -382
  294. data/bin/knife +0 -24
  295. data/lib/chef/application/knife.rb +0 -234
  296. data/lib/chef/application/windows_service.rb +0 -338
  297. data/lib/chef/application/windows_service_manager.rb +0 -205
  298. data/lib/chef/chef_fs/knife.rb +0 -160
  299. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  300. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  301. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  302. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  303. data/lib/chef/knife/acl_add.rb +0 -57
  304. data/lib/chef/knife/acl_base.rb +0 -183
  305. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  306. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  307. data/lib/chef/knife/acl_remove.rb +0 -62
  308. data/lib/chef/knife/acl_show.rb +0 -56
  309. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  310. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  311. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  312. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  313. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  314. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  315. data/lib/chef/knife/bootstrap.rb +0 -1192
  316. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  317. data/lib/chef/knife/client_create.rb +0 -101
  318. data/lib/chef/knife/client_delete.rb +0 -62
  319. data/lib/chef/knife/client_edit.rb +0 -52
  320. data/lib/chef/knife/client_key_create.rb +0 -73
  321. data/lib/chef/knife/client_key_delete.rb +0 -80
  322. data/lib/chef/knife/client_key_edit.rb +0 -83
  323. data/lib/chef/knife/client_key_list.rb +0 -73
  324. data/lib/chef/knife/client_key_show.rb +0 -80
  325. data/lib/chef/knife/client_list.rb +0 -41
  326. data/lib/chef/knife/client_reregister.rb +0 -58
  327. data/lib/chef/knife/client_show.rb +0 -48
  328. data/lib/chef/knife/config_get.rb +0 -39
  329. data/lib/chef/knife/config_get_profile.rb +0 -37
  330. data/lib/chef/knife/config_list.rb +0 -139
  331. data/lib/chef/knife/config_list_profiles.rb +0 -37
  332. data/lib/chef/knife/config_show.rb +0 -127
  333. data/lib/chef/knife/config_use.rb +0 -61
  334. data/lib/chef/knife/config_use_profile.rb +0 -47
  335. data/lib/chef/knife/configure.rb +0 -150
  336. data/lib/chef/knife/configure_client.rb +0 -48
  337. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  338. data/lib/chef/knife/cookbook_delete.rb +0 -151
  339. data/lib/chef/knife/cookbook_download.rb +0 -142
  340. data/lib/chef/knife/cookbook_list.rb +0 -47
  341. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  342. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  343. data/lib/chef/knife/cookbook_show.rb +0 -98
  344. data/lib/chef/knife/cookbook_upload.rb +0 -292
  345. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  346. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  347. data/lib/chef/knife/core/formatting_options.rb +0 -49
  348. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  349. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  350. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  351. data/lib/chef/knife/core/node_editor.rb +0 -130
  352. data/lib/chef/knife/core/node_presenter.rb +0 -133
  353. data/lib/chef/knife/core/object_loader.rb +0 -115
  354. data/lib/chef/knife/core/status_presenter.rb +0 -147
  355. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  356. data/lib/chef/knife/core/text_formatter.rb +0 -85
  357. data/lib/chef/knife/core/ui.rb +0 -338
  358. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  359. data/lib/chef/knife/data_bag_create.rb +0 -81
  360. data/lib/chef/knife/data_bag_delete.rb +0 -49
  361. data/lib/chef/knife/data_bag_edit.rb +0 -74
  362. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  363. data/lib/chef/knife/data_bag_list.rb +0 -42
  364. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  365. data/lib/chef/knife/data_bag_show.rb +0 -69
  366. data/lib/chef/knife/delete.rb +0 -125
  367. data/lib/chef/knife/deps.rb +0 -156
  368. data/lib/chef/knife/diff.rb +0 -83
  369. data/lib/chef/knife/download.rb +0 -84
  370. data/lib/chef/knife/edit.rb +0 -88
  371. data/lib/chef/knife/environment_compare.rb +0 -128
  372. data/lib/chef/knife/environment_create.rb +0 -52
  373. data/lib/chef/knife/environment_delete.rb +0 -44
  374. data/lib/chef/knife/environment_edit.rb +0 -44
  375. data/lib/chef/knife/environment_from_file.rb +0 -84
  376. data/lib/chef/knife/environment_list.rb +0 -41
  377. data/lib/chef/knife/environment_show.rb +0 -47
  378. data/lib/chef/knife/exec.rb +0 -99
  379. data/lib/chef/knife/group_add.rb +0 -55
  380. data/lib/chef/knife/group_create.rb +0 -49
  381. data/lib/chef/knife/group_destroy.rb +0 -53
  382. data/lib/chef/knife/group_list.rb +0 -43
  383. data/lib/chef/knife/group_remove.rb +0 -56
  384. data/lib/chef/knife/group_show.rb +0 -49
  385. data/lib/chef/knife/key_create.rb +0 -112
  386. data/lib/chef/knife/key_create_base.rb +0 -50
  387. data/lib/chef/knife/key_delete.rb +0 -55
  388. data/lib/chef/knife/key_edit.rb +0 -118
  389. data/lib/chef/knife/key_edit_base.rb +0 -55
  390. data/lib/chef/knife/key_list.rb +0 -90
  391. data/lib/chef/knife/key_list_base.rb +0 -45
  392. data/lib/chef/knife/key_show.rb +0 -53
  393. data/lib/chef/knife/list.rb +0 -177
  394. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  395. data/lib/chef/knife/node_create.rb +0 -47
  396. data/lib/chef/knife/node_delete.rb +0 -46
  397. data/lib/chef/knife/node_edit.rb +0 -70
  398. data/lib/chef/knife/node_environment_set.rb +0 -53
  399. data/lib/chef/knife/node_from_file.rb +0 -51
  400. data/lib/chef/knife/node_list.rb +0 -44
  401. data/lib/chef/knife/node_policy_set.rb +0 -79
  402. data/lib/chef/knife/node_run_list_add.rb +0 -104
  403. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  404. data/lib/chef/knife/node_run_list_set.rb +0 -66
  405. data/lib/chef/knife/node_show.rb +0 -63
  406. data/lib/chef/knife/null.rb +0 -12
  407. data/lib/chef/knife/raw.rb +0 -123
  408. data/lib/chef/knife/recipe_list.rb +0 -32
  409. data/lib/chef/knife/rehash.rb +0 -50
  410. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  411. data/lib/chef/knife/role_create.rb +0 -53
  412. data/lib/chef/knife/role_delete.rb +0 -46
  413. data/lib/chef/knife/role_edit.rb +0 -45
  414. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  415. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  416. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  417. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  418. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  419. data/lib/chef/knife/role_from_file.rb +0 -51
  420. data/lib/chef/knife/role_list.rb +0 -42
  421. data/lib/chef/knife/role_run_list_add.rb +0 -87
  422. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  423. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  424. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  425. data/lib/chef/knife/role_run_list_set.rb +0 -69
  426. data/lib/chef/knife/role_show.rb +0 -48
  427. data/lib/chef/knife/search.rb +0 -194
  428. data/lib/chef/knife/serve.rb +0 -65
  429. data/lib/chef/knife/show.rb +0 -72
  430. data/lib/chef/knife/ssh.rb +0 -645
  431. data/lib/chef/knife/ssl_check.rb +0 -284
  432. data/lib/chef/knife/ssl_fetch.rb +0 -161
  433. data/lib/chef/knife/status.rb +0 -95
  434. data/lib/chef/knife/supermarket_download.rb +0 -121
  435. data/lib/chef/knife/supermarket_install.rb +0 -192
  436. data/lib/chef/knife/supermarket_list.rb +0 -76
  437. data/lib/chef/knife/supermarket_search.rb +0 -53
  438. data/lib/chef/knife/supermarket_share.rb +0 -166
  439. data/lib/chef/knife/supermarket_show.rb +0 -66
  440. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  441. data/lib/chef/knife/tag_create.rb +0 -52
  442. data/lib/chef/knife/tag_delete.rb +0 -60
  443. data/lib/chef/knife/tag_list.rb +0 -47
  444. data/lib/chef/knife/upload.rb +0 -86
  445. data/lib/chef/knife/user_create.rb +0 -107
  446. data/lib/chef/knife/user_delete.rb +0 -44
  447. data/lib/chef/knife/user_dissociate.rb +0 -42
  448. data/lib/chef/knife/user_edit.rb +0 -52
  449. data/lib/chef/knife/user_invite_add.rb +0 -43
  450. data/lib/chef/knife/user_invite_list.rb +0 -34
  451. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  452. data/lib/chef/knife/user_key_create.rb +0 -73
  453. data/lib/chef/knife/user_key_delete.rb +0 -80
  454. data/lib/chef/knife/user_key_edit.rb +0 -83
  455. data/lib/chef/knife/user_key_list.rb +0 -73
  456. data/lib/chef/knife/user_key_show.rb +0 -80
  457. data/lib/chef/knife/user_list.rb +0 -42
  458. data/lib/chef/knife/user_reregister.rb +0 -59
  459. data/lib/chef/knife/user_show.rb +0 -48
  460. data/lib/chef/knife/xargs.rb +0 -282
  461. data/lib/chef/knife/yaml_convert.rb +0 -91
  462. data/lib/chef/knife.rb +0 -665
  463. data/lib/chef/resource/user/dscl_user.rb +0 -35
  464. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  465. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  466. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  467. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  468. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  469. data/spec/functional/knife/configure_spec.rb +0 -33
  470. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  471. data/spec/functional/knife/exec_spec.rb +0 -55
  472. data/spec/functional/knife/rehash_spec.rb +0 -39
  473. data/spec/functional/knife/smoke_test.rb +0 -42
  474. data/spec/functional/knife/ssh_spec.rb +0 -352
  475. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  476. data/spec/functional/resource/windows_service_spec.rb +0 -105
  477. data/spec/functional/win32/service_manager_spec.rb +0 -220
  478. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  479. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  480. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  481. data/spec/integration/knife/chefignore_spec.rb +0 -301
  482. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  483. data/spec/integration/knife/client_create_spec.rb +0 -70
  484. data/spec/integration/knife/client_delete_spec.rb +0 -64
  485. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  486. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  487. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  488. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  489. data/spec/integration/knife/client_list_spec.rb +0 -49
  490. data/spec/integration/knife/client_show_spec.rb +0 -37
  491. data/spec/integration/knife/common_options_spec.rb +0 -174
  492. data/spec/integration/knife/config_list_spec.rb +0 -220
  493. data/spec/integration/knife/config_show_spec.rb +0 -192
  494. data/spec/integration/knife/config_use_spec.rb +0 -198
  495. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  496. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  497. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  498. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  499. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  500. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  501. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  502. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  503. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  504. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  505. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  506. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  507. data/spec/integration/knife/delete_spec.rb +0 -1018
  508. data/spec/integration/knife/deps_spec.rb +0 -703
  509. data/spec/integration/knife/diff_spec.rb +0 -605
  510. data/spec/integration/knife/download_spec.rb +0 -1336
  511. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  512. data/spec/integration/knife/environment_create_spec.rb +0 -41
  513. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  514. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  515. data/spec/integration/knife/environment_list_spec.rb +0 -42
  516. data/spec/integration/knife/environment_show_spec.rb +0 -77
  517. data/spec/integration/knife/list_spec.rb +0 -1060
  518. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  519. data/spec/integration/knife/node_create_spec.rb +0 -47
  520. data/spec/integration/knife/node_delete_spec.rb +0 -48
  521. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  522. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  523. data/spec/integration/knife/node_list_spec.rb +0 -45
  524. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  525. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  526. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  527. data/spec/integration/knife/node_show_spec.rb +0 -36
  528. data/spec/integration/knife/raw_spec.rb +0 -297
  529. data/spec/integration/knife/redirection_spec.rb +0 -64
  530. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  531. data/spec/integration/knife/role_create_spec.rb +0 -41
  532. data/spec/integration/knife/role_delete_spec.rb +0 -48
  533. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  534. data/spec/integration/knife/role_list_spec.rb +0 -45
  535. data/spec/integration/knife/role_show_spec.rb +0 -51
  536. data/spec/integration/knife/search_node_spec.rb +0 -40
  537. data/spec/integration/knife/serve_spec.rb +0 -92
  538. data/spec/integration/knife/show_spec.rb +0 -197
  539. data/spec/integration/knife/upload_spec.rb +0 -1616
  540. data/spec/support/shared/functional/knife.rb +0 -37
  541. data/spec/support/shared/functional/win32_service.rb +0 -57
  542. data/spec/support/shared/integration/knife_support.rb +0 -192
  543. data/spec/support/shared/unit/knife_shared.rb +0 -39
  544. data/spec/unit/application/knife_spec.rb +0 -241
  545. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  546. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  547. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  548. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  549. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  550. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  551. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  552. data/spec/unit/knife/client_create_spec.rb +0 -169
  553. data/spec/unit/knife/client_delete_spec.rb +0 -99
  554. data/spec/unit/knife/client_edit_spec.rb +0 -53
  555. data/spec/unit/knife/client_list_spec.rb +0 -34
  556. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  557. data/spec/unit/knife/client_show_spec.rb +0 -52
  558. data/spec/unit/knife/configure_client_spec.rb +0 -81
  559. data/spec/unit/knife/configure_spec.rb +0 -190
  560. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  561. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  562. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  563. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  564. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  565. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  566. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  567. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  568. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  569. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  570. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  571. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  572. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  573. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  574. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  575. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  576. data/spec/unit/knife/core/ui_spec.rb +0 -656
  577. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  578. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  579. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  580. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  581. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  582. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  583. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  584. data/spec/unit/knife/environment_create_spec.rb +0 -91
  585. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  586. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  587. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  588. data/spec/unit/knife/environment_list_spec.rb +0 -54
  589. data/spec/unit/knife/environment_show_spec.rb +0 -52
  590. data/spec/unit/knife/key_create_spec.rb +0 -223
  591. data/spec/unit/knife/key_delete_spec.rb +0 -133
  592. data/spec/unit/knife/key_edit_spec.rb +0 -264
  593. data/spec/unit/knife/key_helper.rb +0 -74
  594. data/spec/unit/knife/key_list_spec.rb +0 -216
  595. data/spec/unit/knife/key_show_spec.rb +0 -126
  596. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  597. data/spec/unit/knife/node_delete_spec.rb +0 -77
  598. data/spec/unit/knife/node_edit_spec.rb +0 -116
  599. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  600. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  601. data/spec/unit/knife/node_list_spec.rb +0 -62
  602. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  603. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  604. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  605. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  606. data/spec/unit/knife/node_show_spec.rb +0 -65
  607. data/spec/unit/knife/raw_spec.rb +0 -43
  608. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  609. data/spec/unit/knife/role_create_spec.rb +0 -80
  610. data/spec/unit/knife/role_delete_spec.rb +0 -67
  611. data/spec/unit/knife/role_edit_spec.rb +0 -77
  612. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  613. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  614. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  615. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  616. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  617. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  618. data/spec/unit/knife/role_list_spec.rb +0 -54
  619. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  620. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  621. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  622. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  623. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  624. data/spec/unit/knife/role_show_spec.rb +0 -59
  625. data/spec/unit/knife/ssh_spec.rb +0 -403
  626. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  627. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  628. data/spec/unit/knife/status_spec.rb +0 -112
  629. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  630. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  631. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  632. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  633. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  634. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  635. data/spec/unit/knife/tag_create_spec.rb +0 -23
  636. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  637. data/spec/unit/knife/tag_list_spec.rb +0 -23
  638. data/spec/unit/knife/user_create_spec.rb +0 -184
  639. data/spec/unit/knife/user_delete_spec.rb +0 -46
  640. data/spec/unit/knife/user_edit_spec.rb +0 -48
  641. data/spec/unit/knife/user_list_spec.rb +0 -36
  642. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  643. data/spec/unit/knife/user_show_spec.rb +0 -46
  644. data/spec/unit/knife_spec.rb +0 -634
  645. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  646. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,81 +0,0 @@
1
- #
2
- # Author:: Thomas Bishop (<bishop.thomas@gmail.com>)
3
- # Copyright:: Copyright 2011-2016, Thomas Bishop
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require "spec_helper"
20
-
21
- describe Chef::Knife::ConfigureClient do
22
- before do
23
- @knife = Chef::Knife::ConfigureClient.new
24
- Chef::Config[:chef_server_url] = "https://chef.example.com"
25
- Chef::Config[:validation_client_name] = "chef-validator"
26
- Chef::Config[:validation_key] = "/etc/chef/validation.pem"
27
-
28
- @stderr = StringIO.new
29
- allow(@knife.ui).to receive(:stderr).and_return(@stderr)
30
- end
31
-
32
- describe "run" do
33
- it "should print usage and exit when a directory is not provided" do
34
- expect(@knife).to receive(:show_usage)
35
- expect(@knife.ui).to receive(:fatal).with(/must provide the directory/)
36
- expect do
37
- @knife.run
38
- end.to raise_error SystemExit
39
- end
40
-
41
- describe "when specifing a directory" do
42
- before do
43
- @knife.name_args = ["/home/bob/.chef"]
44
- @client_file = StringIO.new
45
- @validation_file = StringIO.new
46
- expect(File).to receive(:open).with("/home/bob/.chef/client.rb", "w")
47
- .and_yield(@client_file)
48
- expect(File).to receive(:open).with("/home/bob/.chef/validation.pem", "w")
49
- .and_yield(@validation_file)
50
- expect(IO).to receive(:read).and_return("foo_bar_baz")
51
- end
52
-
53
- it "should recursively create the directory" do
54
- expect(FileUtils).to receive(:mkdir_p).with("/home/bob/.chef")
55
- @knife.run
56
- end
57
-
58
- it "should write out the config file" do
59
- allow(FileUtils).to receive(:mkdir_p)
60
- @knife.run
61
- expect(@client_file.string).to match %r{chef_server_url\s+'https\://chef\.example\.com'}
62
- expect(@client_file.string).to match(/validation_client_name\s+'chef-validator'/)
63
- end
64
-
65
- it "should write out the validation.pem file" do
66
- allow(FileUtils).to receive(:mkdir_p)
67
- @knife.run
68
- expect(@validation_file.string).to match(/foo_bar_baz/)
69
- end
70
-
71
- it "should print information on what is being configured" do
72
- allow(FileUtils).to receive(:mkdir_p)
73
- @knife.run
74
- expect(@stderr.string).to match(/creating client configuration/i)
75
- expect(@stderr.string).to match(/writing client\.rb/i)
76
- expect(@stderr.string).to match(/writing validation\.pem/i)
77
- end
78
- end
79
- end
80
-
81
- end
@@ -1,190 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Chef::Knife::Configure do
4
- before do
5
- Chef::Log.logger = Logger.new(StringIO.new)
6
-
7
- Chef::Config[:node_name] = "webmonkey.example.com"
8
- @knife = Chef::Knife::Configure.new
9
- @rest_client = double("null rest client", post: { result: :true })
10
- allow(@knife).to receive(:rest).and_return(@rest_client)
11
-
12
- @out = StringIO.new
13
- allow(@knife.ui).to receive(:stdout).and_return(@out)
14
- @knife.config[:config_file] = "/home/you/.chef/knife.rb"
15
-
16
- @in = StringIO.new("\n" * 7)
17
- allow(@knife.ui).to receive(:stdin).and_return(@in)
18
-
19
- @err = StringIO.new
20
- allow(@knife.ui).to receive(:stderr).and_return(@err)
21
-
22
- allow(Ohai::System).to receive(:new).and_return(ohai)
23
- end
24
-
25
- let(:fqdn) { "foo.example.org" }
26
-
27
- let(:ohai) do
28
- o = {}
29
- allow(o).to receive(:all_plugins).with(%w{ os hostname fqdn })
30
- o[:fqdn] = fqdn
31
- o
32
- end
33
-
34
- let(:default_admin_key) { "/etc/chef-server/admin.pem" }
35
- let(:default_admin_key_win32) { File.expand_path(default_admin_key) }
36
-
37
- let(:default_validator_key) { "/etc/chef-server/chef-validator.pem" }
38
- let(:default_validator_key_win32) { File.expand_path(default_validator_key) }
39
-
40
- let(:default_server_url) { "https://#{fqdn}/organizations/myorg" }
41
-
42
- it "asks the user for the URL of the chef server" do
43
- @knife.ask_user_for_config
44
- expect(@out.string).to match(Regexp.escape("Please enter the chef server URL: [#{default_server_url}]"))
45
- expect(@knife.chef_server).to eq(default_server_url)
46
- end
47
-
48
- it "asks the user for the clientname they want for the new client if -i is specified" do
49
- @knife.config[:initial] = true
50
- allow(Etc).to receive(:getlogin).and_return("a-new-user")
51
- @knife.ask_user_for_config
52
- expect(@out.string).to match(Regexp.escape("Please enter a name for the new user: [a-new-user]"))
53
- expect(@knife.new_client_name).to eq(Etc.getlogin)
54
- end
55
-
56
- it "should not ask the user for the clientname they want for the new client if -i and --node_name are specified" do
57
- @knife.config[:initial] = true
58
- @knife.config[:node_name] = "testnode"
59
- allow(Etc).to receive(:getlogin).and_return("a-new-user")
60
- @knife.ask_user_for_config
61
- expect(@out.string).not_to match(Regexp.escape("Please enter a name for the new user"))
62
- expect(@knife.new_client_name).to eq("testnode")
63
- end
64
-
65
- it "asks the user for the existing API username or clientname if -i is not specified" do
66
- allow(Etc).to receive(:getlogin).and_return("a-new-user")
67
- @knife.ask_user_for_config
68
- expect(@out.string).to match(Regexp.escape("Please enter an existing username or clientname for the API: [a-new-user]"))
69
- expect(@knife.new_client_name).to eq(Etc.getlogin)
70
- end
71
-
72
- it "asks the user for the existing admin client's name if -i is specified" do
73
- @knife.config[:initial] = true
74
- @knife.ask_user_for_config
75
- expect(@out.string).to match(Regexp.escape("Please enter the existing admin name: [admin]"))
76
- expect(@knife.admin_client_name).to eq("admin")
77
- end
78
-
79
- it "should not ask the user for the existing admin client's name if -i and --admin-client_name are specified" do
80
- @knife.config[:initial] = true
81
- @knife.config[:admin_client_name] = "my-webui"
82
- @knife.ask_user_for_config
83
- expect(@out.string).not_to match(Regexp.escape("Please enter the existing admin:"))
84
- expect(@knife.admin_client_name).to eq("my-webui")
85
- end
86
-
87
- it "should not ask the user for the existing admin client's name if -i is not specified" do
88
- @knife.ask_user_for_config
89
- expect(@out.string).not_to match(Regexp.escape("Please enter the existing admin: [admin]"))
90
- expect(@knife.admin_client_name).not_to eq("admin")
91
- end
92
-
93
- it "asks the user for the location of the existing admin key if -i is specified" do
94
- @knife.config[:initial] = true
95
- @knife.ask_user_for_config
96
- expect(@out.string).to match(Regexp.escape("Please enter the location of the existing admin's private key: [#{default_admin_key}]"))
97
- if windows?
98
- expect(@knife.admin_client_key.capitalize).to eq(default_admin_key_win32.capitalize)
99
- else
100
- expect(@knife.admin_client_key).to eq(default_admin_key)
101
- end
102
- end
103
-
104
- it "should not ask the user for the location of the existing admin key if -i and --admin_client_key are specified" do
105
- @knife.config[:initial] = true
106
- @knife.config[:admin_client_key] = "/home/you/.chef/my-webui.pem"
107
- @knife.ask_user_for_config
108
- expect(@out.string).not_to match(Regexp.escape("Please enter the location of the existing admin client's private key:"))
109
- if windows?
110
- expect(@knife.admin_client_key).to match %r{^[A-Za-z]:/home/you/\.chef/my-webui\.pem$}
111
- else
112
- expect(@knife.admin_client_key).to eq("/home/you/.chef/my-webui.pem")
113
- end
114
- end
115
-
116
- it "should not ask the user for the location of the existing admin key if -i is not specified" do
117
- @knife.ask_user_for_config
118
- expect(@out.string).not_to match(Regexp.escape("Please enter the location of the existing admin client's private key: [#{default_admin_key}]"))
119
- if windows?
120
- expect(@knife.admin_client_key).not_to eq(default_admin_key_win32)
121
- else
122
- expect(@knife.admin_client_key).not_to eq(default_admin_key)
123
- end
124
- end
125
-
126
- it "should not ask the user for anything if -i and all other properties are specified" do
127
- @knife.config[:initial] = true
128
- @knife.config[:chef_server_url] = "http://localhost:5000"
129
- @knife.config[:node_name] = "testnode"
130
- @knife.config[:admin_client_name] = "my-webui"
131
- @knife.config[:admin_client_key] = "/home/you/.chef/my-webui.pem"
132
- @knife.config[:client_key] = "/home/you/a-new-user.pem"
133
- allow(Etc).to receive(:getlogin).and_return("a-new-user")
134
-
135
- @knife.ask_user_for_config
136
- expect(@out.string).to match(/\s*/)
137
-
138
- expect(@knife.new_client_name).to eq("testnode")
139
- expect(@knife.chef_server).to eq("http://localhost:5000")
140
- expect(@knife.admin_client_name).to eq("my-webui")
141
- if windows?
142
- expect(@knife.admin_client_key).to match %r{^[A-Za-z]:/home/you/\.chef/my-webui\.pem$}
143
- expect(@knife.new_client_key).to match %r{^[A-Za-z]:/home/you/a-new-user\.pem$}
144
- else
145
- expect(@knife.admin_client_key).to eq("/home/you/.chef/my-webui.pem")
146
- expect(@knife.new_client_key).to eq("/home/you/a-new-user.pem")
147
- end
148
- end
149
-
150
- it "writes the new data to a config file" do
151
- allow(Chef::Util::PathHelper).to receive(:home).with(".chef").and_return("/home/you/.chef")
152
- allow(File).to receive(:expand_path).with("/home/you/.chef/credentials").and_return("/home/you/.chef/credentials")
153
- allow(File).to receive(:expand_path).with("/home/you/.chef/#{Etc.getlogin}.pem").and_return("/home/you/.chef/#{Etc.getlogin}.pem")
154
- allow(File).to receive(:expand_path).with(default_admin_key).and_return(default_admin_key)
155
- expect(FileUtils).to receive(:mkdir_p).with("/home/you/.chef")
156
- config_file = StringIO.new
157
- expect(::File).to receive(:open).with("/home/you/.chef/credentials", "w").and_yield config_file
158
- @knife.config[:repository] = "/home/you/chef-repo"
159
- @knife.run
160
- expect(config_file.string).to match(/^client_name\s+=\s+'#{Etc.getlogin}'$/)
161
- expect(config_file.string).to match(%r{^client_key\s+=\s+'/home/you/.chef/#{Etc.getlogin}.pem'$})
162
- expect(config_file.string).to match(/^chef_server_url\s+=\s+'#{default_server_url}'$/)
163
- end
164
-
165
- it "creates a new client when given the --initial option" do
166
- allow(Chef::Util::PathHelper).to receive(:home).with(".chef").and_return("/home/you/.chef")
167
- expect(File).to receive(:expand_path).with("/home/you/.chef/credentials").and_return("/home/you/.chef/credentials")
168
- expect(File).to receive(:expand_path).with("/home/you/.chef/a-new-user.pem").and_return("/home/you/.chef/a-new-user.pem")
169
- allow(File).to receive(:expand_path).with(default_admin_key).and_return(default_admin_key)
170
- Chef::Config[:node_name] = "webmonkey.example.com"
171
-
172
- user_command = Chef::Knife::UserCreate.new
173
- expect(user_command).to receive(:run)
174
-
175
- allow(Etc).to receive(:getlogin).and_return("a-new-user")
176
-
177
- allow(Chef::Knife::UserCreate).to receive(:new).and_return(user_command)
178
- expect(FileUtils).to receive(:mkdir_p).with("/home/you/.chef")
179
- expect(::File).to receive(:open).with("/home/you/.chef/credentials", "w")
180
- @knife.config[:initial] = true
181
- @knife.config[:user_password] = "blah"
182
- @knife.run
183
- expect(user_command.name_args).to eq(Array("a-new-user"))
184
- expect(user_command.config[:user_password]).to eq("blah")
185
- expect(user_command.config[:admin]).to be_truthy
186
- expect(user_command.config[:file]).to eq("/home/you/.chef/a-new-user.pem")
187
- expect(user_command.config[:yes]).to be_truthy
188
- expect(user_command.config[:disable_editing]).to be_truthy
189
- end
190
- end
@@ -1,87 +0,0 @@
1
- #
2
- # Author:: Stephen Delano (<stephen@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require "spec_helper"
20
-
21
- describe Chef::Knife::CookbookBulkDelete do
22
- before(:each) do
23
- Chef::Log.logger = Logger.new(StringIO.new)
24
-
25
- Chef::Config[:node_name] = "webmonkey.example.com"
26
- @knife = Chef::Knife::CookbookBulkDelete.new
27
- @knife.config = { print_after: nil }
28
- @knife.name_args = ["."]
29
- @stdout = StringIO.new
30
- @stderr = StringIO.new
31
- allow(@knife.ui).to receive(:stdout).and_return(@stdout)
32
- allow(@knife.ui).to receive(:stderr).and_return(@stderr)
33
- allow(@knife.ui).to receive(:confirm).and_return(true)
34
- @cookbooks = {}
35
- %w{cheezburger pizza lasagna}.each do |cookbook_name|
36
- cookbook = Chef::CookbookVersion.new(cookbook_name)
37
- @cookbooks[cookbook_name] = cookbook
38
- end
39
- @rest = double("Chef::ServerAPI")
40
- allow(@rest).to receive(:get).and_return(@cookbooks)
41
- allow(@rest).to receive(:delete).and_return(true)
42
- allow(@knife).to receive(:rest).and_return(@rest)
43
- allow(Chef::CookbookVersion).to receive(:list).and_return(@cookbooks)
44
-
45
- end
46
-
47
- describe "when there are several cookbooks on the server" do
48
- before do
49
- @cheezburger = { "cheezburger" => { "url" => "file:///dev/null", "versions" => [{ "url" => "file:///dev/null-cheez", "version" => "1.0.0" }] } }
50
- allow(@rest).to receive(:get).with("cookbooks/cheezburger").and_return(@cheezburger)
51
- @pizza = { "pizza" => { "url" => "file:///dev/null", "versions" => [{ "url" => "file:///dev/null-pizza", "version" => "2.0.0" }] } }
52
- allow(@rest).to receive(:get).with("cookbooks/pizza").and_return(@pizza)
53
- @lasagna = { "lasagna" => { "url" => "file:///dev/null", "versions" => [{ "url" => "file:///dev/null-lasagna", "version" => "3.0.0" }] } }
54
- allow(@rest).to receive(:get).with("cookbooks/lasagna").and_return(@lasagna)
55
- end
56
-
57
- it "should print the cookbooks you are about to delete" do
58
- expected = @knife.ui.list(@cookbooks.keys.sort, :columns_down)
59
- @knife.run
60
- expect(@stdout.string).to match(/#{expected}/)
61
- end
62
-
63
- it "should confirm you really want to delete them" do
64
- expect(@knife.ui).to receive(:confirm)
65
- @knife.run
66
- end
67
-
68
- it "should delete each cookbook" do
69
- { "cheezburger" => "1.0.0", "pizza" => "2.0.0", "lasagna" => "3.0.0" }.each do |cookbook_name, version|
70
- expect(@rest).to receive(:delete).with("cookbooks/#{cookbook_name}/#{version}")
71
- end
72
- @knife.run
73
- end
74
-
75
- it "should only delete cookbooks that match the regex" do
76
- @knife.name_args = ["cheezburger"]
77
- expect(@rest).to receive(:delete).with("cookbooks/cheezburger/1.0.0")
78
- @knife.run
79
- end
80
- end
81
-
82
- it "should exit if the regex is not provided" do
83
- @knife.name_args = []
84
- expect { @knife.run }.to raise_error(SystemExit)
85
- end
86
-
87
- end
@@ -1,239 +0,0 @@
1
- #
2
- # Author:: Thomas Bishop (<bishop.thomas@gmail.com>)
3
- # Copyright:: Copyright 2011-2016, Thomas Bishop
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require "spec_helper"
20
-
21
- describe Chef::Knife::CookbookDelete do
22
- before(:each) do
23
- @knife = Chef::Knife::CookbookDelete.new
24
- @knife.name_args = ["foobar"]
25
- @knife.cookbook_name = "foobar"
26
- @stdout = StringIO.new
27
- allow(@knife.ui).to receive(:stdout).and_return(@stdout)
28
- @stderr = StringIO.new
29
- allow(@knife.ui).to receive(:stderr).and_return(@stderr)
30
- end
31
-
32
- describe "run" do
33
- it "should print usage and exit when a cookbook name is not provided" do
34
- @knife.name_args = []
35
- expect(@knife).to receive(:show_usage)
36
- expect(@knife.ui).to receive(:fatal)
37
- expect { @knife.run }.to raise_error(SystemExit)
38
- end
39
-
40
- describe "when specifying a cookbook name" do
41
- it "should delete the cookbook without a specific version" do
42
- expect(@knife).to receive(:delete_without_explicit_version)
43
- @knife.run
44
- end
45
-
46
- describe "and a version" do
47
- it "should delete the specific version of the cookbook" do
48
- @knife.name_args << "1.0.0"
49
- expect(@knife).to receive(:delete_explicit_version)
50
- @knife.run
51
- end
52
- end
53
-
54
- describe "with -a or --all" do
55
- it "should delete all versions of the cookbook" do
56
- @knife.config[:all] = true
57
- expect(@knife).to receive(:delete_all_versions)
58
- @knife.run
59
- end
60
- end
61
-
62
- describe "with -p or --purge" do
63
- it "should prompt to purge the files" do
64
- @knife.config[:purge] = true
65
- expect(@knife).to receive(:confirm)
66
- .with(/.+Are you sure you want to purge files.+/)
67
- expect(@knife).to receive(:delete_without_explicit_version)
68
- @knife.run
69
- end
70
- end
71
- end
72
- end
73
-
74
- describe "delete_explicit_version" do
75
- it "should delete the specific cookbook version" do
76
- @knife.cookbook_name = "foobar"
77
- @knife.version = "1.0.0"
78
- expect(@knife).to receive(:delete_object).with(Chef::CookbookVersion,
79
- "foobar version 1.0.0",
80
- "cookbook").and_yield
81
- expect(@knife).to receive(:delete_request).with("cookbooks/foobar/1.0.0")
82
- @knife.delete_explicit_version
83
- end
84
- end
85
-
86
- describe "delete_all_versions" do
87
- it "should prompt to delete all versions of the cookbook" do
88
- @knife.cookbook_name = "foobar"
89
- expect(@knife).to receive(:confirm).with("Do you really want to delete all versions of foobar")
90
- expect(@knife).to receive(:delete_all_without_confirmation)
91
- @knife.delete_all_versions
92
- end
93
- end
94
-
95
- describe "delete_all_without_confirmation" do
96
- it "should delete all versions without confirmation" do
97
- versions = ["1.0.0", "1.1.0"]
98
- expect(@knife).to receive(:available_versions).and_return(versions)
99
- versions.each do |v|
100
- expect(@knife).to receive(:delete_version_without_confirmation).with(v)
101
- end
102
- @knife.delete_all_without_confirmation
103
- end
104
- end
105
-
106
- describe "delete_without_explicit_version" do
107
- it "should exit if there are no available versions" do
108
- expect(@knife).to receive(:available_versions).and_return(nil)
109
- expect { @knife.delete_without_explicit_version }.to raise_error(SystemExit)
110
- end
111
-
112
- it "should delete the version if only one is found" do
113
- expect(@knife).to receive(:available_versions).at_least(:once).and_return(["1.0.0"])
114
- expect(@knife).to receive(:delete_explicit_version)
115
- @knife.delete_without_explicit_version
116
- end
117
-
118
- it "should ask which version(s) to delete if multiple are found" do
119
- expect(@knife).to receive(:available_versions).at_least(:once).and_return(["1.0.0", "1.1.0"])
120
- expect(@knife).to receive(:ask_which_versions_to_delete).and_return(["1.0.0", "1.1.0"])
121
- expect(@knife).to receive(:delete_versions_without_confirmation).with(["1.0.0", "1.1.0"])
122
- @knife.delete_without_explicit_version
123
- end
124
- end
125
-
126
- describe "available_versions" do
127
- before(:each) do
128
- @rest_mock = double("rest")
129
- expect(@knife).to receive(:rest).and_return(@rest_mock)
130
- @cookbook_data = { "foobar" => { "versions" => [{ "version" => "1.0.0" },
131
- { "version" => "1.1.0" },
132
- { "version" => "2.0.0" } ] },
133
- }
134
- end
135
-
136
- it "should return the list of versions of the cookbook" do
137
- expect(@rest_mock).to receive(:get).with("cookbooks/foobar").and_return(@cookbook_data)
138
- expect(@knife.available_versions).to eq(["1.0.0", "1.1.0", "2.0.0"])
139
- end
140
-
141
- it "should raise if an error other than HTTP 404 is returned" do
142
- exception = Net::HTTPClientException.new("500 Internal Server Error", "500")
143
- expect(@rest_mock).to receive(:get).and_raise(exception)
144
- expect { @knife.available_versions }.to raise_error Net::HTTPClientException
145
- end
146
-
147
- describe "if the cookbook can't be found" do
148
- before(:each) do
149
- expect(@rest_mock).to receive(:get)
150
- .and_raise(Net::HTTPClientException.new("404 Not Found", "404"))
151
- end
152
-
153
- it "should print an error" do
154
- @knife.available_versions
155
- expect(@stderr.string).to match(/error.+cannot find a cookbook named foobar/i)
156
- end
157
-
158
- it "should return nil" do
159
- expect(@knife.available_versions).to eq(nil)
160
- end
161
- end
162
- end
163
-
164
- describe "ask_which_version_to_delete" do
165
- before(:each) do
166
- allow(@knife).to receive(:available_versions).and_return(["1.0.0", "1.1.0", "2.0.0"])
167
- end
168
-
169
- it "should prompt the user to select a version" do
170
- prompt = /Which version\(s\) do you want to delete\?.+1\. foobar 1\.0\.0.+2\. foobar 1\.1\.0.+3\. foobar 2\.0\.0.+4\. All versions.+/m
171
- expect(@knife).to receive(:ask_question).with(prompt).and_return("1")
172
- @knife.ask_which_versions_to_delete
173
- end
174
-
175
- it "should print an error and exit if a version wasn't specified" do
176
- expect(@knife).to receive(:ask_question).and_return("")
177
- expect(@knife.ui).to receive(:error).with(/no versions specified/i)
178
- expect { @knife.ask_which_versions_to_delete }.to raise_error(SystemExit)
179
- end
180
-
181
- it "should print an error if an invalid choice was selected" do
182
- expect(@knife).to receive(:ask_question).and_return("100")
183
- expect(@knife.ui).to receive(:error).with(/100 is not a valid choice/i)
184
- @knife.ask_which_versions_to_delete
185
- end
186
-
187
- it "should return the selected versions" do
188
- expect(@knife).to receive(:ask_question).and_return("1, 3")
189
- expect(@knife.ask_which_versions_to_delete).to eq(["1.0.0", "2.0.0"])
190
- end
191
-
192
- it "should return all of the versions if 'all' was selected" do
193
- expect(@knife).to receive(:ask_question).and_return("4")
194
- expect(@knife.ask_which_versions_to_delete).to eq([:all])
195
- end
196
- end
197
-
198
- describe "delete_version_without_confirmation" do
199
- it "should delete the cookbook version" do
200
- expect(@knife).to receive(:delete_request).with("cookbooks/foobar/1.0.0")
201
- @knife.delete_version_without_confirmation("1.0.0")
202
- end
203
-
204
- it "should output that the cookbook was deleted" do
205
- allow(@knife).to receive(:delete_request)
206
- @knife.delete_version_without_confirmation("1.0.0")
207
- expect(@stderr.string).to match(/deleted cookbook\[foobar\]\[1.0.0\]/im)
208
- end
209
-
210
- describe "with --print-after" do
211
- it "should display the cookbook data" do
212
- object = ""
213
- @knife.config[:print_after] = true
214
- allow(@knife).to receive(:delete_request).and_return(object)
215
- expect(@knife).to receive(:format_for_display).with(object)
216
- @knife.delete_version_without_confirmation("1.0.0")
217
- end
218
- end
219
- end
220
-
221
- describe "delete_versions_without_confirmation" do
222
- it "should delete each version without confirmation" do
223
- versions = ["1.0.0", "1.1.0"]
224
- versions.each do |v|
225
- expect(@knife).to receive(:delete_version_without_confirmation).with(v)
226
- end
227
- @knife.delete_versions_without_confirmation(versions)
228
- end
229
-
230
- describe "with -a or --all" do
231
- it "should delete all versions without confirmation" do
232
- versions = [:all]
233
- expect(@knife).to receive(:delete_all_without_confirmation)
234
- @knife.delete_versions_without_confirmation(versions)
235
- end
236
- end
237
- end
238
-
239
- end