chef 15.17.4 → 16.0.257

Sign up to get free protection for your applications and to get access to all the features.
Files changed (569) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +14 -20
  3. data/README.md +6 -6
  4. data/Rakefile +18 -23
  5. data/chef-universal-mingw32.gemspec +4 -4
  6. data/chef.gemspec +10 -26
  7. data/lib/chef/action_collection.rb +16 -5
  8. data/lib/chef/api_client/registration.rb +2 -2
  9. data/lib/chef/application.rb +33 -54
  10. data/lib/chef/application/apply.rb +20 -3
  11. data/lib/chef/application/base.rb +8 -3
  12. data/lib/chef/application/exit_code.rb +2 -2
  13. data/lib/chef/application/knife.rb +1 -1
  14. data/lib/chef/chef_class.rb +4 -4
  15. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  16. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  18. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
  19. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  20. data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
  21. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  22. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  23. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
  24. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  25. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  26. data/lib/chef/chef_fs/path_utils.rb +3 -3
  27. data/lib/chef/client.rb +16 -14
  28. data/lib/chef/config.rb +1 -1
  29. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  30. data/lib/chef/cookbook/gem_installer.rb +1 -1
  31. data/lib/chef/cookbook/metadata.rb +45 -22
  32. data/lib/chef/cookbook_version.rb +40 -5
  33. data/lib/chef/data_bag.rb +2 -2
  34. data/lib/chef/data_collector/error_handlers.rb +1 -1
  35. data/lib/chef/data_collector/run_end_message.rb +7 -1
  36. data/lib/chef/deprecated.rb +1 -9
  37. data/lib/chef/dist.rb +8 -0
  38. data/lib/chef/dsl/chef_vault.rb +84 -0
  39. data/lib/chef/dsl/declare_resource.rb +7 -5
  40. data/lib/chef/dsl/platform_introspection.rb +2 -3
  41. data/lib/chef/dsl/recipe.rb +7 -12
  42. data/lib/chef/dsl/universal.rb +3 -7
  43. data/lib/chef/environment.rb +2 -2
  44. data/lib/chef/event_dispatch/base.rb +3 -0
  45. data/lib/chef/exceptions.rb +0 -3
  46. data/lib/chef/formatters/doc.rb +1 -1
  47. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  48. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  49. data/lib/chef/formatters/indentable_output_stream.rb +7 -16
  50. data/lib/chef/http.rb +1 -2
  51. data/lib/chef/http/http_request.rb +3 -2
  52. data/lib/chef/knife.rb +1 -3
  53. data/lib/chef/knife/acl_add.rb +57 -0
  54. data/lib/chef/knife/acl_base.rb +183 -0
  55. data/lib/chef/knife/acl_bulk_add.rb +78 -0
  56. data/lib/chef/knife/acl_bulk_remove.rb +83 -0
  57. data/lib/chef/knife/acl_remove.rb +62 -0
  58. data/lib/chef/knife/acl_show.rb +56 -0
  59. data/lib/chef/knife/bootstrap.rb +93 -97
  60. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  61. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  62. data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
  63. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
  64. data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
  65. data/lib/chef/knife/cookbook_download.rb +1 -1
  66. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  67. data/lib/chef/knife/core/bootstrap_context.rb +63 -60
  68. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  69. data/lib/chef/knife/core/generic_presenter.rb +4 -3
  70. data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
  71. data/lib/chef/knife/core/node_presenter.rb +2 -2
  72. data/lib/chef/knife/core/status_presenter.rb +5 -5
  73. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  74. data/lib/chef/knife/core/ui.rb +17 -1
  75. data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
  76. data/lib/chef/knife/data_bag_secret_options.rb +18 -45
  77. data/lib/chef/knife/environment_compare.rb +1 -1
  78. data/lib/chef/knife/exec.rb +2 -2
  79. data/lib/chef/knife/group_add.rb +55 -0
  80. data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
  81. data/lib/chef/knife/group_destroy.rb +53 -0
  82. data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
  83. data/lib/chef/knife/group_remove.rb +56 -0
  84. data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
  85. data/lib/chef/knife/list.rb +1 -1
  86. data/lib/chef/knife/ssh.rb +12 -50
  87. data/lib/chef/knife/status.rb +3 -3
  88. data/lib/chef/knife/supermarket_download.rb +1 -2
  89. data/lib/chef/knife/supermarket_install.rb +1 -2
  90. data/lib/chef/knife/supermarket_list.rb +1 -2
  91. data/lib/chef/knife/supermarket_search.rb +1 -2
  92. data/lib/chef/knife/supermarket_share.rb +1 -2
  93. data/lib/chef/knife/supermarket_show.rb +1 -2
  94. data/lib/chef/knife/supermarket_unshare.rb +1 -2
  95. data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
  96. data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
  97. data/lib/chef/knife/user_invite_list.rb +34 -0
  98. data/lib/chef/knife/user_invite_recind.rb +63 -0
  99. data/lib/chef/knife/yaml_convert.rb +91 -0
  100. data/lib/chef/log.rb +1 -1
  101. data/lib/chef/mixin/create_path.rb +8 -8
  102. data/lib/chef/mixin/openssl_helper.rb +3 -26
  103. data/lib/chef/mixin/powershell_exec.rb +10 -1
  104. data/lib/chef/mixin/powershell_out.rb +1 -1
  105. data/lib/chef/mixin/properties.rb +13 -1
  106. data/lib/chef/mixin/shell_out.rb +0 -4
  107. data/lib/chef/mixin/template.rb +0 -1
  108. data/lib/chef/monkey_patches/net_http.rb +0 -4
  109. data/lib/chef/node.rb +18 -6
  110. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  111. data/lib/chef/node/mixin/immutablize_array.rb +4 -0
  112. data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
  113. data/lib/chef/node_map.rb +7 -36
  114. data/lib/chef/platform/priority_map.rb +4 -4
  115. data/lib/chef/platform/query_helpers.rb +6 -34
  116. data/lib/chef/powershell.rb +14 -0
  117. data/lib/chef/property.rb +22 -4
  118. data/lib/chef/provider.rb +40 -6
  119. data/lib/chef/provider/cron.rb +2 -2
  120. data/lib/chef/provider/directory.rb +2 -2
  121. data/lib/chef/provider/dsc_resource.rb +1 -1
  122. data/lib/chef/provider/dsc_script.rb +1 -1
  123. data/lib/chef/provider/execute.rb +2 -8
  124. data/lib/chef/provider/file.rb +5 -5
  125. data/lib/chef/provider/git.rb +84 -27
  126. data/lib/chef/provider/group.rb +4 -4
  127. data/lib/chef/provider/http_request.rb +6 -6
  128. data/lib/chef/provider/ifconfig.rb +4 -4
  129. data/lib/chef/provider/launchd.rb +36 -51
  130. data/lib/chef/provider/link.rb +2 -2
  131. data/lib/chef/provider/mount.rb +5 -5
  132. data/lib/chef/provider/mount/solaris.rb +1 -0
  133. data/lib/chef/provider/osx_profile.rb +7 -3
  134. data/lib/chef/provider/package.rb +2 -2
  135. data/lib/chef/provider/package/cab.rb +3 -4
  136. data/lib/chef/provider/package/chocolatey.rb +1 -3
  137. data/lib/chef/provider/package/dnf.rb +66 -10
  138. data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
  139. data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
  140. data/lib/chef/provider/package/dnf/version.rb +5 -1
  141. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
  142. data/lib/chef/provider/package/homebrew.rb +106 -42
  143. data/lib/chef/provider/package/msu.rb +3 -1
  144. data/lib/chef/provider/package/pacman.rb +25 -34
  145. data/lib/chef/provider/package/powershell.rb +2 -6
  146. data/lib/chef/provider/package/rubygems.rb +29 -2
  147. data/lib/chef/provider/package/snap.rb +27 -96
  148. data/lib/chef/provider/package/windows.rb +3 -2
  149. data/lib/chef/provider/package/windows/msi.rb +2 -2
  150. data/lib/chef/provider/package/yum.rb +0 -8
  151. data/lib/chef/provider/package/yum/yum_helper.py +0 -4
  152. data/lib/chef/provider/package/zypper.rb +1 -1
  153. data/lib/chef/provider/powershell_script.rb +4 -10
  154. data/lib/chef/provider/registry_key.rb +4 -4
  155. data/lib/chef/provider/remote_directory.rb +3 -3
  156. data/lib/chef/provider/remote_file/ftp.rb +3 -2
  157. data/lib/chef/provider/remote_file/local_file.rb +2 -1
  158. data/lib/chef/provider/remote_file/sftp.rb +3 -2
  159. data/lib/chef/provider/route.rb +5 -3
  160. data/lib/chef/provider/ruby_block.rb +1 -1
  161. data/lib/chef/provider/script.rb +2 -2
  162. data/lib/chef/provider/service.rb +8 -8
  163. data/lib/chef/provider/service/aixinit.rb +1 -1
  164. data/lib/chef/provider/service/arch.rb +2 -2
  165. data/lib/chef/provider/service/debian.rb +31 -29
  166. data/lib/chef/provider/service/gentoo.rb +2 -2
  167. data/lib/chef/provider/service/macosx.rb +7 -12
  168. data/lib/chef/provider/service/openbsd.rb +1 -1
  169. data/lib/chef/provider/service/redhat.rb +2 -2
  170. data/lib/chef/provider/service/simple.rb +3 -3
  171. data/lib/chef/provider/service/systemd.rb +12 -12
  172. data/lib/chef/provider/service/upstart.rb +1 -1
  173. data/lib/chef/provider/service/windows.rb +5 -11
  174. data/lib/chef/provider/subversion.rb +25 -5
  175. data/lib/chef/provider/systemd_unit.rb +26 -25
  176. data/lib/chef/provider/user.rb +6 -6
  177. data/lib/chef/provider/user/dscl.rb +3 -3
  178. data/lib/chef/provider/user/mac.rb +10 -9
  179. data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
  180. data/lib/chef/provider/windows_env.rb +3 -3
  181. data/lib/chef/provider/windows_script.rb +2 -2
  182. data/lib/chef/provider/windows_task.rb +7 -9
  183. data/lib/chef/provider/yum_repository.rb +1 -1
  184. data/lib/chef/provider/zypper_repository.rb +11 -31
  185. data/lib/chef/providers.rb +0 -6
  186. data/lib/chef/recipe.rb +36 -0
  187. data/lib/chef/resource.rb +41 -56
  188. data/lib/chef/resource/action_class.rb +24 -22
  189. data/lib/chef/resource/alternatives.rb +149 -0
  190. data/lib/chef/resource/apt_package.rb +2 -1
  191. data/lib/chef/resource/apt_preference.rb +69 -2
  192. data/lib/chef/resource/apt_repository.rb +337 -5
  193. data/lib/chef/resource/apt_update.rb +52 -1
  194. data/lib/chef/resource/archive_file.rb +9 -29
  195. data/lib/chef/resource/bash.rb +2 -0
  196. data/lib/chef/resource/bff_package.rb +9 -1
  197. data/lib/chef/resource/breakpoint.rb +0 -1
  198. data/lib/chef/resource/build_essential.rb +42 -48
  199. data/lib/chef/resource/cab_package.rb +8 -1
  200. data/lib/chef/resource/chef_client_cron.rb +225 -0
  201. data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
  202. data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
  203. data/lib/chef/resource/chef_gem.rb +9 -16
  204. data/lib/chef/resource/chef_handler.rb +2 -1
  205. data/lib/chef/resource/chef_sleep.rb +0 -1
  206. data/lib/chef/resource/chef_vault_secret.rb +135 -0
  207. data/lib/chef/resource/chocolatey_config.rb +3 -1
  208. data/lib/chef/resource/chocolatey_feature.rb +2 -1
  209. data/lib/chef/resource/chocolatey_package.rb +2 -1
  210. data/lib/chef/resource/chocolatey_source.rb +2 -1
  211. data/lib/chef/resource/cookbook_file.rb +1 -1
  212. data/lib/chef/resource/cron.rb +22 -68
  213. data/lib/chef/resource/cron_access.rb +8 -15
  214. data/lib/chef/resource/cron_d.rb +9 -75
  215. data/lib/chef/resource/csh.rb +2 -0
  216. data/lib/chef/resource/directory.rb +2 -2
  217. data/lib/chef/resource/dmg_package.rb +4 -4
  218. data/lib/chef/resource/dnf_package.rb +2 -3
  219. data/lib/chef/resource/dpkg_package.rb +2 -1
  220. data/lib/chef/resource/dsc_resource.rb +6 -4
  221. data/lib/chef/resource/dsc_script.rb +3 -2
  222. data/lib/chef/resource/execute.rb +13 -12
  223. data/lib/chef/resource/file.rb +3 -1
  224. data/lib/chef/resource/freebsd_package.rb +2 -1
  225. data/lib/chef/resource/gem_package.rb +14 -6
  226. data/lib/chef/resource/group.rb +4 -1
  227. data/lib/chef/resource/helpers/cron_validations.rb +98 -0
  228. data/lib/chef/resource/homebrew_cask.rb +5 -4
  229. data/lib/chef/resource/homebrew_package.rb +4 -2
  230. data/lib/chef/resource/homebrew_tap.rb +2 -1
  231. data/lib/chef/resource/hostname.rb +41 -36
  232. data/lib/chef/resource/http_request.rb +0 -1
  233. data/lib/chef/resource/ifconfig.rb +1 -1
  234. data/lib/chef/resource/ips_package.rb +10 -2
  235. data/lib/chef/resource/kernel_module.rb +29 -29
  236. data/lib/chef/resource/ksh.rb +2 -0
  237. data/lib/chef/resource/launchd.rb +6 -6
  238. data/lib/chef/resource/link.rb +1 -23
  239. data/lib/chef/resource/locale.rb +58 -24
  240. data/lib/chef/resource/log.rb +12 -1
  241. data/lib/chef/resource/lwrp_base.rb +1 -8
  242. data/lib/chef/resource/macos_userdefaults.rb +9 -6
  243. data/lib/chef/resource/macosx_service.rb +2 -1
  244. data/lib/chef/resource/macports_package.rb +10 -2
  245. data/lib/chef/resource/mdadm.rb +62 -2
  246. data/lib/chef/resource/mount.rb +3 -0
  247. data/lib/chef/resource/msu_package.rb +13 -1
  248. data/lib/chef/resource/notify_group.rb +8 -3
  249. data/lib/chef/resource/ohai.rb +19 -3
  250. data/lib/chef/resource/ohai_hint.rb +3 -12
  251. data/lib/chef/resource/openbsd_package.rb +9 -1
  252. data/lib/chef/resource/openssl_dhparam.rb +10 -1
  253. data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
  254. data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
  255. data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
  256. data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
  257. data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
  258. data/lib/chef/resource/openssl_x509_crl.rb +12 -1
  259. data/lib/chef/resource/openssl_x509_request.rb +37 -1
  260. data/lib/chef/resource/osx_profile.rb +3 -2
  261. data/lib/chef/resource/package.rb +2 -1
  262. data/lib/chef/resource/pacman_package.rb +2 -1
  263. data/lib/chef/resource/paludis_package.rb +12 -3
  264. data/lib/chef/resource/perl.rb +2 -0
  265. data/lib/chef/resource/plist.rb +207 -0
  266. data/lib/chef/resource/portage_package.rb +13 -3
  267. data/lib/chef/resource/powershell_package.rb +1 -3
  268. data/lib/chef/resource/powershell_package_source.rb +3 -1
  269. data/lib/chef/resource/powershell_script.rb +7 -17
  270. data/lib/chef/resource/python.rb +2 -0
  271. data/lib/chef/resource/reboot.rb +0 -1
  272. data/lib/chef/resource/registry_key.rb +1 -2
  273. data/lib/chef/resource/remote_directory.rb +2 -0
  274. data/lib/chef/resource/remote_file.rb +2 -0
  275. data/lib/chef/resource/rhsm_errata.rb +0 -1
  276. data/lib/chef/resource/rhsm_errata_level.rb +0 -1
  277. data/lib/chef/resource/rhsm_register.rb +2 -1
  278. data/lib/chef/resource/rhsm_repo.rb +3 -1
  279. data/lib/chef/resource/rhsm_subscription.rb +4 -1
  280. data/lib/chef/resource/route.rb +5 -1
  281. data/lib/chef/resource/rpm_package.rb +9 -2
  282. data/lib/chef/resource/ruby.rb +2 -0
  283. data/lib/chef/resource/ruby_block.rb +1 -1
  284. data/lib/chef/resource/scm/_scm.rb +48 -0
  285. data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
  286. data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
  287. data/lib/chef/resource/script.rb +6 -3
  288. data/lib/chef/resource/service.rb +6 -7
  289. data/lib/chef/resource/smartos_package.rb +9 -1
  290. data/lib/chef/resource/snap_package.rb +3 -1
  291. data/lib/chef/resource/solaris_package.rb +9 -1
  292. data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
  293. data/lib/chef/resource/sudo.rb +9 -9
  294. data/lib/chef/resource/support/cron.d.erb +1 -1
  295. data/lib/chef/resource/support/cron_access.erb +1 -1
  296. data/lib/chef/resource/support/sudoer.erb +1 -2
  297. data/lib/chef/resource/support/ulimit.erb +41 -0
  298. data/lib/chef/resource/swap_file.rb +5 -3
  299. data/lib/chef/resource/sysctl.rb +2 -2
  300. data/lib/chef/resource/systemd_unit.rb +4 -2
  301. data/lib/chef/resource/template.rb +0 -1
  302. data/lib/chef/resource/timezone.rb +7 -18
  303. data/lib/chef/resource/user.rb +1 -3
  304. data/lib/chef/resource/user/aix_user.rb +0 -2
  305. data/lib/chef/resource/user/dscl_user.rb +1 -1
  306. data/lib/chef/resource/user/linux_user.rb +0 -2
  307. data/lib/chef/resource/user/mac_user.rb +1 -1
  308. data/lib/chef/resource/user/pw_user.rb +0 -2
  309. data/lib/chef/resource/user/solaris_user.rb +0 -2
  310. data/lib/chef/resource/user/windows_user.rb +0 -2
  311. data/lib/chef/resource/user_ulimit.rb +114 -0
  312. data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
  313. data/lib/chef/resource/windows_ad_join.rb +19 -6
  314. data/lib/chef/resource/windows_auto_run.rb +0 -1
  315. data/lib/chef/resource/windows_certificate.rb +1 -1
  316. data/lib/chef/resource/windows_dfs_folder.rb +0 -1
  317. data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
  318. data/lib/chef/resource/windows_dfs_server.rb +0 -1
  319. data/lib/chef/resource/windows_dns_record.rb +0 -1
  320. data/lib/chef/resource/windows_dns_zone.rb +0 -1
  321. data/lib/chef/resource/windows_env.rb +2 -3
  322. data/lib/chef/resource/windows_feature.rb +2 -2
  323. data/lib/chef/resource/windows_feature_dism.rb +9 -22
  324. data/lib/chef/resource/windows_feature_powershell.rb +17 -82
  325. data/lib/chef/resource/windows_firewall_rule.rb +119 -10
  326. data/lib/chef/resource/windows_font.rb +1 -3
  327. data/lib/chef/resource/windows_package.rb +13 -4
  328. data/lib/chef/resource/windows_pagefile.rb +0 -1
  329. data/lib/chef/resource/windows_path.rb +0 -1
  330. data/lib/chef/resource/windows_printer.rb +0 -1
  331. data/lib/chef/resource/windows_printer_port.rb +0 -1
  332. data/lib/chef/resource/windows_script.rb +3 -4
  333. data/lib/chef/resource/windows_security_policy.rb +90 -0
  334. data/lib/chef/resource/windows_service.rb +45 -31
  335. data/lib/chef/resource/windows_share.rb +3 -7
  336. data/lib/chef/resource/windows_shortcut.rb +0 -1
  337. data/lib/chef/resource/windows_task.rb +14 -15
  338. data/lib/chef/resource/windows_uac.rb +0 -1
  339. data/lib/chef/resource/windows_user_privilege.rb +157 -0
  340. data/lib/chef/resource/windows_workgroup.rb +0 -1
  341. data/lib/chef/resource/yum_package.rb +3 -1
  342. data/lib/chef/resource/yum_repository.rb +2 -1
  343. data/lib/chef/resource/zypper_package.rb +3 -2
  344. data/lib/chef/resource/zypper_repository.rb +2 -1
  345. data/lib/chef/resource_builder.rb +8 -0
  346. data/lib/chef/resource_inspector.rb +6 -6
  347. data/lib/chef/resource_resolver.rb +7 -14
  348. data/lib/chef/resources.rb +11 -3
  349. data/lib/chef/role.rb +2 -2
  350. data/lib/chef/run_context/cookbook_compiler.rb +29 -5
  351. data/lib/chef/shell.rb +23 -32
  352. data/lib/chef/shell/shell_session.rb +0 -2
  353. data/lib/chef/util/diff.rb +1 -1
  354. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  355. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  356. data/lib/chef/util/powershell/cmdlet.rb +1 -1
  357. data/lib/chef/version.rb +2 -2
  358. data/lib/chef/version_string.rb +1 -1
  359. data/lib/chef/win32/api/file.rb +18 -18
  360. data/lib/chef/win32/api/security.rb +6 -0
  361. data/lib/chef/win32/file.rb +3 -11
  362. data/lib/chef/win32/process.rb +2 -2
  363. data/lib/chef/win32/security.rb +40 -2
  364. data/spec/functional/assets/inittest +8 -7
  365. data/spec/functional/knife/ssh_spec.rb +27 -23
  366. data/spec/functional/resource/aix_service_spec.rb +1 -0
  367. data/spec/functional/resource/aixinit_service_spec.rb +8 -7
  368. data/spec/functional/resource/apt_package_spec.rb +1 -0
  369. data/spec/functional/resource/bff_spec.rb +2 -2
  370. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  371. data/spec/functional/resource/cron_spec.rb +11 -29
  372. data/spec/functional/resource/dnf_package_spec.rb +441 -156
  373. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  374. data/spec/functional/resource/git_spec.rb +184 -134
  375. data/spec/functional/resource/insserv_spec.rb +6 -5
  376. data/spec/functional/resource/link_spec.rb +17 -17
  377. data/spec/functional/resource/locale_spec.rb +13 -2
  378. data/spec/functional/resource/powershell_script_spec.rb +7 -68
  379. data/spec/functional/resource/rpm_spec.rb +2 -2
  380. data/spec/functional/resource/user/dscl_spec.rb +2 -2
  381. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  382. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  383. data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
  384. data/spec/functional/resource/windows_task_spec.rb +8 -8
  385. data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
  386. data/spec/functional/run_lock_spec.rb +1 -2
  387. data/spec/functional/shell_spec.rb +6 -6
  388. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  389. data/spec/functional/version_spec.rb +1 -1
  390. data/spec/functional/win32/registry_spec.rb +0 -6
  391. data/spec/functional/win32/security_spec.rb +22 -0
  392. data/spec/functional/win32/service_manager_spec.rb +1 -1
  393. data/spec/integration/client/client_spec.rb +123 -2
  394. data/spec/integration/knife/cookbook_show_spec.rb +28 -26
  395. data/spec/integration/knife/data_bag_show_spec.rb +1 -1
  396. data/spec/integration/knife/raw_spec.rb +30 -2
  397. data/spec/integration/knife/show_spec.rb +32 -3
  398. data/spec/integration/recipes/accumulator_spec.rb +1 -1
  399. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
  400. data/spec/integration/recipes/lwrp_spec.rb +1 -1
  401. data/spec/integration/recipes/noop_resource_spec.rb +1 -1
  402. data/spec/integration/recipes/notifies_spec.rb +50 -21
  403. data/spec/integration/recipes/notifying_block_spec.rb +9 -6
  404. data/spec/integration/recipes/provider_choice.rb +2 -0
  405. data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
  406. data/spec/integration/recipes/resource_action_spec.rb +16 -11
  407. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
  408. data/spec/integration/recipes/resource_load_spec.rb +133 -13
  409. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  410. data/spec/integration/recipes/use_partial_spec.rb +112 -0
  411. data/spec/integration/solo/solo_spec.rb +3 -3
  412. data/spec/scripts/ssl-serve.rb +1 -1
  413. data/spec/spec_helper.rb +11 -14
  414. data/spec/support/chef_helpers.rb +2 -2
  415. data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
  416. data/spec/support/platform_helpers.rb +44 -19
  417. data/spec/support/platforms/win32/spec_service.rb +1 -1
  418. data/spec/support/recipe_dsl_helper.rb +83 -0
  419. data/spec/support/shared/functional/directory_resource.rb +1 -1
  420. data/spec/support/shared/functional/execute_resource.rb +1 -1
  421. data/spec/support/shared/functional/file_resource.rb +3 -3
  422. data/spec/support/shared/functional/win32_service.rb +1 -1
  423. data/spec/support/shared/functional/windows_script.rb +5 -18
  424. data/spec/support/shared/integration/knife_support.rb +14 -8
  425. data/spec/unit/application/apply_spec.rb +3 -0
  426. data/spec/unit/application/client_spec.rb +5 -1
  427. data/spec/unit/application_spec.rb +1 -9
  428. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
  429. data/spec/unit/client_spec.rb +7 -5
  430. data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
  431. data/spec/unit/cookbook/metadata_spec.rb +38 -19
  432. data/spec/unit/data_bag_spec.rb +1 -1
  433. data/spec/unit/data_collector_spec.rb +38 -17
  434. data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
  435. data/spec/unit/environment_spec.rb +7 -7
  436. data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
  437. data/spec/unit/file_access_control_spec.rb +1 -1
  438. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
  439. data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
  440. data/spec/unit/knife/bootstrap_spec.rb +36 -54
  441. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  442. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  443. data/spec/unit/knife/cookbook_show_spec.rb +1 -0
  444. data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
  445. data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
  446. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  447. data/spec/unit/knife/core/ui_spec.rb +16 -0
  448. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
  449. data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
  450. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  451. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  452. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  453. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  454. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  455. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  456. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  457. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  458. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  459. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  460. data/spec/unit/knife/ssh_spec.rb +10 -113
  461. data/spec/unit/knife/status_spec.rb +1 -1
  462. data/spec/unit/knife/supermarket_share_spec.rb +3 -5
  463. data/spec/unit/knife_spec.rb +18 -0
  464. data/spec/unit/lwrp_spec.rb +4 -4
  465. data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
  466. data/spec/unit/mixin/securable_spec.rb +1 -0
  467. data/spec/unit/mixin/user_context_spec.rb +9 -1
  468. data/spec/unit/node/attribute_spec.rb +2 -2
  469. data/spec/unit/node_spec.rb +24 -0
  470. data/spec/unit/platform/query_helpers_spec.rb +0 -143
  471. data/spec/unit/property/state_spec.rb +12 -7
  472. data/spec/unit/property/validation_spec.rb +25 -1
  473. data/spec/unit/property_spec.rb +18 -15
  474. data/spec/unit/provider/apt_preference_spec.rb +14 -10
  475. data/spec/unit/provider/apt_repository_spec.rb +9 -11
  476. data/spec/unit/provider/apt_update_spec.rb +12 -11
  477. data/spec/unit/provider/cookbook_file_spec.rb +4 -4
  478. data/spec/unit/provider/cron_spec.rb +2 -2
  479. data/spec/unit/provider/directory_spec.rb +4 -15
  480. data/spec/unit/provider/file_spec.rb +4 -4
  481. data/spec/unit/provider/git_spec.rb +44 -4
  482. data/spec/unit/provider/link_spec.rb +0 -1
  483. data/spec/unit/provider/log_spec.rb +3 -3
  484. data/spec/unit/provider/mdadm_spec.rb +3 -3
  485. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  486. data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
  487. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  488. data/spec/unit/provider/package/homebrew_spec.rb +280 -174
  489. data/spec/unit/provider/package/msu_spec.rb +3 -3
  490. data/spec/unit/provider/package/pacman_spec.rb +65 -147
  491. data/spec/unit/provider/package/powershell_spec.rb +88 -96
  492. data/spec/unit/provider/package/rubygems_spec.rb +221 -31
  493. data/spec/unit/provider/package/snap_spec.rb +1 -1
  494. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  495. data/spec/unit/provider/package/windows_spec.rb +53 -30
  496. data/spec/unit/provider/powershell_script_spec.rb +21 -61
  497. data/spec/unit/provider/remote_file_spec.rb +3 -4
  498. data/spec/unit/provider/service/arch_service_spec.rb +2 -3
  499. data/spec/unit/provider/service/debian_service_spec.rb +35 -14
  500. data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
  501. data/spec/unit/provider/service/macosx_spec.rb +210 -214
  502. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  503. data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
  504. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  505. data/spec/unit/provider/service/windows_spec.rb +6 -2
  506. data/spec/unit/provider/subversion_spec.rb +4 -2
  507. data/spec/unit/provider/systemd_unit_spec.rb +24 -28
  508. data/spec/unit/provider/template_spec.rb +3 -4
  509. data/spec/unit/provider/zypper_repository_spec.rb +25 -75
  510. data/spec/unit/provider_resolver_spec.rb +11 -11
  511. data/spec/unit/provider_spec.rb +0 -1
  512. data/spec/unit/recipe_spec.rb +68 -0
  513. data/spec/unit/resource/alternatives_spec.rb +120 -0
  514. data/spec/unit/resource/apt_preference_spec.rb +0 -18
  515. data/spec/unit/resource/apt_repository_spec.rb +0 -18
  516. data/spec/unit/resource/apt_update_spec.rb +0 -18
  517. data/spec/unit/resource/archive_file_spec.rb +2 -11
  518. data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
  519. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
  520. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
  521. data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
  522. data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
  523. data/spec/unit/resource/cron_d_spec.rb +6 -48
  524. data/spec/unit/resource/cron_spec.rb +4 -10
  525. data/spec/unit/resource/gem_package_spec.rb +3 -3
  526. data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
  527. data/spec/unit/resource/link_spec.rb +0 -4
  528. data/spec/unit/resource/locale_spec.rb +0 -34
  529. data/spec/unit/resource/ohai_spec.rb +56 -2
  530. data/spec/unit/resource/plist_spec.rb +130 -0
  531. data/spec/unit/resource/powershell_script_spec.rb +0 -5
  532. data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
  533. data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
  534. data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
  535. data/spec/unit/resource/service_spec.rb +4 -0
  536. data/spec/unit/resource/user_spec.rb +2 -2
  537. data/spec/unit/resource/user_ulimit_spec.rb +53 -0
  538. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  539. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  540. data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
  541. data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
  542. data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
  543. data/spec/unit/resource/windows_package_spec.rb +4 -1
  544. data/spec/unit/resource/windows_service_spec.rb +9 -0
  545. data/spec/unit/resource/windows_task_spec.rb +1 -1
  546. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  547. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  548. data/spec/unit/resource_reporter_spec.rb +1 -5
  549. data/spec/unit/resource_spec.rb +11 -4
  550. data/spec/unit/role_spec.rb +11 -11
  551. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
  552. data/spec/unit/run_context_spec.rb +1 -1
  553. data/spec/unit/search/query_spec.rb +1 -1
  554. data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
  555. data/spec/unit/win32/security_spec.rb +3 -4
  556. data/tasks/rspec.rb +1 -1
  557. metadata +110 -75
  558. data/lib/chef/dsl/core.rb +0 -52
  559. data/lib/chef/knife/cookbook_site_share.rb +0 -41
  560. data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
  561. data/lib/chef/provider/apt_preference.rb +0 -93
  562. data/lib/chef/provider/apt_repository.rb +0 -358
  563. data/lib/chef/provider/apt_update.rb +0 -79
  564. data/lib/chef/provider/log.rb +0 -43
  565. data/lib/chef/provider/mdadm.rb +0 -85
  566. data/lib/chef/provider/ohai.rb +0 -45
  567. data/lib/chef/resource/git.rb +0 -37
  568. data/spec/functional/resource/windows_font_spec.rb +0 -49
  569. data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -27,11 +27,10 @@ class Chef
