chef 17.1.35-universal-mingw32 → 17.2.29-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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/lib/chef/action_collection.rb +6 -26
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/base.rb +15 -0
- data/lib/chef/client.rb +6 -0
- data/lib/chef/cookbook_version.rb +26 -4
- data/lib/chef/data_bag.rb +2 -1
- data/lib/chef/data_bag_item.rb +2 -1
- data/lib/chef/data_collector.rb +0 -1
- data/lib/chef/data_collector/run_end_message.rb +1 -1
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/event_dispatch/base.rb +2 -1
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/handler.rb +46 -8
- data/lib/chef/handler/slow_report.rb +66 -0
- data/lib/chef/node.rb +20 -19
- data/lib/chef/provider/support/zypper_repo.erb +4 -2
- data/lib/chef/provider/zypper_repository.rb +27 -31
- data/lib/chef/resource/alternatives.rb +5 -5
- data/lib/chef/resource/apt_preference.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +2 -2
- data/lib/chef/resource/apt_update.rb +4 -4
- data/lib/chef/resource/build_essential.rb +1 -1
- data/lib/chef/resource/chef_client_config.rb +3 -3
- data/lib/chef/resource/chef_client_cron.rb +2 -2
- data/lib/chef/resource/chef_client_launchd.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +14 -14
- data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
- data/lib/chef/resource/chef_handler.rb +2 -2
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -2
- data/lib/chef/resource/chocolatey_source.rb +1 -1
- data/lib/chef/resource/cron/cron_d.rb +4 -6
- data/lib/chef/resource/cron_access.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +1 -1
- data/lib/chef/resource/group.rb +4 -4
- data/lib/chef/resource/homebrew_cask.rb +17 -6
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +4 -3
- data/lib/chef/resource/homebrew_update.rb +2 -2
- data/lib/chef/resource/hostname.rb +49 -7
- data/lib/chef/resource/inspec_waiver_file_entry.rb +6 -5
- data/lib/chef/resource/kernel_module.rb +6 -6
- data/lib/chef/resource/locale.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +2 -2
- data/lib/chef/resource/ohai_hint.rb +2 -6
- data/lib/chef/resource/openbsd_package.rb +17 -0
- data/lib/chef/resource/openssl_dhparam.rb +1 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +1 -3
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -3
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +1 -4
- data/lib/chef/resource/openssl_x509_crl.rb +1 -3
- data/lib/chef/resource/openssl_x509_request.rb +1 -3
- data/lib/chef/resource/osx_profile.rb +3 -3
- data/lib/chef/resource/plist.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +2 -4
- data/lib/chef/resource/reboot.rb +38 -9
- data/lib/chef/resource/remote_directory.rb +2 -2
- data/lib/chef/resource/rhsm_errata.rb +0 -2
- data/lib/chef/resource/rhsm_errata_level.rb +1 -5
- data/lib/chef/resource/rhsm_repo.rb +15 -0
- data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
- data/lib/chef/resource/sudo.rb +2 -6
- data/lib/chef/resource/swap_file.rb +2 -6
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/timezone.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +2 -2
- data/lib/chef/resource/windows_audit_policy.rb +2 -2
- data/lib/chef/resource/windows_auto_run.rb +2 -2
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +2 -2
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -2
- data/lib/chef/resource/windows_dns_record.rb +2 -2
- data/lib/chef/resource/windows_dns_zone.rb +2 -2
- data/lib/chef/resource/windows_feature.rb +3 -3
- data/lib/chef/resource/windows_feature_dism.rb +3 -5
- data/lib/chef/resource/windows_feature_powershell.rb +3 -3
- data/lib/chef/resource/windows_firewall_profile.rb +2 -2
- data/lib/chef/resource/windows_firewall_rule.rb +20 -6
- data/lib/chef/resource/windows_font.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +103 -64
- data/lib/chef/resource/windows_path.rb +2 -2
- data/lib/chef/resource/windows_printer.rb +5 -20
- data/lib/chef/resource/windows_printer_port.rb +48 -65
- data/lib/chef/resource/windows_security_policy.rb +2 -2
- data/lib/chef/resource/windows_share.rb +2 -2
- data/lib/chef/resource/windows_shortcut.rb +1 -1
- data/lib/chef/resource/windows_task.rb +1 -1
- data/lib/chef/resource/windows_uac.rb +3 -5
- data/lib/chef/resource/windows_user_privilege.rb +2 -2
- data/lib/chef/resource/windows_workgroup.rb +2 -2
- data/lib/chef/resource/yum_package.rb +10 -10
- data/lib/chef/resource/zypper_package.rb +4 -4
- data/lib/chef/resource/zypper_repository.rb +28 -8
- data/lib/chef/resource_reporter.rb +0 -1
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/windows_hostname_spec.rb +91 -0
- data/spec/functional/resource/windows_pagefile_spec.rb +98 -0
- data/spec/unit/cookbook_version_spec.rb +52 -0
- data/spec/unit/data_bag_item_spec.rb +2 -2
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +47 -1
- data/spec/unit/handler_spec.rb +8 -2
- data/spec/unit/provider/zypper_repository_spec.rb +3 -10
- data/spec/unit/resource/windows_firewall_rule_spec.rb +12 -7
- data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
- data/spec/unit/resource/zypper_repository_spec.rb +1 -1
- metadata +9 -6
data/lib/chef/node.rb
CHANGED
@@ -687,6 +687,25 @@ class Chef
|
|
687
687
|
name <=> other.name
|
688
688
|
end
|
689
689
|
|
690
|
+
# Returns hash of node data with attributes based on whitelist/blacklist rules.
|
691
|
+
def data_for_save
|
692
|
+
data = for_json
|
693
|
+
%w{automatic default normal override}.each do |level|
|
694
|
+
allowlist = allowlist_or_whitelist_config(level)
|
695
|
+
unless allowlist.nil? # nil => save everything
|
696
|
+
logger.info("Allowing #{level} node attributes for save.")
|
697
|
+
data[level] = Chef::AttributeAllowlist.filter(data[level], allowlist)
|
698
|
+
end
|
699
|
+
|
700
|
+
blocklist = blocklist_or_blacklist_config(level)
|
701
|
+
unless blocklist.nil? # nil => remove nothing
|
702
|
+
logger.info("Blocking #{level} node attributes for save")
|
703
|
+
data[level] = Chef::AttributeBlocklist.filter(data[level], blocklist)
|
704
|
+
end
|
705
|
+
end
|
706
|
+
data
|
707
|
+
end
|
708
|
+
|
690
709
|
private
|
691
710
|
|
692
711
|
def save_without_policyfile_attrs
|
@@ -712,7 +731,7 @@ class Chef
|
|
712
731
|
# @param [String] level the attribute level
|
713
732
|
def allowlist_or_whitelist_config(level)
|
714
733
|
if Chef::Config["#{level}_attribute_whitelist".to_sym]
|
715
|
-
Chef.deprecated(:
|
734
|
+
Chef.deprecated(:attribute_whitelist_configuration, "Attribute whitelist configurations have been deprecated. Use the allowed_LEVEL_attribute configs instead")
|
716
735
|
Chef::Config["#{level}_attribute_whitelist".to_sym]
|
717
736
|
else
|
718
737
|
Chef::Config["allowed_#{level}_attributes".to_sym]
|
@@ -732,24 +751,6 @@ class Chef
|
|
732
751
|
end
|
733
752
|
end
|
734
753
|
|
735
|
-
def data_for_save
|
736
|
-
data = for_json
|
737
|
-
%w{automatic default normal override}.each do |level|
|
738
|
-
allowlist = allowlist_or_whitelist_config(level)
|
739
|
-
unless allowlist.nil? # nil => save everything
|
740
|
-
logger.info("Allowing #{level} node attributes for save.")
|
741
|
-
data[level] = Chef::AttributeAllowlist.filter(data[level], allowlist)
|
742
|
-
end
|
743
|
-
|
744
|
-
blocklist = blocklist_or_blacklist_config(level)
|
745
|
-
unless blocklist.nil? # nil => remove nothing
|
746
|
-
logger.info("Blocking #{level} node attributes for save")
|
747
|
-
data[level] = Chef::AttributeBlocklist.filter(data[level], blocklist)
|
748
|
-
end
|
749
|
-
end
|
750
|
-
data
|
751
|
-
end
|
752
|
-
|
753
754
|
# Returns a UUID that uniquely identifies this node for reporting reasons.
|
754
755
|
#
|
755
756
|
# The node is read in from disk if it exists, or it's generated if it does
|
@@ -1,15 +1,17 @@
|
|
1
|
-
# This file was generated by Chef
|
1
|
+
# This file was generated by Chef Infra
|
2
2
|
# Do NOT modify this file by hand.
|
3
3
|
|
4
4
|
[<%= @config.repo_name %>]
|
5
5
|
<% %w{ type enabled autorefresh gpgcheck gpgkey baseurl mirrorlist path priority keeppackages mode refresh_cache }.each do |prop| -%>
|
6
|
-
<% next if @config.send(prop.to_sym).nil? -%>
|
6
|
+
<% next if @config.send(prop.to_sym).nil? || (@config.send(prop.to_sym).is_a?(Array) && @config.send(prop.to_sym).empty?) -%>
|
7
7
|
<%= prop %>=<%=
|
8
8
|
case @config.send(prop.to_sym)
|
9
9
|
when TrueClass
|
10
10
|
'1'
|
11
11
|
when FalseClass
|
12
12
|
'0'
|
13
|
+
when Array
|
14
|
+
@config.send(prop.to_sym).join("\n ")
|
13
15
|
else
|
14
16
|
@config.send(prop.to_sym)
|
15
17
|
end %>
|
@@ -31,12 +31,12 @@ class Chef
|
|
31
31
|
|
32
32
|
action :create do
|
33
33
|
if new_resource.gpgautoimportkeys
|
34
|
-
|
34
|
+
install_gpg_keys(new_resource.gpgkey)
|
35
35
|
else
|
36
36
|
logger.debug("'gpgautoimportkeys' property is set to false. Skipping key import.")
|
37
37
|
end
|
38
38
|
|
39
|
-
|
39
|
+
template "/etc/zypp/repos.d/#{escaped_repo_name}.repo" do
|
40
40
|
if template_available?(new_resource.source)
|
41
41
|
source new_resource.source
|
42
42
|
else
|
@@ -51,13 +51,13 @@ class Chef
|
|
51
51
|
end
|
52
52
|
|
53
53
|
action :delete do
|
54
|
-
|
54
|
+
execute "zypper --quiet --non-interactive removerepo #{escaped_repo_name}" do
|
55
55
|
only_if "zypper --quiet lr #{escaped_repo_name}"
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
action :refresh do
|
60
|
-
|
60
|
+
execute "zypper --quiet --non-interactive refresh --force #{escaped_repo_name}" do
|
61
61
|
only_if "zypper --quiet lr #{escaped_repo_name}"
|
62
62
|
end
|
63
63
|
end
|
@@ -68,15 +68,7 @@ class Chef
|
|
68
68
|
# zypper repos are allowed to have spaces in the names
|
69
69
|
# @return [String] escaped repo string
|
70
70
|
def escaped_repo_name
|
71
|
-
Shellwords.escape(new_resource.repo_name)
|
72
|
-
end
|
73
|
-
|
74
|
-
# return the specified cookbook name or the cookbook containing the
|
75
|
-
# resource.
|
76
|
-
#
|
77
|
-
# @return [String] name of the cookbook
|
78
|
-
def cookbook_name
|
79
|
-
new_resource.cookbook || new_resource.cookbook_name
|
71
|
+
@escaped_repo_name ||= Shellwords.escape(new_resource.repo_name)
|
80
72
|
end
|
81
73
|
|
82
74
|
# determine if a template file is available in the current run
|
@@ -84,7 +76,7 @@ class Chef
|
|
84
76
|
#
|
85
77
|
# @return [Boolean] template file exists or doesn't
|
86
78
|
def template_available?(path)
|
87
|
-
!path.nil? && run_context.has_template_in_cookbook?(
|
79
|
+
!path.nil? && run_context.has_template_in_cookbook?(new_resource.cookbook, path)
|
88
80
|
end
|
89
81
|
|
90
82
|
# determine if a cookbook file is available in the run
|
@@ -92,7 +84,7 @@ class Chef
|
|
92
84
|
#
|
93
85
|
# @return [Boolean] cookbook file exists or doesn't
|
94
86
|
def has_cookbook_file?(fn)
|
95
|
-
run_context.has_cookbook_file_in_cookbook?(
|
87
|
+
run_context.has_cookbook_file_in_cookbook?(new_resource.cookbook, fn)
|
96
88
|
end
|
97
89
|
|
98
90
|
# Given the provided key URI determine what kind of chef resource we need
|
@@ -158,27 +150,31 @@ class Chef
|
|
158
150
|
short_key_id
|
159
151
|
end
|
160
152
|
|
161
|
-
# install the provided gpg
|
162
|
-
# @param [String]
|
163
|
-
def
|
164
|
-
|
165
|
-
logger.debug("'gpgkey' property not provided or set
|
153
|
+
# install the provided gpg keys
|
154
|
+
# @param [String] uris the uri of the local or remote gpg key
|
155
|
+
def install_gpg_keys(uris)
|
156
|
+
if uris.empty?
|
157
|
+
logger.debug("'gpgkey' property not provided or set. Skipping gpg key import.")
|
166
158
|
return
|
167
159
|
end
|
168
160
|
|
169
|
-
|
161
|
+
# fetch each key to the cache dir either from the cookbook or by downloading it
|
162
|
+
# and then import the key
|
163
|
+
uris.each do |uri|
|
164
|
+
cached_keyfile = ::File.join(Chef::Config[:file_cache_path], uri.split("/")[-1])
|
170
165
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
166
|
+
declare_resource(key_type(uri), cached_keyfile) do
|
167
|
+
source uri
|
168
|
+
mode "0644"
|
169
|
+
sensitive new_resource.sensitive
|
170
|
+
action :create
|
171
|
+
end
|
177
172
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
173
|
+
execute "import gpg key from #{uri}" do
|
174
|
+
command "/bin/rpm --import #{cached_keyfile}"
|
175
|
+
not_if { key_installed?(cached_keyfile) }
|
176
|
+
action :run
|
177
|
+
end
|
182
178
|
end
|
183
179
|
end
|
184
180
|
end
|
@@ -122,7 +122,7 @@ class Chef
|
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
-
action :install, description: "Install an alternative on the system including symlinks" do
|
125
|
+
action :install, description: "Install an alternative on the system including symlinks." do
|
126
126
|
if path_priority != new_resource.priority
|
127
127
|
converge_by("adding alternative #{new_resource.link} #{new_resource.link_name} #{new_resource.path} #{new_resource.priority}") do
|
128
128
|
output = shell_out(alternatives_cmd, "--install", new_resource.link, new_resource.link_name, new_resource.path, new_resource.priority)
|
@@ -133,7 +133,7 @@ class Chef
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
action :set, description: "Set the symlink for an alternative" do
|
136
|
+
action :set, description: "Set the symlink for an alternative." do
|
137
137
|
if current_path != new_resource.path
|
138
138
|
converge_by("setting alternative #{new_resource.link_name} #{new_resource.path}") do
|
139
139
|
output = shell_out(alternatives_cmd, "--set", new_resource.link_name, new_resource.path)
|
@@ -144,7 +144,7 @@ class Chef
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
-
action :remove, description: "Remove an alternative and all associated links" do
|
147
|
+
action :remove, description: "Remove an alternative and all associated links." do
|
148
148
|
if path_exists?
|
149
149
|
converge_by("removing alternative #{new_resource.link_name} #{new_resource.path}") do
|
150
150
|
shell_out(alternatives_cmd, "--remove", new_resource.link_name, new_resource.path)
|
@@ -152,13 +152,13 @@ class Chef
|
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
|
-
action :auto, description: "Set an alternative up in automatic mode with the highest priority automatically selected" do
|
155
|
+
action :auto, description: "Set an alternative up in automatic mode with the highest priority automatically selected." do
|
156
156
|
converge_by("setting auto alternative #{new_resource.link_name}") do
|
157
157
|
shell_out(alternatives_cmd, "--auto", new_resource.link_name)
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
|
-
action :refresh, description: "Refresh alternatives" do
|
161
|
+
action :refresh, description: "Refresh alternatives." do
|
162
162
|
converge_by("refreshing alternative #{new_resource.link_name}") do
|
163
163
|
shell_out(alternatives_cmd, "--refresh", new_resource.link_name)
|
164
164
|
end
|
@@ -91,7 +91,7 @@ class Chef
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
action :add, description: "Creates a preferences file under `/etc/apt/preferences.d
|
94
|
+
action :add, description: "Creates a preferences file under `/etc/apt/preferences.d`." do
|
95
95
|
return unless debian?
|
96
96
|
|
97
97
|
preference = build_pref(
|
@@ -130,7 +130,7 @@ class Chef
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
-
action :remove, description: "Removes the preferences file, thus unpinning the package" do
|
133
|
+
action :remove, description: "Removes the preferences file, thus unpinning the package." do
|
134
134
|
return unless debian?
|
135
135
|
|
136
136
|
sanitized_prefname = safe_name(new_resource.package_name)
|
@@ -409,7 +409,7 @@ class Chef
|
|
409
409
|
end
|
410
410
|
end
|
411
411
|
|
412
|
-
action :add, description: "Creates a repository file at `/etc/apt/sources.list.d/` and builds the repository listing" do
|
412
|
+
action :add, description: "Creates a repository file at `/etc/apt/sources.list.d/` and builds the repository listing." do
|
413
413
|
return unless debian?
|
414
414
|
|
415
415
|
execute "apt-cache gencaches" do
|
@@ -459,7 +459,7 @@ class Chef
|
|
459
459
|
end
|
460
460
|
end
|
461
461
|
|
462
|
-
action :remove, description: "Removes the repository listing" do
|
462
|
+
action :remove, description: "Removes the repository listing." do
|
463
463
|
return unless debian?
|
464
464
|
|
465
465
|
cleanup_legacy_file!
|
@@ -33,8 +33,8 @@ class Chef
|
|
33
33
|
|
34
34
|
```ruby
|
35
35
|
apt_update 'all platforms' do
|
36
|
-
|
37
|
-
|
36
|
+
frequency 86400
|
37
|
+
action :periodic
|
38
38
|
end
|
39
39
|
```
|
40
40
|
|
@@ -86,7 +86,7 @@ class Chef
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
action :periodic, description: "Update the Apt repository at the interval specified by the `frequency` property" do
|
89
|
+
action :periodic, description: "Update the Apt repository at the interval specified by the `frequency` property." do
|
90
90
|
return unless debian?
|
91
91
|
|
92
92
|
unless apt_up_to_date?
|
@@ -96,7 +96,7 @@ class Chef
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
-
action :update, description: "Update the Apt repository at the start of a #{ChefUtils::Dist::Infra::PRODUCT} run" do
|
99
|
+
action :update, description: "Update the Apt repository at the start of a #{ChefUtils::Dist::Infra::PRODUCT} run." do
|
100
100
|
return unless debian?
|
101
101
|
|
102
102
|
converge_by "force update new lists of packages" do
|
@@ -57,7 +57,7 @@ class Chef
|
|
57
57
|
introduced: "15.5",
|
58
58
|
default: false, desired_state: false # FIXME: make this default to true
|
59
59
|
|
60
|
-
action :install, description: "Install build essential packages" do
|
60
|
+
action :install, description: "Install build essential packages." do
|
61
61
|
case
|
62
62
|
when debian?
|
63
63
|
package %w{ autoconf binutils-doc bison build-essential flex gettext ncurses-dev }
|
@@ -139,7 +139,7 @@ class Chef
|
|
139
139
|
DESC
|
140
140
|
|
141
141
|
property :formatters, Array,
|
142
|
-
description: "",
|
142
|
+
description: "Client logging formatters to load.",
|
143
143
|
default: []
|
144
144
|
|
145
145
|
property :event_loggers, Array,
|
@@ -227,7 +227,7 @@ class Chef
|
|
227
227
|
property :additional_config, String,
|
228
228
|
description: "Additional text to add at the bottom of the client.rb config. This can be used to run custom Ruby or to add less common config options"
|
229
229
|
|
230
|
-
action :create, description: "Create a client.rb config file" do
|
230
|
+
action :create, description: "Create a client.rb config file for configuring #{ChefUtils::Dist::Infra::PRODUCT}." do
|
231
231
|
unless ::Dir.exist?(new_resource.config_directory)
|
232
232
|
directory new_resource.config_directory do
|
233
233
|
user new_resource.user unless new_resource.user.nil?
|
@@ -284,7 +284,7 @@ class Chef
|
|
284
284
|
end
|
285
285
|
end
|
286
286
|
|
287
|
-
action :remove, description: "Remove a client.rb config file" do
|
287
|
+
action :remove, description: "Remove a client.rb config file for configuring #{ChefUtils::Dist::Infra::PRODUCT}." do
|
288
288
|
file ::File.join(new_resource.config_directory, "client.rb") do
|
289
289
|
action :delete
|
290
290
|
end
|
@@ -144,7 +144,7 @@ class Chef
|
|
144
144
|
coerce: proc { |x| Integer(x) },
|
145
145
|
callbacks: { "should be an Integer between -20 and 19" => proc { |v| v >= -20 && v <= 19 } }
|
146
146
|
|
147
|
-
action :add, description: "Add a cron job to run #{ChefUtils::Dist::Infra::PRODUCT}" do
|
147
|
+
action :add, description: "Add a cron job to run #{ChefUtils::Dist::Infra::PRODUCT}." do
|
148
148
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
149
149
|
unless ::Dir.exist?(new_resource.log_directory)
|
150
150
|
directory new_resource.log_directory do
|
@@ -168,7 +168,7 @@ class Chef
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
171
|
-
action :remove, description: "Remove a cron job for #{ChefUtils::Dist::Infra::PRODUCT}" do
|
171
|
+
action :remove, description: "Remove a cron job for #{ChefUtils::Dist::Infra::PRODUCT}." do
|
172
172
|
declare_resource(cron_resource_type, new_resource.job_name) do
|
173
173
|
action :delete
|
174
174
|
end
|
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
description: "Run the #{ChefUtils::Dist::Infra::CLIENT} process with low priority disk IO",
|
102
102
|
default: true
|
103
103
|
|
104
|
-
action :enable do
|
104
|
+
action :enable, description: "Enable running #{ChefUtils::Dist::Infra::PRODUCT} on a schedule using launchd." do
|
105
105
|
unless ::Dir.exist?(new_resource.log_directory)
|
106
106
|
directory new_resource.log_directory do
|
107
107
|
owner new_resource.user
|
@@ -148,7 +148,7 @@ class Chef
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
-
action :disable do
|
151
|
+
action :disable, description: "Disable running #{ChefUtils::Dist::Infra::PRODUCT} on a schedule using launchd" do
|
152
152
|
service ChefUtils::Dist::Infra::PRODUCT do
|
153
153
|
service_name "com.#{ChefUtils::Dist::Infra::SHORT}.#{ChefUtils::Dist::Infra::CLIENT}"
|
154
154
|
action :disable
|
@@ -30,33 +30,33 @@ class Chef
|
|
30
30
|
**Setup #{ChefUtils::Dist::Infra::PRODUCT} to run using the default 30 minute cadence**:
|
31
31
|
|
32
32
|
```ruby
|
33
|
-
|
33
|
+
chef_client_scheduled_task 'Run #{ChefUtils::Dist::Infra::PRODUCT} as a scheduled task'
|
34
34
|
```
|
35
35
|
|
36
36
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} on system start**:
|
37
37
|
|
38
38
|
```ruby
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
chef_client_scheduled_task '#{ChefUtils::Dist::Infra::PRODUCT} on start' do
|
40
|
+
frequency 'onstart'
|
41
|
+
end
|
42
42
|
```
|
43
43
|
|
44
44
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} with extra options passed to the client**:
|
45
45
|
|
46
46
|
```ruby
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
chef_client_scheduled_task 'Run an override recipe' do
|
48
|
+
daemon_options ['--override-runlist mycorp_base::default']
|
49
|
+
end
|
50
50
|
```
|
51
51
|
|
52
52
|
**Run #{ChefUtils::Dist::Infra::PRODUCT} daily at 01:00 am, specifying a named run-list**:
|
53
53
|
|
54
54
|
```ruby
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
chef_client_scheduled_task 'Run chef-client named run-list daily' do
|
56
|
+
frequency 'daily'
|
57
|
+
start_time '01:00'
|
58
|
+
daemon_options ['-n audit_only']
|
59
|
+
end
|
60
60
|
```
|
61
61
|
DOC
|
62
62
|
|
@@ -129,7 +129,7 @@ class Chef
|
|
129
129
|
description: "An array of options to pass to the #{ChefUtils::Dist::Infra::CLIENT} command.",
|
130
130
|
default: []
|
131
131
|
|
132
|
-
action :add do
|
132
|
+
action :add, description: "Add a Windows Scheduled Task that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
133
133
|
# TODO: Replace this with a :create_if_missing action on directory when that exists
|
134
134
|
unless Dir.exist?(new_resource.log_directory)
|
135
135
|
directory new_resource.log_directory do
|
@@ -157,7 +157,7 @@ class Chef
|
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
|
-
action :remove do
|
160
|
+
action :remove, description: "Remove a Windows Scheduled Task that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
161
161
|
windows_task new_resource.task_name do
|
162
162
|
action :delete
|
163
163
|
end
|
@@ -104,7 +104,7 @@ class Chef
|
|
104
104
|
coerce: proc { |x| Integer(x) },
|
105
105
|
callbacks: { "should be a positive Integer" => proc { |v| v > 0 } }
|
106
106
|
|
107
|
-
action :add do
|
107
|
+
action :add, description: "Add a systemd timer that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
108
108
|
systemd_unit "#{new_resource.job_name}.service" do
|
109
109
|
content service_content
|
110
110
|
action :create
|
@@ -116,7 +116,7 @@ class Chef
|
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
|
-
action :remove do
|
119
|
+
action :remove, description: "Remove a systemd timer that runs #{ChefUtils::Dist::Infra::PRODUCT}." do
|
120
120
|
systemd_unit "#{new_resource.job_name}.service" do
|
121
121
|
action :delete
|
122
122
|
end
|