chef 16.0.257-universal-mingw32 → 16.2.44-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/README.md +3 -3
  4. data/Rakefile +44 -16
  5. data/chef.gemspec +4 -4
  6. data/distro/powershell/chef/chef.psm1 +3 -3
  7. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  8. data/lib/chef/application/apply.rb +2 -2
  9. data/lib/chef/application/base.rb +1 -1
  10. data/lib/chef/application/client.rb +1 -1
  11. data/lib/chef/application/exit_code.rb +2 -2
  12. data/lib/chef/application/windows_service_manager.rb +1 -1
  13. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  14. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  16. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  18. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  20. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  21. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  22. data/lib/chef/chef_fs/path_utils.rb +4 -4
  23. data/lib/chef/cookbook/chefignore.rb +1 -1
  24. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  25. data/lib/chef/cookbook/metadata.rb +2 -2
  26. data/lib/chef/cookbook_loader.rb +1 -1
  27. data/lib/chef/cookbook_manifest.rb +1 -1
  28. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  29. data/lib/chef/cookbook_version.rb +7 -7
  30. data/lib/chef/data_bag.rb +4 -4
  31. data/lib/chef/data_collector.rb +1 -1
  32. data/lib/chef/data_collector/error_handlers.rb +1 -1
  33. data/lib/chef/decorator/lazy_array.rb +2 -2
  34. data/lib/chef/deprecated.rb +5 -1
  35. data/lib/chef/digester.rb +4 -4
  36. data/lib/chef/dsl/declare_resource.rb +1 -1
  37. data/lib/chef/dsl/platform_introspection.rb +1 -1
  38. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  39. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  40. data/lib/chef/file_access_control.rb +1 -1
  41. data/lib/chef/formatters/base.rb +1 -1
  42. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  43. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  44. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  45. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  46. data/lib/chef/http.rb +18 -3
  47. data/lib/chef/http/decompressor.rb +1 -1
  48. data/lib/chef/http/http_request.rb +1 -1
  49. data/lib/chef/http/json_output.rb +1 -1
  50. data/lib/chef/http/ssl_policies.rb +18 -0
  51. data/lib/chef/json_compat.rb +1 -1
  52. data/lib/chef/key.rb +1 -1
  53. data/lib/chef/knife.rb +2 -2
  54. data/lib/chef/knife/bootstrap.rb +13 -16
  55. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  56. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  57. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  58. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  59. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  60. data/lib/chef/knife/config_get.rb +1 -1
  61. data/lib/chef/knife/cookbook_delete.rb +1 -1
  62. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  63. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  64. data/lib/chef/knife/core/node_presenter.rb +1 -1
  65. data/lib/chef/knife/core/status_presenter.rb +1 -1
  66. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  67. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
  68. data/lib/chef/knife/data_bag_create.rb +1 -1
  69. data/lib/chef/knife/environment_compare.rb +1 -1
  70. data/lib/chef/knife/key_create_base.rb +1 -1
  71. data/lib/chef/knife/key_edit_base.rb +1 -1
  72. data/lib/chef/knife/list.rb +1 -1
  73. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  74. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  75. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  76. data/lib/chef/knife/ssh.rb +2 -2
  77. data/lib/chef/knife/supermarket_install.rb +1 -1
  78. data/lib/chef/knife/supermarket_share.rb +1 -1
  79. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  80. data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
  81. data/lib/chef/knife/yaml_convert.rb +2 -2
  82. data/lib/chef/log.rb +1 -1
  83. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  84. data/lib/chef/mixin/checksum.rb +0 -1
  85. data/lib/chef/mixin/create_path.rb +8 -8
  86. data/lib/chef/mixin/openssl_helper.rb +4 -4
  87. data/lib/chef/mixin/properties.rb +4 -2
  88. data/lib/chef/mixin/securable.rb +2 -2
  89. data/lib/chef/mixin/shell_out.rb +1 -1
  90. data/lib/chef/node/attribute.rb +2 -2
  91. data/lib/chef/node/immutable_collections.rb +1 -1
  92. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  93. data/lib/chef/policy_builder/policyfile.rb +1 -1
  94. data/lib/chef/powershell.rb +1 -1
  95. data/lib/chef/property.rb +2 -2
  96. data/lib/chef/provider.rb +3 -3
  97. data/lib/chef/provider/batch.rb +3 -10
  98. data/lib/chef/provider/cron.rb +2 -14
  99. data/lib/chef/provider/directory.rb +1 -1
  100. data/lib/chef/provider/execute.rb +3 -2
  101. data/lib/chef/provider/file.rb +1 -1
  102. data/lib/chef/provider/group/dscl.rb +2 -2
  103. data/lib/chef/provider/group/windows.rb +1 -1
  104. data/lib/chef/provider/ifconfig.rb +7 -7
  105. data/lib/chef/provider/launchd.rb +28 -32
  106. data/lib/chef/provider/mount/aix.rb +1 -1
  107. data/lib/chef/provider/mount/windows.rb +2 -2
  108. data/lib/chef/provider/noop.rb +1 -1
  109. data/lib/chef/provider/package/cab.rb +1 -1
  110. data/lib/chef/provider/package/chocolatey.rb +1 -1
  111. data/lib/chef/provider/package/dpkg.rb +1 -1
  112. data/lib/chef/provider/package/freebsd/base.rb +2 -1
  113. data/lib/chef/provider/package/homebrew.rb +1 -1
  114. data/lib/chef/provider/package/macports.rb +0 -2
  115. data/lib/chef/provider/package/openbsd.rb +1 -1
  116. data/lib/chef/provider/package/portage.rb +3 -2
  117. data/lib/chef/provider/package/powershell.rb +6 -2
  118. data/lib/chef/provider/package/rubygems.rb +3 -3
  119. data/lib/chef/provider/package/snap.rb +96 -27
  120. data/lib/chef/provider/package/windows.rb +27 -52
  121. data/lib/chef/provider/package/windows/msi.rb +3 -3
  122. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  123. data/lib/chef/provider/package/yum.rb +1 -1
  124. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  125. data/lib/chef/provider/powershell_script.rb +11 -15
  126. data/lib/chef/provider/remote_directory.rb +2 -2
  127. data/lib/chef/provider/remote_file/http.rb +4 -1
  128. data/lib/chef/provider/script.rb +4 -75
  129. data/lib/chef/provider/service/arch.rb +2 -2
  130. data/lib/chef/provider/service/debian.rb +2 -2
  131. data/lib/chef/provider/service/macosx.rb +13 -2
  132. data/lib/chef/provider/service/openbsd.rb +4 -4
  133. data/lib/chef/provider/service/redhat.rb +1 -1
  134. data/lib/chef/provider/service/simple.rb +3 -3
  135. data/lib/chef/provider/service/upstart.rb +1 -1
  136. data/lib/chef/provider/service/windows.rb +1 -1
  137. data/lib/chef/provider/subversion.rb +2 -2
  138. data/lib/chef/provider/user/aix.rb +1 -1
  139. data/lib/chef/provider/user/dscl.rb +7 -7
  140. data/lib/chef/provider/user/linux.rb +3 -3
  141. data/lib/chef/provider/user/mac.rb +15 -11
  142. data/lib/chef/provider/windows_script.rb +87 -25
  143. data/lib/chef/provider/windows_task.rb +5 -3
  144. data/lib/chef/provider/zypper_repository.rb +30 -10
  145. data/lib/chef/resource.rb +25 -14
  146. data/lib/chef/resource/alternatives.rb +65 -4
  147. data/lib/chef/resource/apt_package.rb +31 -2
  148. data/lib/chef/resource/apt_preference.rb +34 -5
  149. data/lib/chef/resource/apt_repository.rb +22 -15
  150. data/lib/chef/resource/apt_update.rb +6 -4
  151. data/lib/chef/resource/archive_file.rb +33 -12
  152. data/lib/chef/resource/bash.rb +1 -2
  153. data/lib/chef/resource/batch.rb +5 -3
  154. data/lib/chef/resource/bff_package.rb +1 -1
  155. data/lib/chef/resource/breakpoint.rb +1 -1
  156. data/lib/chef/resource/build_essential.rb +8 -4
  157. data/lib/chef/resource/cab_package.rb +1 -1
  158. data/lib/chef/resource/chef_client_cron.rb +12 -9
  159. data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
  160. data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
  161. data/lib/chef/resource/chef_gem.rb +6 -2
  162. data/lib/chef/resource/chef_handler.rb +3 -3
  163. data/lib/chef/resource/chef_sleep.rb +7 -4
  164. data/lib/chef/resource/chef_vault_secret.rb +4 -4
  165. data/lib/chef/resource/chocolatey_config.rb +5 -3
  166. data/lib/chef/resource/chocolatey_feature.rb +5 -3
  167. data/lib/chef/resource/chocolatey_package.rb +5 -3
  168. data/lib/chef/resource/chocolatey_source.rb +5 -3
  169. data/lib/chef/resource/cookbook_file.rb +3 -2
  170. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  171. data/lib/chef/resource/cron/cron.rb +46 -0
  172. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +28 -94
  173. data/lib/chef/resource/cron_access.rb +17 -6
  174. data/lib/chef/resource/csh.rb +1 -2
  175. data/lib/chef/resource/directory.rb +1 -1
  176. data/lib/chef/resource/dmg_package.rb +18 -15
  177. data/lib/chef/resource/dnf_package.rb +1 -1
  178. data/lib/chef/resource/dpkg_package.rb +1 -1
  179. data/lib/chef/resource/execute.rb +479 -9
  180. data/lib/chef/resource/file.rb +11 -8
  181. data/lib/chef/resource/freebsd_package.rb +2 -2
  182. data/lib/chef/resource/gem_package.rb +6 -6
  183. data/lib/chef/resource/group.rb +1 -1
  184. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  185. data/lib/chef/resource/homebrew_cask.rb +1 -1
  186. data/lib/chef/resource/homebrew_package.rb +30 -1
  187. data/lib/chef/resource/homebrew_tap.rb +1 -1
  188. data/lib/chef/resource/homebrew_update.rb +107 -0
  189. data/lib/chef/resource/hostname.rb +11 -24
  190. data/lib/chef/resource/http_request.rb +1 -1
  191. data/lib/chef/resource/ifconfig.rb +7 -7
  192. data/lib/chef/resource/ips_package.rb +1 -1
  193. data/lib/chef/resource/kernel_module.rb +15 -2
  194. data/lib/chef/resource/ksh.rb +1 -1
  195. data/lib/chef/resource/launchd.rb +5 -5
  196. data/lib/chef/resource/link.rb +4 -4
  197. data/lib/chef/resource/locale.rb +4 -4
  198. data/lib/chef/resource/log.rb +1 -1
  199. data/lib/chef/resource/macos_userdefaults.rb +15 -10
  200. data/lib/chef/resource/macosx_service.rb +1 -1
  201. data/lib/chef/resource/macports_package.rb +1 -1
  202. data/lib/chef/resource/mdadm.rb +1 -1
  203. data/lib/chef/resource/mount.rb +2 -2
  204. data/lib/chef/resource/msu_package.rb +2 -2
  205. data/lib/chef/resource/ohai.rb +1 -1
  206. data/lib/chef/resource/ohai_hint.rb +1 -1
  207. data/lib/chef/resource/openbsd_package.rb +1 -1
  208. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  209. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  210. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  211. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  212. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  213. data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
  214. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  215. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  216. data/lib/chef/resource/osx_profile.rb +1 -1
  217. data/lib/chef/resource/package.rb +1 -1
  218. data/lib/chef/resource/pacman_package.rb +1 -1
  219. data/lib/chef/resource/paludis_package.rb +1 -1
  220. data/lib/chef/resource/perl.rb +1 -2
  221. data/lib/chef/resource/plist.rb +24 -5
  222. data/lib/chef/resource/portage_package.rb +1 -1
  223. data/lib/chef/resource/powershell_package.rb +1 -1
  224. data/lib/chef/resource/powershell_package_source.rb +1 -1
  225. data/lib/chef/resource/powershell_script.rb +5 -3
  226. data/lib/chef/resource/python.rb +1 -2
  227. data/lib/chef/resource/reboot.rb +1 -1
  228. data/lib/chef/resource/registry_key.rb +1 -1
  229. data/lib/chef/resource/remote_directory.rb +1 -1
  230. data/lib/chef/resource/remote_file.rb +26 -11
  231. data/lib/chef/resource/rhsm_errata.rb +1 -3
  232. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  233. data/lib/chef/resource/rhsm_register.rb +1 -2
  234. data/lib/chef/resource/rhsm_repo.rb +1 -2
  235. data/lib/chef/resource/rhsm_subscription.rb +1 -3
  236. data/lib/chef/resource/route.rb +1 -1
  237. data/lib/chef/resource/rpm_package.rb +5 -2
  238. data/lib/chef/resource/ruby.rb +1 -2
  239. data/lib/chef/resource/ruby_block.rb +1 -4
  240. data/lib/chef/resource/scm/_scm.rb +4 -3
  241. data/lib/chef/resource/scm/git.rb +2 -2
  242. data/lib/chef/resource/scm/subversion.rb +2 -2
  243. data/lib/chef/resource/script.rb +1 -1
  244. data/lib/chef/resource/service.rb +1 -1
  245. data/lib/chef/resource/smartos_package.rb +1 -1
  246. data/lib/chef/resource/snap_package.rb +1 -1
  247. data/lib/chef/resource/solaris_package.rb +1 -1
  248. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  249. data/lib/chef/resource/sudo.rb +4 -4
  250. data/lib/chef/resource/swap_file.rb +2 -2
  251. data/lib/chef/resource/sysctl.rb +61 -2
  252. data/lib/chef/resource/systemd_unit.rb +2 -2
  253. data/lib/chef/resource/template.rb +1 -1
  254. data/lib/chef/resource/timezone.rb +1 -1
  255. data/lib/chef/resource/user.rb +2 -2
  256. data/lib/chef/resource/user_ulimit.rb +24 -22
  257. data/lib/chef/resource/windows_ad_join.rb +31 -2
  258. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  259. data/lib/chef/resource/windows_auto_run.rb +13 -2
  260. data/lib/chef/resource/windows_certificate.rb +28 -2
  261. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  262. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  263. data/lib/chef/resource/windows_dfs_server.rb +2 -2
  264. data/lib/chef/resource/windows_env.rb +10 -1
  265. data/lib/chef/resource/windows_feature.rb +57 -2
  266. data/lib/chef/resource/windows_feature_dism.rb +15 -2
  267. data/lib/chef/resource/windows_feature_powershell.rb +29 -2
  268. data/lib/chef/resource/windows_firewall_rule.rb +11 -7
  269. data/lib/chef/resource/windows_font.rb +13 -4
  270. data/lib/chef/resource/windows_package.rb +66 -6
  271. data/lib/chef/resource/windows_pagefile.rb +32 -4
  272. data/lib/chef/resource/windows_path.rb +18 -1
  273. data/lib/chef/resource/windows_printer.rb +26 -6
  274. data/lib/chef/resource/windows_printer_port.rb +29 -1
  275. data/lib/chef/resource/windows_script.rb +2 -16
  276. data/lib/chef/resource/windows_security_policy.rb +47 -16
  277. data/lib/chef/resource/windows_service.rb +1 -1
  278. data/lib/chef/resource/windows_share.rb +23 -3
  279. data/lib/chef/resource/windows_shortcut.rb +13 -3
  280. data/lib/chef/resource/windows_task.rb +143 -29
  281. data/lib/chef/resource/windows_uac.rb +20 -1
  282. data/lib/chef/resource/windows_user_privilege.rb +45 -3
  283. data/lib/chef/resource/windows_workgroup.rb +19 -3
  284. data/lib/chef/resource/yum_package.rb +88 -6
  285. data/lib/chef/resource/yum_repository.rb +36 -19
  286. data/lib/chef/resource/zypper_package.rb +29 -3
  287. data/lib/chef/resource/zypper_repository.rb +17 -5
  288. data/lib/chef/resource_inspector.rb +5 -4
  289. data/lib/chef/resources.rb +4 -2
  290. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  291. data/lib/chef/scan_access_control.rb +1 -1
  292. data/lib/chef/search/query.rb +1 -1
  293. data/lib/chef/shell/ext.rb +1 -1
  294. data/lib/chef/util/diff.rb +2 -2
  295. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  296. data/lib/chef/util/windows/net_user.rb +1 -1
  297. data/lib/chef/util/windows/volume.rb +1 -1
  298. data/lib/chef/version.rb +1 -1
  299. data/lib/chef/win32/api.rb +2 -2
  300. data/lib/chef/win32/api/error.rb +3 -1
  301. data/lib/chef/win32/api/file.rb +18 -18
  302. data/lib/chef/win32/api/net.rb +1 -0
  303. data/lib/chef/win32/file.rb +1 -1
  304. data/lib/chef/win32/mutex.rb +1 -1
  305. data/lib/chef/win32/net.rb +1 -0
  306. data/lib/chef/win32/process.rb +2 -2
  307. data/lib/chef/win32/registry.rb +2 -2
  308. data/lib/chef/win32/security.rb +1 -1
  309. data/lib/chef/win32/security/sid.rb +4 -4
  310. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  311. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  312. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  313. data/spec/functional/resource/cron_spec.rb +10 -0
  314. data/spec/functional/resource/dnf_package_spec.rb +2 -2
  315. data/spec/functional/resource/git_spec.rb +6 -6
  316. data/spec/functional/resource/launchd_spec.rb +232 -0
  317. data/spec/functional/resource/link_spec.rb +3 -3
  318. data/spec/functional/resource/remote_file_spec.rb +3 -3
  319. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  320. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  321. data/spec/functional/resource/windows_task_spec.rb +12 -12
  322. data/spec/integration/knife/raw_spec.rb +4 -4
  323. data/spec/integration/knife/redirection_spec.rb +2 -2
  324. data/spec/support/chef_helpers.rb +1 -1
  325. data/spec/support/platform_helpers.rb +1 -14
  326. data/spec/support/platforms/win32/spec_service.rb +1 -1
  327. data/spec/support/shared/functional/execute_resource.rb +1 -1
  328. data/spec/support/shared/functional/file_resource.rb +1 -1
  329. data/spec/support/shared/functional/http.rb +2 -2
  330. data/spec/support/shared/functional/windows_script.rb +1 -1
  331. data/spec/support/shared/unit/execute_resource.rb +1 -1
  332. data/spec/support/shared/unit/mock_shellout.rb +1 -1
  333. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  334. data/spec/unit/application_spec.rb +7 -0
  335. data/spec/unit/data_bag_spec.rb +1 -1
  336. data/spec/unit/file_access_control_spec.rb +1 -1
  337. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  338. data/spec/unit/knife/bootstrap_spec.rb +2 -2
  339. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  340. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  341. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  342. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  343. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  344. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  345. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  346. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  347. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  348. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  349. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  350. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  351. data/spec/unit/mixin/shell_out_spec.rb +25 -31
  352. data/spec/unit/mixin/user_context_spec.rb +1 -9
  353. data/spec/unit/node/attribute_spec.rb +1 -1
  354. data/spec/unit/property_spec.rb +1 -1
  355. data/spec/unit/provider/apt_repository_spec.rb +27 -27
  356. data/spec/unit/provider/batch_spec.rb +130 -0
  357. data/spec/unit/provider/cron_spec.rb +9 -49
  358. data/spec/unit/provider/git_spec.rb +3 -3
  359. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  360. data/spec/unit/provider/launchd_spec.rb +8 -50
  361. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  362. data/spec/unit/provider/package/msu_spec.rb +3 -3
  363. data/spec/unit/provider/package/portage_spec.rb +2 -2
  364. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  365. data/spec/unit/provider/package/snap_spec.rb +1 -1
  366. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  367. data/spec/unit/provider/script_spec.rb +20 -110
  368. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  369. data/spec/unit/provider/zypper_repository_spec.rb +75 -25
  370. data/spec/unit/provider_resolver_spec.rb +11 -11
  371. data/spec/unit/resource/archive_file_spec.rb +11 -2
  372. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  373. data/spec/unit/resource/cron_spec.rb +2 -2
  374. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  375. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  376. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  377. data/spec/unit/resource/timezone_spec.rb +1 -1
  378. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  379. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  380. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  381. data/spec/unit/resource/windows_package_spec.rb +10 -0
  382. data/spec/unit/resource/windows_task_spec.rb +1 -1
  383. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  384. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  385. data/spec/unit/resource_spec.rb +67 -1
  386. data/spec/unit/run_context_spec.rb +1 -1
  387. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  388. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  389. data/spec/unit/win32/registry_spec.rb +1 -1
  390. metadata +28 -27
  391. data/lib/chef/resource/cron.rb +0 -157
