chef 16.15.22 → 17.0.242

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -13
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +6 -8
  7. data/lib/chef/application/base.rb +1 -1
  8. data/lib/chef/applications.rb +0 -1
  9. data/lib/chef/chef_fs/command_line.rb +5 -2
  10. data/lib/chef/chef_fs/file_system.rb +9 -10
  11. data/lib/chef/client.rb +2 -2
  12. data/lib/chef/compliance/default_attributes.rb +4 -3
  13. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  14. data/lib/chef/compliance/reporter/automate.rb +17 -7
  15. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  16. data/lib/chef/compliance/reporter/cli.rb +77 -0
  17. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  18. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  19. data/lib/chef/compliance/runner.rb +65 -27
  20. data/lib/chef/cookbook/gem_installer.rb +1 -5
  21. data/lib/chef/cookbook/synchronizer.rb +3 -5
  22. data/lib/chef/cookbook_loader.rb +2 -4
  23. data/lib/chef/cookbook_uploader.rb +0 -1
  24. data/lib/chef/cookbook_version.rb +4 -26
  25. data/lib/chef/data_bag_item.rb +11 -2
  26. data/lib/chef/data_collector/run_end_message.rb +1 -1
  27. data/lib/chef/delayed_evaluator.rb +4 -0
  28. data/lib/chef/deprecated.rb +6 -12
  29. data/lib/chef/dsl/chef_vault.rb +6 -6
  30. data/lib/chef/dsl/reboot_pending.rb +1 -2
  31. data/lib/chef/exceptions.rb +0 -3
  32. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  33. data/lib/chef/formatters/error_mapper.rb +2 -2
  34. data/lib/chef/group.rb +75 -0
  35. data/lib/chef/http.rb +5 -5
  36. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  37. data/lib/chef/node/attribute.rb +6 -4
  38. data/lib/chef/node/immutable_collections.rb +13 -0
  39. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  40. data/lib/chef/node.rb +19 -20
  41. data/lib/chef/org.rb +3 -2
  42. data/lib/chef/policy_builder/policyfile.rb +0 -5
  43. data/lib/chef/property.rb +18 -0
  44. data/lib/chef/provider/cron.rb +1 -1
  45. data/lib/chef/provider/execute.rb +2 -1
  46. data/lib/chef/provider/file.rb +1 -1
  47. data/lib/chef/provider/git.rb +5 -7
  48. data/lib/chef/provider/group/dscl.rb +1 -1
  49. data/lib/chef/provider/group/groupadd.rb +3 -3
  50. data/lib/chef/provider/group/groupmod.rb +3 -3
  51. data/lib/chef/provider/group/pw.rb +3 -3
  52. data/lib/chef/provider/ifconfig.rb +2 -2
  53. data/lib/chef/provider/link.rb +2 -2
  54. data/lib/chef/provider/mount/aix.rb +3 -3
  55. data/lib/chef/provider/mount/mount.rb +5 -5
  56. data/lib/chef/provider/mount/windows.rb +1 -1
  57. data/lib/chef/provider/mount.rb +5 -5
  58. data/lib/chef/provider/package/apt.rb +27 -1
  59. data/lib/chef/provider/package/deb.rb +3 -3
  60. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  61. data/lib/chef/provider/package/portage.rb +2 -2
  62. data/lib/chef/provider/package/powershell.rb +0 -5
  63. data/lib/chef/provider/package/rubygems.rb +9 -15
  64. data/lib/chef/provider/package/windows.rb +2 -4
  65. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  66. data/lib/chef/provider/package.rb +17 -21
  67. data/lib/chef/provider/route.rb +2 -2
  68. data/lib/chef/provider/service/aixinit.rb +1 -1
  69. data/lib/chef/provider/service/debian.rb +1 -1
  70. data/lib/chef/provider/service/freebsd.rb +15 -21
  71. data/lib/chef/provider/service/macosx.rb +4 -4
  72. data/lib/chef/provider/service/systemd.rb +43 -14
  73. data/lib/chef/provider/service/upstart.rb +2 -13
  74. data/lib/chef/provider/service/windows.rb +12 -12
  75. data/lib/chef/provider/service.rb +6 -6
  76. data/lib/chef/provider/subversion.rb +10 -12
  77. data/lib/chef/provider/systemd_unit.rb +36 -10
  78. data/lib/chef/provider/template/content.rb +3 -7
  79. data/lib/chef/provider/user/dscl.rb +1 -1
  80. data/lib/chef/provider/user/mac.rb +17 -20
  81. data/lib/chef/provider/user/pw.rb +1 -1
  82. data/lib/chef/provider/user/windows.rb +1 -1
  83. data/lib/chef/provider/user.rb +2 -2
  84. data/lib/chef/provider/zypper_repository.rb +2 -2
  85. data/lib/chef/provider.rb +1 -1
  86. data/lib/chef/providers.rb +0 -1
  87. data/lib/chef/resource/alternatives.rb +6 -6
  88. data/lib/chef/resource/apt_package.rb +1 -1
  89. data/lib/chef/resource/apt_preference.rb +2 -2
  90. data/lib/chef/resource/apt_repository.rb +6 -6
  91. data/lib/chef/resource/apt_update.rb +3 -2
  92. data/lib/chef/resource/archive_file.rb +2 -3
  93. data/lib/chef/resource/breakpoint.rb +1 -1
  94. data/lib/chef/resource/build_essential.rb +2 -6
  95. data/lib/chef/resource/chef_client_config.rb +2 -2
  96. data/lib/chef/resource/chef_client_cron.rb +4 -4
  97. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  98. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  99. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  100. data/lib/chef/resource/chef_handler.rb +3 -7
  101. data/lib/chef/resource/chef_sleep.rb +1 -1
  102. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  103. data/lib/chef/resource/chocolatey_config.rb +2 -6
  104. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  105. data/lib/chef/resource/chocolatey_source.rb +4 -10
  106. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  107. data/lib/chef/resource/cron_access.rb +2 -4
  108. data/lib/chef/resource/dmg_package.rb +6 -10
  109. data/lib/chef/resource/dpkg_package.rb +1 -1
  110. data/lib/chef/resource/execute.rb +6 -1
  111. data/lib/chef/resource/file.rb +1 -1
  112. data/lib/chef/resource/group.rb +2 -2
  113. data/lib/chef/resource/homebrew_cask.rb +5 -15
  114. data/lib/chef/resource/homebrew_tap.rb +2 -6
  115. data/lib/chef/resource/hostname.rb +21 -17
  116. data/lib/chef/resource/http_request.rb +1 -1
  117. data/lib/chef/resource/kernel_module.rb +6 -17
  118. data/lib/chef/resource/locale.rb +2 -3
  119. data/lib/chef/resource/lwrp_base.rb +4 -0
  120. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  121. data/lib/chef/resource/mdadm.rb +53 -7
  122. data/lib/chef/resource/mount.rb +3 -2
  123. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  124. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  125. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  126. data/lib/chef/resource/plist.rb +7 -7
  127. data/lib/chef/resource/powershell_script.rb +1 -1
  128. data/lib/chef/resource/remote_file.rb +1 -1
  129. data/lib/chef/resource/rhsm_errata.rb +16 -1
  130. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  131. data/lib/chef/resource/rhsm_register.rb +12 -6
  132. data/lib/chef/resource/rhsm_repo.rb +2 -6
  133. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  134. data/lib/chef/resource/scm/git.rb +1 -1
  135. data/lib/chef/resource/sudo.rb +6 -6
  136. data/lib/chef/resource/support/client.erb +0 -6
  137. data/lib/chef/resource/sysctl.rb +2 -6
  138. data/lib/chef/resource/systemd_unit.rb +3 -3
  139. data/lib/chef/resource/template.rb +1 -1
  140. data/lib/chef/resource/timezone.rb +1 -3
  141. data/lib/chef/resource/user/mac_user.rb +1 -1
  142. data/lib/chef/resource/user_ulimit.rb +2 -3
  143. data/lib/chef/resource/windows_ad_join.rb +2 -6
  144. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  145. data/lib/chef/resource/windows_auto_run.rb +2 -5
  146. data/lib/chef/resource/windows_certificate.rb +207 -73
  147. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  148. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  149. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  150. data/lib/chef/resource/windows_dns_record.rb +2 -6
  151. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  152. data/lib/chef/resource/windows_env.rb +5 -4
  153. data/lib/chef/resource/windows_feature.rb +3 -9
  154. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  155. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  156. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  157. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  158. data/lib/chef/resource/windows_font.rb +2 -4
  159. data/lib/chef/resource/windows_pagefile.rb +2 -6
  160. data/lib/chef/resource/windows_path.rb +2 -2
  161. data/lib/chef/resource/windows_printer.rb +4 -4
  162. data/lib/chef/resource/windows_printer_port.rb +6 -6
  163. data/lib/chef/resource/windows_security_policy.rb +9 -12
  164. data/lib/chef/resource/windows_share.rb +14 -21
  165. data/lib/chef/resource/windows_shortcut.rb +4 -6
  166. data/lib/chef/resource/windows_task.rb +17 -5
  167. data/lib/chef/resource/windows_uac.rb +2 -4
  168. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  169. data/lib/chef/resource/windows_workgroup.rb +1 -2
  170. data/lib/chef/resources.rb +0 -1
  171. data/lib/chef/user.rb +0 -1
  172. data/lib/chef/user_v1.rb +3 -4
  173. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  174. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  175. data/lib/chef/version.rb +1 -1
  176. data/lib/chef/win32/api.rb +2 -9
  177. data/lib/chef/win32/registry.rb +4 -2
  178. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  179. data/spec/data/lwrp/resources/bar.rb +2 -0
  180. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  181. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  182. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  183. data/spec/data/lwrp/resources/foo.rb +2 -0
  184. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  185. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  186. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  187. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  188. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  189. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  190. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  191. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  192. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  193. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  194. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  195. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  196. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  197. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  198. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  199. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  200. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  201. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  202. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  203. data/spec/functional/resource/apt_package_spec.rb +1 -1
  204. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  205. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  206. data/spec/functional/resource/group_spec.rb +1 -5
  207. data/spec/functional/resource/link_spec.rb +0 -8
  208. data/spec/functional/resource/registry_spec.rb +8 -8
  209. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  210. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  211. data/spec/functional/version_spec.rb +1 -1
  212. data/spec/functional/win32/registry_spec.rb +1 -1
  213. data/spec/integration/client/client_spec.rb +5 -2
  214. data/spec/integration/client/exit_code_spec.rb +1 -1
  215. data/spec/integration/client/ipv6_spec.rb +1 -1
  216. data/spec/integration/compliance/compliance_spec.rb +1 -1
  217. data/spec/integration/ohai/ohai_spec.rb +7 -6
  218. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  219. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  220. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  221. data/spec/integration/recipes/notifies_spec.rb +15 -1
  222. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  223. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  224. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  225. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  226. data/spec/spec_helper.rb +10 -13
  227. data/spec/support/chef_helpers.rb +0 -16
  228. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  229. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  230. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  231. data/spec/support/matchers/leak.rb +7 -9
  232. data/spec/support/platform_helpers.rb +1 -8
  233. data/spec/support/shared/integration/integration_helper.rb +0 -1
  234. data/spec/support/shared/unit/script_resource.rb +2 -2
  235. data/spec/unit/application/solo_spec.rb +2 -2
  236. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  237. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  238. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  239. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  240. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  241. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  242. data/spec/unit/compliance/runner_spec.rb +30 -4
  243. data/spec/unit/cookbook_version_spec.rb +0 -52
  244. data/spec/unit/data_bag_item_spec.rb +1 -6
  245. data/spec/unit/data_collector_spec.rb +1 -47
  246. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  247. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  248. data/spec/unit/lwrp_spec.rb +1 -1
  249. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  250. data/spec/unit/node/attribute_spec.rb +1 -1
  251. data/spec/unit/node_spec.rb +78 -0
  252. data/spec/unit/org_group_spec.rb +45 -0
  253. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  254. data/spec/unit/property_spec.rb +23 -22
  255. data/spec/unit/provider/cron_spec.rb +1 -1
  256. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  257. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  258. data/spec/unit/provider/group/pw_spec.rb +2 -2
  259. data/spec/unit/provider/group_spec.rb +1 -1
  260. data/spec/unit/provider/package/apt_spec.rb +84 -18
  261. data/spec/unit/provider/package/deb_spec.rb +3 -3
  262. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  263. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  264. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  265. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  266. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  267. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  268. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  269. data/spec/unit/provider/service/windows_spec.rb +2 -2
  270. data/spec/unit/provider/subversion_spec.rb +2 -2
  271. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  272. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  273. data/spec/unit/provider_spec.rb +0 -8
  274. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  275. data/spec/unit/resource/mount_spec.rb +0 -10
  276. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  277. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  278. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  279. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  280. data/spec/unit/resource/windows_task_spec.rb +1 -1
  281. data/spec/unit/user_spec.rb +1 -1
  282. data/spec/unit/user_v1_spec.rb +6 -4
  283. data/tasks/rspec.rb +15 -7
  284. metadata +17 -380
  285. data/bin/knife +0 -24
  286. data/lib/chef/application/knife.rb +0 -234
  287. data/lib/chef/application/windows_service.rb +0 -338
  288. data/lib/chef/application/windows_service_manager.rb +0 -205
  289. data/lib/chef/chef_fs/knife.rb +0 -160
  290. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  291. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  292. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  293. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  294. data/lib/chef/knife/acl_add.rb +0 -57
  295. data/lib/chef/knife/acl_base.rb +0 -183
  296. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  297. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  298. data/lib/chef/knife/acl_remove.rb +0 -62
  299. data/lib/chef/knife/acl_show.rb +0 -56
  300. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  301. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  302. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  303. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  304. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  305. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  306. data/lib/chef/knife/bootstrap.rb +0 -1192
  307. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  308. data/lib/chef/knife/client_create.rb +0 -101
  309. data/lib/chef/knife/client_delete.rb +0 -62
  310. data/lib/chef/knife/client_edit.rb +0 -52
  311. data/lib/chef/knife/client_key_create.rb +0 -73
  312. data/lib/chef/knife/client_key_delete.rb +0 -80
  313. data/lib/chef/knife/client_key_edit.rb +0 -83
  314. data/lib/chef/knife/client_key_list.rb +0 -73
  315. data/lib/chef/knife/client_key_show.rb +0 -80
  316. data/lib/chef/knife/client_list.rb +0 -41
  317. data/lib/chef/knife/client_reregister.rb +0 -58
  318. data/lib/chef/knife/client_show.rb +0 -48
  319. data/lib/chef/knife/config_get.rb +0 -39
  320. data/lib/chef/knife/config_get_profile.rb +0 -37
  321. data/lib/chef/knife/config_list.rb +0 -139
  322. data/lib/chef/knife/config_list_profiles.rb +0 -37
  323. data/lib/chef/knife/config_show.rb +0 -127
  324. data/lib/chef/knife/config_use.rb +0 -61
  325. data/lib/chef/knife/config_use_profile.rb +0 -47
  326. data/lib/chef/knife/configure.rb +0 -150
  327. data/lib/chef/knife/configure_client.rb +0 -48
  328. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  329. data/lib/chef/knife/cookbook_delete.rb +0 -151
  330. data/lib/chef/knife/cookbook_download.rb +0 -142
  331. data/lib/chef/knife/cookbook_list.rb +0 -47
  332. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  333. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  334. data/lib/chef/knife/cookbook_show.rb +0 -98
  335. data/lib/chef/knife/cookbook_upload.rb +0 -292
  336. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  337. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  338. data/lib/chef/knife/core/formatting_options.rb +0 -49
  339. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  340. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  341. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  342. data/lib/chef/knife/core/node_editor.rb +0 -130
  343. data/lib/chef/knife/core/node_presenter.rb +0 -133
  344. data/lib/chef/knife/core/object_loader.rb +0 -115
  345. data/lib/chef/knife/core/status_presenter.rb +0 -147
  346. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  347. data/lib/chef/knife/core/text_formatter.rb +0 -85
  348. data/lib/chef/knife/core/ui.rb +0 -338
  349. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  350. data/lib/chef/knife/data_bag_create.rb +0 -81
  351. data/lib/chef/knife/data_bag_delete.rb +0 -49
  352. data/lib/chef/knife/data_bag_edit.rb +0 -74
  353. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  354. data/lib/chef/knife/data_bag_list.rb +0 -42
  355. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  356. data/lib/chef/knife/data_bag_show.rb +0 -69
  357. data/lib/chef/knife/delete.rb +0 -125
  358. data/lib/chef/knife/deps.rb +0 -156
  359. data/lib/chef/knife/diff.rb +0 -83
  360. data/lib/chef/knife/download.rb +0 -84
  361. data/lib/chef/knife/edit.rb +0 -88
  362. data/lib/chef/knife/environment_compare.rb +0 -128
  363. data/lib/chef/knife/environment_create.rb +0 -52
  364. data/lib/chef/knife/environment_delete.rb +0 -44
  365. data/lib/chef/knife/environment_edit.rb +0 -44
  366. data/lib/chef/knife/environment_from_file.rb +0 -84
  367. data/lib/chef/knife/environment_list.rb +0 -41
  368. data/lib/chef/knife/environment_show.rb +0 -47
  369. data/lib/chef/knife/exec.rb +0 -99
  370. data/lib/chef/knife/group_add.rb +0 -55
  371. data/lib/chef/knife/group_create.rb +0 -49
  372. data/lib/chef/knife/group_destroy.rb +0 -53
  373. data/lib/chef/knife/group_list.rb +0 -43
  374. data/lib/chef/knife/group_remove.rb +0 -56
  375. data/lib/chef/knife/group_show.rb +0 -49
  376. data/lib/chef/knife/key_create.rb +0 -112
  377. data/lib/chef/knife/key_create_base.rb +0 -50
  378. data/lib/chef/knife/key_delete.rb +0 -55
  379. data/lib/chef/knife/key_edit.rb +0 -118
  380. data/lib/chef/knife/key_edit_base.rb +0 -55
  381. data/lib/chef/knife/key_list.rb +0 -90
  382. data/lib/chef/knife/key_list_base.rb +0 -45
  383. data/lib/chef/knife/key_show.rb +0 -53
  384. data/lib/chef/knife/list.rb +0 -177
  385. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  386. data/lib/chef/knife/node_create.rb +0 -47
  387. data/lib/chef/knife/node_delete.rb +0 -46
  388. data/lib/chef/knife/node_edit.rb +0 -70
  389. data/lib/chef/knife/node_environment_set.rb +0 -53
  390. data/lib/chef/knife/node_from_file.rb +0 -51
  391. data/lib/chef/knife/node_list.rb +0 -44
  392. data/lib/chef/knife/node_policy_set.rb +0 -79
  393. data/lib/chef/knife/node_run_list_add.rb +0 -104
  394. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  395. data/lib/chef/knife/node_run_list_set.rb +0 -66
  396. data/lib/chef/knife/node_show.rb +0 -63
  397. data/lib/chef/knife/null.rb +0 -12
  398. data/lib/chef/knife/raw.rb +0 -123
  399. data/lib/chef/knife/recipe_list.rb +0 -32
  400. data/lib/chef/knife/rehash.rb +0 -50
  401. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  402. data/lib/chef/knife/role_create.rb +0 -53
  403. data/lib/chef/knife/role_delete.rb +0 -46
  404. data/lib/chef/knife/role_edit.rb +0 -45
  405. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  406. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  407. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  408. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  409. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  410. data/lib/chef/knife/role_from_file.rb +0 -51
  411. data/lib/chef/knife/role_list.rb +0 -42
  412. data/lib/chef/knife/role_run_list_add.rb +0 -87
  413. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  414. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  415. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  416. data/lib/chef/knife/role_run_list_set.rb +0 -69
  417. data/lib/chef/knife/role_show.rb +0 -48
  418. data/lib/chef/knife/search.rb +0 -194
  419. data/lib/chef/knife/serve.rb +0 -65
  420. data/lib/chef/knife/show.rb +0 -72
  421. data/lib/chef/knife/ssh.rb +0 -645
  422. data/lib/chef/knife/ssl_check.rb +0 -284
  423. data/lib/chef/knife/ssl_fetch.rb +0 -161
  424. data/lib/chef/knife/status.rb +0 -95
  425. data/lib/chef/knife/supermarket_download.rb +0 -121
  426. data/lib/chef/knife/supermarket_install.rb +0 -192
  427. data/lib/chef/knife/supermarket_list.rb +0 -76
  428. data/lib/chef/knife/supermarket_search.rb +0 -53
  429. data/lib/chef/knife/supermarket_share.rb +0 -166
  430. data/lib/chef/knife/supermarket_show.rb +0 -66
  431. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  432. data/lib/chef/knife/tag_create.rb +0 -52
  433. data/lib/chef/knife/tag_delete.rb +0 -60
  434. data/lib/chef/knife/tag_list.rb +0 -47
  435. data/lib/chef/knife/upload.rb +0 -86
  436. data/lib/chef/knife/user_create.rb +0 -107
  437. data/lib/chef/knife/user_delete.rb +0 -44
  438. data/lib/chef/knife/user_dissociate.rb +0 -42
  439. data/lib/chef/knife/user_edit.rb +0 -52
  440. data/lib/chef/knife/user_invite_add.rb +0 -43
  441. data/lib/chef/knife/user_invite_list.rb +0 -34
  442. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  443. data/lib/chef/knife/user_key_create.rb +0 -73
  444. data/lib/chef/knife/user_key_delete.rb +0 -80
  445. data/lib/chef/knife/user_key_edit.rb +0 -83
  446. data/lib/chef/knife/user_key_list.rb +0 -73
  447. data/lib/chef/knife/user_key_show.rb +0 -80
  448. data/lib/chef/knife/user_list.rb +0 -42
  449. data/lib/chef/knife/user_reregister.rb +0 -59
  450. data/lib/chef/knife/user_show.rb +0 -48
  451. data/lib/chef/knife/xargs.rb +0 -282
  452. data/lib/chef/knife/yaml_convert.rb +0 -91
  453. data/lib/chef/knife.rb +0 -665
  454. data/lib/chef/resource/user/dscl_user.rb +0 -35
  455. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  456. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  457. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  458. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  459. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  460. data/spec/functional/knife/configure_spec.rb +0 -33
  461. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  462. data/spec/functional/knife/exec_spec.rb +0 -55
  463. data/spec/functional/knife/rehash_spec.rb +0 -39
  464. data/spec/functional/knife/smoke_test.rb +0 -42
  465. data/spec/functional/knife/ssh_spec.rb +0 -352
  466. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  467. data/spec/functional/resource/windows_service_spec.rb +0 -105
  468. data/spec/functional/win32/service_manager_spec.rb +0 -220
  469. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  470. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  471. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  472. data/spec/integration/knife/chefignore_spec.rb +0 -301
  473. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  474. data/spec/integration/knife/client_create_spec.rb +0 -70
  475. data/spec/integration/knife/client_delete_spec.rb +0 -64
  476. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  477. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  478. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  479. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  480. data/spec/integration/knife/client_list_spec.rb +0 -49
  481. data/spec/integration/knife/client_show_spec.rb +0 -37
  482. data/spec/integration/knife/common_options_spec.rb +0 -174
  483. data/spec/integration/knife/config_list_spec.rb +0 -220
  484. data/spec/integration/knife/config_show_spec.rb +0 -192
  485. data/spec/integration/knife/config_use_spec.rb +0 -198
  486. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  487. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  488. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  489. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  490. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  491. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  492. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  493. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  494. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  495. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  496. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  497. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  498. data/spec/integration/knife/delete_spec.rb +0 -1018
  499. data/spec/integration/knife/deps_spec.rb +0 -703
  500. data/spec/integration/knife/diff_spec.rb +0 -605
  501. data/spec/integration/knife/download_spec.rb +0 -1336
  502. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  503. data/spec/integration/knife/environment_create_spec.rb +0 -41
  504. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  505. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  506. data/spec/integration/knife/environment_list_spec.rb +0 -42
  507. data/spec/integration/knife/environment_show_spec.rb +0 -77
  508. data/spec/integration/knife/list_spec.rb +0 -1060
  509. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  510. data/spec/integration/knife/node_create_spec.rb +0 -47
  511. data/spec/integration/knife/node_delete_spec.rb +0 -48
  512. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  513. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  514. data/spec/integration/knife/node_list_spec.rb +0 -45
  515. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  516. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  517. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  518. data/spec/integration/knife/node_show_spec.rb +0 -36
  519. data/spec/integration/knife/raw_spec.rb +0 -297
  520. data/spec/integration/knife/redirection_spec.rb +0 -64
  521. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  522. data/spec/integration/knife/role_create_spec.rb +0 -41
  523. data/spec/integration/knife/role_delete_spec.rb +0 -48
  524. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  525. data/spec/integration/knife/role_list_spec.rb +0 -45
  526. data/spec/integration/knife/role_show_spec.rb +0 -51
  527. data/spec/integration/knife/search_node_spec.rb +0 -40
  528. data/spec/integration/knife/serve_spec.rb +0 -92
  529. data/spec/integration/knife/show_spec.rb +0 -197
  530. data/spec/integration/knife/upload_spec.rb +0 -1617
  531. data/spec/support/shared/functional/knife.rb +0 -37
  532. data/spec/support/shared/functional/win32_service.rb +0 -57
  533. data/spec/support/shared/integration/knife_support.rb +0 -192
  534. data/spec/support/shared/unit/knife_shared.rb +0 -39
  535. data/spec/unit/application/knife_spec.rb +0 -241
  536. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  537. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  538. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  539. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  540. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  541. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  542. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  543. data/spec/unit/knife/client_create_spec.rb +0 -169
  544. data/spec/unit/knife/client_delete_spec.rb +0 -99
  545. data/spec/unit/knife/client_edit_spec.rb +0 -53
  546. data/spec/unit/knife/client_list_spec.rb +0 -34
  547. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  548. data/spec/unit/knife/client_show_spec.rb +0 -52
  549. data/spec/unit/knife/configure_client_spec.rb +0 -81
  550. data/spec/unit/knife/configure_spec.rb +0 -190
  551. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  552. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  553. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  554. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  555. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  556. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  557. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  558. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  559. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  560. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  561. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  562. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  563. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  564. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  565. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  566. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  567. data/spec/unit/knife/core/ui_spec.rb +0 -656
  568. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  569. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  570. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  571. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  572. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  573. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  574. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  575. data/spec/unit/knife/environment_create_spec.rb +0 -91
  576. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  577. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  578. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  579. data/spec/unit/knife/environment_list_spec.rb +0 -54
  580. data/spec/unit/knife/environment_show_spec.rb +0 -52
  581. data/spec/unit/knife/key_create_spec.rb +0 -223
  582. data/spec/unit/knife/key_delete_spec.rb +0 -133
  583. data/spec/unit/knife/key_edit_spec.rb +0 -264
  584. data/spec/unit/knife/key_helper.rb +0 -74
  585. data/spec/unit/knife/key_list_spec.rb +0 -216
  586. data/spec/unit/knife/key_show_spec.rb +0 -126
  587. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  588. data/spec/unit/knife/node_delete_spec.rb +0 -77
  589. data/spec/unit/knife/node_edit_spec.rb +0 -116
  590. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  591. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  592. data/spec/unit/knife/node_list_spec.rb +0 -62
  593. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  594. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  595. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  596. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  597. data/spec/unit/knife/node_show_spec.rb +0 -65
  598. data/spec/unit/knife/raw_spec.rb +0 -43
  599. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  600. data/spec/unit/knife/role_create_spec.rb +0 -80
  601. data/spec/unit/knife/role_delete_spec.rb +0 -67
  602. data/spec/unit/knife/role_edit_spec.rb +0 -77
  603. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  604. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  605. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  606. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  607. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  608. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  609. data/spec/unit/knife/role_list_spec.rb +0 -54
  610. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  611. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  612. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  613. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  614. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  615. data/spec/unit/knife/role_show_spec.rb +0 -59
  616. data/spec/unit/knife/ssh_spec.rb +0 -403
  617. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  618. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  619. data/spec/unit/knife/status_spec.rb +0 -112
  620. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  621. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  622. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  623. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  624. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  625. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  626. data/spec/unit/knife/tag_create_spec.rb +0 -23
  627. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  628. data/spec/unit/knife/tag_list_spec.rb +0 -23
  629. data/spec/unit/knife/user_create_spec.rb +0 -184
  630. data/spec/unit/knife/user_delete_spec.rb +0 -46
  631. data/spec/unit/knife/user_edit_spec.rb +0 -48
  632. data/spec/unit/knife/user_list_spec.rb +0 -36
  633. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  634. data/spec/unit/knife/user_show_spec.rb +0 -46
  635. data/spec/unit/knife_spec.rb +0 -634
  636. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  637. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,99 +0,0 @@
