chef 16.1.16-universal-mingw32 → 16.2.44-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -3
  3. data/README.md +3 -3
  4. data/Rakefile +2 -2
  5. data/chef.gemspec +3 -3
  6. data/lib/chef/application/apply.rb +1 -1
  7. data/lib/chef/application/base.rb +1 -1
  8. data/lib/chef/application/client.rb +1 -1
  9. data/lib/chef/application/windows_service_manager.rb +1 -1
  10. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  11. data/lib/chef/chef_fs/path_utils.rb +1 -1
  12. data/lib/chef/cookbook/chefignore.rb +1 -1
  13. data/lib/chef/cookbook/metadata.rb +1 -1
  14. data/lib/chef/cookbook_version.rb +2 -2
  15. data/lib/chef/data_bag.rb +4 -4
  16. data/lib/chef/deprecated.rb +4 -0
  17. data/lib/chef/file_access_control.rb +1 -1
  18. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  19. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  20. data/lib/chef/http.rb +17 -2
  21. data/lib/chef/http/http_request.rb +1 -1
  22. data/lib/chef/http/json_output.rb +1 -1
  23. data/lib/chef/http/ssl_policies.rb +18 -0
  24. data/lib/chef/knife.rb +1 -1
  25. data/lib/chef/knife/bootstrap.rb +3 -6
  26. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  27. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  28. data/lib/chef/knife/config_get.rb +1 -1
  29. data/lib/chef/knife/cookbook_delete.rb +1 -1
  30. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  31. data/lib/chef/knife/data_bag_create.rb +1 -1
  32. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  33. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  34. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  35. data/lib/chef/knife/ssh.rb +1 -1
  36. data/lib/chef/knife/supermarket_share.rb +1 -1
  37. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  38. data/lib/chef/log.rb +1 -1
  39. data/lib/chef/mixin/securable.rb +2 -2
  40. data/lib/chef/powershell.rb +1 -1
  41. data/lib/chef/provider/batch.rb +3 -10
  42. data/lib/chef/provider/cron.rb +2 -14
  43. data/lib/chef/provider/execute.rb +2 -1
  44. data/lib/chef/provider/group/dscl.rb +2 -2
  45. data/lib/chef/provider/group/windows.rb +1 -1
  46. data/lib/chef/provider/ifconfig.rb +7 -7
  47. data/lib/chef/provider/mount/aix.rb +1 -1
  48. data/lib/chef/provider/mount/windows.rb +2 -2
  49. data/lib/chef/provider/noop.rb +1 -1
  50. data/lib/chef/provider/package/openbsd.rb +1 -1
  51. data/lib/chef/provider/package/portage.rb +2 -2
  52. data/lib/chef/provider/package/powershell.rb +6 -2
  53. data/lib/chef/provider/package/rubygems.rb +2 -2
  54. data/lib/chef/provider/package/snap.rb +96 -27
  55. data/lib/chef/provider/package/windows/msi.rb +3 -3
  56. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  57. data/lib/chef/provider/powershell_script.rb +10 -14
  58. data/lib/chef/provider/remote_file/http.rb +4 -1
  59. data/lib/chef/provider/script.rb +4 -75
  60. data/lib/chef/provider/service/arch.rb +1 -1
  61. data/lib/chef/provider/service/debian.rb +2 -2
  62. data/lib/chef/provider/service/openbsd.rb +4 -4
  63. data/lib/chef/provider/service/redhat.rb +1 -1
  64. data/lib/chef/provider/service/windows.rb +1 -1
  65. data/lib/chef/provider/subversion.rb +2 -2
  66. data/lib/chef/provider/user/dscl.rb +4 -4
  67. data/lib/chef/provider/user/linux.rb +3 -3
  68. data/lib/chef/provider/user/mac.rb +5 -5
  69. data/lib/chef/provider/windows_script.rb +87 -25
  70. data/lib/chef/provider/zypper_repository.rb +30 -10
  71. data/lib/chef/resource.rb +22 -11
  72. data/lib/chef/resource/apt_package.rb +1 -1
  73. data/lib/chef/resource/archive_file.rb +28 -8
  74. data/lib/chef/resource/bash.rb +0 -1
  75. data/lib/chef/resource/batch.rb +4 -2
  76. data/lib/chef/resource/chef_client_scheduled_task.rb +13 -1
  77. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  78. data/lib/chef/resource/cron/cron.rb +46 -0
  79. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
  80. data/lib/chef/resource/cron_access.rb +11 -3
  81. data/lib/chef/resource/csh.rb +0 -1
  82. data/lib/chef/resource/execute.rb +477 -7
  83. data/lib/chef/resource/file.rb +1 -1
  84. data/lib/chef/resource/freebsd_package.rb +1 -1
  85. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  86. data/lib/chef/resource/homebrew_package.rb +30 -1
  87. data/lib/chef/resource/homebrew_update.rb +107 -0
  88. data/lib/chef/resource/hostname.rb +6 -19
  89. data/lib/chef/resource/kernel_module.rb +14 -1
  90. data/lib/chef/resource/mount.rb +1 -1
  91. data/lib/chef/resource/perl.rb +0 -1
  92. data/lib/chef/resource/plist.rb +23 -4
  93. data/lib/chef/resource/powershell_script.rb +4 -2
  94. data/lib/chef/resource/python.rb +0 -1
  95. data/lib/chef/resource/remote_file.rb +26 -10
  96. data/lib/chef/resource/ruby.rb +0 -1
  97. data/lib/chef/resource/template.rb +1 -1
  98. data/lib/chef/resource/windows_ad_join.rb +30 -1
  99. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  100. data/lib/chef/resource/windows_auto_run.rb +11 -0
  101. data/lib/chef/resource/windows_certificate.rb +26 -0
  102. data/lib/chef/resource/windows_font.rb +3 -3
  103. data/lib/chef/resource/windows_package.rb +1 -1
  104. data/lib/chef/resource/windows_pagefile.rb +1 -1
  105. data/lib/chef/resource/windows_script.rb +2 -16
  106. data/lib/chef/resource/windows_security_policy.rb +17 -15
  107. data/lib/chef/resource/windows_shortcut.rb +1 -2
  108. data/lib/chef/resource/windows_task.rb +4 -4
  109. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  110. data/lib/chef/resource/yum_repository.rb +9 -9
  111. data/lib/chef/resources.rb +4 -2
  112. data/lib/chef/search/query.rb +1 -1
  113. data/lib/chef/util/diff.rb +2 -2
  114. data/lib/chef/util/windows/net_user.rb +1 -1
  115. data/lib/chef/util/windows/volume.rb +1 -1
  116. data/lib/chef/version.rb +1 -1
  117. data/lib/chef/win32/file.rb +1 -1
  118. data/lib/chef/win32/registry.rb +2 -2
  119. data/lib/chef/win32/security.rb +1 -1
  120. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  121. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  122. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  123. data/spec/functional/resource/cron_spec.rb +10 -0
  124. data/spec/functional/resource/remote_file_spec.rb +2 -2
  125. data/spec/functional/resource/windows_task_spec.rb +8 -8
  126. data/spec/support/platform_helpers.rb +1 -1
  127. data/spec/support/platforms/win32/spec_service.rb +1 -1
  128. data/spec/support/shared/functional/execute_resource.rb +1 -1
  129. data/spec/support/shared/unit/execute_resource.rb +1 -1
  130. data/spec/unit/application_spec.rb +7 -0
  131. data/spec/unit/data_bag_spec.rb +1 -1
  132. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  133. data/spec/unit/knife/bootstrap_spec.rb +2 -2
  134. data/spec/unit/mixin/user_context_spec.rb +1 -9
  135. data/spec/unit/property_spec.rb +1 -1
  136. data/spec/unit/provider/batch_spec.rb +130 -0
  137. data/spec/unit/provider/cron_spec.rb +9 -49
  138. data/spec/unit/provider/package/powershell_spec.rb +95 -86
  139. data/spec/unit/provider/package/snap_spec.rb +1 -1
  140. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  141. data/spec/unit/provider/script_spec.rb +20 -110
  142. data/spec/unit/provider/zypper_repository_spec.rb +60 -10
  143. data/spec/unit/resource/archive_file_spec.rb +11 -2
  144. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  145. data/spec/unit/resource/cron_spec.rb +2 -2
  146. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  147. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  148. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  149. data/spec/unit/resource/timezone_spec.rb +1 -1
  150. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  151. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  152. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  153. data/spec/unit/resource/windows_task_spec.rb +1 -1
  154. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  155. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  156. data/spec/unit/resource_spec.rb +67 -1
  157. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  158. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  159. metadata +22 -22
  160. data/lib/chef/resource/cron.rb +0 -157
