chef 16.4.38 → 16.7.61

Sign up to get free protection for your applications and to get access to all the features.
Files changed (457) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -12
  3. data/Rakefile +22 -15
  4. data/bin/knife +1 -1
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +2 -1
  7. data/lib/chef/application.rb +19 -17
  8. data/lib/chef/application/apply.rb +12 -7
  9. data/lib/chef/application/base.rb +26 -23
  10. data/lib/chef/application/client.rb +16 -5
  11. data/lib/chef/application/exit_code.rb +13 -4
  12. data/lib/chef/application/knife.rb +22 -11
  13. data/lib/chef/application/solo.rb +2 -1
  14. data/lib/chef/application/windows_service.rb +14 -14
  15. data/lib/chef/application/windows_service_manager.rb +6 -6
  16. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  17. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  18. data/lib/chef/chef_fs/file_pattern.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  20. data/lib/chef/chef_fs/knife.rb +2 -2
  21. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  22. data/lib/chef/client.rb +13 -43
  23. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  24. data/lib/chef/cookbook/gem_installer.rb +1 -1
  25. data/lib/chef/cookbook/synchronizer.rb +2 -2
  26. data/lib/chef/cookbook_manifest.rb +1 -1
  27. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  28. data/lib/chef/cookbook_uploader.rb +1 -1
  29. data/lib/chef/cookbook_version.rb +2 -5
  30. data/lib/chef/data_collector.rb +7 -6
  31. data/lib/chef/data_collector/config_validation.rb +22 -13
  32. data/lib/chef/data_collector/run_end_message.rb +2 -2
  33. data/lib/chef/data_collector/run_start_message.rb +1 -1
  34. data/lib/chef/deprecated.rb +1 -1
  35. data/lib/chef/deprecation/warnings.rb +2 -2
  36. data/lib/chef/digester.rb +2 -2
  37. data/lib/chef/dsl/chef_vault.rb +1 -1
  38. data/lib/chef/dsl/data_query.rb +2 -2
  39. data/lib/chef/dsl/platform_introspection.rb +1 -1
  40. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  41. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  42. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  43. data/lib/chef/environment.rb +3 -3
  44. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  45. data/lib/chef/exceptions.rb +5 -5
  46. data/lib/chef/file_access_control/windows.rb +6 -5
  47. data/lib/chef/file_content_management/tempfile.rb +1 -1
  48. data/lib/chef/formatters/doc.rb +7 -6
  49. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  50. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
  51. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  52. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  53. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +6 -6
  54. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  55. data/lib/chef/formatters/indentable_output_stream.rb +2 -2
  56. data/lib/chef/formatters/minimal.rb +5 -4
  57. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +28 -39
  58. data/lib/chef/http.rb +6 -14
  59. data/lib/chef/http/auth_credentials.rb +5 -1
  60. data/lib/chef/http/authenticator.rb +1 -1
  61. data/lib/chef/http/basic_client.rb +4 -2
  62. data/lib/chef/http/decompressor.rb +1 -1
  63. data/lib/chef/http/http_request.rb +7 -5
  64. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  65. data/lib/chef/http/ssl_policies.rb +1 -1
  66. data/lib/chef/json_compat.rb +3 -8
  67. data/lib/chef/key.rb +1 -1
  68. data/lib/chef/knife.rb +4 -4
  69. data/lib/chef/knife/bootstrap.rb +18 -15
  70. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  71. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  72. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +9 -9
  73. data/lib/chef/knife/client_create.rb +3 -3
  74. data/lib/chef/knife/config_get.rb +8 -97
  75. data/lib/chef/knife/config_get_profile.rb +9 -9
  76. data/lib/chef/knife/config_list.rb +139 -0
  77. data/lib/chef/knife/config_list_profiles.rb +8 -98
  78. data/lib/chef/knife/config_show.rb +127 -0
  79. data/lib/chef/knife/config_use.rb +61 -0
  80. data/lib/chef/knife/config_use_profile.rb +9 -24
  81. data/lib/chef/knife/configure.rb +4 -2
  82. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  83. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  84. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  85. data/lib/chef/knife/core/object_loader.rb +1 -1
  86. data/lib/chef/knife/core/ui.rb +1 -1
  87. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -15
  88. data/lib/chef/knife/exec.rb +2 -2
  89. data/lib/chef/knife/node_policy_set.rb +2 -2
  90. data/lib/chef/knife/node_run_list_add.rb +1 -1
  91. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  92. data/lib/chef/knife/node_run_list_set.rb +1 -1
  93. data/lib/chef/knife/node_show.rb +2 -2
  94. data/lib/chef/knife/role_env_run_list_add.rb +1 -1
  95. data/lib/chef/knife/role_env_run_list_set.rb +1 -1
  96. data/lib/chef/knife/role_run_list_add.rb +1 -1
  97. data/lib/chef/knife/role_run_list_set.rb +1 -1
  98. data/lib/chef/knife/search.rb +0 -1
  99. data/lib/chef/knife/serve.rb +3 -3
  100. data/lib/chef/knife/ssh.rb +18 -3
  101. data/lib/chef/knife/ssl_check.rb +3 -3
  102. data/lib/chef/knife/status.rb +2 -2
  103. data/lib/chef/knife/tag_create.rb +1 -1
  104. data/lib/chef/knife/tag_delete.rb +1 -1
  105. data/lib/chef/knife/user_create.rb +2 -2
  106. data/lib/chef/knife/yaml_convert.rb +1 -1
  107. data/lib/chef/local_mode.rb +2 -2
  108. data/lib/chef/log/syslog.rb +2 -2
  109. data/lib/chef/log/winevt.rb +2 -2
  110. data/lib/chef/mixin/convert_to_class_name.rb +0 -56
  111. data/lib/chef/mixin/deep_merge.rb +0 -12
  112. data/lib/chef/mixin/openssl_helper.rb +2 -5
  113. data/lib/chef/mixin/powershell_exec.rb +22 -10
  114. data/lib/chef/mixin/powershell_out.rb +12 -5
  115. data/lib/chef/mixin/properties.rb +2 -0
  116. data/lib/chef/mixin/template.rb +3 -3
  117. data/lib/chef/mixin/unformatter.rb +1 -1
  118. data/lib/chef/mixin/uris.rb +4 -2
  119. data/lib/chef/mixin/versioned_api.rb +1 -2
  120. data/lib/chef/node/attribute_collections.rb +2 -6
  121. data/lib/chef/node/mixin/immutablize_hash.rb +2 -0
  122. data/lib/chef/node_map.rb +4 -4
  123. data/lib/chef/policy_builder/dynamic.rb +2 -0
  124. data/lib/chef/policy_builder/policyfile.rb +2 -2
  125. data/lib/chef/powershell.rb +8 -4
  126. data/lib/chef/property.rb +1 -1
  127. data/lib/chef/provider.rb +1 -5
  128. data/lib/chef/provider/cron.rb +2 -13
  129. data/lib/chef/provider/file.rb +2 -2
  130. data/lib/chef/provider/group.rb +14 -6
  131. data/lib/chef/provider/group/windows.rb +12 -1
  132. data/lib/chef/provider/ifconfig.rb +9 -9
  133. data/lib/chef/provider/ifconfig/debian.rb +38 -22
  134. data/lib/chef/provider/ifconfig/redhat.rb +54 -18
  135. data/lib/chef/provider/launchd.rb +3 -13
  136. data/lib/chef/provider/link.rb +0 -9
  137. data/lib/chef/provider/mount.rb +18 -1
  138. data/lib/chef/provider/mount/linux.rb +67 -0
  139. data/lib/chef/provider/mount/mount.rb +41 -43
  140. data/lib/chef/provider/package.rb +3 -0
  141. data/lib/chef/provider/package/apt.rb +1 -1
  142. data/lib/chef/provider/package/chocolatey.rb +6 -6
  143. data/lib/chef/provider/package/dpkg.rb +3 -12
  144. data/lib/chef/provider/package/freebsd/base.rb +3 -2
  145. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  146. data/lib/chef/provider/package/homebrew.rb +1 -1
  147. data/lib/chef/provider/package/ips.rb +1 -1
  148. data/lib/chef/provider/package/powershell.rb +2 -3
  149. data/lib/chef/provider/package/rubygems.rb +22 -19
  150. data/lib/chef/provider/package/snap.rb +1 -4
  151. data/lib/chef/provider/package/solaris.rb +0 -2
  152. data/lib/chef/provider/package/windows.rb +2 -2
  153. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
  154. data/lib/chef/provider/package/yum/rpm_utils.rb +1 -1
  155. data/lib/chef/provider/package/zypper.rb +99 -72
  156. data/lib/chef/provider/powershell_script.rb +12 -1
  157. data/lib/chef/provider/registry_key.rb +4 -3
  158. data/lib/chef/provider/remote_file/content.rb +3 -0
  159. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  160. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  161. data/lib/chef/provider/route.rb +4 -8
  162. data/lib/chef/provider/service/debian.rb +2 -1
  163. data/lib/chef/provider/service/macosx.rb +2 -2
  164. data/lib/chef/provider/service/redhat.rb +1 -1
  165. data/lib/chef/provider/template_finder.rb +2 -10
  166. data/lib/chef/provider/user.rb +17 -9
  167. data/lib/chef/provider/user/aix.rb +1 -1
  168. data/lib/chef/provider/user/dscl.rb +5 -5
  169. data/lib/chef/provider/user/mac.rb +15 -7
  170. data/lib/chef/provider/user/solaris.rb +1 -1
  171. data/lib/chef/provider/user/windows.rb +10 -3
  172. data/lib/chef/provider/zypper_repository.rb +2 -2
  173. data/lib/chef/provider_resolver.rb +1 -1
  174. data/lib/chef/providers.rb +1 -3
  175. data/lib/chef/pwsh.rb +71 -0
  176. data/lib/chef/recipe.rb +2 -2
  177. data/lib/chef/resource.rb +2 -2
  178. data/lib/chef/resource/apt_repository.rb +6 -5
  179. data/lib/chef/resource/bash.rb +119 -1
  180. data/lib/chef/resource/batch.rb +1 -1
  181. data/lib/chef/resource/bff_package.rb +22 -0
  182. data/lib/chef/resource/breakpoint.rb +59 -2
  183. data/lib/chef/resource/build_essential.rb +5 -8
  184. data/lib/chef/resource/cab_package.rb +29 -0
  185. data/lib/chef/resource/chef_client_config.rb +313 -0
  186. data/lib/chef/resource/chef_client_cron.rb +35 -28
  187. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  188. data/lib/chef/resource/chef_client_scheduled_task.rb +24 -21
  189. data/lib/chef/resource/chef_client_systemd_timer.rb +27 -20
  190. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  191. data/lib/chef/resource/chef_gem.rb +10 -10
  192. data/lib/chef/resource/chef_handler.rb +149 -4
  193. data/lib/chef/resource/chef_sleep.rb +3 -3
  194. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  195. data/lib/chef/resource/cookbook_file.rb +2 -2
  196. data/lib/chef/resource/cron/_cron_shared.rb +1 -0
  197. data/lib/chef/resource/cron/cron_d.rb +2 -3
  198. data/lib/chef/resource/csh.rb +2 -2
  199. data/lib/chef/resource/dnf_package.rb +2 -2
  200. data/lib/chef/resource/dsc_resource.rb +0 -1
  201. data/lib/chef/resource/dsc_script.rb +2 -2
  202. data/lib/chef/resource/execute.rb +10 -8
  203. data/lib/chef/resource/file.rb +4 -4
  204. data/lib/chef/resource/gem_package.rb +5 -5
  205. data/lib/chef/resource/homebrew_package.rb +3 -3
  206. data/lib/chef/resource/homebrew_update.rb +9 -6
  207. data/lib/chef/resource/hostname.rb +4 -4
  208. data/lib/chef/resource/ifconfig.rb +52 -5
  209. data/lib/chef/resource/kernel_module.rb +1 -1
  210. data/lib/chef/resource/ksh.rb +3 -3
  211. data/lib/chef/resource/launchd.rb +17 -16
  212. data/lib/chef/resource/locale.rb +2 -2
  213. data/lib/chef/resource/lwrp_base.rb +3 -5
  214. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  215. data/lib/chef/resource/mount.rb +8 -2
  216. data/lib/chef/resource/notify_group.rb +0 -1
  217. data/lib/chef/resource/ohai.rb +46 -3
  218. data/lib/chef/resource/ohai_hint.rb +33 -0
  219. data/lib/chef/resource/openssl_dhparam.rb +27 -5
  220. data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
  221. data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
  222. data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
  223. data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
  224. data/lib/chef/resource/openssl_x509_crl.rb +19 -10
  225. data/lib/chef/resource/openssl_x509_request.rb +14 -16
  226. data/lib/chef/resource/osx_profile.rb +77 -13
  227. data/lib/chef/resource/perl.rb +2 -2
  228. data/lib/chef/resource/plist.rb +3 -7
  229. data/lib/chef/resource/powershell_package_source.rb +24 -23
  230. data/lib/chef/resource/powershell_script.rb +14 -11
  231. data/lib/chef/resource/python.rb +2 -2
  232. data/lib/chef/resource/reboot.rb +2 -2
  233. data/lib/chef/resource/registry_key.rb +93 -2
  234. data/lib/chef/resource/remote_file.rb +3 -3
  235. data/lib/chef/resource/rhsm_register.rb +22 -10
  236. data/lib/chef/resource/route.rb +1 -1
  237. data/lib/chef/resource/ruby.rb +2 -2
  238. data/lib/chef/resource/ruby_block.rb +2 -2
  239. data/lib/chef/resource/scm/_scm.rb +2 -1
  240. data/lib/chef/resource/scm/git.rb +82 -1
  241. data/lib/chef/resource/scm/subversion.rb +14 -2
  242. data/lib/chef/resource/script.rb +2 -2
  243. data/lib/chef/resource/service.rb +3 -3
  244. data/lib/chef/resource/solaris_package.rb +0 -2
  245. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  246. data/lib/chef/resource/sudo.rb +1 -1
  247. data/lib/chef/resource/support/client.erb +64 -0
  248. data/lib/chef/resource/support/cron.d.erb +1 -1
  249. data/lib/chef/resource/support/cron_access.erb +1 -1
  250. data/lib/chef/resource/support/sudoer.erb +1 -1
  251. data/lib/chef/resource/support/ulimit.erb +1 -1
  252. data/lib/chef/resource/sysctl.rb +1 -5
  253. data/lib/chef/resource/systemd_unit.rb +44 -3
  254. data/lib/chef/resource/template.rb +2 -2
  255. data/lib/chef/resource/timezone.rb +112 -73
  256. data/lib/chef/resource/windows_ad_join.rb +19 -12
  257. data/lib/chef/resource/windows_audit_policy.rb +26 -24
  258. data/lib/chef/resource/windows_certificate.rb +12 -10
  259. data/lib/chef/resource/windows_dfs_server.rb +7 -4
  260. data/lib/chef/resource/windows_env.rb +173 -0
  261. data/lib/chef/resource/windows_feature.rb +2 -0
  262. data/lib/chef/resource/windows_firewall_profile.rb +28 -31
  263. data/lib/chef/resource/windows_firewall_rule.rb +9 -11
  264. data/lib/chef/resource/windows_font.rb +1 -1
  265. data/lib/chef/resource/windows_package.rb +29 -5
  266. data/lib/chef/resource/windows_path.rb +38 -0
  267. data/lib/chef/resource/windows_printer.rb +5 -3
  268. data/lib/chef/resource/windows_printer_port.rb +6 -4
  269. data/lib/chef/resource/windows_security_policy.rb +5 -5
  270. data/lib/chef/resource/windows_service.rb +108 -0
  271. data/lib/chef/resource/windows_share.rb +18 -18
  272. data/lib/chef/resource/windows_task.rb +629 -28
  273. data/lib/chef/resource/windows_user_privilege.rb +53 -54
  274. data/lib/chef/resource/windows_workgroup.rb +9 -7
  275. data/lib/chef/resource/yum_package.rb +2 -2
  276. data/lib/chef/resource/yum_repository.rb +1 -1
  277. data/lib/chef/resource_collection/resource_set.rb +1 -5
  278. data/lib/chef/resource_inspector.rb +77 -75
  279. data/lib/chef/resource_reporter.rb +0 -2
  280. data/lib/chef/resources.rb +4 -1
  281. data/lib/chef/run_context.rb +2 -2
  282. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  283. data/lib/chef/run_lock.rb +3 -3
  284. data/lib/chef/search/query.rb +6 -5
  285. data/lib/chef/server_api.rb +0 -4
  286. data/lib/chef/shell.rb +31 -26
  287. data/lib/chef/shell/ext.rb +12 -12
  288. data/lib/chef/shell/shell_session.rb +2 -2
  289. data/lib/chef/train_transport.rb +5 -104
  290. data/lib/chef/util/backup.rb +1 -1
  291. data/lib/chef/util/diff.rb +3 -3
  292. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -3
  293. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  294. data/lib/chef/util/powershell/cmdlet.rb +6 -10
  295. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  296. data/lib/chef/util/threaded_job_queue.rb +0 -2
  297. data/lib/chef/version.rb +1 -1
  298. data/lib/chef/win32/crypto.rb +1 -1
  299. data/lib/chef/win32/file.rb +1 -1
  300. data/lib/chef/win32/registry.rb +1 -2
  301. data/lib/chef/win32/security/sid.rb +1 -1
  302. data/lib/chef/win32/unicode.rb +1 -1
  303. data/spec/data/shef-config.rb +1 -1
  304. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  305. data/spec/functional/mixin/powershell_out_spec.rb +11 -3
  306. data/spec/functional/resource/aix_service_spec.rb +2 -2
  307. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  308. data/spec/functional/resource/apt_package_spec.rb +4 -6
  309. data/spec/functional/resource/chocolatey_package_spec.rb +3 -3
  310. data/spec/functional/resource/cron_spec.rb +3 -3
  311. data/spec/functional/resource/dsc_script_spec.rb +3 -3
  312. data/spec/functional/resource/insserv_spec.rb +1 -1
  313. data/spec/functional/resource/mount_spec.rb +10 -2
  314. data/spec/functional/resource/powershell_package_source_spec.rb +107 -0
  315. data/spec/functional/resource/powershell_script_spec.rb +57 -14
  316. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  317. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  318. data/spec/functional/resource/windows_certificate_spec.rb +10 -6
  319. data/spec/functional/resource/windows_firewall_rule_spec.rb +93 -0
  320. data/spec/functional/resource/windows_package_spec.rb +36 -10
  321. data/spec/functional/resource/windows_share_spec.rb +103 -0
  322. data/spec/functional/resource/windows_task_spec.rb +15 -16
  323. data/spec/functional/resource/zypper_package_spec.rb +11 -0
  324. data/spec/functional/version_spec.rb +3 -3
  325. data/spec/integration/client/client_spec.rb +4 -4
  326. data/spec/integration/client/exit_code_spec.rb +3 -2
  327. data/spec/integration/client/ipv6_spec.rb +1 -1
  328. data/spec/integration/knife/client_key_create_spec.rb +1 -1
  329. data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
  330. data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
  331. data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
  332. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  333. data/spec/integration/knife/node_create_spec.rb +1 -1
  334. data/spec/integration/knife/node_environment_set_spec.rb +1 -1
  335. data/spec/integration/knife/node_run_list_add_spec.rb +4 -4
  336. data/spec/integration/knife/node_run_list_remove_spec.rb +1 -1
  337. data/spec/integration/knife/node_run_list_set_spec.rb +1 -1
  338. data/spec/integration/knife/node_show_spec.rb +1 -1
  339. data/spec/integration/ohai/ohai_spec.rb +61 -0
  340. data/spec/integration/recipes/notifies_spec.rb +1 -1
  341. data/spec/integration/recipes/provider_choice.rb +2 -2
  342. data/spec/integration/recipes/remote_directory.rb +1 -1
  343. data/spec/integration/solo/solo_spec.rb +5 -5
  344. data/spec/spec_helper.rb +8 -6
  345. data/spec/stress/win32/file_spec.rb +1 -1
  346. data/spec/support/chef_helpers.rb +2 -2
  347. data/spec/support/lib/chef/resource/cat.rb +1 -1
  348. data/spec/support/lib/chef/resource/one_two_three_four.rb +1 -1
  349. data/spec/support/matchers/leak.rb +2 -2
  350. data/spec/support/mock/platform.rb +24 -16
  351. data/spec/support/platform_helpers.rb +27 -38
  352. data/spec/support/shared/functional/securable_resource.rb +108 -27
  353. data/spec/support/shared/functional/win32_service.rb +1 -1
  354. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  355. data/spec/support/shared/unit/knife_shared.rb +1 -1
  356. data/spec/support/shared/unit/script_resource.rb +4 -4
  357. data/spec/support/shared/unit/windows_script_resource.rb +1 -1
  358. data/spec/tiny_server.rb +0 -1
  359. data/spec/unit/application/client_spec.rb +2 -2
  360. data/spec/unit/application/exit_code_spec.rb +10 -0
  361. data/spec/unit/application_spec.rb +4 -6
  362. data/spec/unit/chef_fs/config_spec.rb +1 -1
  363. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  364. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  365. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  366. data/spec/unit/client_spec.rb +16 -0
  367. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  368. data/spec/unit/cookbook_spec.rb +2 -2
  369. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  370. data/spec/unit/data_collector_spec.rb +0 -117
  371. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  372. data/spec/unit/file_access_control_spec.rb +1 -1
  373. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +11 -11
  374. data/spec/unit/knife/bootstrap_spec.rb +6 -6
  375. data/spec/unit/knife/client_create_spec.rb +2 -2
  376. data/spec/unit/knife/configure_client_spec.rb +5 -5
  377. data/spec/unit/knife/configure_spec.rb +3 -3
  378. data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
  379. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  380. data/spec/unit/knife/cookbook_list_spec.rb +2 -2
  381. data/spec/unit/knife/cookbook_metadata_spec.rb +3 -3
  382. data/spec/unit/knife/core/ui_spec.rb +1 -0
  383. data/spec/unit/knife/environment_compare_spec.rb +3 -3
  384. data/spec/unit/knife/ssh_spec.rb +2 -2
  385. data/spec/unit/knife/supermarket_download_spec.rb +8 -8
  386. data/spec/unit/knife/supermarket_list_spec.rb +3 -3
  387. data/spec/unit/knife/supermarket_search_spec.rb +1 -1
  388. data/spec/unit/knife/tag_create_spec.rb +1 -1
  389. data/spec/unit/knife/tag_delete_spec.rb +1 -1
  390. data/spec/unit/knife/user_create_spec.rb +1 -1
  391. data/spec/unit/lwrp_spec.rb +3 -3
  392. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  393. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  394. data/spec/unit/mixin/powershell_exec_spec.rb +39 -2
  395. data/spec/unit/mixin/powershell_out_spec.rb +14 -0
  396. data/spec/unit/mixin/securable_spec.rb +2 -2
  397. data/spec/unit/mixin/which.rb +1 -1
  398. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  399. data/spec/unit/provider/group/windows_spec.rb +6 -0
  400. data/spec/unit/provider/group_spec.rb +1 -1
  401. data/spec/unit/provider/mount/linux_spec.rb +107 -0
  402. data/spec/unit/provider/mount/mount_spec.rb +21 -10
  403. data/spec/unit/provider/mount/solaris_spec.rb +1 -1
  404. data/spec/unit/provider/mount_spec.rb +31 -0
  405. data/spec/unit/provider/package/chocolatey_spec.rb +2 -3
  406. data/spec/unit/provider/package/powershell_spec.rb +88 -96
  407. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  408. data/spec/unit/provider/package/zypper_spec.rb +0 -25
  409. data/spec/unit/provider/package_spec.rb +2 -2
  410. data/spec/unit/provider/powershell_script_spec.rb +11 -0
  411. data/spec/unit/provider/route_spec.rb +0 -2
  412. data/spec/unit/provider/subversion_spec.rb +0 -3
  413. data/spec/unit/provider/user_spec.rb +7 -1
  414. data/spec/unit/provider/windows_env_spec.rb +18 -34
  415. data/spec/unit/provider/windows_path_spec.rb +6 -11
  416. data/spec/unit/provider/windows_task_spec.rb +7 -6
  417. data/spec/unit/recipe_spec.rb +1 -1
  418. data/spec/unit/resource/breakpoint_spec.rb +1 -1
  419. data/spec/unit/resource/build_essential_spec.rb +0 -12
  420. data/spec/unit/resource/chef_client_config_spec.rb +137 -0
  421. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  422. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  423. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  424. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  425. data/spec/unit/resource/ifconfig_spec.rb +2 -10
  426. data/spec/unit/resource/launchd_spec.rb +8 -0
  427. data/spec/unit/resource/mount_spec.rb +18 -5
  428. data/spec/unit/resource/osx_profile_spec.rb +67 -1
  429. data/spec/unit/resource/powershell_package_source_spec.rb +20 -20
  430. data/spec/unit/resource/powershell_script_spec.rb +4 -74
  431. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  432. data/spec/unit/resource/service_spec.rb +2 -2
  433. data/spec/unit/resource/solaris_package_spec.rb +8 -10
  434. data/spec/unit/resource/timezone_spec.rb +63 -0
  435. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  436. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  437. data/spec/unit/resource_inspector_spec.rb +3 -3
  438. data/spec/unit/run_lock_spec.rb +5 -1
  439. data/spec/unit/runner_spec.rb +1 -2
  440. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  441. data/spec/unit/shell/shell_session_spec.rb +35 -64
  442. data/spec/unit/shell_spec.rb +18 -21
  443. data/spec/unit/train_transport_spec.rb +14 -13
  444. data/spec/unit/util/selinux_spec.rb +2 -0
  445. data/tasks/rspec.rb +1 -3
  446. metadata +49 -27
  447. data/lib/chef/dist.rb +0 -68
  448. data/lib/chef/monkey_patches/net_http.rb +0 -22
  449. data/lib/chef/provider/windows_env.rb +0 -210
  450. data/lib/chef/provider/windows_path.rb +0 -61
  451. data/lib/chef/provider/windows_task.rb +0 -632
  452. data/spec/integration/knife/config_get_profile_spec.rb +0 -114
  453. data/spec/support/mock/constant.rb +0 -52
  454. data/spec/unit/monkey_patches/uri_spec.rb +0 -34
  455. data/spec/unit/provider_resolver_spec.rb +0 -885
  456. data/spec/unit/resource/data/InstallHistory_with_CLT.plist +0 -92
  457. data/spec/unit/resource/data/InstallHistory_without_CLT.plist +0 -38
