chef 14.7.17 → 14.8.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chef/mixin/which.rb +3 -1
  3. data/lib/chef/provider/apt_repository.rb +1 -1
  4. data/lib/chef/provider/execute.rb +1 -1
  5. data/lib/chef/provider/osx_profile.rb +1 -1
  6. data/lib/chef/provider/package/apt.rb +15 -3
  7. data/lib/chef/provider/package/cab.rb +6 -2
  8. data/lib/chef/provider/package/chocolatey.rb +1 -1
  9. data/lib/chef/provider/package/dnf/python_helper.rb +2 -1
  10. data/lib/chef/provider/package/openbsd.rb +1 -1
  11. data/lib/chef/provider/package/rubygems.rb +38 -16
  12. data/lib/chef/resource/apt_package.rb +1 -1
  13. data/lib/chef/resource/apt_preference.rb +1 -1
  14. data/lib/chef/resource/apt_repository.rb +1 -1
  15. data/lib/chef/resource/chocolatey_config.rb +1 -1
  16. data/lib/chef/resource/chocolatey_source.rb +1 -1
  17. data/lib/chef/resource/cron.rb +27 -8
  18. data/lib/chef/resource/cron_access.rb +1 -1
  19. data/lib/chef/resource/cron_d.rb +8 -8
  20. data/lib/chef/resource/directory.rb +1 -1
  21. data/lib/chef/resource/dmg_package.rb +9 -9
  22. data/lib/chef/resource/execute.rb +2 -2
  23. data/lib/chef/resource/homebrew_cask.rb +1 -1
  24. data/lib/chef/resource/homebrew_tap.rb +1 -1
  25. data/lib/chef/resource/hostname.rb +2 -2
  26. data/lib/chef/resource/kernel_module.rb +1 -1
  27. data/lib/chef/resource/link.rb +1 -1
  28. data/lib/chef/resource/ohai_hint.rb +1 -1
  29. data/lib/chef/resource/package.rb +1 -1
  30. data/lib/chef/resource/scm.rb +1 -1
  31. data/lib/chef/resource/swap_file.rb +1 -1
  32. data/lib/chef/resource/sysctl.rb +1 -1
  33. data/lib/chef/resource/systemd_unit.rb +1 -1
  34. data/lib/chef/resource/template.rb +11 -3
  35. data/lib/chef/resource/windows_ad_join.rb +1 -1
  36. data/lib/chef/resource/windows_auto_run.rb +1 -1
  37. data/lib/chef/resource/windows_certificate.rb +2 -1
  38. data/lib/chef/resource/windows_feature.rb +6 -6
  39. data/lib/chef/resource/windows_feature_dism.rb +13 -17
  40. data/lib/chef/resource/windows_feature_powershell.rb +1 -1
  41. data/lib/chef/resource/windows_share.rb +9 -3
  42. data/lib/chef/resource/windows_task.rb +230 -231
  43. data/lib/chef/resource/windows_workgroup.rb +32 -23
  44. data/lib/chef/resource/yum_repository.rb +1 -1
  45. data/lib/chef/version.rb +1 -1
  46. data/spec/functional/resource/msu_package_spec.rb +14 -0
  47. data/spec/integration/knife/raw_spec.rb +11 -7
  48. data/spec/integration/knife/redirection_spec.rb +6 -4
  49. data/spec/support/shared/integration/app_server_support.rb +2 -2
  50. data/spec/unit/provider/apt_repository_spec.rb +3 -3
  51. data/spec/unit/provider/package/apt_spec.rb +81 -4
  52. data/spec/unit/provider/package/rubygems_spec.rb +47 -9
  53. data/spec/unit/resource/windows_certificate.rb +30 -0
  54. data/spec/unit/resource/windows_feature.rb +4 -0
  55. data/spec/unit/resource/windows_workgroup_spec.rb +27 -0
  56. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72ed54db28d5229e29a1d6c6611636d777a5a291bd49cdc7909105fe8018208d