@@ -76,7 +76,7 @@ class Chef
76
76
  property :diff, [ String, nil ], desired_state: false, skip_docs: true
77
77
 
78
78
  property :force_unlink, [ TrueClass, FalseClass ], desired_state: false, default: false,
79
- description: "How #{Chef::Dist::PRODUCT} handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to true for #{Chef::Dist::PRODUCT} to delete the non-file target and replace it with the specified file. Set to false for #{Chef::Dist::PRODUCT} to raise an error."
79
+ description: "How #{Chef::Dist::PRODUCT} handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to `true` for #{Chef::Dist::PRODUCT} to delete the non-file target and replace it with the specified file. Set to `false` for #{Chef::Dist::PRODUCT} to raise an error."
80
80
 
81
81
  property :manage_symlink_source, [ TrueClass, FalseClass ], desired_state: false,
82
82
  description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, #{Chef::Dist::PRODUCT} will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, #{Chef::Dist::PRODUCT} will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
@@ -42,7 +42,7 @@ class Chef
42
42
  private
43
43
 
44
44
  def assign_provider
45
- @provider = if source.to_s =~ /^ports$/i
45
+ @provider = if /^ports$/i.match?(source.to_s)
46
46
  Chef::Provider::Package::Freebsd::Port
47
47
  else
