chef 16.16.13 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (638) 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/lib/chef/win32/version.rb +1 -2
  179. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  180. data/spec/data/lwrp/resources/bar.rb +2 -0
  181. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  182. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  183. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  184. data/spec/data/lwrp/resources/foo.rb +2 -0
  185. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  186. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  187. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  188. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  189. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  190. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  191. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  192. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  193. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  194. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  195. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  196. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  197. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  198. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  199. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  200. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  201. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  202. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  203. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  204. data/spec/functional/resource/apt_package_spec.rb +1 -1
  205. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  206. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  207. data/spec/functional/resource/group_spec.rb +1 -5
  208. data/spec/functional/resource/link_spec.rb +0 -8
  209. data/spec/functional/resource/registry_spec.rb +8 -8
  210. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  211. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  212. data/spec/functional/version_spec.rb +1 -1
  213. data/spec/functional/win32/registry_spec.rb +1 -1
  214. data/spec/integration/client/client_spec.rb +5 -2
  215. data/spec/integration/client/exit_code_spec.rb +1 -1
  216. data/spec/integration/client/ipv6_spec.rb +1 -1
  217. data/spec/integration/compliance/compliance_spec.rb +1 -1
  218. data/spec/integration/ohai/ohai_spec.rb +7 -6
  219. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  220. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  221. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  222. data/spec/integration/recipes/notifies_spec.rb +15 -1
  223. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  224. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  225. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  226. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  227. data/spec/spec_helper.rb +10 -13
  228. data/spec/support/chef_helpers.rb +0 -16
  229. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  230. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  231. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  232. data/spec/support/matchers/leak.rb +7 -9
  233. data/spec/support/platform_helpers.rb +1 -8
  234. data/spec/support/shared/integration/integration_helper.rb +0 -1
  235. data/spec/support/shared/unit/script_resource.rb +2 -2
  236. data/spec/unit/application/solo_spec.rb +2 -2
  237. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  238. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  239. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  240. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  241. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  242. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  243. data/spec/unit/compliance/runner_spec.rb +30 -4
  244. data/spec/unit/cookbook_version_spec.rb +0 -52
  245. data/spec/unit/data_bag_item_spec.rb +1 -6
  246. data/spec/unit/data_collector_spec.rb +1 -47
  247. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  248. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  249. data/spec/unit/lwrp_spec.rb +1 -1
  250. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  251. data/spec/unit/node/attribute_spec.rb +1 -1
  252. data/spec/unit/node_spec.rb +78 -0
  253. data/spec/unit/org_group_spec.rb +45 -0
  254. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  255. data/spec/unit/property_spec.rb +23 -22
  256. data/spec/unit/provider/cron_spec.rb +1 -1
  257. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  258. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  259. data/spec/unit/provider/group/pw_spec.rb +2 -2
  260. data/spec/unit/provider/group_spec.rb +1 -1
  261. data/spec/unit/provider/package/apt_spec.rb +84 -18
  262. data/spec/unit/provider/package/deb_spec.rb +3 -3
  263. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  264. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  265. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  266. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  267. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  268. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  269. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  270. data/spec/unit/provider/service/windows_spec.rb +2 -2
  271. data/spec/unit/provider/subversion_spec.rb +2 -2
  272. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  273. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  274. data/spec/unit/provider_spec.rb +0 -8
  275. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  276. data/spec/unit/resource/mount_spec.rb +0 -10
  277. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  278. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  279. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  280. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  281. data/spec/unit/resource/windows_task_spec.rb +1 -1
  282. data/spec/unit/user_spec.rb +1 -1
  283. data/spec/unit/user_v1_spec.rb +6 -4
  284. data/tasks/rspec.rb +15 -7
  285. metadata +17 -380
  286. data/bin/knife +0 -24
  287. data/lib/chef/application/knife.rb +0 -234
  288. data/lib/chef/application/windows_service.rb +0 -338
  289. data/lib/chef/application/windows_service_manager.rb +0 -205
  290. data/lib/chef/chef_fs/knife.rb +0 -160
  291. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  292. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  293. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  294. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  295. data/lib/chef/knife/acl_add.rb +0 -57
  296. data/lib/chef/knife/acl_base.rb +0 -183
  297. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  298. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  299. data/lib/chef/knife/acl_remove.rb +0 -62
  300. data/lib/chef/knife/acl_show.rb +0 -56
  301. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  302. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  303. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  304. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  305. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  306. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  307. data/lib/chef/knife/bootstrap.rb +0 -1192
  308. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  309. data/lib/chef/knife/client_create.rb +0 -101
  310. data/lib/chef/knife/client_delete.rb +0 -62
  311. data/lib/chef/knife/client_edit.rb +0 -52
  312. data/lib/chef/knife/client_key_create.rb +0 -73
  313. data/lib/chef/knife/client_key_delete.rb +0 -80
  314. data/lib/chef/knife/client_key_edit.rb +0 -83
  315. data/lib/chef/knife/client_key_list.rb +0 -73
  316. data/lib/chef/knife/client_key_show.rb +0 -80
  317. data/lib/chef/knife/client_list.rb +0 -41
  318. data/lib/chef/knife/client_reregister.rb +0 -58
  319. data/lib/chef/knife/client_show.rb +0 -48
  320. data/lib/chef/knife/config_get.rb +0 -39
  321. data/lib/chef/knife/config_get_profile.rb +0 -37
  322. data/lib/chef/knife/config_list.rb +0 -139
  323. data/lib/chef/knife/config_list_profiles.rb +0 -37
  324. data/lib/chef/knife/config_show.rb +0 -127
  325. data/lib/chef/knife/config_use.rb +0 -61
  326. data/lib/chef/knife/config_use_profile.rb +0 -47
  327. data/lib/chef/knife/configure.rb +0 -150
  328. data/lib/chef/knife/configure_client.rb +0 -48
  329. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  330. data/lib/chef/knife/cookbook_delete.rb +0 -151
  331. data/lib/chef/knife/cookbook_download.rb +0 -142
  332. data/lib/chef/knife/cookbook_list.rb +0 -47
  333. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  334. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  335. data/lib/chef/knife/cookbook_show.rb +0 -98
  336. data/lib/chef/knife/cookbook_upload.rb +0 -292
  337. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  338. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  339. data/lib/chef/knife/core/formatting_options.rb +0 -49
  340. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  341. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  342. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  343. data/lib/chef/knife/core/node_editor.rb +0 -130
  344. data/lib/chef/knife/core/node_presenter.rb +0 -133
  345. data/lib/chef/knife/core/object_loader.rb +0 -115
  346. data/lib/chef/knife/core/status_presenter.rb +0 -147
  347. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  348. data/lib/chef/knife/core/text_formatter.rb +0 -85
  349. data/lib/chef/knife/core/ui.rb +0 -338
  350. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  351. data/lib/chef/knife/data_bag_create.rb +0 -81
  352. data/lib/chef/knife/data_bag_delete.rb +0 -49
  353. data/lib/chef/knife/data_bag_edit.rb +0 -74
  354. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  355. data/lib/chef/knife/data_bag_list.rb +0 -42
  356. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  357. data/lib/chef/knife/data_bag_show.rb +0 -69
  358. data/lib/chef/knife/delete.rb +0 -125
  359. data/lib/chef/knife/deps.rb +0 -156
  360. data/lib/chef/knife/diff.rb +0 -83
  361. data/lib/chef/knife/download.rb +0 -84
  362. data/lib/chef/knife/edit.rb +0 -88
  363. data/lib/chef/knife/environment_compare.rb +0 -128
  364. data/lib/chef/knife/environment_create.rb +0 -52
  365. data/lib/chef/knife/environment_delete.rb +0 -44
  366. data/lib/chef/knife/environment_edit.rb +0 -44
  367. data/lib/chef/knife/environment_from_file.rb +0 -84
  368. data/lib/chef/knife/environment_list.rb +0 -41
  369. data/lib/chef/knife/environment_show.rb +0 -47
  370. data/lib/chef/knife/exec.rb +0 -99
  371. data/lib/chef/knife/group_add.rb +0 -55
  372. data/lib/chef/knife/group_create.rb +0 -49
  373. data/lib/chef/knife/group_destroy.rb +0 -53
  374. data/lib/chef/knife/group_list.rb +0 -43
  375. data/lib/chef/knife/group_remove.rb +0 -56
  376. data/lib/chef/knife/group_show.rb +0 -49
  377. data/lib/chef/knife/key_create.rb +0 -112
  378. data/lib/chef/knife/key_create_base.rb +0 -50
  379. data/lib/chef/knife/key_delete.rb +0 -55
  380. data/lib/chef/knife/key_edit.rb +0 -118
  381. data/lib/chef/knife/key_edit_base.rb +0 -55
  382. data/lib/chef/knife/key_list.rb +0 -90
  383. data/lib/chef/knife/key_list_base.rb +0 -45
  384. data/lib/chef/knife/key_show.rb +0 -53
  385. data/lib/chef/knife/list.rb +0 -177
  386. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  387. data/lib/chef/knife/node_create.rb +0 -47
  388. data/lib/chef/knife/node_delete.rb +0 -46
  389. data/lib/chef/knife/node_edit.rb +0 -70
  390. data/lib/chef/knife/node_environment_set.rb +0 -53
  391. data/lib/chef/knife/node_from_file.rb +0 -51
  392. data/lib/chef/knife/node_list.rb +0 -44
  393. data/lib/chef/knife/node_policy_set.rb +0 -79
  394. data/lib/chef/knife/node_run_list_add.rb +0 -104
  395. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  396. data/lib/chef/knife/node_run_list_set.rb +0 -66
  397. data/lib/chef/knife/node_show.rb +0 -63
  398. data/lib/chef/knife/null.rb +0 -12
  399. data/lib/chef/knife/raw.rb +0 -123
  400. data/lib/chef/knife/recipe_list.rb +0 -32
  401. data/lib/chef/knife/rehash.rb +0 -50
  402. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  403. data/lib/chef/knife/role_create.rb +0 -53
  404. data/lib/chef/knife/role_delete.rb +0 -46
  405. data/lib/chef/knife/role_edit.rb +0 -45
  406. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  407. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  408. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  409. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  410. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  411. data/lib/chef/knife/role_from_file.rb +0 -51
  412. data/lib/chef/knife/role_list.rb +0 -42
  413. data/lib/chef/knife/role_run_list_add.rb +0 -87
  414. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  415. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  416. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  417. data/lib/chef/knife/role_run_list_set.rb +0 -69
  418. data/lib/chef/knife/role_show.rb +0 -48
  419. data/lib/chef/knife/search.rb +0 -194
  420. data/lib/chef/knife/serve.rb +0 -65
  421. data/lib/chef/knife/show.rb +0 -72
  422. data/lib/chef/knife/ssh.rb +0 -645
  423. data/lib/chef/knife/ssl_check.rb +0 -284
  424. data/lib/chef/knife/ssl_fetch.rb +0 -161
  425. data/lib/chef/knife/status.rb +0 -95
  426. data/lib/chef/knife/supermarket_download.rb +0 -121
  427. data/lib/chef/knife/supermarket_install.rb +0 -192
  428. data/lib/chef/knife/supermarket_list.rb +0 -76
  429. data/lib/chef/knife/supermarket_search.rb +0 -53
  430. data/lib/chef/knife/supermarket_share.rb +0 -166
  431. data/lib/chef/knife/supermarket_show.rb +0 -66
  432. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  433. data/lib/chef/knife/tag_create.rb +0 -52
  434. data/lib/chef/knife/tag_delete.rb +0 -60
  435. data/lib/chef/knife/tag_list.rb +0 -47
  436. data/lib/chef/knife/upload.rb +0 -86
  437. data/lib/chef/knife/user_create.rb +0 -107
  438. data/lib/chef/knife/user_delete.rb +0 -44
  439. data/lib/chef/knife/user_dissociate.rb +0 -42
  440. data/lib/chef/knife/user_edit.rb +0 -52
  441. data/lib/chef/knife/user_invite_add.rb +0 -43
  442. data/lib/chef/knife/user_invite_list.rb +0 -34
  443. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  444. data/lib/chef/knife/user_key_create.rb +0 -73
  445. data/lib/chef/knife/user_key_delete.rb +0 -80
  446. data/lib/chef/knife/user_key_edit.rb +0 -83
  447. data/lib/chef/knife/user_key_list.rb +0 -73
  448. data/lib/chef/knife/user_key_show.rb +0 -80
  449. data/lib/chef/knife/user_list.rb +0 -42
  450. data/lib/chef/knife/user_reregister.rb +0 -59
  451. data/lib/chef/knife/user_show.rb +0 -48
  452. data/lib/chef/knife/xargs.rb +0 -282
  453. data/lib/chef/knife/yaml_convert.rb +0 -91
  454. data/lib/chef/knife.rb +0 -665
  455. data/lib/chef/resource/user/dscl_user.rb +0 -35
  456. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  457. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  458. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  459. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  460. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  461. data/spec/functional/knife/configure_spec.rb +0 -33
  462. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  463. data/spec/functional/knife/exec_spec.rb +0 -55
  464. data/spec/functional/knife/rehash_spec.rb +0 -39
  465. data/spec/functional/knife/smoke_test.rb +0 -42
  466. data/spec/functional/knife/ssh_spec.rb +0 -352
  467. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  468. data/spec/functional/resource/windows_service_spec.rb +0 -105
  469. data/spec/functional/win32/service_manager_spec.rb +0 -220
  470. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  471. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  472. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  473. data/spec/integration/knife/chefignore_spec.rb +0 -301
  474. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  475. data/spec/integration/knife/client_create_spec.rb +0 -70
  476. data/spec/integration/knife/client_delete_spec.rb +0 -64
  477. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  478. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  479. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  480. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  481. data/spec/integration/knife/client_list_spec.rb +0 -49
  482. data/spec/integration/knife/client_show_spec.rb +0 -37
  483. data/spec/integration/knife/common_options_spec.rb +0 -174
  484. data/spec/integration/knife/config_list_spec.rb +0 -220
  485. data/spec/integration/knife/config_show_spec.rb +0 -192
  486. data/spec/integration/knife/config_use_spec.rb +0 -198
  487. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  488. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  489. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  490. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  491. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  492. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  493. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  494. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  495. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  496. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  497. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  498. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  499. data/spec/integration/knife/delete_spec.rb +0 -1018
  500. data/spec/integration/knife/deps_spec.rb +0 -703
  501. data/spec/integration/knife/diff_spec.rb +0 -605
  502. data/spec/integration/knife/download_spec.rb +0 -1336
  503. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  504. data/spec/integration/knife/environment_create_spec.rb +0 -41
  505. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  506. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  507. data/spec/integration/knife/environment_list_spec.rb +0 -42
  508. data/spec/integration/knife/environment_show_spec.rb +0 -77
  509. data/spec/integration/knife/list_spec.rb +0 -1060
  510. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  511. data/spec/integration/knife/node_create_spec.rb +0 -47
  512. data/spec/integration/knife/node_delete_spec.rb +0 -48
  513. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  514. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  515. data/spec/integration/knife/node_list_spec.rb +0 -45
  516. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  517. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  518. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  519. data/spec/integration/knife/node_show_spec.rb +0 -36
  520. data/spec/integration/knife/raw_spec.rb +0 -297
  521. data/spec/integration/knife/redirection_spec.rb +0 -64
  522. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  523. data/spec/integration/knife/role_create_spec.rb +0 -41
  524. data/spec/integration/knife/role_delete_spec.rb +0 -48
  525. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  526. data/spec/integration/knife/role_list_spec.rb +0 -45
  527. data/spec/integration/knife/role_show_spec.rb +0 -51
  528. data/spec/integration/knife/search_node_spec.rb +0 -40
  529. data/spec/integration/knife/serve_spec.rb +0 -92
  530. data/spec/integration/knife/show_spec.rb +0 -197
  531. data/spec/integration/knife/upload_spec.rb +0 -1617
  532. data/spec/support/shared/functional/knife.rb +0 -37
  533. data/spec/support/shared/functional/win32_service.rb +0 -57
  534. data/spec/support/shared/integration/knife_support.rb +0 -192
  535. data/spec/support/shared/unit/knife_shared.rb +0 -39
  536. data/spec/unit/application/knife_spec.rb +0 -241
  537. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  538. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  539. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  540. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  541. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  542. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  543. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  544. data/spec/unit/knife/client_create_spec.rb +0 -169
  545. data/spec/unit/knife/client_delete_spec.rb +0 -99
  546. data/spec/unit/knife/client_edit_spec.rb +0 -53
  547. data/spec/unit/knife/client_list_spec.rb +0 -34
  548. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  549. data/spec/unit/knife/client_show_spec.rb +0 -52
  550. data/spec/unit/knife/configure_client_spec.rb +0 -81
  551. data/spec/unit/knife/configure_spec.rb +0 -190
  552. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  553. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  554. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  555. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  556. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  557. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  558. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  559. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  560. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  561. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  562. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  563. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  564. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  565. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  566. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  567. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  568. data/spec/unit/knife/core/ui_spec.rb +0 -656
  569. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  570. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  571. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  572. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  573. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  574. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  575. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  576. data/spec/unit/knife/environment_create_spec.rb +0 -91
  577. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  578. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  579. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  580. data/spec/unit/knife/environment_list_spec.rb +0 -54
  581. data/spec/unit/knife/environment_show_spec.rb +0 -52
  582. data/spec/unit/knife/key_create_spec.rb +0 -223
  583. data/spec/unit/knife/key_delete_spec.rb +0 -133
  584. data/spec/unit/knife/key_edit_spec.rb +0 -264
  585. data/spec/unit/knife/key_helper.rb +0 -74
  586. data/spec/unit/knife/key_list_spec.rb +0 -216
  587. data/spec/unit/knife/key_show_spec.rb +0 -126
  588. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  589. data/spec/unit/knife/node_delete_spec.rb +0 -77
  590. data/spec/unit/knife/node_edit_spec.rb +0 -116
  591. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  592. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  593. data/spec/unit/knife/node_list_spec.rb +0 -62
  594. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  595. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  596. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  597. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  598. data/spec/unit/knife/node_show_spec.rb +0 -65
  599. data/spec/unit/knife/raw_spec.rb +0 -43
  600. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  601. data/spec/unit/knife/role_create_spec.rb +0 -80
  602. data/spec/unit/knife/role_delete_spec.rb +0 -67
  603. data/spec/unit/knife/role_edit_spec.rb +0 -77
  604. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  605. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  606. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  607. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  608. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  609. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  610. data/spec/unit/knife/role_list_spec.rb +0 -54
  611. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  612. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  613. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  614. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  615. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  616. data/spec/unit/knife/role_show_spec.rb +0 -59
  617. data/spec/unit/knife/ssh_spec.rb +0 -403
  618. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  619. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  620. data/spec/unit/knife/status_spec.rb +0 -112
  621. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  622. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  623. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  624. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  625. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  626. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  627. data/spec/unit/knife/tag_create_spec.rb +0 -23
  628. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  629. data/spec/unit/knife/tag_list_spec.rb +0 -23
  630. data/spec/unit/knife/user_create_spec.rb +0 -184
  631. data/spec/unit/knife/user_delete_spec.rb +0 -46
  632. data/spec/unit/knife/user_edit_spec.rb +0 -48
  633. data/spec/unit/knife/user_list_spec.rb +0 -36
  634. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  635. data/spec/unit/knife/user_show_spec.rb +0 -46
  636. data/spec/unit/knife_spec.rb +0 -634
  637. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  638. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,83 +0,0 @@