27
27
  class Service < Chef::Resource
28
28
  include ChefUtils::DSL::Service
29
29
  extend ChefUtils::DSL::Service
30
+ unified_mode true
30
31
 
31
32
  provides :service, target_mode: true
32
33
 
33
- identity_attr :service_name
34
-
35
34
  description "Use the service resource to manage a service."
36
35
 
37
36
  default_action :nothing
@@ -45,7 +44,7 @@ class Chef
45
44
 
46
45
  property :service_name, String,
47
46
  description: "An optional property to set the service name if it differs from the resource block's name.",
48
- name_property: true, identity: true
47
+ name_property: true
49
48
 
50
49
  # regex for match against ps -ef when !supports[:has_status] && status == nil
51
50
  property :pattern, String,
@@ -83,7 +82,7 @@ class Chef
83
82
  # specify overrides for the start_command, stop_command and
84
83
  # restart_command properties.
85
84
  property :init_command, String,
86
- description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{Chef::Dist::CLIENT} will use the default init command for the service provider being used.",
85
+ description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{Chef::Dist::PRODUCT} will use the default init command for the service provider being used.",
87
86
  desired_state: false
88
87
 
89
88
  # if the service is enabled or not
@@ -115,10 +114,10 @@ class Chef
115
114
  property :priority, [ Integer, String, Hash ],