@@ -31,9 +31,9 @@ class Chef
31
31
 
32
32
  description "Use the **python** resource to execute scripts using the Python interpreter."\
33
33
  " This resource may also use any of the actions and properties that are available"\
34
- " to the execute resource. Commands that are executed with this resource are (by"\
34
+ " to the **execute** resource. Commands that are executed with this resource are (by"\
35
35
  " their nature) not idempotent, as they are typically unique to the environment in"\
36
- " which they are run. Use not_if and only_if to guard this resource for idempotence."
36
+ " which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
37
37
  end
38
38
  end
39
39
  end
@@ -17,7 +17,7 @@
17
17
  #
18
18
 
19
19
  require_relative "../resource"
20
- require_relative "../dist"
20
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
21
 
22
22
  class Chef
23
23
  class Resource
@@ -36,7 +36,7 @@ class Chef
36
36
 
37
37
  property :reason, String,
38
38
  description: "A string that describes the reboot action.",
39
- default: "Reboot by #{Chef::Dist::PRODUCT}"
39
+ default: "Reboot by #{ChefUtils::Dist::Infra::PRODUCT}"
40
40
 
41
41
  property :delay_mins, Integer,
42
42
  description: "The amount of time (in minutes) to delay a reboot request.",
@@ -27,7 +27,96 @@ class Chef
27
27
  provides(:registry_key) { true }
