chef 16.0.257 → 16.0.275

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +30 -16
  3. data/chef.gemspec +1 -1
  4. data/lib/chef/knife/environment_compare.rb +1 -1
  5. data/lib/chef/knife/list.rb +1 -1
  6. data/lib/chef/knife/supermarket_install.rb +1 -1
  7. data/lib/chef/knife/yaml_convert.rb +2 -2
  8. data/lib/chef/provider/execute.rb +1 -1
  9. data/lib/chef/provider/package/freebsd/base.rb +2 -1
  10. data/lib/chef/provider/package/homebrew.rb +1 -1
  11. data/lib/chef/provider/package/macports.rb +0 -2
  12. data/lib/chef/provider/package/windows.rb +26 -51
  13. data/lib/chef/provider/user/dscl.rb +1 -1
  14. data/lib/chef/resource/alternatives.rb +65 -4
  15. data/lib/chef/resource/apt_package.rb +31 -2
  16. data/lib/chef/resource/apt_preference.rb +34 -5
  17. data/lib/chef/resource/apt_repository.rb +22 -15
  18. data/lib/chef/resource/apt_update.rb +6 -4
  19. data/lib/chef/resource/archive_file.rb +5 -4
  20. data/lib/chef/resource/bash.rb +1 -1
  21. data/lib/chef/resource/batch.rb +1 -1
  22. data/lib/chef/resource/bff_package.rb +1 -1
  23. data/lib/chef/resource/breakpoint.rb +1 -1
  24. data/lib/chef/resource/build_essential.rb +8 -4
  25. data/lib/chef/resource/cab_package.rb +1 -1
  26. data/lib/chef/resource/chef_client_cron.rb +12 -9
  27. data/lib/chef/resource/chef_client_scheduled_task.rb +9 -6
  28. data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
  29. data/lib/chef/resource/chef_gem.rb +6 -2
  30. data/lib/chef/resource/chef_handler.rb +1 -1
  31. data/lib/chef/resource/chef_sleep.rb +7 -4
  32. data/lib/chef/resource/chef_vault_secret.rb +3 -3
  33. data/lib/chef/resource/chocolatey_config.rb +5 -3
  34. data/lib/chef/resource/chocolatey_feature.rb +5 -3
  35. data/lib/chef/resource/chocolatey_package.rb +5 -3
  36. data/lib/chef/resource/chocolatey_source.rb +5 -3
  37. data/lib/chef/resource/cookbook_file.rb +3 -2
  38. data/lib/chef/resource/cron.rb +15 -15
  39. data/lib/chef/resource/cron_access.rb +7 -4
  40. data/lib/chef/resource/cron_d.rb +37 -23
  41. data/lib/chef/resource/csh.rb +1 -1
  42. data/lib/chef/resource/directory.rb +1 -1
  43. data/lib/chef/resource/dmg_package.rb +18 -15
  44. data/lib/chef/resource/dnf_package.rb +1 -1
  45. data/lib/chef/resource/dpkg_package.rb +1 -1
  46. data/lib/chef/resource/execute.rb +2 -2
  47. data/lib/chef/resource/file.rb +5 -4
  48. data/lib/chef/resource/freebsd_package.rb +1 -1
  49. data/lib/chef/resource/gem_package.rb +6 -6
  50. data/lib/chef/resource/group.rb +1 -1
  51. data/lib/chef/resource/homebrew_cask.rb +1 -1
  52. data/lib/chef/resource/homebrew_package.rb +1 -1
  53. data/lib/chef/resource/homebrew_tap.rb +1 -1
  54. data/lib/chef/resource/hostname.rb +4 -4
  55. data/lib/chef/resource/http_request.rb +1 -1
  56. data/lib/chef/resource/ifconfig.rb +7 -7
  57. data/lib/chef/resource/ips_package.rb +1 -1
  58. data/lib/chef/resource/kernel_module.rb +1 -1
  59. data/lib/chef/resource/ksh.rb +1 -1
  60. data/lib/chef/resource/launchd.rb +1 -1
  61. data/lib/chef/resource/link.rb +4 -4
  62. data/lib/chef/resource/locale.rb +1 -1
  63. data/lib/chef/resource/log.rb +1 -1
  64. data/lib/chef/resource/macos_userdefaults.rb +1 -1
  65. data/lib/chef/resource/macosx_service.rb +1 -1
  66. data/lib/chef/resource/macports_package.rb +1 -1
  67. data/lib/chef/resource/mdadm.rb +1 -1
  68. data/lib/chef/resource/mount.rb +1 -1
  69. data/lib/chef/resource/msu_package.rb +1 -1
  70. data/lib/chef/resource/ohai.rb +1 -1
  71. data/lib/chef/resource/ohai_hint.rb +1 -1
  72. data/lib/chef/resource/openbsd_package.rb +1 -1
  73. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  74. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  75. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  76. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  77. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  78. data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
  79. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  80. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  81. data/lib/chef/resource/osx_profile.rb +1 -1
  82. data/lib/chef/resource/package.rb +1 -1
  83. data/lib/chef/resource/pacman_package.rb +1 -1
  84. data/lib/chef/resource/paludis_package.rb +1 -1
  85. data/lib/chef/resource/perl.rb +1 -1
  86. data/lib/chef/resource/plist.rb +1 -1
  87. data/lib/chef/resource/portage_package.rb +1 -1
  88. data/lib/chef/resource/powershell_package.rb +1 -1
  89. data/lib/chef/resource/powershell_package_source.rb +1 -1
  90. data/lib/chef/resource/powershell_script.rb +1 -1
  91. data/lib/chef/resource/python.rb +1 -1
  92. data/lib/chef/resource/reboot.rb +1 -1
  93. data/lib/chef/resource/registry_key.rb +1 -1
  94. data/lib/chef/resource/remote_directory.rb +1 -1
  95. data/lib/chef/resource/remote_file.rb +1 -2
  96. data/lib/chef/resource/rhsm_errata.rb +1 -3
  97. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  98. data/lib/chef/resource/rhsm_register.rb +1 -2
  99. data/lib/chef/resource/rhsm_repo.rb +1 -2
  100. data/lib/chef/resource/rhsm_subscription.rb +1 -3
  101. data/lib/chef/resource/route.rb +1 -1
  102. data/lib/chef/resource/rpm_package.rb +5 -2
  103. data/lib/chef/resource/ruby.rb +1 -1
  104. data/lib/chef/resource/ruby_block.rb +1 -4
  105. data/lib/chef/resource/scm/_scm.rb +4 -3
  106. data/lib/chef/resource/scm/git.rb +1 -1
  107. data/lib/chef/resource/scm/subversion.rb +2 -2
  108. data/lib/chef/resource/script.rb +1 -1
  109. data/lib/chef/resource/service.rb +1 -1
  110. data/lib/chef/resource/smartos_package.rb +1 -1
  111. data/lib/chef/resource/snap_package.rb +1 -1
  112. data/lib/chef/resource/solaris_package.rb +1 -1
  113. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  114. data/lib/chef/resource/sudo.rb +4 -4
  115. data/lib/chef/resource/swap_file.rb +2 -2
  116. data/lib/chef/resource/sysctl.rb +61 -2
  117. data/lib/chef/resource/systemd_unit.rb +2 -2
  118. data/lib/chef/resource/timezone.rb +1 -1
  119. data/lib/chef/resource/user.rb +2 -2
  120. data/lib/chef/resource/user_ulimit.rb +24 -22
  121. data/lib/chef/resource/windows_ad_join.rb +1 -1
  122. data/lib/chef/resource/windows_auto_run.rb +2 -2
  123. data/lib/chef/resource/windows_certificate.rb +1 -1
  124. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  125. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  126. data/lib/chef/resource/windows_dfs_server.rb +1 -1
  127. data/lib/chef/resource/windows_env.rb +10 -1
  128. data/lib/chef/resource/windows_feature.rb +57 -2
  129. data/lib/chef/resource/windows_feature_dism.rb +15 -2
  130. data/lib/chef/resource/windows_feature_powershell.rb +29 -2
  131. data/lib/chef/resource/windows_firewall_rule.rb +9 -5
  132. data/lib/chef/resource/windows_font.rb +10 -1
  133. data/lib/chef/resource/windows_package.rb +63 -3
  134. data/lib/chef/resource/windows_pagefile.rb +30 -2
  135. data/lib/chef/resource/windows_path.rb +18 -1
  136. data/lib/chef/resource/windows_printer.rb +25 -5
  137. data/lib/chef/resource/windows_printer_port.rb +29 -1
  138. data/lib/chef/resource/windows_security_policy.rb +1 -1
  139. data/lib/chef/resource/windows_service.rb +1 -1
  140. data/lib/chef/resource/windows_share.rb +21 -1
  141. data/lib/chef/resource/windows_shortcut.rb +13 -2
  142. data/lib/chef/resource/windows_task.rb +122 -8
  143. data/lib/chef/resource/windows_uac.rb +20 -1
  144. data/lib/chef/resource/windows_workgroup.rb +19 -3
  145. data/lib/chef/resource/yum_package.rb +88 -6
  146. data/lib/chef/resource/yum_repository.rb +28 -11
  147. data/lib/chef/resource/zypper_package.rb +29 -3
  148. data/lib/chef/resource/zypper_repository.rb +17 -5
  149. data/lib/chef/resource_inspector.rb +1 -1
  150. data/lib/chef/scan_access_control.rb +1 -1
  151. data/lib/chef/version.rb +1 -1
  152. data/spec/functional/resource/link_spec.rb +3 -3
  153. data/spec/functional/resource/remote_file_spec.rb +1 -1
  154. data/spec/integration/knife/raw_spec.rb +4 -4
  155. data/spec/integration/knife/redirection_spec.rb +2 -2
  156. data/spec/support/platform_helpers.rb +0 -13
  157. data/spec/support/shared/functional/http.rb +2 -2
  158. data/spec/support/shared/unit/mock_shellout.rb +1 -1
  159. data/spec/unit/file_access_control_spec.rb +1 -1
  160. data/spec/unit/mixin/shell_out_spec.rb +25 -31
  161. data/spec/unit/provider/apt_repository_spec.rb +27 -27
  162. data/spec/unit/provider/zypper_repository_spec.rb +17 -17
  163. data/spec/unit/provider_resolver_spec.rb +2 -2
  164. metadata +10 -10