4
- data.tar.gz: e52fd041a354f764f5aa4fa8ff52b0f65b524f7614c87fda5888de50d3745656
3
+ metadata.gz: c08486082bafcd0e272f4a8fbdcf7677de1260168607f2f1a8a1017d41654ba5
4
+ data.tar.gz: 63d92a1beb97fef7ef40d566d02e2d6304848c51a0a59251dba9545bdbcdafcc
5
5
  SHA512:
6
- metadata.gz: 1b6ddeb455f54fbd683dc4456f3c4aeb7e6e35179781c57c7a5cccc96dfa6eba03129746a333fd03522c771916b8ef4c99c172c2e6201cb57f72873ccecb3b51
7
- data.tar.gz: 3fe50c3a56e2900692a15e0134453af0395790b1f020d91c7e14477a8c3e9293feef1987ee6f4bc0dff40bb1d891b0596aea5d8ec15de1b9ff79b4d503006118
6
+ metadata.gz: 123ec76435079d744bf4cd759b33932ea74f3381680b668a34e765f71817c69df7c2d012bbee5039363a26932b1cbda799d8a2abb85725fdbadceb4515f57f2b
7
+ data.tar.gz: f8265387cc5daaf80506352219cf787a847d4250c121bde4162fb88b62606f04f9120100025bc1fdf7dd98673eae922068f80a81cf1b056fb09c745fb4acd232
@@ -1,6 +1,6 @@
1
1
  #--
2
2
  # Author:: Lamont Granquist <lamont@chef.io>
3
- # Copyright:: Copyright 2010-2017, Chef Software Inc.
3
+ # Copyright:: Copyright 2010-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,6 +18,8 @@
18
18
  class Chef
19
19
  module Mixin
20
20
  module Which
21
+ require "chef/chef_class"
22
+
21
23
  def which(*cmds, extra_path: nil, &block)
22
24
  where(*cmds, extra_path: extra_path, &block).first || false
23
25
  end
@@ -225,7 +225,7 @@ class Chef
225
225
  #
226
226
  # @return [String] the full apt-key command to run
227
227
  def keyserver_install_cmd(key, keyserver)
228
- cmd = "apt-key adv --recv"
228
+ cmd = "apt-key adv --no-tty --recv"
229
229
  cmd << " --keyserver-options http-proxy=#{new_resource.key_proxy}" if new_resource.key_proxy
230
230
  cmd << " --keyserver "
231
231
  cmd << if keyserver.start_with?("hkp://")
@@ -37,7 +37,7 @@ class Chef
37
37
  def define_resource_requirements
38
38
  if creates && creates_relative? && !cwd
39
39
  # FIXME? move this onto the resource?
40
- raise Chef::Exceptions::Execute, "Please either specify a full path for the creates attribute, or specify a cwd property to the #{new_resource} resource"
40
+ raise Chef::Exceptions::Execute, "Please either specify a full path for the creates property, or specify a cwd property to the #{new_resource} resource"
41
41
  end
42
42
  end
43
43
 
@@ -68,7 +68,7 @@ class Chef
68
68
  !@new_profile_identifier.end_with?(".mobileconfig") &&
69
69
  /^\w+(?:(\.| )\w+)+$/.match(@new_profile_identifier)
70
70
  end
71
- a.failure_message RuntimeError, "when removing using the identifier attribute, it must match the profile identifier"
71
+ a.failure_message RuntimeError, "when removing using the identifier property, it must match the profile identifier"
72
72
  else
73
73
  new_profile_name = new_resource.profile_name
74
74
  a.assertion do
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2017, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,7 @@ class Chef
44
44
 
45
45
  requirements.assert(:all_actions) do |a|
46
46
  a.assertion { !new_resource.source }