28
28
 
29
29
  description "Use the **registry_key** resource to create and delete registry keys in Microsoft Windows."
30
- introduced "11.0"
30
+ examples <<~'DOC'
31
+ **Create a registry key**
32
+
33
+ ```ruby
34
+ registry_key 'HKEY_LOCAL_MACHINE\\path-to-key\\Policies\\System' do
35
+ values [{
36
+ name: 'EnableLUA',
37
+ type: :dword,
38
+ data: 0
39
+ }]
40
+ action :create
41
+ end
42
+ ```
43
+
44
+ **Create a registry key with binary data: "\x01\x02\x03"**:
45
+
46
+ ```ruby
47
+ registry_key 'HKEY_CURRENT_USER\ChefTest' do
48
+ values [{
49
+ :name => "test",
50
+ :type => :binary,
51
+ :data => [0, 1, 2].map(&:chr).join
52
+ }]
53
+ action :create
54
+ end
55
+ ```
56
+
57
+ **Create 32-bit key in redirected wow6432 tree**
58
+
59
+ In 64-bit versions of Microsoft Windows, HKEY_LOCAL_MACHINE\SOFTWARE\Example is a re-directed key. In the following examples, because HKEY_LOCAL_MACHINE\SOFTWARE\Example is a 32-bit key, the output will be “Found 32-bit key” if they are run on a version of Microsoft Windows that is 64-bit:
60
+
61
+ ```ruby
62
+ registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Example' do
63
+ architecture :i386
64
+ recursive true
65
+ action :create
66
+ end
67
+ ```
68
+
69
+ **Set proxy settings to be the same as those used by Chef Infra Client**
70
+
71
+ ```ruby
72
+ proxy = URI.parse(Chef::Config[:http_proxy])
73
+ registry_key 'HKCU\Software\Microsoft\path\to\key\Internet Settings' do
74
+ values [{name: 'ProxyEnable', type: :reg_dword, data: 1},
75
+ {name: 'ProxyServer', data: "#{proxy.host}:#{proxy.port}"},
76
+ {name: 'ProxyOverride', type: :reg_string, data: <local>},
77
+ ]
78
+ action :create
79
+ end
80
+ ```
81
+
82
+ **Set the name of a registry key to "(Default)"**
83
+
84
+ ```ruby
85
+ registry_key 'Set (Default) value' do
86
+ key 'HKLM\Software\Test\Key\Path'
87
+ values [
88
+ {name: '', type: :string, data: 'test'},
89
+ ]
90
+ action :create
91
+ end
92
+ ```
93
+
94
+ **Delete a registry key value**
95
+
96
+ ```ruby
97
+ registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\path\to\key\AU' do
98
+ values [{
99
+ name: 'NoAutoRebootWithLoggedOnUsers',
100
+ type: :dword,
101
+ data: ''
102
+ }]
103
+ action :delete
104
+ end
105
+ ```
106
+
107
+ Note: If data: is not specified, you get an error: Missing data key in RegistryKey values hash
108
+
109
+ **Delete a registry key and its subkeys, recursively**
110
+
111
+ ```ruby
112
+ registry_key 'HKCU\SOFTWARE\Policies\path\to\key\Themes' do
113
+ recursive true
114
+ action :delete_key
115
+ end
116
+ ```
117
+
118
+ Note: Be careful when using the :delete_key action with the recursive attribute. This will delete the registry key, all of its values and all of the names, types, and data associated with them. This cannot be undone by Chef Infra Client.
119
+ DOC
31
120
 