@@ -32,7 +32,7 @@ class Chef
32
32
 
33
33
  provides :file
34
34
 
35
- description "Use the file resource to manage files directly on a node."
35
+ description "Use the **file** resource to manage files directly on a node."
36
36
 
37
37
  if ChefUtils.windows?
38
38
  # Use Windows rights instead of standard *nix permissions
@@ -56,27 +56,30 @@ class Chef
56
56
  allowed_actions :create, :delete, :touch, :create_if_missing
57
57
 
58
58
  property :path, String, name_property: true,
59
- description: "The full path to the file, including the file name and its extension. For example: /files/file.txt. Default value: the name of the resource block. Microsoft Windows: A path that begins with a forward slash (/) will point to the root of the current working directory of the #{Chef::Dist::CLIENT} process. This path can vary from system to system. Therefore, using a path that begins with a forward slash (/) is not recommended."
59
+ description: "The full path to the file, including the file name and its extension. For example: /files/file.txt. Default value: the name of the resource block. Microsoft Windows: A path that begins with a forward slash (/) will point to the root of the current working directory of the #{Chef::Dist::CLIENT} process. This path can vary from system to system. Therefore, using a path that begins with a forward slash (/) is not recommended."
60
60
 
61
61
  property :atomic_update, [ TrueClass, FalseClass ], desired_state: false, default: lazy { docker? && special_docker_files?(path) ? false : Chef::Config[:file_atomic_update] },
