chef 12.9.41-universal-mingw32 → 12.10.24-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 +52 -13
- data/README.md +145 -0
- data/Rakefile +4 -14
- data/VERSION +1 -1
- data/acceptance/.gitignore +0 -1
- data/acceptance/Gemfile +2 -2
- data/acceptance/Gemfile.lock +235 -0
- data/acceptance/fips/.kitchen.yml +5 -1
- data/acceptance/fips/test/integration/{fips → fips-integration}/serverspec/Gemfile +0 -0
- data/acceptance/fips/test/integration/fips-integration/serverspec/fips-integration_spec.rb +51 -0
- data/acceptance/fips/test/integration/fips-unit-functional/serverspec/Gemfile +3 -0
- data/acceptance/fips/test/integration/fips-unit-functional/serverspec/fips-unit-functional_spec.rb +56 -0
- data/{chef-windows.gemspec → chef-universal-mingw32.gemspec} +0 -0
- data/chef.gemspec +0 -6
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/already_exists_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/file_system_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/not_found_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/operation_failed_error.rb +0 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -0
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +5 -0
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +5 -0
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +6 -0
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +5 -0
- data/{lib → lib-backcompat}/chef/chef_fs/file_system/repository/file_system_root_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/acl.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_acls_dir.rb → acls_dir.rb} +14 -5
- data/lib/chef/chef_fs/file_system/repository/acls_sub_dir.rb +42 -0
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +120 -0
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +36 -32
- data/lib/chef/chef_fs/file_system/repository/client.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/client_key.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_client_keys_dir.rb → client_keys_dir.rb} +9 -5
- data/lib/chef/chef_fs/file_system/repository/client_keys_sub_dir.rb +42 -0
- data/lib/chef/chef_fs/file_system/repository/clients_dir.rb +40 -0
- data/lib/chef/chef_fs/file_system/repository/container.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/containers_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +3 -79
- data/lib/chef/chef_fs/file_system/repository/directory.rb +15 -2
- data/lib/chef/chef_fs/file_system/repository/environment.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/environments_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +66 -30
- data/lib/chef/chef_fs/file_system/repository/group.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/groups_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/node.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_policies_dir.rb → policies_dir.rb} +9 -5
- data/lib/chef/chef_fs/file_system/repository/policy.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/policy_group.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/policy_groups_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/role.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/roles_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/repository/user.rb +38 -0
- data/lib/chef/chef_fs/file_system/repository/users_dir.rb +41 -0
- data/lib/chef/dsl/declare_resource.rb +182 -7
- data/lib/chef/http/json_input.rb +2 -2
- data/lib/chef/knife.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +10 -21
- data/lib/chef/property.rb +9 -2
- data/lib/chef/provider.rb +8 -7
- data/lib/chef/provider/apt_repository.rb +8 -6
- data/lib/chef/provider/directory.rb +15 -1
- data/lib/chef/provider/env/windows.rb +1 -1
- data/lib/chef/provider/mdadm.rb +1 -0
- data/lib/chef/provider/package/easy_install.rb +2 -0
- data/lib/chef/provider/package/rubygems.rb +4 -1
- data/lib/chef/provider/package/windows.rb +1 -1
- data/lib/chef/recipe.rb +1 -2
- data/lib/chef/resource/apt_repository.rb +6 -6
- data/lib/chef/resource/mdadm.rb +9 -0
- data/lib/chef/resource_collection.rb +5 -0
- data/lib/chef/resource_collection/resource_list.rb +10 -0
- data/lib/chef/resource_collection/resource_set.rb +14 -11
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/git_spec.rb +1 -3
- data/spec/functional/resource/group_spec.rb +5 -5
- data/spec/functional/tiny_server_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +3 -3
- data/spec/integration/solo/solo_spec.rb +2 -2
- data/spec/support/shared/functional/securable_resource.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +3 -3
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/unit/application/apply_spec.rb +1 -0
- data/spec/unit/chef_fs/file_system/repository/base_file_spec.rb +128 -0
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +174 -0
- data/spec/unit/cookbook/metadata_spec.rb +1 -1
- data/spec/unit/dsl/declare_resource_spec.rb +335 -0
- data/spec/unit/knife/bootstrap_spec.rb +2 -2
- data/spec/unit/mixin/shell_out_spec.rb +4 -0
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/node/immutable_collections_spec.rb +2 -2
- data/spec/unit/node_map_spec.rb +1 -1
- data/spec/unit/property/validation_spec.rb +23 -7
- data/spec/unit/provider/apt_repository_spec.rb +5 -0
- data/spec/unit/provider/apt_update_spec.rb +1 -0
- data/spec/unit/provider/directory_spec.rb +0 -7
- data/spec/unit/provider/file/content_spec.rb +1 -1
- data/spec/unit/provider/mdadm_spec.rb +9 -0
- data/spec/unit/provider/package/easy_install_spec.rb +6 -0
- data/spec/unit/provider/package/rubygems_spec.rb +8 -4
- data/spec/unit/provider/package/yum_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +1 -1
- data/spec/unit/provider/user/dscl_spec.rb +6 -6
- data/spec/unit/recipe_spec.rb +1 -0
- data/spec/unit/resource/apt_repository_spec.rb +4 -0
- data/spec/unit/resource/file/verification_spec.rb +1 -1
- data/spec/unit/resource/file_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +7 -2
- data/spec/unit/resource_collection_spec.rb +30 -0
- data/spec/unit/resource_spec.rb +1 -1
- data/tasks/bin/bundle-platform +15 -0
- data/tasks/bin/bundle-platform.bat +2 -0
- data/tasks/bin/create-override-gemfile +110 -0
- data/tasks/bin/run_chef_tests +17 -0
- data/tasks/bin/run_external_test +47 -0
- data/tasks/bundle.rb +97 -0
- data/tasks/bundle_util.rb +94 -0
- data/tasks/changelog.rb +12 -0
- data/tasks/dependencies.rb +147 -0
- data/tasks/gemfile_util.rb +390 -0
- data/tasks/maintainers.rb +2 -1
- data/tasks/rspec.rb +2 -1
- metadata +61 -83
- data/acceptance/fips/test/integration/fips/serverspec/fips_spec.rb +0 -39
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -83
- data/tasks/external_tests.rb +0 -64
data/lib/chef/http/json_input.rb
CHANGED
@@ -33,7 +33,7 @@ class Chef
|
|
33
33
|
|
34
34
|
def handle_request(method, url, headers = {}, data = false)
|
35
35
|
if data && should_encode_as_json?(headers)
|
36
|
-
headers.delete_if { |key, _value| key.
|
36
|
+
headers.delete_if { |key, _value| key.casecmp("content-type").zero? }
|
37
37
|
headers["Content-Type"] = "application/json"
|
38
38
|
json_opts = {}
|
39
39
|
json_opts[:validate_utf8] = opts[:validate_utf8] if opts.has_key?(:validate_utf8)
|
@@ -64,7 +64,7 @@ class Chef
|
|
64
64
|
# ruby/Net::HTTP don't enforce capitalized headers (it normalizes them
|
65
65
|
# for you before sending the request), so we have to account for all
|
66
66
|
# the variations we might find
|
67
|
-
requested_content_type = headers.find { |k, v| k.
|
67
|
+
requested_content_type = headers.find { |k, v| k.casecmp("content-type").zero? }
|
68
68
|
requested_content_type.nil? || requested_content_type.last.include?("json")
|
69
69
|
end
|
70
70
|
|
data/lib/chef/knife.rb
CHANGED
@@ -145,7 +145,7 @@ class Chef
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def self.subcommand_class_from(args)
|
148
|
-
if args.size == 1 && args[0].strip.
|
148
|
+
if args.size == 1 && args[0].strip.casecmp("rehash").zero?
|
149
149
|
# To prevent issues with the rehash file not pointing to the correct plugins,
|
150
150
|
# we always use the glob loader when regenerating the rehash file
|
151
151
|
@subcommand_loader = Chef::Knife::SubcommandLoader.gem_glob_loader(chef_config_dir)
|
data/lib/chef/mixin/shell_out.rb
CHANGED
@@ -28,26 +28,15 @@ class Chef
|
|
28
28
|
|
29
29
|
# we use 'en_US.UTF-8' by default because we parse localized strings in English as an API and
|
30
30
|
# generally must support UTF-8 unicode.
|
31
|
-
def shell_out(*
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
options[env_key]["LANG"] ||= Chef::Config[:internal_locale] unless options[env_key].has_key?("LANG")
|
41
|
-
args << options
|
42
|
-
else
|
43
|
-
args << { :environment => {
|
44
|
-
"LC_ALL" => Chef::Config[:internal_locale],
|
45
|
-
"LANGUAGE" => Chef::Config[:internal_locale],
|
46
|
-
"LANG" => Chef::Config[:internal_locale],
|
47
|
-
} }
|
48
|
-
end
|
49
|
-
|
50
|
-
shell_out_command(*args)
|
31
|
+
def shell_out(*args, **options)
|
32
|
+
options = options.dup
|
33
|
+
env_key = options.has_key?(:env) ? :env : :environment
|
34
|
+
options[env_key] = {
|
35
|
+
"LC_ALL" => Chef::Config[:internal_locale],
|
36
|
+
"LANGUAGE" => Chef::Config[:internal_locale],
|
37
|
+
"LANG" => Chef::Config[:internal_locale],
|
38
|
+
}.update(options[env_key] || {})
|
39
|
+
shell_out_command(*args, **options)
|
51
40
|
end
|
52
41
|
|
53
42
|
# call shell_out (using en_US.UTF-8) and raise errors
|
@@ -99,7 +88,7 @@ class Chef
|
|
99
88
|
end
|
100
89
|
|
101
90
|
def deprecate_option(old_option, new_option)
|
102
|
-
Chef
|
91
|
+
Chef.log_deprecation "DEPRECATION: Chef::Mixin::ShellOut option :#{old_option} is deprecated. Use :#{new_option}"
|
103
92
|
end
|
104
93
|
|
105
94
|
def io_for_live_stream
|
data/lib/chef/property.rb
CHANGED
@@ -72,6 +72,9 @@ class Chef
|
|
72
72
|
# property defaults to the same value as `name`. Equivalent to
|
73
73
|
# `default: lazy { name }`, except that #property_is_set? will
|
74
74
|
# return `true` if the property is set *or* if `name` is set.
|
75
|
+
# @option options [Boolean] :nillable `true` opt-in to Chef-13 style behavior where
|
76
|
+
# attempting to set a nil value will really set a nil value instead of issuing
|
77
|
+
# a warning and operating like a getter
|
75
78
|
# @option options [Object] :default The value this property
|
76
79
|
# will return if the user does not set one. If this is `lazy`, it will
|
77
80
|
# be run in the context of the instance (and able to access other
|
@@ -233,7 +236,7 @@ class Chef
|
|
233
236
|
#
|
234
237
|
def validation_options
|
235
238
|
@validation_options ||= options.reject { |k, v|
|
236
|
-
[:declared_in, :name, :instance_variable_name, :desired_state, :identity, :default, :name_property, :coerce, :required].include?(k)
|
239
|
+
[:declared_in, :name, :instance_variable_name, :desired_state, :identity, :default, :name_property, :coerce, :required, :nillable].include?(k)
|
237
240
|
}
|
238
241
|
end
|
239
242
|
|
@@ -262,7 +265,7 @@ class Chef
|
|
262
265
|
return get(resource)
|
263
266
|
end
|
264
267
|
|
265
|
-
if value.nil?
|
268
|
+
if value.nil? && !nillable?
|
266
269
|
# In Chef 12, value(nil) does a *get* instead of a set, so we
|
267
270
|
# warn if the value would have been changed. In Chef 13, it will be
|
268
271
|
# equivalent to value = nil.
|
@@ -670,5 +673,9 @@ class Chef
|
|
670
673
|
|
671
674
|
result
|
672
675
|
end
|
676
|
+
|
677
|
+
def nillable?
|
678
|
+
!!options[:nillable]
|
679
|
+
end
|
673
680
|
end
|
674
681
|
end
|
data/lib/chef/provider.rb
CHANGED
@@ -32,6 +32,14 @@ class Chef
|
|
32
32
|
class Provider
|
33
33
|
require "chef/mixin/why_run"
|
34
34
|
require "chef/mixin/provides"
|
35
|
+
|
36
|
+
attr_accessor :new_resource
|
37
|
+
attr_accessor :current_resource
|
38
|
+
attr_accessor :run_context
|
39
|
+
|
40
|
+
attr_reader :recipe_name
|
41
|
+
attr_reader :cookbook_name
|
42
|
+
|
35
43
|
include Chef::Mixin::WhyRun
|
36
44
|
extend Chef::Mixin::Provides
|
37
45
|
|
@@ -43,13 +51,6 @@ class Chef
|
|
43
51
|
true
|
44
52
|
end
|
45
53
|
|
46
|
-
attr_accessor :new_resource
|
47
|
-
attr_accessor :current_resource
|
48
|
-
attr_accessor :run_context
|
49
|
-
|
50
|
-
attr_reader :recipe_name
|
51
|
-
attr_reader :cookbook_name
|
52
|
-
|
53
54
|
#--
|
54
55
|
# TODO: this should be a reader, and the action should be passed in the
|
55
56
|
# constructor; however, many/most subclasses override the constructor so
|
@@ -239,13 +239,15 @@ class Chef
|
|
239
239
|
|
240
240
|
uri = '"' + uri + '"' unless uri.start_with?("'", '"')
|
241
241
|
components = Array(components).join(" ")
|
242
|
-
options =
|
243
|
-
options << "arch=#{arch}
|
242
|
+
options = []
|
243
|
+
options << "arch=#{arch}" if arch
|
244
244
|
options << "trusted=yes" if trusted
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
245
|
+
optstr = unless options.empty?
|
246
|
+
"[" + options.join(" ") + "]"
|
247
|
+
end
|
248
|
+
info = [ optstr, uri, distribution, components ].compact.join(" ")
|
249
|
+
repo = "deb #{info}\n"
|
250
|
+
repo << "deb-src #{info}\n" if add_src
|
249
251
|
repo
|
250
252
|
end
|
251
253
|
end
|
@@ -50,7 +50,21 @@ class Chef
|
|
50
50
|
# Make sure the parent dir exists, or else fail.
|
51
51
|
# for why run, print a message explaining the potential error.
|
52
52
|
parent_directory = ::File.dirname(@new_resource.path)
|
53
|
-
a.assertion
|
53
|
+
a.assertion do
|
54
|
+
if @new_resource.recursive
|
55
|
+
does_parent_exist = lambda do |base_dir|
|
56
|
+
base_dir = ::File.dirname(base_dir)
|
57
|
+
if ::File.exist?(base_dir)
|
58
|
+
::File.directory?(base_dir)
|
59
|
+
else
|
60
|
+
does_parent_exist.call(base_dir)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
does_parent_exist.call(@new_resource.path)
|
64
|
+
else
|
65
|
+
::File.directory?(parent_directory)
|
66
|
+
end
|
67
|
+
end
|
54
68
|
a.failure_message(Chef::Exceptions::EnclosingDirectoryDoesNotExist, "Parent directory #{parent_directory} does not exist, cannot create #{@new_resource.path}")
|
55
69
|
a.whyrun("Assuming directory #{parent_directory} would have been created")
|
56
70
|
end
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
obj.variablevalue = @new_resource.value
|
37
37
|
obj.put_
|
38
38
|
value = @new_resource.value
|
39
|
-
value = expand_path(value) if @new_resource.key_name.
|
39
|
+
value = expand_path(value) if @new_resource.key_name.casecmp("PATH").zero?
|
40
40
|
ENV[@new_resource.key_name] = value
|
41
41
|
broadcast_env_change
|
42
42
|
end
|
data/lib/chef/provider/mdadm.rb
CHANGED
@@ -51,6 +51,7 @@ class Chef
|
|
51
51
|
command << " --chunk=#{@new_resource.chunk}" unless @new_resource.level == 1
|
52
52
|
command << " --metadata=#{@new_resource.metadata}"
|
53
53
|
command << " --bitmap=#{@new_resource.bitmap}" if @new_resource.bitmap
|
54
|
+
command << " --layout=#{@new_resource.layout}" if @new_resource.layout
|
54
55
|
command << " --raid-devices #{@new_resource.devices.length} #{@new_resource.devices.join(" ")}"
|
55
56
|
Chef::Log.debug("#{@new_resource} mdadm command: #{command}")
|
56
57
|
shell_out!(command)
|
@@ -112,6 +112,7 @@ class Chef
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def install_package(name, version)
|
115
|
+
Chef.log_deprecation("The easy_install package provider is deprecated and will be removed in Chef 13.")
|
115
116
|
run_command(:command => "#{easy_install_binary_path}#{expand_options(@new_resource.options)} \"#{name}==#{version}\"")
|
116
117
|
end
|
117
118
|
|
@@ -120,6 +121,7 @@ class Chef
|
|
120
121
|
end
|
121
122
|
|
122
123
|
def remove_package(name, version)
|
124
|
+
Chef.log_deprecation("The easy_install package provider is deprecated and will be removed in Chef 13.")
|
123
125
|
run_command(:command => "#{easy_install_binary_path }#{expand_options(@new_resource.options)} -m #{name}")
|
124
126
|
end
|
125
127
|
|
@@ -517,7 +517,9 @@ class Chef
|
|
517
517
|
install_via_gem_command(name, version)
|
518
518
|
end
|
519
519
|
elsif @new_resource.gem_binary.nil?
|
520
|
-
|
520
|
+
# domain is used by Gem::DependencyInstaller rather than by Chef code
|
521
|
+
# domain can be :local, :remote or :both
|
522
|
+
@gem_env.install(@new_resource.source, domain: :local)
|
521
523
|
else
|
522
524
|
install_via_gem_command(name, version)
|
523
525
|
end
|
@@ -531,6 +533,7 @@ class Chef
|
|
531
533
|
def install_via_gem_command(name, version)
|
532
534
|
if @new_resource.source =~ /\.gem$/i
|
533
535
|
name = @new_resource.source
|
536
|
+
src = " --local" unless source_is_remote?
|
534
537
|
elsif @new_resource.clear_sources
|
535
538
|
src = " --clear-sources"
|
536
539
|
src << (@new_resource.source && " --source=#{@new_resource.source}" || "")
|
data/lib/chef/recipe.rb
CHANGED
@@ -34,14 +34,13 @@ class Chef
|
|
34
34
|
# == Chef::Recipe
|
35
35
|
# A Recipe object is the context in which Chef recipes are evaluated.
|
36
36
|
class Recipe
|
37
|
+
attr_accessor :cookbook_name, :recipe_name, :recipe, :params, :run_context
|
37
38
|
|
38
39
|
include Chef::DSL::Recipe
|
39
40
|
|
40
41
|
include Chef::Mixin::FromFile
|
41
42
|
include Chef::Mixin::Deprecation
|
42
43
|
|
43
|
-
attr_accessor :cookbook_name, :recipe_name, :recipe, :params, :run_context
|
44
|
-
|
45
44
|
# Parses a potentially fully-qualified recipe name into its
|
46
45
|
# cookbook name and recipe short name.
|
47
46
|
#
|
@@ -26,17 +26,17 @@ class Chef
|
|
26
26
|
|
27
27
|
property :repo_name, String, name_property: true
|
28
28
|
property :uri, String
|
29
|
-
property :distribution, String, default: lazy { node["lsb"]["codename"] }
|
29
|
+
property :distribution, [ String, nil, false ], default: lazy { node["lsb"]["codename"] }, nillable: true, coerce: proc { |x| x ? x : nil }
|
30
30
|
property :components, Array, default: []
|
31
|
-
property :arch, [String, nil], default: nil
|
31
|
+
property :arch, [String, nil, false], default: nil, nillable: true, coerce: proc { |x| x ? x : nil }
|
32
32
|
property :trusted, [TrueClass, FalseClass], default: false
|
33
33
|
# whether or not to add the repository as a source repo, too
|
34
34
|
property :deb_src, [TrueClass, FalseClass], default: false
|
35
|
-
property :keyserver, [String, nil], default: "keyserver.ubuntu.com"
|
36
|
-
property :key, [String, nil], default: nil
|
37
|
-
property :key_proxy, [String, nil], default: nil
|
35
|
+
property :keyserver, [String, nil, false], default: "keyserver.ubuntu.com", nillable: true, coerce: proc { |x| x ? x : nil }
|
36
|
+
property :key, [String, nil, false], default: nil, nillable: true, coerce: proc { |x| x ? x : nil }
|
37
|
+
property :key_proxy, [String, nil, false], default: nil, nillable: true, coerce: proc { |x| x ? x : nil }
|
38
38
|
|
39
|
-
property :cookbook, [String, nil], default: nil, desired_state: false
|
39
|
+
property :cookbook, [String, nil, false], default: nil, desired_state: false, nillable: true, coerce: proc { |x| x ? x : nil }
|
40
40
|
property :cache_rebuild, [TrueClass, FalseClass], default: true, desired_state: false
|
41
41
|
property :sensitive, [TrueClass, FalseClass], default: false, desired_state: false
|
42
42
|
|
data/lib/chef/resource/mdadm.rb
CHANGED
@@ -40,6 +40,7 @@ class Chef
|
|
40
40
|
@metadata = "0.90"
|
41
41
|
@bitmap = nil
|
42
42
|
@raid_device = name
|
43
|
+
@layout = nil
|
43
44
|
end
|
44
45
|
|
45
46
|
def chunk(arg = nil)
|
@@ -98,6 +99,14 @@ class Chef
|
|
98
99
|
)
|
99
100
|
end
|
100
101
|
|
102
|
+
def layout(arg = nil)
|
103
|
+
set_or_return(
|
104
|
+
:layout,
|
105
|
+
arg,
|
106
|
+
:kind_of => [ String ]
|
107
|
+
)
|
108
|
+
end
|
109
|
+
|
101
110
|
end
|
102
111
|
end
|
103
112
|
end
|
@@ -67,6 +67,16 @@ class Chef
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
def delete(key)
|
71
|
+
raise ArgumentError, "Must pass a Chef::Resource or String to delete" unless key.is_a?(String) || key.is_a?(Chef::Resource)
|
72
|
+
key = key.to_s
|
73
|
+
ret = @resources.reject! { |r| r.to_s == key }
|
74
|
+
if ret.nil?
|
75
|
+
raise Chef::Exceptions::ResourceNotFound, "Cannot find a resource matching #{key} (did you define it first?)"
|
76
|
+
end
|
77
|
+
ret
|
78
|
+
end
|
79
|
+
|
70
80
|
# @deprecated - can be removed when it is removed from resource_collection.rb
|
71
81
|
def []=(index, resource)
|
72
82
|
@resources[index] = resource
|
@@ -49,18 +49,22 @@ class Chef
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def lookup(key)
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
else
|
58
|
-
raise ArgumentError, "Must pass a Chef::Resource or String to lookup"
|
52
|
+
raise ArgumentError, "Must pass a Chef::Resource or String to lookup" unless key.is_a?(String) || key.is_a?(Chef::Resource)
|
53
|
+
key = key.to_s
|
54
|
+
res = @resources_by_key[key]
|
55
|
+
unless res
|
56
|
+
raise Chef::Exceptions::ResourceNotFound, "Cannot find a resource matching #{key} (did you define it first?)"
|
59
57
|
end
|
58
|
+
res
|
59
|
+
end
|
60
60
|
|
61
|
-
|
62
|
-
unless
|
63
|
-
|
61
|
+
def delete(key)
|
62
|
+
raise ArgumentError, "Must pass a Chef::Resource or String to delete" unless key.is_a?(String) || key.is_a?(Chef::Resource)
|
63
|
+
key = key.to_s
|
64
|
+
res = @resources_by_key.delete(key)
|
65
|
+
|
66
|
+
if res == @resources_by_key.default
|
67
|
+
raise Chef::Exceptions::ResourceNotFound, "Cannot find a resource matching #{key} (did you define it first?)"
|
64
68
|
end
|
65
69
|
res
|
66
70
|
end
|
@@ -164,7 +168,6 @@ class Chef
|
|
164
168
|
end
|
165
169
|
return results
|
166
170
|
end
|
167
|
-
|
168
171
|
end
|
169
172
|
end
|
170
173
|
end
|
data/lib/chef/version.rb
CHANGED
@@ -83,10 +83,8 @@ E
|
|
83
83
|
after(:each) do
|
84
84
|
Chef::Config[:file_cache_path] = @old_file_cache_path
|
85
85
|
FileUtils.remove_entry_secure deploy_directory if File.exist?(deploy_directory)
|
86
|
+
FileUtils.remove_entry_secure base_dir_path
|
86
87
|
FileUtils.remove_entry_secure file_cache_path
|
87
|
-
end
|
88
|
-
|
89
|
-
after(:all) do
|
90
88
|
FileUtils.remove_entry_secure origin_repo_dir
|
91
89
|
end
|
92
90
|
|
@@ -81,7 +81,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supporte
|
|
81
81
|
|
82
82
|
if user && domain != "."
|
83
83
|
computer_name = ENV["computername"]
|
84
|
-
domain.
|
84
|
+
!domain.casecmp(computer_name.downcase).zero?
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
@@ -269,12 +269,12 @@ describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supporte
|
|
269
269
|
describe "when removing members" do
|
270
270
|
it "does not raise an error for a non well-formed domain name" do
|
271
271
|
group_resource.excluded_members [invalid_domain_user_name]
|
272
|
-
expect { group_resource.run_action(tested_action) }.to_not raise_error
|
272
|
+
expect { group_resource.run_action(tested_action) }.to_not raise_error
|
273
273
|
end
|
274
274
|
|
275
275
|
it "does not raise an error for a nonexistent domain" do
|
276
276
|
group_resource.excluded_members [nonexistent_domain_user_name]
|
277
|
-
expect { group_resource.run_action(tested_action) }.to_not raise_error
|
277
|
+
expect { group_resource.run_action(tested_action) }.to_not raise_error
|
278
278
|
end
|
279
279
|
end
|
280
280
|
end
|
@@ -368,7 +368,7 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
|
|
368
368
|
|
369
369
|
describe "when there is no group" do
|
370
370
|
it "should raise an error" do
|
371
|
-
expect { group_resource.run_action(:modify) }.to raise_error
|
371
|
+
expect { group_resource.run_action(:modify) }.to raise_error(Chef::Exceptions::Group)
|
372
372
|
end
|
373
373
|
end
|
374
374
|
|
@@ -401,7 +401,7 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
|
|
401
401
|
end
|
402
402
|
|
403
403
|
it "raises an error on modify" do
|
404
|
-
expect { group_resource.run_action(:modify) }.to raise_error
|
404
|
+
expect { group_resource.run_action(:modify) }.to raise_error(Chef::Exceptions::Group)
|
405
405
|
end
|
406
406
|
|
407
407
|
it "does not raise an error on manage" do
|