32
121
  state_attrs :values
33
122
 
@@ -72,6 +161,8 @@ class Chef
72
161
 
73
162
  property :key, String, name_property: true
74
163
 
164
+ VALID_VALUE_HASH_KEYS = %i{name type data}.freeze
165
+
75
166
  def values(arg = nil)
76
167
  if not arg.nil?
77
168
  if arg.is_a?(Hash)
@@ -89,7 +180,7 @@ class Chef
89
180
  raise ArgumentError, "Missing name key in RegistryKey values hash" unless v.key?(:name)
90
181
 
91
182
  v.each_key do |key|
92
- raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless %i{name type data}.include?(key)
183
+ raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless VALID_VALUE_HASH_KEYS.include?(key)
93
184
  end
94
185
  raise ArgumentError, "Type of name => #{v[:name]} should be string" unless v[:name].is_a?(String)
95
186
 
@@ -22,7 +22,7 @@ require_relative "file"
22
22
  require_relative "../provider/remote_file"
23
23
  require_relative "../mixin/securable"
24
24
  require_relative "../mixin/uris"
25
- require_relative "../dist"
25
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
26
26
 
27
27
  class Chef
28
28
  class Resource
@@ -74,7 +74,7 @@ class Chef
74
74
  end
75
75
 
76
76
  property :checksum, String,