47
- a.failure_message(Chef::Exceptions::Package, "apt package provider cannot handle source attribute. Use dpkg provider instead")
47
+ a.failure_message(Chef::Exceptions::Package, "apt package provider cannot handle source property. Use dpkg provider instead")
48
48
  end
49
49
  end
50
50
 
@@ -92,7 +92,8 @@ class Chef
92
92
  package_name = name.zip(version).map do |n, v|
93
93
  package_data[n][:virtual] ? n : "#{n}=#{v}"
94
94
  end
95
- run_noninteractive("apt-get", "-q", "-y", config_file_options, default_release_options, options, "install", package_name)
95
+ dgrade = "--allow-downgrades" if supports_allow_downgrade? && allow_downgrade
96
+ run_noninteractive("apt-get", "-q", "-y", dgrade, config_file_options, default_release_options, options, "install", package_name)
96
97
  end
97
98
 
98
99
  def upgrade_package(name, version)
@@ -133,6 +134,17 @@ class Chef
133
134
 
134
135
  private
135
136
 
137
+ # @return [String] version of apt-get which is installed
138
+ def apt_version
139
+ @apt_version ||= shell_out("apt-get --version").stdout.match(/^apt (\S+)/)[1]
140
+ end
141
+
142
+ # @return [Boolean] if apt-get supports --allow-downgrades
143
+ def supports_allow_downgrade?
144
+ return @supports_allow_downgrade unless @supports_allow_downgrade.nil?
145
+ @supports_allow_downgrade = ( version_compare(apt_version, "1.1.0") >= 0 )
146
+ end
147
+
136
148
  # compare 2 versions to each other to see which is newer.
137
149
  # this differs from the standard package method because we
138
150
  # need to be able to parse debian version strings which contain
@@ -74,9 +74,13 @@ class Chef
74
74
  end
75
75
 
76
76
  def dism_command(command)
77
- shellout = Mixlib::ShellOut.new("dism.exe /Online /English #{command} /NoRestart", timeout: new_resource.timeout)
78
77
  with_os_architecture(nil) do
79
- shellout.run_command
78
+ result = shell_out("dism.exe /Online /English #{command} /NoRestart", { timeout: new_resource.timeout })
79
+ if result.exitstatus == -2146498530
80
+ raise Chef::Exceptions::Package, "The specified package is not applicable to this image." if result.stdout.include?("0x800f081e")
81
+ result.error!
82
+ end
83
+ result
80
84
  end
81
85
  end
82
86
 
@@ -54,7 +54,7 @@ EOS
54
54
 
55
55
  # The check that Chocolatey is installed is in #choco_exe.
56
56
 
57
- # Chocolatey source attribute points to an alternate feed
57
+ # Chocolatey source property points to an alternate feed
58
58
  # and not a package specific alternate source like other providers
59
59
  # so we want to assert candidates exist for the alternate source
60
60
  requirements.assert(:upgrade, :install) do |a|
@@ -37,7 +37,8 @@ class Chef
37
37
  DNF_HELPER = ::File.expand_path(::File.join(::File.dirname(__FILE__), "dnf_helper.py")).freeze
38
38
 
39
39
  def dnf_command
40
- @dnf_command ||= which("python", "python3", "python2", "python2.7") do |f|
40
+ # platform-python is used for system tools on RHEL 8 and is installed under /usr/libexec
41
+ @dnf_command ||= which("platform-python", "python", "python3", "python2", "python2.7", extra_path: "/usr/libexec") do |f|
41
42
  shell_out("#{f} -c 'import dnf'").exitstatus == 0
42
43
  end + " #{DNF_HELPER}"
43
44
  end
@@ -53,7 +53,7 @@ class Chef
53
53
  # Below are incomplete/missing features for this package provider
54
54
  requirements.assert(:all_actions) do |a|
55
55
  a.assertion { !new_resource.source }
56
- a.failure_message(Chef::Exceptions::Package, "The openbsd package provider does not support the source attribute")
56
+ a.failure_message(Chef::Exceptions::Package, "The openbsd package provider does not support the source property")
57
57
  end