@@ -28,11 +28,12 @@ class Chef
28
28
 
29
29
  provides(:apt_repository) { true }
30
30
 
31
- description "Use the apt_repository resource to specify additional APT repositories. Adding a new repository will update the APT package cache immediately."
31
+ description "Use the **apt_repository** resource to specify additional APT repositories. Adding a new repository will update the APT package cache immediately."
32
32
  introduced "12.9"
33
33
 
34
34
  examples <<~DOC
35
- Add repository with basic settings
35
+ **Add repository with basic settings**:
36
+
36
37
  ```ruby
37
38
  apt_repository 'nginx' do
38
39
  uri 'http://nginx.org/packages/ubuntu/'
@@ -40,29 +41,32 @@ class Chef
40
41
  end
41
42
  ```
42
43
 
43
- Enable Ubuntu multiverse repositories
44
+ **Enable Ubuntu multiverse repositories**:
45
+
44
46
  ```ruby
45
47
  apt_repository 'security-ubuntu-multiverse' do
46
48
  uri 'http://security.ubuntu.com/ubuntu'
47
- distribution 'trusty-security'
49
+ distribution 'xenial-security'
48
50
  components ['multiverse']
49
51
  deb_src true
50
52
  end
51
53
  ```
52
54
 
53
- Add the Nginx PPA, autodetect the key and repository url
55
+ **Add the Nginx PPA, autodetect the key and repository url**:
56
+
54
57
  ```ruby
55
58
  apt_repository 'nginx-php' do
56
59
  uri 'ppa:nginx/stable'
57
60
  end
58
61
  ```