77
- description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{Chef::Dist::PRODUCT} does not download it."
77
+ description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{ChefUtils::Dist::Infra::PRODUCT} does not download it."
78
78
 
79
79
  # Disable or enable ETag and Last Modified conditional GET. Equivalent to
80
80
  # use_etag(true_or_false)
@@ -93,7 +93,7 @@ class Chef
93
93
  description: "Enable `If-Modified-Since` headers. Set to `false` to disable `If-Modified-Since` headers. To use this setting, `use_conditional_get` must also be set to `true`."
94
94
 
95
95
  property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
96
- description: "Whether #{Chef::Dist::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
96
+ description: "Whether #{ChefUtils::Dist::Infra::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
97
97
 
98
98
  property :headers, Hash, default: lazy { {} },
99
99
  description: "A Hash of custom HTTP headers."
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
  require_relative "../resource"
19
- require_relative "../dist"
19
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
20
20
  require "shellwords" unless defined?(Shellwords)
21
21
 
22
22
  class Chef
@@ -47,6 +47,10 @@ class Chef
47
47
  property :password, String,
48
48
  description: "The password to use when registering. This property is not applicable if using an activation key. If specified, username and environment are also required."
49
49
 
50
+ property :system_name, String,
51
+ description: "The name of the system to register, defaults to the hostname.",
52
+ introduced: "16.5"
53
+
50
54
  property :auto_attach,