48
48
  Chef::Provider::Package::Freebsd::Pkgng
@@ -35,7 +35,7 @@ class Chef
35
35
  # Lists of individual values, ranges, and step values all share the validity range for type
36
36
  spec.split(%r{\/|-|,}).each do |x|
37
37
  next if x == "*"
38
- return false unless x =~ /^\d+$/
38
+ return false unless /^\d+$/.match?(x)
39
39
 
40
40
  x = x.to_i
41
41
  return false unless x >= min && x <= max
@@ -62,13 +62,16 @@ class Chef
62
62
  end
63
63
  end
64
64
 
65
- # validate the provided day of the week is sun-sat, 0-7, or *
65
+ # validate the provided day of the week is sun-sat, sunday-saturday, 0-7, or *
66
+ # Added crontab param to check cron resource
66
67
  # @param spec the value to validate
67
68
  # @return [Boolean] valid or not?
68
69
  def validate_dow(spec)
70
+ spec = spec.to_s
69
71
  spec == "*" ||
70
72
  validate_numeric(spec, 0, 7) ||
71
- %w{sun mon tue wed thu fri sat}.include?(String(spec).downcase)
73
+ %w{sun mon tue wed thu fri sat}.include?(spec.downcase) ||
74
+ %w{sunday monday tuesday wednesday thursday friday saturday}.include?(spec.downcase)
72
75
  end
73
76
 
74
77
  # validate the day of the month is 1-31
@@ -29,8 +29,37 @@ class Chef
29
29
  provides :homebrew_package
30
30
  provides :package, os: "darwin"
31
31
 
32
- description "Use the **homebrew_package** resource to manage packages for the macOS platform."
32
+ description "Use the **homebrew_package** resource to manage packages for the macOS platform. Note: Starting with #{Chef::Dist::PRODUCT} 16 the homebrew resource now accepts an array of packages for installing multiple packages at once."
33
33
  introduced "12.0"