116
115
  description: "Debian platform only. The relative priority of the program for start and shutdown ordering. May be an integer or a Hash. An integer is used to define the start run levels; stop run levels are then 100-integer. A Hash is used to define values for specific run levels. For example, { 2 => [:start, 20], 3 => [:stop, 55] } will set a priority of twenty for run level two and a priority of fifty-five for run level three."
117
116
 
118
- # timeout only applies to the windows service manager
119
117
  property :timeout, Integer,
120
- description: "Microsoft Windows platform only. The amount of time (in seconds) to wait before timing out.",
121
- desired_state: false
118
+ description: "The amount of time (in seconds) to wait before timing out.",
119
+ default: 900,
120
+ desired_state: false
122
121
 
123
122
  property :parameters, Hash,
124
123
  description: "Upstart only: A hash of parameters to pass to the service command for use in the service definition."
@@ -21,11 +21,19 @@ require_relative "package"
21
21
  class Chef
22
22
  class Resource
23
23
  class SmartosPackage < Chef::Resource::Package
24
- resource_name :smartos_package
24
+ unified_mode true
25
+
25
26
  provides :smartos_package
26
27
  provides :package, platform_family: "smartos"
27
28
 
28
29
  description "Use the smartos_package resource to manage packages for the SmartOS platform."
