chef 13.0.118 → 13.1.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +5 -27
- data/VERSION +1 -1
- data/acceptance/.bundle/config +2 -0
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/bin/aws.rb +17 -0
- data/acceptance/bin/berks +17 -0
- data/acceptance/bin/bundler +17 -0
- data/acceptance/bin/chef-acceptance +17 -0
- data/acceptance/bin/coderay +17 -0
- data/acceptance/bin/erubis +17 -0
- data/acceptance/bin/htmldiff +17 -0
- data/acceptance/bin/httpclient +17 -0
- data/acceptance/bin/inspec +17 -0
- data/acceptance/bin/kitchen +17 -0
- data/acceptance/bin/ldiff +17 -0
- data/acceptance/bin/nokogiri +17 -0
- data/acceptance/bin/pry +17 -0
- data/acceptance/bin/rake +17 -0
- data/acceptance/bin/rspec +17 -0
- data/acceptance/bin/rwinrm +17 -0
- data/acceptance/bin/rwinrmcp +17 -0
- data/acceptance/bin/safe_yaml +17 -0
- data/acceptance/bin/thor +17 -0
- data/acceptance/fips/.kitchen/fips-unit-functional-centos-6.yml +7 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/action_set_name +1 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/creator_uid +1 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/id +1 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/index_uuid +1 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/private_key +27 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/.vagrant/machines/default/virtualbox/synced_folders +1 -0
- data/acceptance/fips/.kitchen/kitchen-vagrant/kitchen-fips-fips-unit-functional-centos-6/Vagrantfile +11 -0
- data/acceptance/fips/.kitchen/logs/fips-integration-centos-6.log +0 -0
- data/acceptance/fips/.kitchen/logs/fips-integration-windows-2012r2.log +0 -0
- data/acceptance/fips/.kitchen/logs/fips-unit-functional-centos-6.log +80 -0
- data/acceptance/fips/.kitchen/logs/kitchen.log +4 -0
- data/chef.gemspec +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/application/solo.rb +1 -0
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +20 -7
- data/lib/chef/cookbook_manifest.rb +8 -0
- data/lib/chef/deprecated.rb +10 -0
- data/lib/chef/knife/client_key_create.rb +3 -0
- data/lib/chef/knife/client_key_delete.rb +1 -0
- data/lib/chef/knife/client_key_edit.rb +1 -0
- data/lib/chef/knife/client_key_list.rb +1 -0
- data/lib/chef/knife/client_key_show.rb +1 -0
- data/lib/chef/knife/user_key_create.rb +1 -0
- data/lib/chef/knife/user_key_delete.rb +1 -0
- data/lib/chef/knife/user_key_edit.rb +1 -0
- data/lib/chef/knife/user_key_list.rb +1 -0
- data/lib/chef/knife/user_key_show.rb +1 -0
- data/lib/chef/local_mode.rb +1 -0
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/platform/service_helpers.rb +1 -1
- data/lib/chef/provider/apt_repository.rb +7 -4
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/package/cab.rb +18 -13
- data/lib/chef/provider/package/msu.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +3 -5
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/windows.rb +1 -1
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/resource/breakpoint.rb +12 -0
- data/lib/chef/resource/env.rb +3 -35
- data/lib/chef/resource/route.rb +13 -107
- data/lib/chef/resource/service.rb +5 -5
- data/lib/chef/resource/user.rb +6 -4
- data/lib/chef/resource/windows_task.rb +3 -3
- data/lib/chef/run_context.rb +7 -0
- data/lib/chef/runner.rb +2 -1
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +1 -8
- data/spec/functional/resource/registry_spec.rb +1 -1
- data/spec/functional/resource/user/useradd_spec.rb +1 -1
- data/spec/functional/resource/windows_task_spec.rb +459 -0
- data/spec/integration/client/client_spec.rb +32 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/platform_helpers.rb +7 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +3 -3
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -4
- data/spec/unit/cookbook_manifest_spec.rb +17 -2
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/group/dscl_spec.rb +2 -2
- data/spec/unit/provider/group/pw_spec.rb +3 -3
- data/spec/unit/provider/group/usermod_spec.rb +6 -6
- data/spec/unit/provider/group/windows_spec.rb +3 -3
- data/spec/unit/provider/group_spec.rb +4 -4
- data/spec/unit/provider/http_request_spec.rb +1 -1
- data/spec/unit/provider/package/aix_spec.rb +2 -2
- data/spec/unit/provider/package/apt_spec.rb +2 -2
- data/spec/unit/provider/package/ips_spec.rb +2 -2
- data/spec/unit/provider/package/macports_spec.rb +4 -4
- data/spec/unit/provider/package/pacman_spec.rb +2 -2
- data/spec/unit/provider/package/rubygems_spec.rb +14 -11
- data/spec/unit/provider/package/yum_spec.rb +10 -10
- data/spec/unit/provider/route_spec.rb +7 -7
- data/spec/unit/provider/service/arch_service_spec.rb +6 -6
- data/spec/unit/provider/service/init_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +1 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
- data/spec/unit/provider/service_spec.rb +1 -1
- data/spec/unit/provider/user/aix_spec.rb +97 -0
- data/spec/unit/provider/user/pw_spec.rb +5 -5
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/resource/breakpoint_spec.rb +28 -11
- data/spec/unit/resource/windows_task_spec.rb +2 -2
- data/spec/unit/runner_spec.rb +4 -0
- data/tasks/bin/run_external_test +20 -42
- data/tasks/bundle.rb +0 -8
- data/tasks/changelog.rb +5 -1
- data/tasks/dependencies.rb +4 -2
- metadata +80 -19
- data/acceptance/fips/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/fips/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/fips/.kitchen.yml +0 -8
- data/acceptance/fips/test/integration/fips-integration/serverspec/Gemfile +0 -9
- data/acceptance/fips/test/integration/fips-integration/serverspec/fips-integration_spec.rb +0 -52
- data/acceptance/fips/test/integration/fips-unit-functional/serverspec/Gemfile +0 -7
- data/acceptance/fips/test/integration/fips-unit-functional/serverspec/fips-unit-functional_spec.rb +0 -56
- data/lib/chef/provider/breakpoint.rb +0 -38
- data/spec/unit/provider/breakpoint_spec.rb +0 -53
- data/tasks/bin/create-override-gemfile +0 -110
- data/tasks/gemfile_util.rb +0 -390
@@ -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
|
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"
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -81,34 +81,39 @@ class Chef
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def installed_version
|
84
|
-
stdout = dism_command("/Get-PackageInfo /PackagePath:\"#{cab_file_source}\"").stdout
|
85
|
-
package_info = parse_dism_get_package_info(stdout)
|
86
84
|
# e.g. Package_for_KB2975719~31bf3856ad364e35~amd64~~6.3.1.8
|
87
|
-
package =
|
85
|
+
package = new_cab_identity
|
88
86
|
# Search for just the package name to catch a different version being installed
|
89
87
|
Chef::Log.debug("#{new_resource} searching for installed package #{package['name']}")
|
90
|
-
|
88
|
+
existing_package_identities = installed_packages.map do |p|
|
89
|
+
split_package_identity(p["package_identity"])
|
90
|
+
end
|
91
|
+
found_packages = existing_package_identities.select do |existing_package_ident|
|
92
|
+
existing_package_ident["name"] == package["name"]
|
93
|
+
end
|
91
94
|
if found_packages.empty?
|
92
95
|
nil
|
93
96
|
elsif found_packages.length == 1
|
94
|
-
|
95
|
-
find_version(stdout)
|
97
|
+
found_packages.first["version"]
|
96
98
|
else
|
97
99
|
# Presuming this won't happen, otherwise we need to handle it
|
98
100
|
raise Chef::Exceptions::Package, "Found multiple packages installed matching name #{package['name']}, found: #{found_packages.length} matches"
|
99
101
|
end
|
100
102
|
end
|
101
103
|
|
102
|
-
def
|
103
|
-
Chef::Log.debug("#{new_resource} getting product version for package at #{cab_file_source}")
|
104
|
+
def cab_identity_from_cab_file
|
104
105
|
stdout = dism_command("/Get-PackageInfo /PackagePath:\"#{cab_file_source}\"").stdout
|
105
|
-
|
106
|
+
package_info = parse_dism_get_package_info(stdout)
|
107
|
+
split_package_identity(package_info["package_information"]["package_identity"])
|
106
108
|
end
|
107
109
|
|
108
|
-
def
|
109
|
-
|
110
|
-
|
111
|
-
|
110
|
+
def new_cab_identity
|
111
|
+
Chef::Log.debug("#{new_resource} getting product version for package at #{cab_file_source}")
|
112
|
+
@new_cab_identity ||= cab_identity_from_cab_file
|
113
|
+
end
|
114
|
+
|
115
|
+
def package_version
|
116
|
+
new_cab_identity["version"].chomp
|
112
117
|
end
|
113
118
|
|
114
119
|
# returns a hash of package state information given the output of dism /get-packages
|
@@ -78,7 +78,7 @@ class Chef
|
|
78
78
|
def get_cab_package(cab_file)
|
79
79
|
cab_resource = new_resource
|
80
80
|
cab_resource.source = cab_file
|
81
|
-
|
81
|
+
Chef::Provider::Package::Cab.new(cab_resource, nil)
|
82
82
|
end
|
83
83
|
|
84
84
|
def download_source_file
|
@@ -141,7 +141,7 @@ class Chef
|
|
141
141
|
else
|
142
142
|
# msu package contains only single xml file. So using xml_files.first is sufficient
|
143
143
|
doc = ::File.open(xml_files.first.to_s) { |f| REXML::Document.new f }
|
144
|
-
locations = doc.elements.each("unattend/servicing/package/source") { |element|
|
144
|
+
locations = doc.elements.each("unattend/servicing/package/source") { |element| element.attributes["location"] }
|
145
145
|
locations.each do |loc|
|
146
146
|
cab_files << msu_dir + "/" + loc.attribute("location").value.split("\\")[1]
|
147
147
|
end
|
@@ -21,6 +21,7 @@ require "uri"
|
|
21
21
|
require "chef/provider/package"
|
22
22
|
require "chef/resource/package"
|
23
23
|
require "chef/mixin/get_source_from_package"
|
24
|
+
require "chef/mixin/which"
|
24
25
|
|
25
26
|
# Class methods on Gem are defined in rubygems
|
26
27
|
require "rubygems"
|
@@ -359,6 +360,7 @@ class Chef
|
|
359
360
|
provides :gem_package
|
360
361
|
|
361
362
|
include Chef::Mixin::GetSourceFromPackage
|
363
|
+
include Chef::Mixin::Which
|
362
364
|
|
363
365
|
def initialize(new_resource, run_context = nil)
|
364
366
|
super
|
@@ -410,11 +412,7 @@ class Chef
|
|
410
412
|
end
|
411
413
|
|
412
414
|
def find_gem_by_path
|
413
|
-
|
414
|
-
separator = ::File::ALT_SEPARATOR ? ::File::ALT_SEPARATOR : ::File::SEPARATOR
|
415
|
-
path_to_first_gem = ENV["PATH"].split(::File::PATH_SEPARATOR).find { |path| ::File.exist?(path + separator + "gem") }
|
416
|
-
raise Chef::Exceptions::FileNotFound, "Unable to find 'gem' binary in path: #{ENV['PATH']}" if path_to_first_gem.nil?
|
417
|
-
path_to_first_gem + separator + "gem"
|
415
|
+
which("gem", extra_path: RbConfig::CONFIG["bindir"])
|
418
416
|
end
|
419
417
|
|
420
418
|
def gem_dependency
|
@@ -81,7 +81,7 @@ class Chef
|
|
81
81
|
|
82
82
|
# Aix specific handling to update users home directory.
|
83
83
|
def manage_home
|
84
|
-
return unless updating_home? &&
|
84
|
+
return unless updating_home? && new_resource.manage_home
|
85
85
|
# -m option does not work on aix, so move dir.
|
86
86
|
universal_options.delete("-m")
|
87
87
|
if ::File.directory?(current_resource.home)
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
|
37
37
|
def load_current_resource
|
38
38
|
if new_resource.gid
|
39
|
-
Chef::Log.warn("The 'gid'
|
39
|
+
Chef::Log.warn("The 'gid' (or 'group') property is not implemented on the Windows platform. Please use the `members` property of the 'group' resource to assign a user to a group.")
|
40
40
|
end
|
41
41
|
|
42
42
|
@current_resource = Chef::Resource::User.new(new_resource.name)
|
data/lib/chef/providers.rb
CHANGED
@@ -19,7 +19,6 @@
|
|
19
19
|
require "chef/provider/apt_update"
|
20
20
|
require "chef/provider/apt_repository"
|
21
21
|
require "chef/provider/batch"
|
22
|
-
require "chef/provider/breakpoint"
|
23
22
|
require "chef/provider/cookbook_file"
|
24
23
|
require "chef/provider/cron"
|
25
24
|
require "chef/provider/cron/solaris"
|
@@ -21,12 +21,24 @@ require "chef/resource"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class Breakpoint < Chef::Resource
|
24
|
+
provides :breakpoint
|
25
|
+
resource_name :breakpoinst
|
26
|
+
|
24
27
|
default_action :break
|
25
28
|
|
26
29
|
def initialize(action = "break", *args)
|
27
30
|
super(caller.first, *args)
|
28
31
|
end
|
29
32
|
|
33
|
+
action :break do
|
34
|
+
if defined?(Shell) && Shell.running?
|
35
|
+
with_run_context :parent do
|
36
|
+
run_context.resource_collection.iterator.pause
|
37
|
+
new_resource.updated_by_last_action(true)
|
38
|
+
run_context.resource_collection.iterator
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
30
42
|
end
|
31
43
|
end
|
32
44
|
end
|
data/lib/chef/resource/env.rb
CHANGED
@@ -20,46 +20,14 @@
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class Env < Chef::Resource
|
23
|
-
|
24
|
-
identity_attr :key_name
|
25
|
-
|
26
|
-
state_attrs :value
|
27
|
-
|
28
23
|
provides :env, os: "windows"
|
29
24
|
|
30
25
|
default_action :create
|
31
26
|
allowed_actions :create, :delete, :modify
|
32
27
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
@value = nil
|
37
|
-
@delim = nil
|
38
|
-
end
|
39
|
-
|
40
|
-
def key_name(arg = nil)
|
41
|
-
set_or_return(
|
42
|
-
:key_name,
|
43
|
-
arg,
|
44
|
-
:kind_of => [ String ]
|
45
|
-
)
|
46
|
-
end
|
47
|
-
|
48
|
-
def value(arg = nil)
|
49
|
-
set_or_return(
|
50
|
-
:value,
|
51
|
-
arg,
|
52
|
-
:kind_of => [ String ]
|
53
|
-
)
|
54
|
-
end
|
55
|
-
|
56
|
-
def delim(arg = nil)
|
57
|
-
set_or_return(
|
58
|
-
:delim,
|
59
|
-
arg,
|
60
|
-
:kind_of => [ String ]
|
61
|
-
)
|
62
|
-
end
|
28
|
+
property :key_name, String, identity: true, name_property: true
|
29
|
+
property :value, String, required: true
|
30
|
+
property :delim, [ String, nil, false ], desired_state: false
|
63
31
|
end
|
64
32
|
end
|
65
33
|
end
|
data/lib/chef/resource/route.rb
CHANGED
@@ -22,116 +22,22 @@ require "chef/resource"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class Route < Chef::Resource
|
25
|
-
identity_attr :target
|
26
|
-
|
27
|
-
state_attrs :netmask, :gateway
|
28
|
-
|
29
25
|
default_action :add
|
30
26
|
allowed_actions :add, :delete
|
31
27
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
def networking(arg = nil)
|
48
|
-
set_or_return(
|
49
|
-
:networking,
|
50
|
-
arg,
|
51
|
-
:kind_of => String
|
52
|
-
)
|
53
|
-
end
|
54
|
-
|
55
|
-
def networking_ipv6(arg = nil)
|
56
|
-
set_or_return(
|
57
|
-
:networking_ipv6,
|
58
|
-
arg,
|
59
|
-
:kind_of => String
|
60
|
-
)
|
61
|
-
end
|
62
|
-
|
63
|
-
def hostname(arg = nil)
|
64
|
-
set_or_return(
|
65
|
-
:hostname,
|
66
|
-
arg,
|
67
|
-
:kind_of => String
|
68
|
-
)
|
69
|
-
end
|
70
|
-
|
71
|
-
def domainname(arg = nil)
|
72
|
-
set_or_return(
|
73
|
-
:domainname,
|
74
|
-
arg,
|
75
|
-
:kind_of => String
|
76
|
-
)
|
77
|
-
end
|
78
|
-
|
79
|
-
def domain(arg = nil)
|
80
|
-
set_or_return(
|
81
|
-
:domain,
|
82
|
-
arg,
|
83
|
-
:kind_of => String
|
84
|
-
)
|
85
|
-
end
|
86
|
-
|
87
|
-
def target(arg = nil)
|
88
|
-
set_or_return(
|
89
|
-
:target,
|
90
|
-
arg,
|
91
|
-
:kind_of => String
|
92
|
-
)
|
93
|
-
end
|
94
|
-
|
95
|
-
def netmask(arg = nil)
|
96
|
-
set_or_return(
|
97
|
-
:netmask,
|
98
|
-
arg,
|
99
|
-
:kind_of => String
|
100
|
-
)
|
101
|
-
end
|
102
|
-
|
103
|
-
def gateway(arg = nil)
|
104
|
-
set_or_return(
|
105
|
-
:gateway,
|
106
|
-
arg,
|
107
|
-
:kind_of => String
|
108
|
-
)
|
109
|
-
end
|
110
|
-
|
111
|
-
def metric(arg = nil)
|
112
|
-
set_or_return(
|
113
|
-
:metric,
|
114
|
-
arg,
|
115
|
-
:kind_of => Integer
|
116
|
-
)
|
117
|
-
end
|
118
|
-
|
119
|
-
def device(arg = nil)
|
120
|
-
set_or_return(
|
121
|
-
:device,
|
122
|
-
arg,
|
123
|
-
:kind_of => String
|
124
|
-
)
|
125
|
-
end
|
126
|
-
|
127
|
-
def route_type(arg = nil)
|
128
|
-
real_arg = arg.kind_of?(String) ? arg.to_sym : arg
|
129
|
-
set_or_return(
|
130
|
-
:route_type,
|
131
|
-
real_arg,
|
132
|
-
:equal_to => [ :host, :net ]
|
133
|
-
)
|
134
|
-
end
|
28
|
+
property :target, String, identity: true, name_property: true
|
29
|
+
property :netmask, [String, nil]
|
30
|
+
property :gateway, [String, nil]
|
31
|
+
property :device, [String, nil], desired_state: false # Has a partial default in the provider of eth0.
|
32
|
+
property :route_type, [:host, :net], default: :host, coerce: proc { |x| x.to_sym }, desired_state: false
|
33
|
+
|
34
|
+
# I can find no evidence of these properties actually being used by Chef. NK 2017-04-11
|
35
|
+
property :networking, [String, nil], desired_state: false
|
36
|
+
property :networking_ipv6, [String, nil], desired_state: false
|
37
|
+
property :hostname, [String, nil], desired_state: false
|
38
|
+
property :domainname, [String, nil], desired_state: false
|
39
|
+
property :domain, [String, nil], desired_state: false
|
40
|
+
property :metric, [Integer, nil], desired_state: false
|
135
41
|
end
|
136
42
|
end
|
137
43
|
end
|
@@ -78,7 +78,7 @@ class Chef
|
|
78
78
|
set_or_return(
|
79
79
|
:start_command,
|
80
80
|
arg,
|
81
|
-
:kind_of => [ String ]
|
81
|
+
:kind_of => [ String, NilClass, FalseClass ]
|
82
82
|
)
|
83
83
|
end
|
84
84
|
|
@@ -87,7 +87,7 @@ class Chef
|
|
87
87
|
set_or_return(
|
88
88
|
:stop_command,
|
89
89
|
arg,
|
90
|
-
:kind_of => [ String ]
|
90
|
+
:kind_of => [ String, NilClass, FalseClass ]
|
91
91
|
)
|
92
92
|
end
|
93
93
|
|
@@ -96,7 +96,7 @@ class Chef
|
|
96
96
|
set_or_return(
|
97
97
|
:status_command,
|
98
98
|
arg,
|
99
|
-
:kind_of => [ String ]
|
99
|
+
:kind_of => [ String, NilClass, FalseClass ]
|
100
100
|
)
|
101
101
|
end
|
102
102
|
|
@@ -105,7 +105,7 @@ class Chef
|
|
105
105
|
set_or_return(
|
106
106
|
:restart_command,
|
107
107
|
arg,
|
108
|
-
:kind_of => [ String ]
|
108
|
+
:kind_of => [ String, NilClass, FalseClass ]
|
109
109
|
)
|
110
110
|
end
|
111
111
|
|
@@ -113,7 +113,7 @@ class Chef
|
|
113
113
|
set_or_return(
|
114
114
|
:reload_command,
|
115
115
|
arg,
|
116
|
-
:kind_of => [ String ]
|
116
|
+
:kind_of => [ String, NilClass, FalseClass ]
|
117
117
|
)
|
118
118
|
end
|
119
119
|
|
data/lib/chef/resource/user.rb
CHANGED
@@ -62,19 +62,21 @@ class Chef
|
|
62
62
|
)
|
63
63
|
end
|
64
64
|
|
65
|
-
def uid(arg =
|
65
|
+
def uid(arg = Chef::NOT_PASSED)
|
66
66
|
set_or_return(
|
67
67
|
:uid,
|
68
68
|
arg,
|
69
|
-
:kind_of => [ String, Integer ]
|
69
|
+
:kind_of => [ String, Integer, NilClass ],
|
70
|
+
:coerce => proc { |x| x || nil }
|
70
71
|
)
|
71
72
|
end
|
72
73
|
|
73
|
-
def gid(arg =
|
74
|
+
def gid(arg = Chef::NOT_PASSED)
|
74
75
|
set_or_return(
|
75
76
|
:gid,
|
76
77
|
arg,
|
77
|
-
:kind_of => [ String, Integer ]
|
78
|
+
:kind_of => [ String, Integer, NilClass ],
|
79
|
+
:coerce => proc { |x| x || nil }
|
78
80
|
)
|
79
81
|
end
|
80
82
|
|
@@ -24,7 +24,7 @@ class Chef
|
|
24
24
|
|
25
25
|
provides :windows_task, os: "windows"
|
26
26
|
|
27
|
-
allowed_actions :create, :delete, :run, :end, :
|
27
|
+
allowed_actions :create, :delete, :run, :end, :enable, :disable
|
28
28
|
default_action :create
|
29
29
|
|
30
30
|
def initialize(name, run_context = nil)
|
@@ -161,8 +161,8 @@ class Chef
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def validate_create_day(day, frequency)
|
164
|
-
unless [:weekly].include?(frequency)
|
165
|
-
raise "day attribute is only valid for tasks that run weekly"
|
164
|
+
unless [:weekly, :monthly].include?(frequency)
|
165
|
+
raise "day attribute is only valid for tasks that run monthly or weekly"
|
166
166
|
end
|
167
167
|
if day.is_a?(String) && day.to_i.to_s != day
|
168
168
|
days = day.split(",")
|
data/lib/chef/run_context.rb
CHANGED
@@ -110,6 +110,11 @@ class Chef
|
|
110
110
|
#
|
111
111
|
attr_reader :audits
|
112
112
|
|
113
|
+
#
|
114
|
+
# Pointer back to the Chef::Runner that created this
|
115
|
+
#
|
116
|
+
attr_accessor :runner
|
117
|
+
|
113
118
|
#
|
114
119
|
# Notification handling
|
115
120
|
#
|
@@ -646,6 +651,8 @@ ERROR_MESSAGE
|
|
646
651
|
root_run_context
|
647
652
|
resource_collection
|
648
653
|
resource_collection=
|
654
|
+
runner
|
655
|
+
runner=
|
649
656
|
}.map { |x| x.to_sym }
|
650
657
|
|
651
658
|
# Verify that we didn't miss any methods
|