51
55
  [TrueClass, FalseClass],
52
56
  description: "If true, RHSM will attempt to automatically attach the host to applicable subscriptions. It is generally better to use an activation key with the subscriptions pre-defined.",
@@ -61,7 +65,7 @@ class Chef
61
65
  default: false, desired_state: false
62
66
 
63
67
  property :https_for_ca_consumer, [TrueClass, FalseClass],
64
- description: "If true, #{Chef::Dist::PRODUCT} will fetch the katello-ca-consumer-latest.noarch.rpm from the satellite_host using HTTPS.",
68
+ description: "If true, #{ChefUtils::Dist::Infra::PRODUCT} will fetch the katello-ca-consumer-latest.noarch.rpm from the satellite_host using HTTPS.",
65
69
  default: false, desired_state: false,
66
70
  introduced: "15.9"
67
71
 
@@ -121,24 +125,30 @@ class Chef
121
125
  end
122
126
 
123
127
  action_class do
128
+ #
129
+ # @return [Symbol] dnf_package or yum_package depending on OS release
130
+ #
124
131
  def package_resource
125
132
  node["platform_version"].to_i >= 8 ? :dnf_package : :yum_package
126
133
  end
127
134
 
135
+ #
136
+ # @return [Boolean] is the node registered with RHSM
137
+ #
128
138
  def registered_with_rhsm?