30
+
31
+ property :package_name, String,
32
+ description: "An optional property to set the package name if it differs from the resource block's name.",
33
+ identity: true
34
+
35
+ property :version, String,
36
+ description: "The version of a package to be installed or upgraded."
29
37
  end
30
38
  end
31
39
  end
@@ -21,7 +21,9 @@ require_relative "package"
21
21
  class Chef
22
22
  class Resource
23
23
  class SnapPackage < Chef::Resource::Package
24
- resource_name :snap_package
24
+ unified_mode true
25
+
26
+ provides :snap_package
25
27
 
26
28
  description "Use the snap_package resource to manage snap packages on Debian and Ubuntu platforms."
27
29
  introduced "15.0"
@@ -22,12 +22,20 @@ require_relative "package"
22
22
  class Chef
23
23
  class Resource
24
24
  class SolarisPackage < Chef::Resource::Package
25
- resource_name :solaris_package
25
+ unified_mode true
26
+
26
27
  provides :solaris_package
27
28
  provides :package, os: "solaris2", platform_family: "nexentacore"
28
29
  provides :package, os: "solaris2", platform_family: "solaris2", platform_version: "<= 5.10"
29
30
 
30
31
  description "The solaris_package resource is used to manage packages for the Solaris platform."
32
+
33
+ property :package_name, String,
34
+ description: "An optional property to set the package name if it differs from the resource block's name.",
35
+ identity: true
36
+
37
+ property :version, String,
38
+ description: "The version of a package to be installed or upgraded."
31
39
  end