58
58
  requirements.assert(:all_actions) do |a|
59
59
  a.assertion do
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Daniel DeLeo (<dan@chef.io>)
4
- # Copyright:: Copyright 2008-2016, 2010-2017, Chef Software Inc.
4
+ # Copyright:: Copyright 2008-2016, 2010-2018, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -49,42 +49,44 @@ class Chef
49
49
 
50
50
  DEFAULT_UNINSTALLER_OPTS = { ignore: true, executables: true }.freeze
51
51
 
52
- ##
53
52
  # The paths where rubygems should search for installed gems.
54
53
  # Implemented by subclasses.
55
54
  def gem_paths
56
55
  raise NotImplementedError
57
56
  end
58
57
 
59
- ##
60
58
  # A rubygems source index containing the list of gemspecs for all
61
59
  # available gems in the gem installation.
62
60
  # Implemented by subclasses
63
- # === Returns
64
- # Gem::SourceIndex
61
+ #
62
+ # @return [Gem::SourceIndex]
63
+ #
65
64
  def gem_source_index
66
65
  raise NotImplementedError
67
66
  end
68
67
 
69
- ##
70
68
  # A rubygems specification object containing the list of gemspecs for all
71
69
  # available gems in the gem installation.
72
70
  # Implemented by subclasses
73
71
  # For rubygems >= 1.8.0
74
- # === Returns
75
- # Gem::Specification
72
+ #
73
+ # @return [Gem::Specification]
74
+ #
76
75
  def gem_specification
77
76
  raise NotImplementedError
78
77
  end
79
78
 
80
- ##
79
+ def rubygems_version
80
+ raise NotImplementedError
81
+ end
82
+
81
83
  # Lists the installed versions of +gem_name+, constrained by the
82
84
  # version spec in +gem_dep+
83
- # === Arguments
84
- # Gem::Dependency +gem_dep+ is a Gem::Dependency object, its version
85
- # specification constrains which gems are returned.
86
- # === Returns
87
- # [Gem::Specification] an array of Gem::Specification objects
85
+ #
86
+ # @param gem_dep [Gem::Dependency] the version specification that constrains
87
+ # which gems are used.
88
+ # @return [Array<Gem::Specification>] an array of Gem::Specification objects
89
+ #
88
90
  def installed_versions(gem_dep)
89
91
  rubygems_version = Gem::Version.new(Gem::VERSION)
90
92
  if rubygems_version >= Gem::Version.new("2.7")
@@ -266,6 +268,10 @@ class Chef
266
268
  Gem::Specification
267
269
  end
268
270
 
271
+ def rubygems_version
272
+ Gem::VERSION
273
+ end
274
+
269
275
  def candidate_version_from_remote(gem_dependency, *sources)
270
276
  with_gem_sources(*sources) do
271
277
  find_newest_remote_version(gem_dependency, *sources)
@@ -293,6 +299,10 @@ class Chef
293
299
  @gem_binary_location = gem_binary_location
294
300
  end
295
301
 
302
+ def rubygems_version
303
+ @rubygems_version ||= shell_out!("#{@gem_binary_location} --version").stdout.chomp
304
+ end
305
+
296
306
  def gem_paths
297
307
  if self.class.gempath_cache.key?(@gem_binary_location)
298
308
  self.class.gempath_cache[@gem_binary_location]
@@ -547,9 +557,9 @@ class Chef
547
557
  end
548
558
  src_str = src.empty? ? "" : " #{src.join(" ")}"
549
559
  if !version.nil? && !version.empty?
550
- shell_out!("#{gem_binary_path} install #{name} -q --no-rdoc --no-ri -v \"#{version}\"#{src_str}#{opts}", env: nil)
560
+ shell_out!("#{gem_binary_path} install #{name} -q #{rdoc_string} -v \"#{version}\"#{src_str}#{opts}", env: nil)
551
561
  else