59
62
 
60
- Add the JuJu PPA, grab the key from the keyserver, and add source repo
63
+ **Add the JuJu PPA, grab the key from the keyserver, and add source repo**:
64
+
61
65
  ```ruby
62
66
  apt_repository 'juju' do
63
67
  uri 'http://ppa.launchpad.net/juju/stable/ubuntu'
64
68
  components ['main']
65
- distribution 'trusty'
69
+ distribution 'xenial'
66
70
  key 'C8068B11'
67
71
  keyserver 'keyserver.ubuntu.com'
68
72
  action :add
@@ -70,7 +74,8 @@ class Chef
70
74
  end
71
75
  ```
72
76
 
73
- Add repository that requires multiple keys to authenticate packages
77
+ **Add repository that requires multiple keys to authenticate packages**:
78
+
74
79
  ```ruby
75
80
  apt_repository 'rundeck' do
76
81
  uri 'https://dl.bintray.com/rundeck/rundeck-deb'
@@ -81,18 +86,20 @@ class Chef
81
86
  end
82
87
  ```
83
88
 
84
- Add the Cloudera Repo of CDH4 packages for Ubuntu 12.04 on AMD64
89
+ **Add the Cloudera Repo of CDH4 packages for Ubuntu 16.04 on AMD64**:
90
+
85
91
  ```ruby
86
92
  apt_repository 'cloudera' do
87
- uri 'http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh'
93
+ uri 'http://archive.cloudera.com/cdh4/ubuntu/xenial/amd64/cdh'
88
94
  arch 'amd64'
89
- distribution 'precise-cdh4'
95
+ distribution 'xenial-cdh4'
90
96
  components ['contrib']
91
97
  key 'http://archive.cloudera.com/debian/archive.key'
92
98
  end
93
99
  ```