62
- description: "Perform atomic file updates on a per-resource basis. Set to true for atomic file updates. Set to false for non-atomic file updates. This setting overrides file_atomic_update, which is a global setting found in the client.rb file."
62
+ default_description: "False if modifying /etc/hosts, /etc/hostname, or /etc/resolv.conf within Docker containers. Otherwise default to the client.rb 'file_atomic_update' config value.",
63
+ description: "Perform atomic file updates on a per-resource basis. Set to true for atomic file updates. Set to false for non-atomic file updates. This setting overrides `file_atomic_update`, which is a global setting found in the `client.rb` file."
63
64
 
64
65
  property :backup, [ Integer, FalseClass ], desired_state: false, default: 5,
65
- description: "The number of backups to be kept in /var/chef/backup (for UNIX- and Linux-based platforms) or C:/chef/backup (for the Microsoft Windows platform). Set to false to prevent backups from being kept."
66
+ description: "The number of backups to be kept in `/var/chef/backup` (for UNIX- and Linux-based platforms) or `C:/chef/backup` (for the Microsoft Windows platform). Set to `false` to prevent backups from being kept."
66
67
 
67
- property :checksum, [ /^[a-zA-Z0-9]{64}$/, nil ],
68
+ property :checksum, [ String, nil ],
69
+ regex: /^\h{64}$/,
70
+ coerce: lambda { |s| s.is_a?(String) ? s.downcase : s },
68
71
  description: "The SHA-256 checksum of the file. Use to ensure that a specific file is used. If the checksum does not match, the file is not used."