1
- #
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require_relative "../chef_fs/knife"
18
-
19
- class Chef
20
- class Knife
21
- class Diff < Chef::ChefFS::Knife
22
- banner "knife diff PATTERNS"
23
-
24
- category "path-based"
25
-
26
- deps do
27
- require_relative "../chef_fs/command_line"
28
- end
29
-
30
- option :recurse,
31
- long: "--[no-]recurse",
32
- boolean: true,
33
- default: true,
34
- description: "List directories recursively."
35
-
36
- option :name_only,
37
- long: "--name-only",
38
- boolean: true,
39
- description: "Only show names of modified files."
40
-
41
- option :name_status,
42
- long: "--name-status",
43
- boolean: true,
44
- description: "Only show names and statuses of modified files: Added, Deleted, Modified, and Type Changed."
45
-
46
- option :diff_filter,
47
- long: "--diff-filter=[(A|D|M|T)...[*]]",
48
- description: "Select only files that are Added (A), Deleted (D), Modified (M), or have their type (i.e. regular file, directory) changed (T). Any combination of the filter characters (including none) can be used. When * (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected."
49
-
50
- option :cookbook_version,
51
- long: "--cookbook-version VERSION",
52
- description: "Version of cookbook to download (if there are multiple versions and cookbook_versions is false)."
53
-
54
- def run
55
- if config[:name_only]
56
- output_mode = :name_only
57
- end
58
- if config[:name_status]
59
- output_mode = :name_status
60
- end
61
- patterns = pattern_args_from(name_args.length > 0 ? name_args : [ "" ])
62
-
63
- # Get the matches (recursively)
64
- error = false
65
- begin
66
- patterns.each do |pattern|
67
- found_error = Chef::ChefFS::CommandLine.diff_print(pattern, chef_fs, local_fs, config[:recurse] ? nil : 1, output_mode, proc { |entry| format_path(entry) }, config[:diff_filter], ui ) do |diff|
68
- stdout.print diff
69
- end
70
- error = true if found_error
71
- end
72
- rescue Chef::ChefFS::FileSystem::OperationFailedError => e
73
- ui.error "Failed on #{format_path(e.entry)} in #{e.operation}: #{e.message}"
74
- error = true
75
- end
76
-
77
- if error
78
- exit 1
79
- end
80
- end
81
- end
82
- end
83
- end
@@ -1,84 +0,0 @@
1
- #
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require_relative "../chef_fs/knife"
18
-
19
- class Chef
20
- class Knife
21
- class Download < Chef::ChefFS::Knife
22
- banner "knife download PATTERNS"
23
-
24
- category "path-based"
25
-
26
- deps do
27
- require_relative "../chef_fs/command_line"
28
- end
29
-
30
- option :recurse,
31
- long: "--[no-]recurse",
32
- boolean: true,
33
- default: true,
34
- description: "List directories recursively."
35
-
36
- option :purge,
37
- long: "--[no-]purge",
38
- boolean: true,
39
- default: false,
40
- description: "Delete matching local files and directories that do not exist remotely."
41
-
42
- option :force,
43
- long: "--[no-]force",
44
- boolean: true,
45
- default: false,
46
- description: "Force download of files even if they match (quicker and harmless, but doesn't print out what it changed)."
47
-
48
- option :dry_run,
49
- long: "--dry-run",
50
- short: "-n",
51
- boolean: true,
52
- default: false,
53
- description: "Don't take action, only print what would happen."
54
-
55
- option :diff,
56
- long: "--[no-]diff",
57
- boolean: true,
58
- default: true,
59
- description: "Turn off to avoid downloading existing files; only new (and possibly deleted) files with --no-diff."
60
-
61
- option :cookbook_version,
62
- long: "--cookbook-version VERSION",
63
- description: "Version of cookbook to download (if there are multiple versions and cookbook_versions is false)."
64
-
65
- def run
66
- if name_args.length == 0
67
- show_usage
68
- ui.fatal("You must specify at least one argument. If you want to download everything in this directory, run \"knife download .\"")
69
- exit 1
70
- end
71
-
72
- error = false
73
- pattern_args.each do |pattern|
74
- if Chef::ChefFS::FileSystem.copy_to(pattern, chef_fs, local_fs, config[:recurse] ? nil : 1, config, ui, proc { |entry| format_path(entry) })
75
- error = true
76
- end
77
- end
78
- if error
79
- exit 1
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,88 +0,0 @@
1
- #
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require_relative "../chef_fs/knife"
18
-
19
- class Chef
20
- class Knife
21
- class Edit < Chef::ChefFS::Knife
22
- banner "knife edit [PATTERN1 ... PATTERNn]"
23
-
24
- category "path-based"
25
-
26
- deps do
27
- require_relative "../chef_fs/file_system"
28
- require_relative "../chef_fs/file_system/exceptions"
29
- end
30
-
31
- option :local,
32
- long: "--local",
33
- boolean: true,
34
- description: "Show local files instead of remote."
35
-
36
- def run
37
- # Get the matches (recursively)
38
- error = false
39
- pattern_args.each do |pattern|
40
- Chef::ChefFS::FileSystem.list(config[:local] ? local_fs : chef_fs, pattern).each do |result|
41
- if result.dir?
42
- ui.error "#{format_path(result)}: is a directory" if pattern.exact_path
43
- error = true
44
- else
45
- begin
46
- new_value = edit_text(result.read, File.extname(result.name))
47
- if new_value
48
- result.write(new_value)
49
- output "Updated #{format_path(result)}"
50
- else
51
- output "#{format_path(result)} unchanged"
52
- end
53
- rescue Chef::ChefFS::FileSystem::OperationNotAllowedError => e
54
- ui.error "#{format_path(e.entry)}: #{e.reason}."
55
- error = true
56
- rescue Chef::ChefFS::FileSystem::NotFoundError => e
57
- ui.error "#{format_path(e.entry)}: No such file or directory"
58
- error = true
59
- end
60
- end
61
- end
62
- end
63
- if error
64
- exit 1
65
- end
66
- end
67
-
68
- def edit_text(text, extension)
69
- unless config[:disable_editing]
70
- Tempfile.open([ "knife-edit-", extension ]) do |file|
71
- # Write the text to a temporary file
72
- file.write(text)
73
- file.close
74
-
75
- # Let the user edit the temporary file
76
- unless system("#{config[:editor]} #{file.path}")
77
- raise "Please set EDITOR environment variable. See https://docs.chef.io/knife_setup/ for details."
78
- end
79
-
80
- result_text = IO.read(file.path)
81
-
82
- return result_text if result_text != text
83
- end
84
- end
85
- end
86
- end
87
- end
88
- end
@@ -1,128 +0,0 @@
1
- #
2
- # Author:: Sander Botman (<sbotman@schubergphilis.com>)
3
- # Copyright:: Copyright 2013-2016, Sander Botman.
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
-
21
- class Chef
22
- class Knife
23
- class EnvironmentCompare < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- end
28
-
29
- banner "knife environment compare [ENVIRONMENT..] (options)"
30
-
31
- option :all,
32
- short: "-a",
33
- long: "--all",
34
- description: "Show all cookbooks.",
35
- boolean: true
36
-
37
- option :mismatch,
38
- short: "-m",
39
- long: "--mismatch",
40
- description: "Only show mismatching versions.",
41
- boolean: true
42
-
43
- def run
44
- # Get the commandline environments or all if none are provided.
45
- environments = environment_list
46
-
47
- # Get a list of all cookbooks that have constraints and their environment.
48
- constraints = constraint_list(environments)
49
-
50
- # Get the total list of cookbooks that have constraints
51
- cookbooks = cookbook_list(constraints)
52
-
53
- # If we cannot find any cookbooks, we can stop here.
54
- if cookbooks.nil? || cookbooks.empty?
55
- ui.error "Cannot find any environment cookbook constraints"
56
- exit 1
57
- end
58
-
59
- # Get all cookbooks so we can compare them all
60
- cookbooks = rest.get("/cookbooks?num_versions=1") if config[:all]
61
-
62
- # display matrix view of in the requested format.
63
- if config[:format] == "summary"
64
- matrix = matrix_output(cookbooks, constraints)
65
- ui.output(matrix)
66
- else
67
- ui.output(constraints)
68
- end
69
- end
70
-
71
- private
72
-
73
- def environment_list
74
- environments = []
75
- unless @name_args.nil? || @name_args.empty?
76
- @name_args.each { |name| environments << name }
77
- else
78
- environments = Chef::Environment.list
79
- end
80
- end
81
-
82
- def constraint_list(environments)
83
- constraints = {}
84
- environments.each do |env, url| # rubocop:disable Style/HashEachMethods
85
- # Because you cannot modify the default environment I filter it out here.
86
- unless env == "_default"
87
- envdata = Chef::Environment.load(env)
88
- ver = envdata.cookbook_versions
89
- constraints[env] = ver
90
- end
91
- end
92
- constraints
93
- end
94
-
95
- def cookbook_list(constraints)
96
- result = {}
97
- constraints.each_value { |cb| result.merge!(cb) }
98
- result
99
- end
100
-
101
- def matrix_output(cookbooks, constraints)
102
- rows = [ "" ]
103
- environments = []
104
- constraints.each_key { |e| environments << e.to_s }
105
- columns = environments.count + 1
106
- environments.each { |env| rows << ui.color(env, :bold) }
107
- cookbooks.each_key do |c|
108
- total = []
109
- environments.each { |n| total << constraints[n][c] }
110
- if total.uniq.count == 1
111
- next if config[:mismatch]
112
-
113
- color = :white
114
- else
115
- color = :yellow
116
- end
117
- rows << ui.color(c, :bold)
118
- environments.each do |e|
119
- tag = constraints[e][c] || "latest"
120
- rows << ui.color(tag, color)
121
- end
122
- end
123
- ui.list(rows, :uneven_columns_across, columns)
124
- end
125
-
126
- end
127
- end
128
- end
@@ -1,52 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentCreate < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- end
28
-
29
- banner "knife environment create ENVIRONMENT (options)"
30
-
31
- option :description,
32
- short: "-d DESCRIPTION",
33
- long: "--description DESCRIPTION",
34
- description: "The environment description."
35
-
36
- def run
37
- env_name = @name_args[0]
38
-
39
- if env_name.nil?
40
- show_usage
41
- ui.fatal("You must specify an environment name")
42
- exit 1
43
- end
44
-
45
- env = Chef::Environment.new
46
- env.name(env_name)
47
- env.description(config[:description]) if config[:description]
48
- create_object(env, object_class: Chef::Environment)
49
- end
50
- end
51
- end
52
- end
@@ -1,44 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentDelete < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- end
28
-
29
- banner "knife environment delete ENVIRONMENT (options)"
30
-
31
- def run
32
- env_name = @name_args[0]
33
-
34
- if env_name.nil?
35
- show_usage
36
- ui.fatal("You must specify an environment name")
37
- exit 1
38
- end
39
-
40
- delete_object(Chef::Environment, env_name)
41
- end
42
- end
43
- end
44
- end
@@ -1,44 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentEdit < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- end
28
-
29
- banner "knife environment edit ENVIRONMENT (options)"
30
-
31
- def run
32
- env_name = @name_args[0]
33
-
34
- if env_name.nil?
35
- show_usage
36
- ui.fatal("You must specify an environment name")
37
- exit 1
38
- end
39
-
40
- edit_object(Chef::Environment, env_name)
41
- end
42
- end
43
- end
44
- end
@@ -1,84 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentFromFile < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- require_relative "core/object_loader"
28
- end
29
-
30
- banner "knife environment from file FILE [FILE..] (options)"
31
-
32
- option :all,
33
- short: "-a",
34
- long: "--all",
35
- description: "Upload all environments."
36
-
37
- def loader
38
- @loader ||= Knife::Core::ObjectLoader.new(Chef::Environment, ui)
39
- end
40
-
41
- def environments_path
42
- @environments_path ||= "environments"
43
- end
44
-
45
- def find_all_environments
46
- loader.find_all_objects("./#{environments_path}/")
47
- end
48
-
49
- def load_all_environments
50
- environments = find_all_environments
51
- if environments.empty?
52
- ui.fatal("Unable to find any environment files in '#{environments_path}'")
53
- exit(1)
54
- end
55
- environments.each do |env|
56
- load_environment(env)
57
- end
58
- end
59
-
60
- def load_environment(env)
61
- updated = loader.load_from("environments", env)
62
- updated.save
63
- output(format_for_display(updated)) if config[:print_after]
64
- ui.info("Updated Environment #{updated.name}")
65
- end
66
-
67
- def run
68
- if config[:all] == true
69
- load_all_environments
70
- else
71
- if @name_args[0].nil?
72
- show_usage
73
- ui.fatal("You must specify a file to load")
74
- exit 1
75
- end
76
-
77
- @name_args.each do |arg|
78
- load_environment(arg)
79
- end
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,41 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentList < Knife
24
-
25
- deps do
26
- require_relative "../environment"
27
- end
28
-
29
- banner "knife environment list (options)"
30
-
31
- option :with_uri,
32
- short: "-w",
33
- long: "--with-uri",
34
- description: "Show corresponding URIs."
35
-
36
- def run
37
- output(format_list_for_display(Chef::Environment.list))
38
- end
39
- end
40
- end
41
- end
@@ -1,47 +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_relative "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class EnvironmentShow < Knife
24
-
25
- include Knife::Core::MultiAttributeReturnOption
26
-
27
- deps do
28
- require_relative "../environment"
29
- end
30
-
31
- banner "knife environment show ENVIRONMENT (options)"
32
-
33
- def run
34
- env_name = @name_args[0]
35
-
36
- if env_name.nil?
37
- show_usage
38
- ui.fatal("You must specify an environment name")
39
- exit 1
40
- end
41
-
42
- env = Chef::Environment.load(env_name)
43
- output(format_for_display(env))
44
- end
45
- end
46
- end
47
- end