94
100
 
95
- Remove a repository from the list
101
+ **Remove a repository from the list**:
102
+
96
103
  ```ruby
97
104
  apt_repository 'zenoss' do
98
105
  action :remove
@@ -115,15 +122,15 @@ class Chef
115
122
  description: "The base of the Debian distribution."
116
123
 
117
124
  property :distribution, [ String, nil, FalseClass ],
118
- description: "Usually a distribution's codename, such as xenial, bionic, or focal.",
125
+ description: "Usually a distribution's codename, such as `xenial`, `bionic`, or `focal`.",
119
126
  default: lazy { node["lsb"]["codename"] }, default_description: "The LSB codename of the node such as 'focal'."
120
127
 
121
128
  property :components, Array,
122
129
  description: "Package groupings, such as 'main' and 'stable'.",
123
- default: lazy { [] }, default_description: "'main' if using a PPA repository."
130
+ default: lazy { [] }, default_description: "`main` if using a PPA repository."
124
131
 
125
132
  property :arch, [String, nil, FalseClass],
126
- description: "Constrain packages to a particular CPU architecture such as 'i386' or 'amd64'."
133
+ description: "Constrain packages to a particular CPU architecture such as `i386` or `amd64`."
127
134
 
128
135
  property :trusted, [TrueClass, FalseClass],
129
136
  description: "Determines whether you should treat all packages from this repository as authenticated regardless of signature.",
@@ -25,10 +25,11 @@ class Chef
25
25
 
26
26
  provides(:apt_update) { true }
27
27
 
28
- description "Use the apt_update resource to manage APT repository updates on Debian and Ubuntu platforms."
28
+ description "Use the **apt_update** resource to manage APT repository updates on Debian and Ubuntu platforms."
29
29
  introduced "12.7"
30
30
  examples <<~DOC
31
- Update the Apt repository at a specified interval
31
+ **Update the Apt repository at a specified interval**:
32
+
32
33
  ```ruby
