chef 16.1.16 → 16.2.44
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -3
- data/README.md +3 -3
- data/Rakefile +2 -2
- data/chef.gemspec +3 -3
- data/lib/chef/application/apply.rb +1 -1
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +1 -1
- data/lib/chef/cookbook_version.rb +2 -2
- data/lib/chef/data_bag.rb +4 -4
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +17 -2
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/knife.rb +1 -1
- data/lib/chef/knife/bootstrap.rb +3 -6
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +2 -2
- data/lib/chef/provider/package/snap.rb +96 -27
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +10 -14
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/dscl.rb +4 -4
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +5 -5
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +22 -11
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +4 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +13 -1
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +7 -87
- data/lib/chef/resource/cron_access.rb +11 -3
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/execute.rb +477 -7
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +6 -19
- data/lib/chef/resource/kernel_module.rb +14 -1
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +23 -4
- data/lib/chef/resource/powershell_script.rb +4 -2
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/windows_ad_join.rb +30 -1
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +11 -0
- data/lib/chef/resource/windows_certificate.rb +26 -0
- data/lib/chef/resource/windows_font.rb +3 -3
- data/lib/chef/resource/windows_package.rb +1 -1
- data/lib/chef/resource/windows_pagefile.rb +1 -1
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +17 -15
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +4 -4
- data/lib/chef/resource/windows_user_privilege.rb +5 -5
- data/lib/chef/resource/yum_repository.rb +9 -9
- data/lib/chef/resources.rb +4 -2
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/util/diff.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/registry.rb +2 -2
- data/lib/chef/win32/security.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +10 -0
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/support/platform_helpers.rb +1 -1
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/knife/bootstrap_spec.rb +2 -2
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/package/powershell_spec.rb +95 -86
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_spec.rb +67 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- metadata +22 -22
- data/lib/chef/resource/cron.rb +0 -157
data/lib/chef/resource/cron.rb
DELETED
@@ -1,157 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Bryan McLellan (btm@loftninjas.org)
|
3
|
-
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
|
-
# Copyright:: Copyright 2009-2016, Bryan McLellan
|
5
|
-
# License:: Apache License, Version 2.0
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
require_relative "../resource"
|
21
|
-
require_relative "helpers/cron_validations"
|
22
|
-
require_relative "../provider/cron" # do not remove. we actually need this below
|
23
|
-
|
24
|
-
class Chef
|
25
|
-
class Resource
|
26
|
-
class Cron < Chef::Resource
|
27
|
-
unified_mode true
|
28
|
-
provides :cron
|
29
|
-
|
30
|
-
description "Use the **cron** resource to manage cron entries for time-based job scheduling. Properties for a schedule will default to * if not provided. The cron resource requires access to a crontab program, typically cron."
|
31
|
-
|
32
|
-
state_attrs :minute, :hour, :day, :month, :weekday, :user
|
33
|
-
|
34
|
-
default_action :create
|
35
|
-
allowed_actions :create, :delete
|
36
|
-
|
37
|
-
def initialize(name, run_context = nil)
|
38
|
-
super
|
39
|
-
@month = "*"
|
40
|
-
@weekday = "*"
|
41
|
-
end
|
42
|
-
|
43
|
-
property :minute, [Integer, String],
|
44
|
-
description: "The minute at which the cron entry should run (`0 - 59`).",
|
45
|
-
default: "*", callbacks: {
|
46
|
-
"should be a valid minute spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 59) },
|
47
|
-
}
|
48
|
-
|
49
|
-
property :hour, [Integer, String],
|
50
|
-
description: "The hour at which the cron entry is to run (`0 - 23`).",
|
51
|
-
default: "*", callbacks: {
|
52
|
-
"should be a valid hour spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 0, 23) },
|
53
|
-
}
|
54
|
-
|
55
|
-
property :day, [Integer, String],
|
56
|
-
description: "The day of month at which the cron entry should run (`1 - 31`).",
|
57
|
-
default: "*", callbacks: {
|
58
|
-
"should be a valid day spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_numeric(spec, 1, 31) },
|
59
|
-
}
|
60
|
-
|
61
|
-
property :month, [Integer, String],
|
62
|
-
description: "The month in the year on which a cron entry is to run (`1 - 12`, `jan-dec`, or `*`).",
|
63
|
-
default: "*", callbacks: {
|
64
|
-
"should be a valid month spec" => ->(spec) { Chef::ResourceHelpers::CronValidations.validate_month(spec) },
|
65
|
-
}
|
66
|
-
|
67
|
-
def weekday(arg = nil)
|
68
|
-
if arg.is_a?(Integer)
|
69
|
-
converted_arg = arg.to_s
|
70
|
-
else
|
71
|
-
converted_arg = arg
|
72
|
-
end
|
73
|
-
begin
|
74
|
-
error_message = "You provided '#{arg}' as a weekday, acceptable values are "
|
75
|
-
error_message << Provider::Cron::WEEKDAY_SYMBOLS.map { |sym| ":#{sym}" }.join(", ")
|
76
|
-
error_message << " and a string in crontab format"
|
77
|
-
if (arg.is_a?(Symbol) && !Provider::Cron::WEEKDAY_SYMBOLS.include?(arg)) ||
|
78
|
-
(!arg.is_a?(Symbol) && integerize(arg) > 7) ||
|
79
|
-
(!arg.is_a?(Symbol) && integerize(arg) < 0)
|
80
|
-
raise RangeError, error_message
|
81
|
-
end
|
82
|
-
rescue ArgumentError
|
83
|
-
end
|
84
|
-
set_or_return(
|
85
|
-
:weekday,
|
86
|
-
converted_arg,
|
87
|
-
kind_of: [String, Symbol]
|
88
|
-
)
|
89
|
-
end
|
90
|
-
|
91
|
-
property :time, Symbol,
|
92
|
-
description: "A time interval.",
|
93
|
-
equal_to: Chef::Provider::Cron::SPECIAL_TIME_VALUES
|
94
|
-
|
95
|
-
property :mailto, String,
|
96
|
-
description: "Set the `MAILTO` environment variable."
|
97
|
-
|
98
|
-
property :path, String,
|
99
|
-
description: "Set the `PATH` environment variable."
|
100
|
-
|
101
|
-
property :home, String,
|
102
|
-
description: "Set the `HOME` environment variable."
|
103
|
-
|
104
|
-
property :shell, String,
|
105
|
-
description: "Set the `SHELL` environment variable."
|
106
|
-
|
107
|
-
property :command, String,
|
108
|
-
description: "The command to be run, or the path to a file that contains the command to be run.",
|
109
|
-
identity: true
|
110
|
-
|
111
|
-
property :user, String,
|
112
|
-
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.",
|
113
|
-
default: "root"
|
114
|
-
|
115
|
-
property :environment, Hash,
|
116
|
-
description: "A Hash containing additional arbitrary environment variables under which the cron job will be run in the form of `({'ENV_VARIABLE' => 'VALUE'})`.",
|
117
|
-
default: lazy { {} }
|
118
|
-
|
119
|
-
TIMEOUT_OPTS = %w{duration preserve-status foreground kill-after signal}.freeze
|
120
|
-
TIMEOUT_REGEX = /\A\S+/.freeze
|
121
|
-
|
122
|
-
property :time_out, Hash,
|
123
|
-
description: "A Hash of timeouts in the form of `({'OPTION' => 'VALUE'})`.
|
124
|
-
Accepted valid options are:
|
125
|
-
`preserve-status` (BOOL, default: 'false'),
|
126
|
-
`foreground` (BOOL, default: 'false'),
|
127
|
-
`kill-after` (in seconds),
|
128
|
-
`signal` (a name like 'HUP' or a number)",
|
129
|
-
default: lazy { {} },
|
130
|
-
introduced: "15.7",
|
131
|
-
coerce: proc { |h|
|
132
|
-
if h.is_a?(Hash)
|
133
|
-
invalid_keys = h.keys - TIMEOUT_OPTS
|
134
|
-
unless invalid_keys.empty?
|
135
|
-
error_msg = "Key of option time_out must be equal to one of: \"#{TIMEOUT_OPTS.join('", "')}\"! You passed \"#{invalid_keys.join(", ")}\"."
|
136
|
-
raise Chef::Exceptions::ValidationFailed, error_msg
|
137
|
-
end
|
138
|
-
unless h.values.all? { |x| x =~ TIMEOUT_REGEX }
|
139
|
-
error_msg = "Values of option time_out should be non-empty string without any leading whitespace."
|
140
|
-
raise Chef::Exceptions::ValidationFailed, error_msg
|
141
|
-
end
|
142
|
-
h
|
143
|
-
elsif h.is_a?(Integer) || h.is_a?(String)
|
144
|
-
{ "duration" => h }
|
145
|
-
end
|
146
|
-
}
|
147
|
-
|
148
|
-
private
|
149
|
-
|
150
|
-
def integerize(integerish)
|
151
|
-
Integer(integerish)
|
152
|
-
rescue TypeError
|
153
|
-
0
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|