32
40
  end
33
41
  end
@@ -23,7 +23,9 @@ require_relative "../dist"
23
23
  class Chef
24
24
  class Resource
25
25
  class SshKnownHostsEntry < Chef::Resource
26
- resource_name :ssh_known_hosts_entry
26
+ unified_mode true
27
+
28
+ provides :ssh_known_hosts_entry
27
29
 
28
30
  description "Use the ssh_known_hosts_entry resource to add an entry for the specified host in /etc/ssh/ssh_known_hosts or a user's known hosts file if specified."
29
31
  introduced "14.3"
@@ -45,7 +47,8 @@ class Chef
45
47
 
46
48
  property :timeout, Integer,
47
49
  description: "The timeout in seconds for ssh-keyscan.",
48
- default: 30
50
+ default: 30,
51
+ desired_state: false
49
52
 
50
53
  property :mode, String,
51
54
  description: "The file mode for the ssh_known_hosts file.",
@@ -88,7 +91,7 @@ class Chef
88
91
 
89
92
  r = with_run_context :root do
90
93
  find_resource(:template, "update ssh known hosts file #{new_resource.file_location}") do
91
- source ::File.expand_path("support/ssh_known_hosts.erb", __dir__)
94
+ source ::File.expand_path("../support/ssh_known_hosts.erb", __FILE__)
92
95
  local true