33
34
  apt_update 'all platforms' do
34
35
  frequency 86400
@@ -36,7 +37,8 @@ class Chef
36
37
  end
37
38
  ```
38
39
 
39
- Update the Apt repository at the start of a Chef Infra Client run
40
+ **Update the Apt repository at the start of a Chef Infra Client run**:
41
+
40
42
  ```ruby
41
43
  apt_update 'update'
42
44
  ```
@@ -46,7 +48,7 @@ class Chef
46
48
  property :name, String, default: ""
47
49
 
48
50
  property :frequency, Integer,
49
- description: "Determines how frequently (in seconds) APT repository updates are made. Use this property when the :periodic action is specified.",
51
+ description: "Determines how frequently (in seconds) APT repository updates are made. Use this property when the `:periodic` action is specified.",
50
52
  default: 86_400
51
53
 
52
54
  default_action :periodic
@@ -29,9 +29,10 @@ class Chef
29
29
  provides :libarchive_file # legacy cookbook name
30
30
 
31
31
  introduced "15.0"
32
- description "Use the archive_file resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
32
+ description "Use the **archive_file** resource to extract archive files to disk. This resource uses the libarchive library to extract multiple archive formats including tar, gzip, bzip, and zip formats."
33
33
  examples <<~DOC
34
- Extract a zip file to a specified directory
34
+ **Extract a zip file to a specified directory**:
35
+
35
36
  ```ruby
36
37
  archive_file 'Precompiled.zip' do
37
38
  path '/tmp/Precompiled.zip'
@@ -60,11 +61,11 @@ class Chef
60
61
  required: true
61
62
 
62
63
  property :options, [Array, Symbol],
63
- description: "An array of symbols representing extraction flags. Example: :no_overwrite to prevent overwriting files on disk. By default, this properly sets :time which preserves the modification timestamps of files in the archive when writing them to disk.",
64
+ description: "An array of symbols representing extraction flags. Example: `:no_overwrite` to prevent overwriting files on disk. By default, this properly sets `:time` which preserves the modification timestamps of files in the archive when writing them to disk.",
64
65
  default: lazy { [:time] }
65
66
 
66
67
  property :overwrite, [TrueClass, FalseClass, :auto],
67
- description: "Should the resource overwrite the destination file contents if they already exist? If set to :auto the date stamp of files within the archive will be compared to those on disk and disk contents will be overwritten if they differ. This may cause unintended consequences if disk date stamps are changed between runs, which will result in the files being overwritten during each client run. Make sure to properly test any change to this property.",
68
+ description: "Should the resource overwrite the destination file contents if they already exist? If set to `:auto` the date stamp of files within the archive will be compared to those on disk and disk contents will be overwritten if they differ. This may cause unintended consequences if disk date stamps are changed between runs, which will result in the files being overwritten during each client run. Make sure to properly test any change to this property.",
68
69
  default: false
69
70
 
70
71
  # backwards compatibility for the legacy cookbook names
@@ -26,7 +26,7 @@ class Chef
26
26
 
27
27
  provides :bash
28
28
 
29
- description "Use the bash resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
29
+ description "Use the **bash** resource to execute scripts using the Bash interpreter. This resource may also use any of the actions and properties that are available to the execute resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
30
30
 
31
31
  def initialize(name, run_context = nil)
32
32
  super
@@ -25,7 +25,7 @@ class Chef
25
25
 
26
26
  provides :batch
27
27
 