69
72
 
70
73
  property :content, [ String, nil ], desired_state: false,
71
- description: "A string that is written to the file. The contents of this property replace any previous content when this property has something other than the default value. The default behavior will not modify content."
74
+ description: "A string that is written to the file. The contents of this property replace any previous content when this property has something other than the default value. The default behavior will not modify content."
72
75
 
73
76
  property :diff, [ String, nil ], desired_state: false, skip_docs: true
74
77
 
75
78
  property :force_unlink, [ TrueClass, FalseClass ], desired_state: false, default: false,
76
- description: "How the #{Chef::Dist::CLIENT} handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to true for the #{Chef::Dist::CLIENT} delete the non-file target and replace it with the specified file. Set to false for the #{Chef::Dist::CLIENT} to raise an error."
79
+ description: "How #{Chef::Dist::PRODUCT} handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to `true` for #{Chef::Dist::PRODUCT} to delete the non-file target and replace it with the specified file. Set to `false` for #{Chef::Dist::PRODUCT} to raise an error."
77
80
 
78
81
  property :manage_symlink_source, [ TrueClass, FalseClass ], desired_state: false,
79
- description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, #{Chef::Dist::PRODUCT} will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, #{Chef::Dist::PRODUCT} will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
82
+ description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, #{Chef::Dist::PRODUCT} will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, #{Chef::Dist::PRODUCT} will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
80
83
 