34
+ examples <<~DOC
35
+ **Install a package**:
36
+
37
+ ```ruby
38
+ homebrew_package 'git'
39
+ ```
40
+
41
+ **Install multiple packages at once**:
42
+
43
+ ```ruby
44
+ homebrew_package %w(git fish ruby)
45
+ ```
46
+
47
+ **Specify the Homebrew user with a UUID**
48
+
49
+ ```ruby
50
+ homebrew_package 'git' do
51
+ homebrew_user 1001
52
+ end
53
+ ```
54
+
55
+ **Specify the Homebrew user with a string**:
56
+
57
+ ```ruby
58
+ homebrew_package 'vim' do
59
+ homebrew_user 'user1'
60
+ end
61
+ ```
62
+ DOC
34
63
 
35
64
  property :homebrew_user, [ String, Integer ],
36
65
  description: "The name or uid of the Homebrew owner to be used by #{Chef::Dist::PRODUCT} when executing a command."
@@ -0,0 +1,107 @@
1
+ #
2
+ # Author:: Joshua Timberman (<jtimberman@chef.io>)
3
+ # Author:: Dan Webb (<dan@webb-agile-solutions.ltd>)
4
+ #
5
+ # Copyright:: Copyright (c) Chef Software Inc.
6
+ # Copyright:: Copyright (c) Webb Agile Solutions Ltd.
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ require_relative "../resource"
22
+ require_relative "../dist"
23
+
24
+ class Chef
25
+ class Resource
26
+ class HomebrewUpdate < Chef::Resource
27
+ unified_mode true
28
+
29
+ provides(:homebrew_update) { true }
30
+
31
+ description "Use the **homebrew_update** resource to manage Homebrew repository updates on macOS."
32
+ introduced "16.2"
33
+ examples <<~DOC
34
+ **Update the homebrew repository data at a specified interval**:
35
+ ```ruby
36
+ homebrew_update 'all platforms' do
37
+ frequency 86400
38
+ action :periodic
39
+ end
40
+ ```
41
+ **Update the Homebrew repository at the start of a #{Chef::Dist::PRODUCT} run**:
42
+ ```ruby
43
+ homebrew_update 'update'
44
+ ```
45
+ DOC
46
+
47
+ # allow bare homebrew_update with no name
48
+ property :name, String, default: ""
49
+
50
+ property :frequency, Integer,
51
+ description: "Determines how frequently (in seconds) Homebrew updates are made. Use this property when the `:periodic` action is specified.",
52
+ default: 86_400
53
+
54
+ default_action :periodic
55
+ allowed_actions :update, :periodic
56
+
57
+ action_class do
58
+ BREW_STAMP_DIR = "/var/lib/homebrew/periodic".freeze
59
+ BREW_STAMP = "#{BREW_STAMP_DIR}/update-success-stamp".freeze
60
+
61
+ # Determines whether we need to run `homebrew update`
62
+ #
63
+ # @return [Boolean]
64
+ def brew_up_to_date?
65
+ ::File.exist?("#{BREW_STAMP}") &&
66
+ ::File.mtime("#{BREW_STAMP}") > Time.now - new_resource.frequency
67
+ end
68
+
69
+ def do_update
70
+ directory BREW_STAMP_DIR do
71
+ recursive true
72
+ end
73
+
74
+ file "#{BREW_STAMP}" do
75
+ content "BREW::Update::Post-Invoke-Success\n"
76
+ action :create_if_missing
77
+ end
78
+
79
+ execute "brew update" do
80
+ command %w{brew update}
81
+ default_env true
82
+ user Homebrew.owner
83
+ notifies :touch, "file[#{BREW_STAMP}]", :immediately
84
+ end
85
+ end
86
+ end
87
+
88
+ action :periodic do
89
+ return unless mac_os_x?
90
+
91
+ unless brew_up_to_date?
92
+ converge_by "update new lists of packages" do
93
+ do_update
94
+ end
95
+ end
96
+ end
97
+
98
+ action :update do
99
+ return unless mac_os_x?
100
+
101
+ converge_by "force update new lists of packages" do
102
+ do_update
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -1,4 +1,7 @@
1
1
  #