1
- #--
2
- # Author:: Daniel DeLeo (<dan@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_relative "../knife"
20
- require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
-
22
- class Chef::Knife::Exec < Chef::Knife
23
-
24
- banner "knife exec [SCRIPT] (options)"
25
-
26
- deps do
27
- require_relative "../util/path_helper"
28
- end
29
-
30
- option :exec,
31
- short: "-E CODE",
32
- long: "--exec CODE",
33
- description: "A string of #{ChefUtils::Dist::Infra::PRODUCT} code to execute."
34
-
35
- option :script_path,
36
- short: "-p PATH:PATH",
37
- long: "--script-path PATH:PATH",
38
- description: "A colon-separated path to look for scripts in.",
39
- proc: lambda { |o| o.split(":") }
40
-
41
- deps do
42
- require_relative "../shell/ext"
43
- end
44
-
45
- def run
46
- config[:script_path] = Array(config[:script_path] || Chef::Config[:script_path])
47
-
48
- # Default script paths are chef-repo/.chef/scripts and ~/.chef/scripts
49
- config[:script_path] << File.join(Chef::Knife.chef_config_dir, "scripts") if Chef::Knife.chef_config_dir
50
- Chef::Util::PathHelper.home(".chef", "scripts") { |p| config[:script_path] << p }
51
-
52
- scripts = Array(name_args)
53
- context = Object.new
54
- Shell::Extensions.extend_context_object(context)
55
- if config[:exec]
56
- context.instance_eval(config[:exec], "-E Argument", 0)
57
- elsif !scripts.empty?
58
- scripts.each do |script|
59
- file = find_script(script)
60
- context.instance_eval(IO.read(file), file, 0)
61
- end
62
- else
63
- puts "An interactive shell is opened"
64
- puts
65
- puts "Type your script and do:"
66
- puts
67
- puts "1. To run the script, use 'Ctrl D'"
68
- puts "2. To exit, use 'Ctrl/Shift C'"
69
- puts
70
- puts "Type here a script..."
71
- script = STDIN.read
72
- context.instance_eval(script, "STDIN", 0)
73
- end
74
- end
75
-
76
- def find_script(x)
77
- # Try to find a script. First try expanding the path given.
78
- script = File.expand_path(x)
79
- return script if File.exist?(script)
80
-
81
- # Failing that, try searching the script path. If we can't find
82
- # anything, fail gracefully.
83
- Chef::Log.trace("Searching script_path: #{config[:script_path].inspect}")
84
-
85
- config[:script_path].each do |path|
86
- path = File.expand_path(path)
87
- test = File.join(path, x)
88
- Chef::Log.trace("Testing: #{test}")
89
- if File.exist?(test)
90
- script = test
91
- Chef::Log.trace("Found: #{test}")
92
- return script
93
- end
94
- end
95
- ui.error("\"#{x}\" not found in current directory or script_path, giving up.")
96
- exit(1)
97
- end
98
-
99
- end
@@ -1,55 +0,0 @@
1
- #
2
- # Author:: Seth Falcon (<seth@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupAdd < Chef::Knife
25
- category "group"
26
- banner "knife group add MEMBER_TYPE MEMBER_NAME GROUP_NAME"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- member_type, member_name, group_name = name_args
35
-
36
- if name_args.length != 3
37
- show_usage
38
- ui.fatal "You must specify member type [client|group|user], member name and group name"
39
- exit 1
40
- end
41
-
42
- validate_member_name!(group_name)
43
- validate_member_type!(member_type)
44
- validate_member_name!(member_name)
45
-
46
- if group_name.downcase == "users"
47
- ui.fatal "knife group can not manage members of Chef Infra Server's 'users' group, which contains all users."
48
- exit 1
49
- end
50
-
51
- add_to_group!(member_type, member_name, group_name)
52
- end
53
- end
54
- end
55
- end
@@ -1,49 +0,0 @@
1
- #
2
- # Author:: Seth Falcon (<seth@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupCreate < Chef::Knife
25
- category "group"
26
- banner "knife group create GROUP_NAME"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- group_name = name_args[0]
35
-
36
- if name_args.length != 1
37
- show_usage
38
- ui.fatal "You must specify group name"
39
- exit 1
40
- end
41
-
42
- validate_member_name!(group_name)
43
-
44
- ui.msg "Creating '#{group_name}' group"
45
- rest.post_rest("groups", { groupname: group_name })
46
- end
47
- end
48
- end
49
- end
@@ -1,53 +0,0 @@
1
- #
2
- # Author:: Christopher Maier (<cm@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupDestroy < Chef::Knife
25
- category "group"
26
- banner "knife group destroy GROUP_NAME"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- group_name = name_args[0]
35
-
36
- if name_args.length != 1
37
- show_usage
38
- ui.fatal "You must specify group name"
39
- exit 1
40
- end
41
-
42
- validate_member_name!(group_name)
43
-
44
- if %w{admins billing-admins clients users}.include?(group_name.downcase)
45
- ui.fatal "The '#{group_name}' group is a special group that cannot not be destroyed"
46
- exit 1
47
- end
48
- ui.msg "Destroying '#{group_name}' group"
49
- rest.delete_rest("groups/#{group_name}")
50
- end
51
- end
52
- end
53
- end
@@ -1,43 +0,0 @@
1
- #
2
- # Author:: Seth Falcon (<seth@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupList < Chef::Knife
25
- category "group"
26
- banner "knife group list"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- groups = rest.get_rest("groups").keys.sort
35
- ui.output(remove_usags(groups))
36
- end
37
-
38
- def remove_usags(groups)
39
- groups.select { |gname| !is_usag?(gname) }
40
- end
41
- end
42
- end
43
- end
@@ -1,56 +0,0 @@
1
- #
2
- # Author:: Seth Falcon (<seth@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupRemove < Chef::Knife
25
- category "group"
26
- banner "knife group remove MEMBER_TYPE MEMBER_NAME GROUP_NAME"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- member_type, member_name, group_name = name_args
35
-
36
- if name_args.length != 3
37
- show_usage
38
- ui.fatal "You must specify member type [client|group|user], member name and group name"
39
- exit 1
40
- end
41
-
42
- validate_member_name!(group_name)
43
- validate_member_type!(member_type)
44
- validate_member_name!(member_name)
45
-
46
- if group_name.downcase == "users"
47
- ui.fatal "knife-acl can not manage members of the Users group"
48
- ui.fatal "please read knife-acl's README.md for more information"
49
- exit 1
50
- end
51
-
52
- remove_from_group!(member_type, member_name, group_name)
53
- end
54
- end
55
- end
56
- end
@@ -1,49 +0,0 @@
1
- #
2
- # Author:: Seth Falcon (<seth@chef.io>)
3
- # Author:: Jeremiah Snapp (<jeremiah@chef.io>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- require_relative "../knife"
21
-
22
- class Chef
23
- class Knife
24
- class GroupShow < Chef::Knife
25
- category "group"
26
- banner "knife group show GROUP_NAME"
27
-
28
- deps do
29
- require_relative "acl_base"
30
- include Chef::Knife::AclBase
31
- end
32
-
33
- def run
34
- group_name = name_args[0]
35
-
36
- if name_args.length != 1
37
- show_usage
38
- ui.fatal "You must specify group name"
39
- exit 1
40
- end
41
-
42
- validate_member_name!(group_name)
43
-
44
- group = rest.get_rest("groups/#{group_name}")
45
- ui.output group
46
- end
47
- end
48
- end
49
- end
@@ -1,112 +0,0 @@
1
- #
2
- # Author:: Tyler Cloke (<tyler@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_relative "../key"
20
- require_relative "../json_compat"
21
- require_relative "../exceptions"
22
-
23
- class Chef
24
- class Knife
25
- # Service class for UserKeyCreate and ClientKeyCreate,
26
- # Implements common functionality of knife [user | org client] key create.
27
- #
28
- # @author Tyler Cloke
29
- #
30
- # @attr_accessor [Hash] cli input, see UserKeyCreate and ClientKeyCreate for what could populate it
31
- class KeyCreate
32
-
33
- attr_accessor :config
34
-
35
- def initialize(actor, actor_field_name, ui, config)
36
- @actor = actor
37
- @actor_field_name = actor_field_name
38
- @ui = ui
39
- @config = config
40
- end
41
-
42
- def public_key_or_key_name_error_msg
43
- <<~EOS
44
- You must pass either --public-key or --key-name, or both.
45
- If you only pass --public-key, a key name will be generated from the fingerprint of your key.
46
- If you only pass --key-name, a key pair will be generated by the server.
47
- EOS
48
- end
49
-
50
- def edit_data(key)
51
- @ui.edit_data(key)
52
- end
53
-
54
- def edit_hash(key)
55
- @ui.edit_hash(key)
56
- end
57
-
58
- def display_info(input)
59
- @ui.info(input)
60
- end
61
-
62
- def display_private_key(private_key)
63
- @ui.msg(private_key)
64
- end
65
-
66
- def output_private_key_to_file(private_key)
67
- File.open(@config[:file], "w") do |f|
68
- f.print(private_key)
69
- end
70
- end
71
-
72
- def create_key_from_hash(output)
73
- Chef::Key.from_hash(output).create
74
- end
75
-
76
- def run
77
- key = Chef::Key.new(@actor, @actor_field_name)
78
- if !@config[:public_key] && !@config[:key_name]
79
- raise Chef::Exceptions::KeyCommandInputError, public_key_or_key_name_error_msg
80
- elsif !@config[:public_key]
81
- key.create_key(true)
82
- end
83
-
84
- if @config[:public_key]
85
- key.public_key(File.read(File.expand_path(@config[:public_key])))
86
- end
87
-
88
- if @config[:key_name]
89
- key.name(@config[:key_name])
90
- end
91
-
92
- if @config[:expiration_date]
93
- key.expiration_date(@config[:expiration_date])
94
- else
95
- key.expiration_date("infinity")
96
- end
97
-
98
- output = edit_hash(key)
99
- key = create_key_from_hash(output)
100
-
101
- display_info("Created key: #{key.name}")
102
- if key.private_key
103
- if @config[:file]
104
- output_private_key_to_file(key.private_key)
105
- else
106
- display_private_key(key.private_key)
107
- end
108
- end
109
- end
110
- end
111
- end
112
- end
@@ -1,50 +0,0 @@
1
- #
2
- # Author:: Tyler Cloke (<tyler@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
- class Chef
20
- class Knife
21
- # Extendable module that class_eval's common options into UserKeyCreate and ClientKeyCreate
22
- #
23
- # @author Tyler Cloke
24
- module KeyCreateBase
25
- def self.included(includer)
26
- includer.class_eval do
27
- option :public_key,
28
- short: "-p FILENAME",
29
- long: "--public-key FILENAME",
30
- description: "Public key for newly created key. If not passed, the server will create a key pair for you, but you must pass --key-name NAME in that case."
31
-
32
- option :file,
33
- short: "-f FILE",
34
- long: "--file FILE",
35
- description: "Write the private key to a file, if you requested the server to create one."
36
-
37
- option :key_name,
38
- short: "-k NAME",
39
- long: "--key-name NAME",
40
- description: "The name for your key. If you do not pass a name, you must pass --public-key, and the name will default to the fingerprint of the public key passed."
41
-
42
- option :expiration_date,
43
- short: "-e DATE",
44
- long: "--expiration-date DATE",
45
- description: "Optionally pass the expiration date for the key in ISO 8601 formatted string: YYYY-MM-DDTHH:MM:SSZ e.g. 2013-12-24T21:00:00Z. Defaults to infinity if not passed. UTC timezone assumed."
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,55 +0,0 @@
1
- #
2
- # Author:: Tyler Cloke (<tyler@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_relative "../key"
20
-
21
- class Chef
22
- class Knife
23
- # Service class for UserKeyDelete and ClientKeyDelete, used to delete keys.
24
- # Implements common functionality of knife [user | org client] key delete.
25
- #
26
- # @author Tyler Cloke
27
- #
28
- # @attr_accessor [Hash] cli input, see UserKeyDelete and ClientKeyDelete for what could populate it
29
- class KeyDelete
30
- def initialize(name, actor, actor_field_name, ui)
31
- @name = name
32
- @actor = actor
33
- @actor_field_name = actor_field_name
34
- @ui = ui
35
- end
36
-
37
- def confirm!
38
- @ui.confirm("Do you really want to delete the key named #{@name} for the #{@actor_field_name} named #{@actor}")
39
- end
40
-
41
- def print_destroyed
42
- @ui.info("Deleted key named #{@name} for the #{@actor_field_name} named #{@actor}")
43
- end
44
-
45
- def run
46
- key = Chef::Key.new(@actor, @actor_field_name)
47
- key.name(@name)
48
- confirm!
49
- key.destroy
50
- print_destroyed
51
- end
52
-
53
- end
54
- end
55
- end