81
84
  property :verifications, Array, default: lazy { [] }
82
85
 
@@ -29,7 +29,7 @@ class Chef
29
29
  provides :freebsd_package
30
30
  provides :package, platform: "freebsd"
31
31
 
32
- description "Use the freebsd_package resource to manage packages for the FreeBSD platform."
32
+ description "Use the **freebsd_package** resource to manage packages for the FreeBSD platform."
33
33
 
34
34
  # make sure we assign the appropriate underlying providers based on what
35
35
  # package managers exist on this FreeBSD system or the source of the package
@@ -42,7 +42,7 @@ class Chef
42
42
  private
43
43
 
44
44
  def assign_provider
45
- @provider = if source.to_s =~ /^ports$/i
45
+ @provider = if /^ports$/i.match?(source.to_s)
46
46
  Chef::Provider::Package::Freebsd::Port
47
47
  else
48
48
  Chef::Provider::Package::Freebsd::Pkgng
@@ -25,7 +25,7 @@ class Chef
25
25
  unified_mode true
26
26
  provides :gem_package
27
27
 
28
- description "Use the gem_package resource to manage gem packages that are only included in recipes. When a package is installed from a local file, it must be added to the node using the remote_file or cookbook_file resources."
28
+ description "Use the **gem_package** resource to manage gem packages that are only included in recipes. When a package is installed from a local file, it must be added to the node using the remote_file or cookbook_file resources."
29
29
 
30
30
  property :package_name, String,
31
31
  description: "An optional property to set the package name if it differs from the resource block's name.",
@@ -46,21 +46,21 @@ class Chef
46
46
  # FIXME? the array form of installing paths most likely does not work?
47
47
  #
48
48
  property :source, [ String, Array ],
49
- description: "Optional. The URL, or list of URLs, at which the gem package is located. This list is added to the source configured in Chef::Config[:rubygems_url] (see also include_default_source) to construct the complete list of rubygems sources. Users in an 'airgapped' environment should set Chef::Config[:rubygems_url] to their local RubyGems mirror."
49
+ description: "Optional. The URL, or list of URLs, at which the gem package is located. This list is added to the source configured in `Chef::Config[:rubygems_url]` (see also include_default_source) to construct the complete list of rubygems sources. Users in an 'airgapped' environment should set Chef::Config[:rubygems_url] to their local RubyGems mirror."
50
50
 