93
96
  path new_resource.file_location
94
97
  owner new_resource.owner
@@ -24,7 +24,8 @@ require_relative "../resource"
24
24
  class Chef
25
25
  class Resource
26
26
  class Sudo < Chef::Resource
27
- resource_name :sudo
27
+ unified_mode true
28
+
28
29
  provides(:sudo) { true }
29
30
 
30
31
  description "Use the sudo resource to add or remove individual sudo entries using sudoers.d files."\
@@ -148,14 +149,13 @@ class Chef
148
149
  validate_properties
149
150
 
150
151
  if docker? # don't even put this into resource collection unless we're in docker
151
- declare_resource(:package, "sudo") do
152
- action :nothing
152
+ package "sudo" do
153
153
  not_if "which sudo"
154
- end.run_action(:install)
154
+ end
155
155
  end
156
156
 
157
157
  target = "#{new_resource.config_prefix}/sudoers.d/"
158
- declare_resource(:directory, target) unless ::File.exist?(target)
158
+ directory(target)
159
159
 
160
160
  Chef::Log.warn("#{new_resource.filename} will be rendered, but will not take effect because the #{new_resource.config_prefix}/sudoers config lacks the includedir directive that loads configs from #{new_resource.config_prefix}/sudoers.d/!") if ::File.readlines("#{new_resource.config_prefix}/sudoers").grep(/includedir/).empty?