552
- shell_out!("#{gem_binary_path} install \"#{name}\" -q --no-rdoc --no-ri #{src_str}#{opts}", env: nil)
562
+ shell_out!("#{gem_binary_path} install \"#{name}\" -q #{rdoc_string} #{src_str}#{opts}", env: nil)
553
563
  end
554
564
  end
555
565
 
@@ -585,6 +595,18 @@ class Chef
585
595
 
586
596
  private
587
597
 
598
+ def rdoc_string
599
+ if needs_nodocument?
600
+ "--no-document"
601
+ else
602
+ "--no-rdoc --no-ri"
603
+ end
604
+ end
605
+
606
+ def needs_nodocument?
607
+ Gem::Requirement.new(">= 3.0.0.beta1").satisfied_by?(Gem::Version.new(gem_env.rubygems_version))
608
+ end
609
+
588
610
  def opts
589
611
  expand_options(new_resource.options)
590
612
  end
@@ -32,7 +32,7 @@ class Chef
32
32
 
33
33
  property :overwrite_config_files, [TrueClass, FalseClass],
34
34
  introduced: "14.0",
35
- description: "Overwrite existing config files with those in the package if prompted by apt.",
35
+ description: "Overwrite existing configuration files with those supplied by the package, if prompted by APT.",
36
36
  default: false
37
37
 
38
38
  end
@@ -30,7 +30,7 @@ class Chef
30
30
 
31
31
  property :package_name, String,
32
32
  name_property: true,
33
- description: "The name of the package.",
33
+ description: "An optional property to set the package name if it differs from the resource block's name.",
34
34
  regex: [/^([a-z]|[A-Z]|[0-9]|_|-|\.|\*|\+)+$/],
35
35
  validation_message: "The provided package name is not valid. Package names can only contain alphanumeric characters as well as _, -, +, or *!"
36
36
 
@@ -34,7 +34,7 @@ class Chef
34
34
  # to allow that so don't refactor this however tempting it is
35
35
  property :repo_name, String,
36
36
  regex: [/^[^\/]+$/],
37
- description: "The name of the repository to configure, if it differs from the name of the resource block. The value of this setting must not contain spaces.",
37
+ description: "An optional property to set the repository name if it differs from the resource block's name. The value of this setting must not contain spaces.",
38
38
  validation_message: "repo_name property cannot contain a forward slash '/'",
39
39
  introduced: "14.1", name_property: true
40
40
 
@@ -24,7 +24,7 @@ class Chef
24
24
  introduced "14.3"
25
25
 
26
26
  property :config_key, String, name_property: true,
27
- description: "The name of the config. The resource's name will be used if this isn't provided."
27
+ description: "An optional property to set the config key name if it differs from the resource block's name."
28
28
 
29
29
  property :value, String,
30
30
  description: "The value to set."
@@ -24,7 +24,7 @@ class Chef
24
24
  introduced "14.3"
25
25
 
26
26
  property :source_name, String, name_property: true,
27
- description: "The name of the source to add. The resource's name will be used if this isn't provided."
27
+ description: "An optional property to set the source name if it differs from the resource block's name."
28
28
 
29
29
  property :source, String,
30
30
  description: "The source URL."
@@ -134,14 +134,33 @@ class Chef
134
134
  )
135
135
  end
136
136
 