51
51
  property :clear_sources, [ TrueClass, FalseClass, nil ],
52
- description: "Set to 'true' to download a gem from the path specified by the source property (and not from RubyGems).",
52
+ description: "Set to `true` to download a gem from the path specified by the `source` property (and not from RubyGems).",
53
53
  default: lazy { Chef::Config[:clear_gem_sources] }, desired_state: false
54
54
 
55
55
  property :gem_binary, String, desired_state: false,
56
- description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the #{Chef::Dist::CLIENT} will be installed."
56
+ description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by #{Chef::Dist::PRODUCT} will be installed."
57
57
 
58
58
  property :include_default_source, [ TrueClass, FalseClass, nil ],
59
- description: "Set to 'false' to not include 'Chef::Config[:rubygems_url]'' in the sources.",
59
+ description: "Set to `false` to not include `Chef::Config[:rubygems_url]` in the sources.",
60
60
  default: nil, introduced: "13.0"
61
61
 
62
62
  property :options, [ String, Hash, Array, nil ],
63
- description: "Options for the gem install, either a Hash or a String. When a hash is given, the options are passed to Gem::DependencyInstaller.new, and the gem will be installed via the gems API. When a String is given, the gem will be installed by shelling out to the gem command. Using a Hash of options with an explicit gem_binary will result in undefined behavior.",
63
+ description: "Options for the gem install, either a Hash or a String. When a hash is given, the options are passed to `Gem::DependencyInstaller.new`, and the gem will be installed via the gems API. When a String is given, the gem will be installed by shelling out to the gem command. Using a Hash of options with an explicit gem_binary will result in undefined behavior.",
64
64
  desired_state: false
65
65
  end
66
66
  end
@@ -23,7 +23,7 @@ class Chef
23
23
  unified_mode true
24
24
  state_attrs :members
25
25
 
26
- description "Use the group resource to manage a local group."
26
+ description "Use the **group** resource to manage a local group."
27
27
 
28
28
  provides :group
29
29
 
@@ -35,7 +35,7 @@ class Chef
35
35
  # Lists of individual values, ranges, and step values all share the validity range for type
36
36
  spec.split(%r{\/|-|,}).each do |x|
37
37
  next if x == "*"
38
- return false unless x =~ /^\d+$/
38
+ return false unless /^\d+$/.match?(x)
39
39
 
40
40
  x = x.to_i
41
41
  return false unless x >= min && x <= max
@@ -62,13 +62,16 @@ class Chef
62
62
  end
63
63
  end
64
64
 
65
- # validate the provided day of the week is sun-sat, 0-7, or *
65
+ # validate the provided day of the week is sun-sat, sunday-saturday, 0-7, or *
66
+ # Added crontab param to check cron resource
66
67
  # @param spec the value to validate
67
68
  # @return [Boolean] valid or not?
68
69
  def validate_dow(spec)
70
+ spec = spec.to_s
69
71
  spec == "*" ||
70
72
  validate_numeric(spec, 0, 7) ||
71
- %w{sun mon tue wed thu fri sat}.include?(String(spec).downcase)
73
+ %w{sun mon tue wed thu fri sat}.include?(spec.downcase) ||
74
+ %w{sunday monday tuesday wednesday thursday friday saturday}.include?(spec.downcase)
72
75
  end
73
76
 
74
77
  # validate the day of the month is 1-31
@@ -27,7 +27,7 @@ class Chef
27
27
 
28
28
  provides(:homebrew_cask) { true }
29
29
 
30
- description "Use the homebrew_cask resource to install binaries distributed via the Homebrew package manager."
30
+ description "Use the **homebrew_cask** resource to install binaries distributed via the Homebrew package manager."
31
31
  introduced "14.0"
32
32
 
33
33
  include Chef::Mixin::HomebrewUser
@@ -29,8 +29,37 @@ class Chef
29
29
  provides :homebrew_package
30
30
  provides :package, os: "darwin"
31
31
 
32
- description "Use the homebrew_package resource to manage packages for the macOS platform."
32
+ description "Use the **homebrew_package** resource to manage packages for the macOS platform. Note: Starting with #{Chef::Dist::PRODUCT} 16 the homebrew resource now accepts an array of packages for installing multiple packages at once."
33
33
  introduced "12.0"
34
+ examples <<~DOC
35
+ **Install a package**:
36
+
37
+ ```ruby
38
+ homebrew_package 'git'
39
+ ```
40
+
41
+ **Install multiple packages at once**:
42
+
43
+ ```ruby
44
+ homebrew_package %w(git fish ruby)
45
+ ```
46
+
47
+ **Specify the Homebrew user with a UUID**
48
+
49
+ ```ruby
50
+ homebrew_package 'git' do
51
+ homebrew_user 1001
52
+ end
53
+ ```
54
+
55
+ **Specify the Homebrew user with a string**:
56
+
57
+ ```ruby
58
+ homebrew_package 'vim' do
59
+ homebrew_user 'user1'
60
+ end
61
+ ```
62
+ DOC
34
63
 
35
64
  property :homebrew_user, [ String, Integer ],
36
65
  description: "The name or uid of the Homebrew owner to be used by #{Chef::Dist::PRODUCT} when executing a command."
@@ -27,7 +27,7 @@ class Chef
27
27
 
28
28
  provides(:homebrew_tap) { true }
29
29
 
30
- description "Use the homebrew_tap resource to add additional formula repositories to the Homebrew package manager."
30
+ description "Use the **homebrew_tap** resource to add additional formula repositories to the Homebrew package manager."
31
31
  introduced "14.0"