2
+ # Copyright:: Copyright (c) Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
2
5
  # Licensed under the Apache License, Version 2.0 (the "License");
3
6
  # you may not use this file except in compliance with the License.
4
7
  # You may obtain a copy of the License at
@@ -13,6 +16,7 @@
13
16
  #
14
17
 
15
18
  require_relative "../resource"
19
+ require_relative "../dist"
16
20
 
17
21
  class Chef
18
22
  class Resource
@@ -199,24 +203,7 @@ class Chef
199
203
  group node["root_group"]
200
204
  mode "0644"
201
205
  end
202
- when ::File.exist?("/etc/nodename")
203
- # Solaris <= 5.10 systems prior to svccfg taking over this functionality (must come before svccfg handling)
204
- declare_resource(:file, "/etc/nodename") do
205
- content "#{new_resource.hostname}\n"
206
- owner "root"
207
- group node["root_group"]
208
- mode "0644"
209
- end
210
- # Solaris also has /etc/inet/hosts (copypasta alert)
211
- unless new_resource.ipaddress.nil?
212
- newline = "#{new_resource.ipaddress} #{new_resource.hostname}"
213
- newline << " #{new_resource.aliases.join(" ")}" if new_resource.aliases && !new_resource.aliases.empty?
214
- newline << " #{new_resource.hostname[/[^\.]*/]}"
215
- r = append_replacing_matching_lines("/etc/inet/hosts", /^#{new_resource.ipaddress}\s+|\s+#{new_resource.hostname}\s+/, newline)
216
- r.notifies :reload, "ohai[reload hostname]"
217
- end
218
- when ::File.exist?("/usr/sbin/svccfg")
219
- # Solaris >= 5.11 systems using svccfg (must come after /etc/nodename handling)
206
+ when ::File.exist?("/usr/sbin/svccfg") # solaris 5.11
220
207
  declare_resource(:execute, "svccfg -s system/identity:node setprop config/nodename=\'#{new_resource.hostname}\'") do
221
208
  notifies :run, "execute[svcadm refresh]", :immediately
222
209
  notifies :run, "execute[svcadm restart]", :immediately
@@ -262,7 +249,7 @@ class Chef
262
249
 
263
250
  # reboot because $windows
264
251
  declare_resource(:reboot, "setting hostname") do
265
- reason "chef setting hostname"
252
+ reason "#{Chef::Dist::PRODUCT} updated system hostname"
266
253
  action :nothing
267
254
  only_if { new_resource.windows_reboot }
268
255
  end
@@ -19,11 +19,14 @@ class Chef
19
19
  introduced "14.3"
20
20
  examples <<~DOC
21
21
  Install and load a kernel module, and ensure it loads on reboot.
22
+
22
23
  ```ruby
23
24
  kernel_module 'loop'
24
25
  ```
26
+
25
27
  Install and load a kernel with a specific set of options, and ensure it loads on reboot. Consult kernel module
26
28
  documentation for specific options that are supported.
29
+
27
30
  ```ruby
28
31
  kernel_module 'loop' do
29
32
  options [
@@ -32,31 +35,41 @@ class Chef
32
35
  ]
33
36
  end
34
37
  ```
38
+
35
39
  Load a kernel module.
40
+
36
41
  ```ruby
37
42
  kernel_module 'loop' do
38
43
  action :load
39
44
  end
40
45
  ```
41
- Unload a kernel module and remove module config, so it doesn’t load on reboot.
46
+
47
+ Unload a kernel module and remove module config, so it doesn't load on reboot.
48
+
42
49
  ```ruby
43
50
  kernel_module 'loop' do
44
51
  action :uninstall
45
52
  end
46
53
  ```
54
+
47
55
  Unload kernel module.
56
+
48
57
  ```ruby
49
58
  kernel_module 'loop' do
50
59
  action :unload
51
60
  end
52
61
  ```
62
+
53
63
  Blacklist a module from loading.
64
+
54
65
  ```ruby
55
66
  kernel_module 'loop' do
56
67
  action :blacklist
57
68
  end
58
69
  ```
70
+
59
71
  Disable a kernel module.
72
+
60
73
  ```ruby
61
74
  kernel_module 'loop' do
62
75
  action :disable
@@ -50,7 +50,7 @@ class Chef
50
50
  description: "The type of device: :device, :label, or :uuid",
51
51
  coerce: proc { |arg| arg.is_a?(String) ? arg.to_sym : arg },
52
52
  default: :device,
53
- equal_to: RUBY_PLATFORM =~ /solaris/i ? %i{ device } : %i{ device label uuid }
53
+ equal_to: RUBY_PLATFORM.match?(/solaris/i) ? %i{ device } : %i{ device label uuid }
54
54
 
55
55
  # @todo this should get refactored away: https://github.com/chef/chef/issues/7621
56
56
  property :mounted, [TrueClass, FalseClass], default: false, skip_docs: true
@@ -17,7 +17,6 @@
17
17
  #
18
18
 
19
19
  require_relative "script"
20
- require_relative "../provider/script"
21
20
 
22
21
  class Chef
23
22
  class Resource
@@ -28,14 +28,33 @@ class Chef
28
28
 
29
29
  description "Use the **plist** resource to set config values in plist files on macOS systems."
30
30
  introduced "16.0"
31
+ examples <<~DOC
32
+ **Show hidden files in finder**:
33
+
34
+ ```ruby
35
+ plist 'show hidden files' do
36
+ path '/Users/vagrant/Library/Preferences/com.apple.finder.plist'
37
+ entry 'AppleShowAllFiles'
38
+ value true
39
+ end
40
+ ```
41
+ DOC
42
+
43
+ property :path, String, name_property: true,
44
+ description: "The path on disk to the plist file."
31
45
 
32
- property :path, String, name_property: true
33
46
  property :entry, String
34
47
  property :value, [TrueClass, FalseClass, String, Integer, Float, Hash]
35
48
  property :encoding, String, default: "binary"
36
- property :owner, String, default: "root"
37
- property :group, String, default: "wheel"
38
- property :mode, [String, Integer]
49
+
50
+ property :owner, String, default: "root",
51
+ description: "The owner of the plist file."
52
+
53
+ property :group, String, default: "wheel",
54
+ description: "The group of the plist file."
55
+
56
+ property :mode, [String, Integer],
57
+ description: "The file mode of the plist file. Ex: '644'"
39
58
 
40
59
  PLISTBUDDY_EXECUTABLE = "/usr/libexec/PlistBuddy".freeze
41
60
  DEFAULTS_EXECUTABLE = "/usr/bin/defaults".freeze
@@ -48,8 +48,10 @@ class Chef
48
48
  " idempotent, as they are typically unique to the environment in which they are run. Use not_if"\
49
49
  " and only_if to guard this resource for idempotence."
50
50
 
51
- def initialize(name, run_context = nil)
52
- super(name, run_context, :powershell_script, "powershell.exe")
51
+ def initialize(*args)
52
+ super
53
+ @interpreter = "powershell.exe"
54
+ @default_guard_interpreter = resource_name
53
55
  @convert_boolean_return = false
54
56
  end
55
57
 
@@ -16,7 +16,6 @@
16
16
  #
17
17
 
18
18
  require_relative "script"
19
- require_relative "../provider/script"
20
19
 
21
20
  class Chef
22
21
  class Resource
@@ -22,6 +22,7 @@ require_relative "file"
22
22
  require_relative "../provider/remote_file"
23
23
  require_relative "../mixin/securable"
24
24
  require_relative "../mixin/uris"
25
+ require_relative "../dist"
25
26
 
26
27
  class Chef
27
28
  class Resource
@@ -31,7 +32,7 @@ class Chef
31
32
 
32
33
  provides :remote_file
33
34
 
34
- description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the file resource."
35
+ description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the **file** resource. Note: Fetching files from the `files/` directory in a cookbook should be done with the **cookbook_file** resource."
35
36
 
36
37
  def initialize(name, run_context = nil)
37
38
  super
@@ -72,7 +73,8 @@ class Chef
72
73
  end
73
74
  end
74
75
 
75
- property :checksum, String
76
+ property :checksum, String,
77
+ description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{Chef::Dist::PRODUCT} does not download it."
76
78
 
77
79
  # Disable or enable ETag and Last Modified conditional GET. Equivalent to
78
80
  # use_etag(true_or_false)
@@ -82,25 +84,39 @@ class Chef
82
84
  use_last_modified(true_or_false)
83
85
  end
84
86
 
85
- property :use_etag, [ TrueClass, FalseClass ], default: true
87
+ property :use_etag, [ TrueClass, FalseClass ], default: true,
88
+ description: "Enable ETag headers. Set to false to disable ETag headers. To use this setting, `use_conditional_get` must also be set to true."
86
89
 
87
90
  alias :use_etags :use_etag
88
91
 
89
- property :use_last_modified, [ TrueClass, FalseClass ], default: true
92
+ property :use_last_modified, [ TrueClass, FalseClass ], default: true,
93
+ description: "Enable `If-Modified-Since` headers. Set to `false` to disable `If-Modified-Since` headers. To use this setting, `use_conditional_get` must also be set to `true`."
90
94
 
91
- property :ftp_active_mode, [ TrueClass, FalseClass ], default: false
95
+ property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
96
+ description: "Whether #{Chef::Dist::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
92
97
 
93
- property :headers, Hash, default: lazy { {} }
98
+ property :headers, Hash, default: lazy { {} },
99
+ description: "A Hash of custom HTTP headers."
94
100
 
95
101
  property :show_progress, [ TrueClass, FalseClass ], default: false
96
102
 
97
- property :remote_user, String
103
+ property :ssl_verify_mode, Symbol, equal_to: %i{verify_none verify_peer},
104
+ introduced: "16.2",
105
+ description: "Optional property to override SSL policy. If not specified, uses the SSL policy from `config.rb`."
98
106
 
99
- property :remote_domain, String
107
+ property :remote_user, String,
108
+ introduced: "13.4",
109
+ description: '**Windows only** The name of a user with access to the remote file specified by the source property. The user name may optionally be specified with a domain, such as: `domain\user` or `user@my.dns.domain.com` via Universal Principal Name (UPN) format. The domain may also be set using the `remote_domain` property. Note that this property is ignored if source is not a UNC path. If this property is specified, the `remote_password` property is required.'
100
110
 
101
- property :remote_password, String, sensitive: true
111
+ property :remote_domain, String,
112
+ introduced: "13.4",
113
+ description: "**Windows only** The domain of the user specified by the `remote_user` property. By default the resource will authenticate against the domain of the remote system, or as a local account if the remote system is not joined to a domain. If the remote system is not part of a domain, it is necessary to authenticate as a local user on the remote system by setting the domain to `.`, for example: remote_domain '.'. The domain may also be specified as part of the `remote_user` property."
102
114
 
103
- property :authentication, equal_to: %i{remote local}, default: :remote
115
+ property :remote_password, String, sensitive: true,
116
+ introduced: "13.4",
117
+ description: "**Windows only** The password of the user specified by the `remote_user` property. This property is required if `remote_user` is specified and may only be specified if `remote_user` is specified. The `sensitive` property for this resource will automatically be set to `true` if `remote_password` is specified."
118
+
119
+ property :authentication, Symbol, equal_to: %i{remote local}, default: :remote
104
120
 
105
121
  def after_created
106
122
  validate_identity_platform(remote_user, remote_password, remote_domain)