28
- description "Use the batch resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
28
+ description "Use the **batch** resource to execute a batch script using the cmd.exe interpreter on Windows. The batch resource creates and executes a temporary file (similar to how the script resource behaves), rather than running the command inline. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
29
29
 
30
30
  def initialize(name, run_context = nil)
31
31
  super(name, run_context, nil, "cmd.exe")
@@ -25,7 +25,7 @@ class Chef
25
25
 
26
26
  provides :bff_package
27
27
 
28
- description "Use the bff_package resource to manage packages for the AIX platform using the installp utility. 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 **bff_package** resource to manage packages for the AIX platform using the installp utility. 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
  introduced "12.0"
30
30
 
31
31
  property :package_name, String,
@@ -26,7 +26,7 @@ class Chef
26
26
 
27
27
  provides :breakpoint, target_mode: true
28
28
 
29
- description "Use the breakpoint resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
29
+ description "Use the **breakpoint** resource to add breakpoints to recipes. Run the #{Chef::Dist::SHELL} in #{Chef::Dist::PRODUCT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
30
30
  introduced "12.0"
31
31
 
32
32
  default_action :break
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  provides(:build_essential) { true }
26
26
 
27
- description "Use the build_essential resource to install the packages required for compiling C software from source."
27
+ description "Use the **build_essential** resource to install the packages required for compiling C software from source."
28
28
  introduced "14.0"
29
29
  examples <<~DOC
30
- Install compilation packages
30
+ **Install compilation packages**:
31
+
31
32
  ```ruby
32
33
  build_essential
33
34
  ```
34
35
 
35
- Install compilation packages during the compilation phase
36
+ **Install compilation packages during the compilation phase**:
37
+
36
38
  ```ruby
37
39
  build_essential 'Install compilation tools' do
38
40
  compile_time true
39
41
  end
40
42
  ```
41
43
 
42
- Upgrade compilation packages on macOS systems
44
+ **Upgrade compilation packages on macOS systems**:
45
+
43
46
  ```ruby
44
47
  build_essential 'Install compilation tools' do
45
48
  action :upgrade
@@ -52,6 +55,7 @@ class Chef
52
55
 
53
56
  property :raise_if_unsupported, [TrueClass, FalseClass],
54
57
  description: "Raise a hard error on platforms where this resource is unsupported.",
58
+ introduced: "15.5",
55
59
  default: false, desired_state: false # FIXME: make this default to true
56
60
 
57
61
  action :install do
@@ -27,7 +27,7 @@ class Chef
27
27
 
28
28
  provides :cab_package
29
29
 
30
- description "Use the cab_package resource to install or remove Microsoft Windows cabinet (.cab) packages."
30
+ description "Use the **cab_package** resource to install or remove Microsoft Windows cabinet (.cab) packages."
31
31
  introduced "12.15"
32
32
 
33
33
  allowed_actions :install, :remove
@@ -26,23 +26,26 @@ class Chef
26
26
 
27
27
  provides :chef_client_cron
28
28
 
29
- description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
29
+ description "Use the **chef_client_cron** resource to setup the #{Chef::Dist::PRODUCT} to run as a cron job. This resource will also create the specified log directory if it doesn't already exist."
30
30
  introduced "16.0"
31
31
  examples <<~DOC
32
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
32
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
33
+
33
34
  ```ruby
34
- chef_client_cron "Run chef-client as a cron job"
35
+ chef_client_cron "Run #{Chef::Dist::PRODUCT} as a cron job"
35
36
  ```
36
37
 
37
- Run #{Chef::Dist::PRODUCT} twice a day
38
+ **Run #{Chef::Dist::PRODUCT} twice a day**:
39
+
38
40
  ```ruby
39
- chef_client_cron "Run chef-client every 12 hours" do
41
+ chef_client_cron "Run #{Chef::Dist::PRODUCT} every 12 hours" do
40
42
  minute 0
41
43
  hour "0,12"
42
44
  end