32
32
 
33
33
  include Chef::Mixin::HomebrewUser
@@ -0,0 +1,107 @@
1
+ #
2
+ # Author:: Joshua Timberman (<jtimberman@chef.io>)
3
+ # Author:: Dan Webb (<dan@webb-agile-solutions.ltd>)
4
+ #
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
+ # Copyright:: Copyright (c) Webb Agile Solutions Ltd.
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ require_relative "../resource"
22
+ require_relative "../dist"
23
+
24
+ class Chef
25
+ class Resource
26
+ class HomebrewUpdate < Chef::Resource
27
+ unified_mode true
28
+
29
+ provides(:homebrew_update) { true }
30
+
31
+ description "Use the **homebrew_update** resource to manage Homebrew repository updates on macOS."
32
+ introduced "16.2"
33
+ examples <<~DOC
34
+ **Update the homebrew repository data at a specified interval**:
35
+ ```ruby
36
+ homebrew_update 'all platforms' do
37
+ frequency 86400
38
+ action :periodic
39
+ end
40
+ ```
41
+ **Update the Homebrew repository at the start of a #{Chef::Dist::PRODUCT} run**:
42
+ ```ruby
43
+ homebrew_update 'update'
44
+ ```
45
+ DOC
46
+
47
+ # allow bare homebrew_update with no name
48
+ property :name, String, default: ""
49
+
50
+ property :frequency, Integer,
51
+ description: "Determines how frequently (in seconds) Homebrew updates are made. Use this property when the `:periodic` action is specified.",
52
+ default: 86_400
53
+
54
+ default_action :periodic
55
+ allowed_actions :update, :periodic
56
+
57
+ action_class do
58
+ BREW_STAMP_DIR = "/var/lib/homebrew/periodic".freeze
59
+ BREW_STAMP = "#{BREW_STAMP_DIR}/update-success-stamp".freeze
60
+
61
+ # Determines whether we need to run `homebrew update`
62
+ #
63
+ # @return [Boolean]
64
+ def brew_up_to_date?
65
+ ::File.exist?("#{BREW_STAMP}") &&
66
+ ::File.mtime("#{BREW_STAMP}") > Time.now - new_resource.frequency
67
+ end
68
+
69
+ def do_update
70
+ directory BREW_STAMP_DIR do
71
+ recursive true
72
+ end
73
+
74
+ file "#{BREW_STAMP}" do
75
+ content "BREW::Update::Post-Invoke-Success\n"
76
+ action :create_if_missing
77
+ end
78
+
79
+ execute "brew update" do
80
+ command %w{brew update}
81
+ default_env true
82
+ user Homebrew.owner
83
+ notifies :touch, "file[#{BREW_STAMP}]", :immediately
84
+ end
85
+ end
86
+ end
87
+
88
+ action :periodic do
89
+ return unless mac_os_x?
90
+
91
+ unless brew_up_to_date?
92
+ converge_by "update new lists of packages" do
93
+ do_update
94
+ end
95
+ end
96
+ end
97
+
98
+ action :update do
99
+ return unless mac_os_x?
100
+
101
+ converge_by "force update new lists of packages" do
102
+ do_update
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -1,4 +1,7 @@
1
1
  #
2
+ # Copyright:: Copyright (c) Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
2
5
  # Licensed under the Apache License, Version 2.0 (the "License");
3
6
  # you may not use this file except in compliance with the License.
4
7
  # You may obtain a copy of the License at
@@ -13,6 +16,7 @@
13
16
  #
14
17
 
15
18
  require_relative "../resource"
19
+ require_relative "../dist"
16
20
 
17
21
  class Chef
18
22
  class Resource
@@ -23,16 +27,16 @@ class Chef
23
27
 
24
28
  provides :hostname
25
29
 
26
- description "Use the hostname resource to set the system's hostname, configure hostname and hosts config file, and re-run the Ohai hostname plugin so the hostname will be available in subsequent cookbooks."
30
+ description "Use the **hostname** resource to set the system's hostname, configure hostname and hosts config file, and re-run the Ohai hostname plugin so the hostname will be available in subsequent cookbooks."
27
31
  introduced "14.0"
28
32
  examples <<~DOC
29
- Set the hostname using the IP address, as detected by Ohai
33
+ **Set the hostname using the IP address, as detected by Ohai**:
30
34
 
31
35
  ```ruby
32
36
  hostname 'example'
33
37
  ```
34
38
 
35
- Manually specify the hostname and IP address
39
+ **Manually specify the hostname and IP address**:
36
40
 