129
- # FIXME: use shell_out
130
- cmd = Mixlib::ShellOut.new("subscription-manager status", env: { LANG: "en_US" })
131
- cmd.run_command
132
- !cmd.stdout.match(/Overall Status: Unknown/)
139
+ @registered ||= !shell_out("subscription-manager status").stdout.include?("Overall Status: Unknown")
133
140
  end
134
141
 
142
+ #
143
+ # @return [Boolean] is katello-ca-consumer installed
144
+ #
135
145
  def katello_cert_rpm_installed?
136
- # FIXME: use shell_out
137
- cmd = Mixlib::ShellOut.new("rpm -qa | grep katello-ca-consumer")
138
- cmd.run_command
139
- !cmd.stdout.match(/katello-ca-consumer/).nil?
146
+ shell_out("rpm -qa").stdout.include?("katello-ca-consumer")
140
147
  end
141
148
 
149
+ #
150
+ # @return [String] The URI to fetch katello-ca-consumer-latest.noarch.rpm from
151
+ #
142
152
  def ca_consumer_package_source
143
153
  protocol = new_resource.https_for_ca_consumer ? "https" : "http"
144
154
  "#{protocol}://#{new_resource.satellite_host}/pub/katello-ca-consumer-latest.noarch.rpm"
@@ -153,6 +163,7 @@ class Chef
153
163
 
154
164
  command << new_resource.activation_key.map { |key| "--activationkey=#{Shellwords.shellescape(key)}" }
155
165
  command << "--org=#{Shellwords.shellescape(new_resource.organization)}"
166
+ command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
156
167
  command << "--force" if new_resource.force
157
168
 
158
169
  return command.join(" ")
@@ -165,6 +176,7 @@ class Chef
165
176
  command << "--username=#{Shellwords.shellescape(new_resource.username)}"
166
177
  command << "--password=#{Shellwords.shellescape(new_resource.password)}"
167
178
  command << "--environment=#{Shellwords.shellescape(new_resource.environment)}" if using_satellite_host?
179
+ command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
168
180
  command << "--auto-attach" if new_resource.auto_attach
169
181
  command << "--force" if new_resource.force
170
182
 
@@ -43,7 +43,7 @@ class Chef
43
43
  description: "The route metric value."
44
44
 
45
45
  property :netmask, [String, nil],
46
- description: "The decimal representation of the network mask. For example: 255.255.255.0."
46
+ description: "The decimal representation of the network mask. For example: `255.255.255.0`."
47
47
 
48
48
  property :gateway, [String, nil],
49
49
  description: "The gateway for the route."
@@ -27,9 +27,9 @@ class Chef
27
27
 
28
28
  description "Use the **ruby** resource to execute scripts using the Ruby interpreter. This"\
29
29
  " resource may also use any of the actions and properties that are available"\
30
- " to the execute resource. Commands that are executed with this resource are (by"\
30
+ " to the **execute** resource. Commands that are executed with this resource are (by"\
31
31
  " their nature) not idempotent, as they are typically unique to the environment"\
32
- " in which they are run. Use not_if and only_if to guard this resource for idempotence."
32
+ " in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
33
33
 
34
34
  def initialize(name, run_context = nil)
35
35
  super
@@ -19,7 +19,7 @@
19
19
 
20
20
  require_relative "../resource"
21
21
  require_relative "../provider/ruby_block"
22
- require_relative "../dist"
22
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
23
23
 
24
24
  class Chef
25
25
  class Resource
@@ -28,7 +28,7 @@ class Chef
28
28
 
29
29
  provides :ruby_block, target_mode: true
30
30
 
31
- description "Use the **ruby_block** resource to execute Ruby code during a #{Chef::Dist::PRODUCT} run. Ruby code in the ruby_block resource is evaluated with other resources during convergence, whereas Ruby code outside of a ruby_block resource is evaluated before other resources, as the recipe is compiled."
31
+ description "Use the **ruby_block** resource to execute Ruby code during a #{ChefUtils::Dist::Infra::PRODUCT} run. Ruby code in the ruby_block resource is evaluated with other resources during convergence, whereas Ruby code outside of a ruby_block resource is evaluated before other resources, as the recipe is compiled."
32
32
 
33
33
  default_action :run
34
34
  allowed_actions :create, :run
@@ -33,7 +33,8 @@ property :revision, String,
33
33
  default: "HEAD"
34
34
 
35
35
  property :user, [String, Integer],
36
- description: "The system user that will own the checked-out code."
36
+ description: "The system user that will own the checked-out code.",
37
+ default_description: "`HOME` environment variable of the user running #{ChefUtils::Dist::Infra::CLIENT}"
37
38
 
38
39
  property :group, [String, Integer],