43
45
  ```
44
46
 
45
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
47
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
48
+
46
49
  ```ruby
47
50
  chef_client_cron "Run an override recipe" do
48
51
  daemon_options ["--override-runlist mycorp_base::default"]
@@ -133,14 +136,14 @@ class Chef
133
136
 
134
137
  property :environment, Hash,
135
138
  default: lazy { {} },
136
- description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``."
139
+ description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`."
137
140
 
138
141
  action :add do
139
142
  # TODO: Replace this with a :create_if_missing action on directory when that exists
140
143
  unless ::Dir.exist?(new_resource.log_directory)
141
144
  directory new_resource.log_directory do
142
145
  owner new_resource.user
143
- mode "0640"
146
+ mode "0750"
144
147
  recursive true
145
148
  end
146
149
  end
@@ -160,7 +163,7 @@ class Chef
160
163
  end
161
164
 
162
165
  action :remove do
163
- cron_d new_resource.job_name do
166
+ declare_resource(cron_resource_type, new_resource.job_name) do
164
167
  action :delete
165
168
  end
166
169
  end
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  provides :chef_client_scheduled_task
26
26
 
27
- description "Use the chef_client_cron resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
27
+ description "Use the **chef_client_scheduled_task** resource to setup the #{Chef::Dist::PRODUCT} to run as a Windows scheduled task. This resource will also create the specified log directory if it doesn't already exist."
28
28
  introduced "16.0"
29
29
  examples <<~DOC
30
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
30
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
31
+
31
32
  ```ruby
32
- chef_client_scheduled_task "Run chef-client as a scheduled task"
33
+ chef_client_scheduled_task "Run #{Chef::Dist::PRODUCT} as a scheduled task"
33
34
  ```
34
35
 
35
- Run #{Chef::Dist::PRODUCT} on system start
36
+ **Run #{Chef::Dist::PRODUCT} on system start**:
37
+
36
38
  ```ruby
37
- chef_client_scheduled_task 'Chef Client on start' do
39
+ chef_client_scheduled_task '#{Chef::Dist::PRODUCT} on start' do
38
40
  frequency 'onstart'
39
41
  end
40
42
  ```
41
43
 
42
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
44
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
45
+
43
46
  ```ruby
44
47
  chef_client_scheduled_task "Run an override recipe" do
45
48
  daemon_options ["--override-runlist mycorp_base::default"]
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  provides :chef_client_systemd_timer
26
26
 
27
- description "Use the chef_client_systemd_timer resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
27
+ description "Use the **chef_client_systemd_timer** resource to setup the #{Chef::Dist::PRODUCT} to run as a systemd timer."
28
28
  introduced "16.0"
29
29
  examples <<~DOC
30
- Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence
30
+ **Setup #{Chef::Dist::PRODUCT} to run using the default 30 minute cadence**:
31
+
31
32
  ```ruby
32
- chef_client_systemd_timer "Run chef-client as a systemd timer"
33
+ chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} as a systemd timer"
33
34
  ```
34
35
 
35
- Run #{Chef::Dist::PRODUCT} every 1 hour
36
+ **Run #{Chef::Dist::PRODUCT} every 1 hour**:
37
+
36
38
  ```ruby
37
- chef_client_systemd_timer "Run chef-client every 1 hour" do
39
+ chef_client_systemd_timer "Run #{Chef::Dist::PRODUCT} every 1 hour" do
38
40
  interval "1hr"
39
41
  end
40
42
  ```
41
43
 