37
41
  ```ruby
38
42
  hostname 'statically_configured_host' do
@@ -149,7 +153,7 @@ class Chef
149
153
  # this must come before other methods like /etc/hostname and /etc/sysconfig/network
150
154
  declare_resource(:execute, "hostnamectl set-hostname #{new_resource.hostname}") do
151
155
  notifies :reload, "ohai[reload hostname]"
152
- not_if { shell_out!("hostnamectl status", { returns: [0, 1] }).stdout =~ /Static hostname:\s*#{new_resource.hostname}\s*$/ }
156
+ not_if { shell_out!("hostnamectl status", returns: [0, 1]).stdout =~ /Static hostname:\s*#{new_resource.hostname}\s*$/ }
153
157
  end
154
158
  when ::File.exist?("/etc/hostname")
155
159
  # debian family uses /etc/hostname
@@ -168,7 +172,7 @@ class Chef
168
172
  # older non-systemd RHEL/Fedora derived
169
173
  append_replacing_matching_lines("/etc/sysconfig/network", /^HOSTNAME\s*=/, "HOSTNAME=#{new_resource.hostname}")
170
174
  when ::File.exist?("/etc/HOSTNAME")
171
- # SuSE/OpenSUSE uses /etc/HOSTNAME
175
+ # SuSE/openSUSE uses /etc/HOSTNAME
172
176
  declare_resource(:file, "/etc/HOSTNAME") do
173
177
  content "#{new_resource.hostname}\n"
174
178
  owner "root"
@@ -199,24 +203,7 @@ class Chef
199
203
  group node["root_group"]
200
204
  mode "0644"
201
205
  end
202
- when ::File.exist?("/etc/nodename")
203
- # Solaris <= 5.10 systems prior to svccfg taking over this functionality (must come before svccfg handling)
204
- declare_resource(:file, "/etc/nodename") do
205
- content "#{new_resource.hostname}\n"
206
- owner "root"
207
- group node["root_group"]
208
- mode "0644"
209
- end
210
- # Solaris also has /etc/inet/hosts (copypasta alert)
211
- unless new_resource.ipaddress.nil?
212
- newline = "#{new_resource.ipaddress} #{new_resource.hostname}"
213
- newline << " #{new_resource.aliases.join(" ")}" if new_resource.aliases && !new_resource.aliases.empty?
214
- newline << " #{new_resource.hostname[/[^\.]*/]}"
215
- r = append_replacing_matching_lines("/etc/inet/hosts", /^#{new_resource.ipaddress}\s+|\s+#{new_resource.hostname}\s+/, newline)
216
- r.notifies :reload, "ohai[reload hostname]"
217
- end
218
- when ::File.exist?("/usr/sbin/svccfg")
219
- # Solaris >= 5.11 systems using svccfg (must come after /etc/nodename handling)
206
+ when ::File.exist?("/usr/sbin/svccfg") # solaris 5.11
220
207
  declare_resource(:execute, "svccfg -s system/identity:node setprop config/nodename=\'#{new_resource.hostname}\'") do
221
208
  notifies :run, "execute[svcadm refresh]", :immediately
222
209
  notifies :run, "execute[svcadm restart]", :immediately
@@ -262,7 +249,7 @@ class Chef
262
249
 
263
250
  # reboot because $windows
264
251
  declare_resource(:reboot, "setting hostname") do
265
- reason "chef setting hostname"
252
+ reason "#{Chef::Dist::PRODUCT} updated system hostname"
266
253
  action :nothing
267
254
  only_if { new_resource.windows_reboot }
268
255
  end
@@ -26,7 +26,7 @@ class Chef
26
26
 
27
27
  provides :http_request
28
28
 
29
- description "Use the http_request resource to send an HTTP request (GET, PUT, POST, DELETE, HEAD, or OPTIONS) with an arbitrary message. This resource is often useful when custom callbacks are necessary."
29
+ description "Use the **http_request** resource to send an HTTP request (GET, PUT, POST, DELETE, HEAD, or OPTIONS) with an arbitrary message. This resource is often useful when custom callbacks are necessary."
30
30
 
31
31
  default_action :get
32
32
  allowed_actions :get, :patch, :put, :post, :delete, :head, :options
@@ -30,7 +30,7 @@ class Chef
30
30
 
31
31
  provides :ifconfig
32
32
 
33
- description "Use the ifconfig resource to manage interfaces on Unix and Linux systems."
33
+ description "Use the **ifconfig** resource to manage interfaces on Unix and Linux systems."
34
34
 
35
35
  state_attrs :inet_addr, :mask
36
36
 
@@ -45,11 +45,11 @@ class Chef
45
45
  description: "The hardware address for the network interface."
46
46
 
47
47
  property :mask, String,
48
- description: "The decimal representation of the network mask. For example: 255.255.255.0."
48
+ description: "The decimal representation of the network mask. For example: `255.255.255.0`."
49
49
 
50
50
  property :family, String, default: "inet",
51
- introduced: "14.0",
52
- description: "Networking family option for Debian-based systems; for example: inet or inet6."
51
+ introduced: "14.0",
52
+ description: "Networking family option for Debian-based systems; for example: `inet` or `inet6`."
53
53
 
54
54
  property :inet_addr, String,
55
55
  description: "The Internet host address for the network interface."
@@ -81,11 +81,11 @@ class Chef
81
81
 
82
82
  property :ethtool_opts, String,
83
83
  introduced: "13.4",
84
- description: "Options to be passed to ethtool(8). For example: -A eth0 autoneg off rx off tx off."
84
+ description: "Options to be passed to ethtool(8). For example: `-A eth0 autoneg off rx off tx off`."
85
85
 
86
86
  property :bonding_opts, String,
87
87
  introduced: "13.4",
88
- description: "Bonding options to pass via BONDING_OPTS on RHEL and CentOS. For example: mode=active-backup miimon=100."
88
+ description: "Bonding options to pass via `BONDING_OPTS` on RHEL and CentOS. For example: `mode=active-backup miimon=100`."
89
89
 
90
90
  property :master, String,
91
91
  introduced: "13.4",
@@ -93,7 +93,7 @@ class Chef
93
93
 
94
94
  property :slave, String,
95
95
  introduced: "13.4",
96
- description: "When set to yes, this device is controlled by the channel bonding interface that is specified via the master property."
96
+ description: "When set to `yes`, this device is controlled by the channel bonding interface that is specified via the `master` property."
97
97
 
98
98
  property :vlan, String,
99
99
  introduced: "14.4",