161
161
  file_path = "#{target}#{new_resource.filename}"
@@ -163,7 +163,7 @@ class Chef
163
163
  if new_resource.template
164
164
  logger.trace("Template property provided, all other properties ignored.")
165
165
 
166
- declare_resource(:template, file_path) do
166
+ template file_path do
167
167
  source new_resource.template
168
168
  mode "0440"
169
169
  variables new_resource.variables
@@ -171,8 +171,8 @@ class Chef
171
171
  action :create
172
172
  end
173
173
  else
174
- declare_resource(:template, file_path) do
175
- source ::File.expand_path("support/sudoer.erb", __dir__)
174
+ template file_path do
175
+ source ::File.expand_path("../support/sudoer.erb", __FILE__)
176
176
  local true
177
177
  mode "0440"
178
178
  variables sudoer: (new_resource.groups + new_resource.users).join(","),
@@ -228,7 +228,7 @@ class Chef
228
228
  end
229
229
 
230
230
  def visudo_content(path)
231
- if ::File.exist?(path)
231
+ if ::File.exists?(path)
232
232
  "cat #{new_resource.config_prefix}/sudoers | #{new_resource.visudo_binary} -cf - && #{new_resource.visudo_binary} -cf %{path}"
233
233
  else
234
234
  "cat #{new_resource.config_prefix}/sudoers %{path} | #{new_resource.visudo_binary} -cf -"
@@ -1,4 +1,4 @@
1
- # Generated by Chef. Changes will be overwritten.
1
+ # Generated by <%= Chef::Dist::PRODUCT %>. Changes will be overwritten.
2
2
  <% if @mailto -%>
3
3
  MAILTO=<%= @mailto %>
4
4
  <% end -%>
@@ -1,4 +1,4 @@
1
- # Generated by Chef. Changes will be overwritten.
1
+ # Generated by <%= Chef::Dist::PRODUCT %>. Changes will be overwritten.
2
2
  <% @users.sort.uniq.each do |user| -%>
3
3
  <%= user %>
4
4
  <% end -%>
@@ -1,5 +1,4 @@
1
- # This file is managed by Chef.
2
- # Do NOT modify this file directly.
1
+ # This file is managed by <%= Chef::Dist::PRODUCT %>. Changes will be overwritten.
3
2
 
4
3
  <% @command_aliases.each do |a| -%>
5
4
  Cmnd_Alias <%= a[:name].upcase %> = <%= a[:command_list].join(', ') %>
@@ -0,0 +1,41 @@
1
+ # Generated by <%= Chef::Dist::PRODUCT %>. Changes will be overwritten.
2
+
3
+ # Limits settings for <%= @ulimit_user %>
4
+
5
+ <% unless @filehandle_limit.nil? -%>
6
+ <%= @ulimit_user -%> - nofile <%= @filehandle_limit %>
7
+ <% else -%><% unless @filehandle_soft_limit.nil? -%><%= @ulimit_user -%> soft nofile <%= @filehandle_soft_limit %><% end -%>
8
+ <% unless @filehandle_hard_limit.nil? -%><%= @ulimit_user -%> hard nofile <%= @filehandle_hard_limit %><% end -%>
9
+ <% end -%>
10
+
11
+ <% unless @process_limit.nil? -%>
12
+ <%= @ulimit_user -%> - nproc <%= @process_limit %>
13
+ <% else -%><% unless @process_soft_limit.nil? -%><%= @ulimit_user -%> soft nproc <%= @process_soft_limit %><% end -%>
14
+ <% unless @process_hard_limit.nil? -%><%= @ulimit_user -%> hard nproc <%= @process_hard_limit %><% end -%>
15
+ <% end -%>
16
+
17
+ <% unless @memory_limit.nil? -%>
18
+ <%= @ulimit_user -%> - memlock <%= @memory_limit %>
19
+ <% end -%>
20
+
21
+ <% unless @core_limit.nil? -%>
22
+ <%= @ulimit_user -%> - core <%= @core_limit %>
23
+ <% else -%><% unless @core_soft_limit.nil? -%><%= @ulimit_user -%> soft core <%= @core_soft_limit %><% end -%>
24
+ <% unless @core_hard_limit.nil? -%><%= @ulimit_user -%> hard core <%= @core_hard_limit %><% end -%>
25
+ <% end -%>
26
+
27
+ <% unless @stack_limit.nil? -%>
28
+ <%= @ulimit_user -%> - stack <%= @stack_limit %>
29
+ <% else -%><% unless @stack_soft_limit.nil? -%><%= @ulimit_user -%> soft stack <%= @stack_soft_limit %><% end -%>
30
+ <% unless @stack_hard_limit.nil? -%><%= @ulimit_user -%> hard stack <%= @stack_hard_limit %><% end -%>
31
+ <% end -%>
32
+
33
+ <% unless @rtprio_limit.nil? -%>
34
+ <%= @ulimit_user -%> - rtprio <%= @rtprio_limit %>
35
+ <% else -%><% unless @rtprio_soft_limit.nil? -%><%= @ulimit_user -%> soft rtprio <%= @rtprio_soft_limit %><% end -%>
36
+ <% unless @rtprio_hard_limit.nil? -%><%= @ulimit_user -%> hard rtprio <%= @rtprio_hard_limit %><% end -%>
37
+ <% end -%>
38
+
39
+ <% unless @virt_limit.nil? -%>
40
+ <%= @ulimit_user -%> - as <%= @virt_limit %>
41
+ <% end -%>
@@ -20,7 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class SwapFile < Chef::Resource
23
- resource_name :swap_file
23
+ unified_mode true
24
+
24
25
  provides(:swap_file) { true }
25
26
 
26
27
  description "Use the swap_file resource to create or delete swap files on Linux systems, and optionally to manage the swappiness configuration for a host."
@@ -39,7 +40,8 @@ class Chef
39
40
 
40
41
  property :timeout, Integer,
41
42
  description: "Timeout for 'dd' / 'fallocate' commands.",
42
- default: 600
43
+ default: 600,
44
+ desired_state: false
43
45
 
44
46
  property :swappiness, Integer,
45
47
  description: "The swappiness value to set on the system."
@@ -60,7 +62,7 @@ class Chef
60
62
  end
61
63
  end
62
64
  if new_resource.swappiness
63
- declare_resource(:sysctl, "vm.swappiness") do
65
+ sysctl "vm.swappiness" do
64
66
  value new_resource.swappiness
65
67
  end
66
68
  end