137
- property :time, Symbol, equal_to: Chef::Provider::Cron::SPECIAL_TIME_VALUES
138
- property :mailto, String
139
- property :path, String
140
- property :home, String
141
- property :shell, String
142
- property :command, String, identity: true
143
- property :user, String, default: "root"
144
- property :environment, Hash, default: lazy { Hash.new }
137
+ property :time, Symbol,
138
+ description: "A time interval. Possible values: :annually, :daily, :hourly, :midnight, :monthly, :reboot, :weekly, or :yearly.",
139
+ equal_to: Chef::Provider::Cron::SPECIAL_TIME_VALUES
140
+
141
+ property :mailto, String,
142
+ description: "Set the MAILTO environment variable."
143
+
144
+ property :path, String,
145
+ description: "Set the PATH environment variable."
146
+
147
+ property :home, String,
148
+ description: "Set the HOME environment variable."
149
+
150
+ property :shell, String,
151
+ description: "Set the SHELL environment variable."
152
+
153
+ property :command, String,
154
+ description: "The command to be run, or the path to a file that contains the command to be run.",
155
+ identity: true
156
+
157
+ property :user, String,
158
+ description: "The name of the user that runs the command. If the user property is changed, the original user for the crontab program continues to run until that crontab program is deleted. This property is not applicable on the AIX platform.",
159
+ default: "root"
160
+
161
+ property :environment, Hash,
162
+ description: "A Hash of environment variables in the form of ({'ENV_VARIABLE' => 'VALUE'}).",
163
+ default: lazy { Hash.new }
145
164
 
146
165
  private
147
166
 
@@ -31,7 +31,7 @@ class Chef
31
31
  description "Use the cron_access resource to manage the /etc/cron.allow and /etc/cron.deny files."
32
32
 
33
33
  property :user, String,
34
- description: "The user to allow or deny. If not provided we'll use the resource name.",
34
+ description: "An optional property to set the user name if it differs from the resource block's name.",
35
35
  name_property: true
36
36
 
37
37
  action :allow do
@@ -88,7 +88,7 @@ class Chef
88
88
  end
89
89
 
90
90
  property :cron_name, String,
91
- description: "Set the name of the cron job. If this isn't specified we'll use the resource name.",
91
+ description: "An optional property to set the cron name if it differs from the resource block's name.",
92
92
  name_property: true
93
93
 
94
94
  property :cookbook, String, desired_state: false
@@ -98,31 +98,31 @@ class Chef
98
98
  equal_to: %w{ @reboot @yearly @annually @monthly @weekly @daily @midnight @hourly }
99
99
 
100
100
  property :minute, [Integer, String],
101
- description: "The minute to schedule the cron job to run at. Valid values: 0-59.",
101
+ description: "The minute at which the cron entry should run (0 - 59).",
102
102
  default: "*", callbacks: {
103
103
  "should be a valid minute spec" => ->(spec) { validate_numeric(spec, 0, 59) },
104
104
  }
105
105
 
106
106
  property :hour, [Integer, String],
107
- description: "The hour to schedule the cron job to run at. Valid values: 0-23.",
107
+ description: "The hour at which the cron entry should run (0 - 23).",
108
108
  default: "*", callbacks: {
109
109
  "should be a valid hour spec" => ->(spec) { validate_numeric(spec, 0, 23) },
110
110
  }
111
111
 
112
112
  property :day, [Integer, String],
113
- description: "The day to schedule the cron job to run at. Valid values: 1-31.",
113
+ description: "The day of month at which the cron entry should run (1 - 31).",
114
114
  default: "*", callbacks: {
115
115
  "should be a valid day spec" => ->(spec) { validate_numeric(spec, 1, 31) },
116
116
  }
117
117
 
118
118
  property :month, [Integer, String],
119
- description: "The month to schedule the cron job to run at. Valid values: 1-12, jan-dec, or *.",
119
+ description: "The month in the year on which a cron entry is to run (1 - 12, jan-dec, or *).",
120
120
  default: "*", callbacks: {
121
121
  "should be a valid month spec" => ->(spec) { validate_month(spec) },
122
122
  }
123
123
 
124
124
  property :weekday, [Integer, String],
125
- description: "The day to schedule the cron job to run at. Valid values: 0-7, mon-sun, or *.",
125
+ description: "The day of the week on which this entry is to run (0-7, mon-sun, or *), where Sunday is both 0 and 7.",
126
126
  default: "*", callbacks: {
127
127
  "should be a valid weekday spec" => ->(spec) { validate_dow(spec) },
128
128
  }