39
40
  description: "The system group that will own the checked-out code."
@@ -28,6 +28,87 @@ class Chef
28
28
  provides :git
29
29
 
30
30
  description "Use the **git** resource to manage source control resources that exist in a git repository. git version 1.6.5 (or higher) is required to use all of the functionality in the git resource."
31
+ examples <<~DOC
32
+ **Use the git mirror**
33
+
34
+ ```ruby
35
+ git '/opt/my_sources/couch' do
36
+ repository 'git://git.apache.org/couchdb.git'
37
+ revision 'master'
38
+ action :sync
39
+ end
40
+ ```
41
+
42
+ **Use different branches**
43
+
44
+ To use different branches, depending on the environment of the node:
45
+
46
+ ```ruby
47
+ branch_name = if node.chef_environment == 'QA'
48
+ 'staging'
49
+ else
50
+ 'master'
51
+ end
52
+
53
+ git '/home/user/deployment' do
54
+ repository 'git@github.com:git_site/deployment.git'
55
+ revision branch_name
56
+ action :sync
57
+ user 'user'
58
+ group 'test'
59
+ end
60
+ ```
61
+
62
+ Where the `branch_name` variable is set to staging or master, depending on the environment of the node. Once this is determined, the `branch_name` variable is used to set the revision for the repository. If the git status command is used after running the example above, it will return the branch name as `deploy`, as this is the default value. Run Chef Infra Client in debug mode to verify that the correct branches are being checked out:
63
+
64
+ ```
65
+ sudo chef-client -l debug
66
+ ```
67
+
68
+ **Install an application from git using bash**
69
+
70
+ The following example shows how Bash can be used to install a plug-in for rbenv named ruby-build, which is located in git version source control. First, the application is synchronized, and then Bash changes its working directory to the location in which ruby-build is located, and then runs a command.
71
+
72
+ ```ruby
73
+ git "#{Chef::Config[:file_cache_path]}/ruby-build" do
74
+ repository 'git://github.com/rbenv/ruby-build.git'
75
+ revision 'master'
76
+ action :sync
77
+ end
78
+
79
+ bash 'install_ruby_build' do
80
+ cwd "#{Chef::Config[:file_cache_path]}/ruby-build"
81
+ user 'rbenv'
82
+ group 'rbenv'
83
+ code <<-EOH
84
+ ./install.sh
85
+ EOH
86
+ environment 'PREFIX' => '/usr/local'
87
+ end
88
+ ```
89
+
90
+ **Notify a resource post-checkout**
91
+
92
+ ```ruby
93
+ git "#{Chef::Config[:file_cache_path]}/my_app" do
94
+ repository node['my_app']['git_repository']
95
+ revision node['my_app']['git_revision']
96
+ action :sync
97
+ notifies :run, 'bash[compile_my_app]', :immediately
98
+ end
99
+ ```
100
+
101
+ **Pass in environment variables**
102
+
103
+ ```ruby
104
+ git '/opt/my_sources/couch' do
105
+ repository 'git://git.apache.org/couchdb.git'
106
+ revision 'master'
107
+ environment 'VAR' => 'whatever'
108
+ action :sync
109
+ end
110
+ ```
111
+ DOC
31
112
 
32
113
  property :additional_remotes, Hash,
33
114
  description: "A Hash of additional remotes that are added to the git repository configuration.",
@@ -41,7 +122,7 @@ class Chef
41
122
  default: false
42
123
 
43
124
  property :enable_checkout, [TrueClass, FalseClass],
44
- description: "Check out a repo from master. Set to false when using the checkout_branch attribute to prevent the git resource from attempting to check out master from master.",
125
+ description: "Check out a repo from master. Set to `false` when using the `checkout_branch` attribute to prevent the git resource from attempting to check out `master` from `master`.",
45
126
  default: true
46
127
 
47
128
  property :remote, String,
@@ -17,7 +17,7 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- require_relative "../../dist"
20
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
21
 
22
22
  class Chef
23
23
  class Resource
@@ -29,6 +29,18 @@ class Chef
29
29
  provides :subversion
30
30
 
31
31
  description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository."
32
+ examples <<~DOC
33
+ **Get the latest version of an application**
34
+
35
+ ```ruby
36
+ subversion 'CouchDB Edge' do
37
+ repository 'http://svn.apache.org/repos/asf/couchdb/trunk'
38
+ revision 'HEAD'
39
+ destination '/opt/my_sources/couch'
40
+ action :sync
41
+ end
42
+ ```
43
+ DOC
32
44
 
33
45
  allowed_actions :force_export
34
46
 
@@ -38,7 +50,7 @@ class Chef
38
50
  default: "--no-auth-cache"
39
51
 
40
52
  property :svn_info_args, [String, nil, FalseClass],
41
- description: "Use when the `svn info` command is used by #{Chef::Dist::PRODUCT} and arguments need to be passed. The `svn_arguments` command does not work when the `svn info` command is used.",
53
+ description: "Use when the `svn info` command is used by #{ChefUtils::Dist::Infra::PRODUCT} and arguments need to be passed. The `svn_arguments` command does not work when the `svn info` command is used.",
42
54
  coerce: proc { |v| v == false ? nil : v }, # coerce false to nil
43
55
  default: "--no-auth-cache"
44
56
 
@@ -29,9 +29,9 @@ class Chef
29
29
  identity_attr :name
30
30
 
31
31
  description "Use the **script** resource to execute scripts using a specified interpreter, such as Bash, csh, Perl, Python, or Ruby."\
32
- " This resource may also use any of the actions and properties that are available to the execute resource. Commands"\
32
+ " This resource may also use any of the actions and properties that are available to the **execute** resource. Commands"\
33
33
  " that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the"\
34
- " environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
34
+ " environment in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
35
35
 
36
36
  def initialize(name, run_context = nil)
37
37
  super