@@ -20,7 +20,8 @@ require_relative "../resource"
20
20
  class Chef
21
21
  class Resource
22
22
  class Sysctl < Chef::Resource
23
- resource_name :sysctl
23
+ unified_mode true
24
+
24
25
  provides(:sysctl) { true }
25
26
  provides(:sysctl_param) { true }
26
27
 
@@ -56,7 +57,6 @@ class Chef
56
57
 
57
58
  def after_created
58
59
  raise "The sysctl resource requires Linux as it needs sysctl and the sysctl.d directory functionality." unless node["os"] == "linux"
59
- raise "The sysctl resource does not support SLES releases less than 12 as it requires a sysctl.d directory" if platform_family?("suse") && node["platform_version"].to_i < 12
60
60
  end
61
61
 
62
62
  def coerce_value(v)
@@ -23,7 +23,9 @@ require "iniparse"
23
23
  class Chef
24
24
  class Resource
25
25
  class SystemdUnit < Chef::Resource
26
- resource_name(:systemd_unit) { true }
26
+ unified_mode true
27
+
28
+ provides(:systemd_unit) { true }
27
29
 
28
30
  description "Use the systemd_unit resource to create, manage, and run systemd units."
29
31
  introduced "12.11"
@@ -61,7 +63,7 @@ class Chef
61
63
  description: "Specifies if the unit will be verified before installation. Systemd can be overly strict when verifying units, so in certain cases it is preferable not to verify the unit."
62
64
 
63
65
  property :unit_name, String, desired_state: false,
64
- identity: true, name_property: true,
66
+ name_property: true,
65
67
  description: "The name of the unit file if it differs from the resource block's name.",
66
68
  introduced: "13.7"
67
69
 
@@ -36,7 +36,6 @@ class Chef
36
36
  class Template < Chef::Resource::File
37
37
  unified_mode true
38
38
 
39
- resource_name :template
40
39
  provides :template
41
40
 
42
41
  include Chef::Mixin::Securable
@@ -22,7 +22,9 @@ require_relative "../resource"
22
22
  class Chef
23
23
  class Resource
24
24
  class Timezone < Chef::Resource
25
- resource_name :timezone
25
+ unified_mode true
26
+
27
+ provides :timezone
26
28
 
27
29
  description "Use the timezone resource to change the system timezone on Windows, Linux, and macOS hosts. Timezones are specified in tz database format, with a complete list of available TZ values for Linux and macOS here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones and for Windows here: https://ss64.com/nt/timezones.html."
28
30
  introduced "14.6"
@@ -35,14 +37,14 @@ class Chef
35
37
  description "Set the timezone."
36
38
 
37
39
  # some linux systems may be missing the timezone data
38
- if node["os"] == "linux"
40
+ if linux?
39
41
  package "tzdata" do
40
- package_name platform_family?("suse") ? "timezone" : "tzdata"
42
+ package_name suse? ? "timezone" : "tzdata"
41
43
  end
42
44
  end
43
45
 
44
- # Modern Amazon, Fedora, RHEL, Ubuntu & Debian
45
- if node["init_package"] == "systemd"
46
+ # Modern SUSE, Amazon, Fedora, RHEL, Ubuntu & Debian
47
+ if systemd?
46
48
  cmd_set_tz = "/usr/bin/timedatectl --no-ask-password set-timezone #{new_resource.timezone}"
47
49
 
48
50
  cmd_check_if_set = "/usr/bin/timedatectl status"
@@ -76,19 +78,6 @@ class Chef
76
78
  to "/usr/share/zoneinfo/#{new_resource.timezone}"
77
79
  not_if { ::File.executable?("/usr/sbin/tzdata-update") }
78
80
  end
79
- # debian < 8 and Ubuntu < 16.04
80
- when "debian"
81
- file "/etc/timezone" do
82
- action :create
83
- content "#{new_resource.timezone}\n"
84
- end
85
-
86
- bash "dpkg-reconfigure tzdata" do
87
- user "root"
88
- code "/usr/sbin/dpkg-reconfigure -f noninteractive tzdata"
89
- action :nothing
90
- subscribes :run, "file[/etc/timezone]", :immediately
91
- end
92
81
  when "mac_os_x"
93
82
  unless current_darwin_tz == new_resource.timezone
94
83
  converge_by("set timezone to #{new_resource.timezone}") do
@@ -23,8 +23,6 @@ class Chef
23
23
  class User < Chef::Resource
24
24
  unified_mode true
25
25
 
26
- resource_name :user_resource_abstract_base_class # this prevents magickal class name DSL wiring
27
-
28
26
  description "Use the user resource to add users, update existing users, remove users, and to lock/unlock user passwords."
29
27
 
30
28
  default_action :create
@@ -32,7 +30,7 @@ class Chef
32
30
 
33
31
  property :username, String,
34
32
  description: "An optional property to set the username value if it differs from the resource block's name.",
35
- name_property: true, identity: true
33
+ name_property: true
36
34
 
37
35
  property :comment, String,
38
36
  description: "The contents of the user comments field."
@@ -23,8 +23,6 @@ class Chef
23
23
  class AixUser < Chef::Resource::User
24
24
  unified_mode true
25
25
 
26
- resource_name :aix_user
27
-
28
26
  provides :aix_user
29
27
  provides :user, os: "aix"
30
28
  end
@@ -21,7 +21,7 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class DsclUser < Chef::Resource::User
24
- resource_name :dscl_user
24
+ unified_mode true
25
25
 
26
26
  provides :dscl_user
27
27
  provides :user, platform: "mac_os_x", platform_version: "< 10.14"
@@ -23,8 +23,6 @@ class Chef
23
23
  class LinuxUser < Chef::Resource::User
24
24
  unified_mode true
25
25
 
26
- resource_name :linux_user
27
-
28
26
  provides :linux_user
29
27
  provides :user, os: "linux"
30
28
 
@@ -58,7 +58,7 @@ class Chef
58
58
  # the 'password' property corresponds to a plaintext password and will
59
59
  # attempt to use it in place of secure_token_password if it not set.
60
60
  class MacUser < Chef::Resource::User
61
- resource_name :mac_user
61
+ unified_mode true
62
62
 
63
63
  provides :mac_user
64
64
  provides :user, platform: "mac_os_x", platform_version: ">= 10.14"
@@ -23,8 +23,6 @@ class Chef
23
23
  class PwUser < Chef::Resource::User
24
24
  unified_mode true
25
25
 
26
- resource_name :pw_user
27
-
28
26
  provides :pw_user
29
27
  provides :user, os: "freebsd"
30
28
  end