42
- Run #{Chef::Dist::PRODUCT} with extra options passed to the client
44
+ **Run #{Chef::Dist::PRODUCT} with extra options passed to the client**:
45
+
43
46
  ```ruby
44
47
  chef_client_systemd_timer "Run an override recipe" do
45
48
  daemon_options ["--override-runlist mycorp_base::default"]
@@ -92,7 +95,7 @@ class Chef
92
95
  default: lazy { [] }
93
96
 
94
97
  property :environment, Hash,
95
- description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``.",
98
+ description: "A Hash containing additional arbitrary environment variables under which the systemd timer will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
96
99
  default: lazy { {} }
97
100
 
98
101
  action :add do
@@ -34,6 +34,10 @@ class Chef
34
34
  # installed
35
35
  # - Runs Gem.clear_paths after the action, ensuring that gem is aware of changes so that it can be required
36
36
  # immediately after it is installed
37
+
38
+ require_relative "gem_package"
39
+ require_relative "../dist"
40
+
37
41
  class ChefGem < Chef::Resource::Package::GemPackage
38
42
  unified_mode true
39
43
  provides :chef_gem
@@ -45,8 +49,8 @@ class Chef
45
49
  property :version, String,
46
50
  description: "The version of a package to be installed or upgraded."
47
51
 
48
- property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "Chef's built-in gem binary.",
49
- 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.",
52
+ property :gem_binary, default: "#{RbConfig::CONFIG["bindir"]}/gem", default_description: "The `gem` binary included with #{Chef::Dist::PRODUCT}.",
53
+ 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.",
50
54
  callbacks: {
51
55
  "The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG["bindir"]}/gem" },
52
56
  }
@@ -25,7 +25,7 @@ class Chef
25
25
 
26
26
  provides(:chef_handler) { true }
27
27
 
28
- description "Use the chef_handler resource to install or uninstall reporting/exception handlers."
28
+ description "Use the **chef_handler** resource to install or uninstall reporting/exception handlers."
29
29
  introduced "14.0"
30
30
 
31
31
  property :class_name, String,
@@ -24,22 +24,25 @@ class Chef
24
24
 
25
25
  unified_mode true
26
26
 
27
- description "Use the chef_sleep resource to set the number of seconds to sleep during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step of the recipe."
27
+ description "Use the **chef_sleep** resource to pause (sleep) for a number of seconds during a #{Chef::Dist::PRODUCT} run. Only use this resource when a command or service exits successfully but is not ready for the next step in a recipe."
28
28
  introduced "15.5"
29
29
  examples <<~DOC
30
- Sleep for 10 seconds
30
+ **Sleep for 10 seconds**:
31
+
31
32
  ```ruby
32
33
  chef_sleep '10'
33
34
  ```
34
35
 
35
- Sleep for 10 seconds with a descriptive resource name for logging
36
+ **Sleep for 10 seconds with a descriptive resource name for logging**:
37
+
36
38
  ```ruby
37
39
  chef_sleep 'wait for the service to start' do
38
40
  seconds 10
39
41
  end
40
42
  ````
41
43
 
42
- Use a notification from another resource to sleep only when necessary
44
+ **Use a notification from another resource to sleep only when necessary**:
45
+
43
46
  ```ruby
44
47
  service 'Service that is slow to start and reports as started' do
45
48
  service_name 'my_database'
@@ -26,9 +26,9 @@ class Chef
26
26
  provides :chef_vault_secret
27
27
 
28
28
  introduced "16.0"
29
- description "Use the chef_vault_secret resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
29
+ description "Use the **chef_vault_secret** resource to store secrets in Chef Vault items. Where possible and relevant, this resource attempts to map behavior and functionality to the knife vault sub-commands."
30
30
  examples <<~DOC
31
- To create a 'foo' item in an existing 'bar' data bag:
31
+ **To create a 'foo' item in an existing 'bar' data bag**:
32
32
 
33
33
  ```ruby
34
34
  chef_vault_secret 'foo' do
@@ -39,7 +39,7 @@ class Chef
39
39
  end
40
40
  ```
41
41
 
42
- To allow multiple admins access to an item:
42
+ **To allow multiple admins access to an item**:
43
43
 
44
44
  ```ruby
45
45
  chef_vault_secret 'root-password' do