@@ -132,7 +132,7 @@ class Chef
132
132
  required: true
133
133
 
134
134
  property :user, String,
135
- description: "The user to run the cron job as.",
135
+ description: "The name of the user that runs the command.",
136
136
  default: "root"
137
137
 
138
138
  property :mailto, String,
@@ -151,7 +151,7 @@ class Chef
151
151
  description: "A comment to place in the cron.d file."
152
152
 
153
153
  property :environment, Hash,
154
- description: "A Hash containing additional arbitrary environment variables under which the cron job will be run.",
154
+ description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of ``({'ENV_VARIABLE' => 'VALUE'})``.",
155
155
  default: lazy { Hash.new }
156
156
 
157
157
  property :mode, [String, Integer],
@@ -44,7 +44,7 @@ class Chef
44
44
  description: "The path to the directory. Using a fully qualified path is recommended, but is not always required."
45
45
 
46
46
  property :recursive, [ TrueClass, FalseClass ],
47
- description: "Create or delete parent directories recursively. For the owner, group, and mode properties, the value of this attribute applies only to the leaf directory.",
47
+ description: "Create or delete parent directories recursively. For the owner, group, and mode properties, the value of this property applies only to the leaf directory.",
48
48
  default: false
49
49
  end
50
50
  end
@@ -27,31 +27,31 @@ class Chef
27
27
  introduced "14.0"
28
28
 
29
29
  property :app, String,
30
- description: "The name of the application used by default for the /Volumes directory and the .app directory copied to /Applications.",
30
+ description: "The name of the application as it appears in the /Volumes directory, if it differs from the resource block's name.",
31
31
  name_property: true
32
32
 
33
33
  property :source, String,
34
- description: "The remote URL for the dmg to download if specified."
34
+ description: "The remote URL that is used to download the .dmg file, if specified."
35
35
 
36
36
  property :file, String,
37
- description: "The local dmg full file path."
37
+ description: "The full path to the .dmg file on the local system."
38
38
 
39
39
  property :owner, String,
40
- description: "The owner that should own the package installation."
40
+ description: "The user that should own the package installation."
41
41
 
42
42
  property :destination, String,
43
43
  description: "The directory to copy the .app into.",
44
44
  default: "/Applications"
45
45
 
46
46
  property :checksum, String,
47
- description: "The sha256 checksum of the dmg to download."
47
+ description: "The sha256 checksum of the .dmg file to download."
48
48
 
49
49
  property :volumes_dir, String,
50
- description: "The Directory under /Volumes where the dmg is mounted as not all dmgs are mounted into a /Volumes location matching the name of the dmg.",
50
+ description: "The directory under /Volumes where the dmg is mounted, if it differs from the name of the .dmg file.",
51
51
  default: lazy { |r| r.app }, default_description: "The value passed for the application name."
52
52
 
53
53
  property :dmg_name, String,
54
- description: "The name of the dmg if it is not the same as app, or if the name has spaces.",
54
+ description: "The name of the .dmg file if it differs from that of the app, or if the name has spaces.",
55
55
  desired_state: false,
56
56
  default: lazy { |r| r.app }, default_description: "The value passed for the application name."
57
57
 
@@ -61,10 +61,10 @@ class Chef
61
61
  default: "app", desired_state: false
62
62
 
63
63
  property :package_id, String,
64
- description: "The package id registered with pkgutil when a pkg or mpkg is installed."
64
+ description: "The package ID that is registered with pkgutil when a pkg or mpkg is installed."
65
65
 
66
66
  property :dmg_passphrase, String,
67
- description: "Specify a passphrase to use to unencrypt the dmg while mounting.",
67
+ description: "Specify a passphrase to be used to decrypt the .dmg file during the mount process.",
68
68
  desired_state: false
69
69
 
70
70
  property :accept_eula, [TrueClass, FalseClass],