chef 16.2.73-universal-mingw32 → 16.3.38-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 +4 -4
- data/Rakefile +1 -1
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +2 -1
- data/lib/chef/application.rb +12 -0
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/client.rb +3 -3
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +15 -29
- data/lib/chef/data_bag.rb +1 -2
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- data/lib/chef/environment.rb +1 -2
- data/lib/chef/exceptions.rb +3 -0
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +4 -10
- data/lib/chef/knife/bootstrap/train_connector.rb +1 -0
- data/lib/chef/knife/config_get.rb +1 -0
- data/lib/chef/knife/config_list_profiles.rb +4 -1
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +5 -10
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -0
- data/lib/chef/knife/core/subcommand_loader.rb +20 -1
- data/lib/chef/knife/core/ui.rb +8 -2
- data/lib/chef/knife/core/windows_bootstrap_context.rb +1 -2
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/ssh.rb +5 -1
- data/lib/chef/log.rb +7 -2
- data/lib/chef/mixin/chef_utils_wiring.rb +40 -0
- data/{spec/unit/log_spec.rb → lib/chef/mixin/default_paths.rb} +13 -5
- data/lib/chef/mixin/openssl_helper.rb +27 -5
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +1 -0
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/node.rb +36 -12
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/provider/git.rb +12 -4
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/package/snap.rb +2 -3
- data/lib/chef/provider/package/windows.rb +9 -4
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +1 -1
- data/lib/chef/resource.rb +2 -0
- data/lib/chef/resource/build_essential.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cron/cron_d.rb +1 -1
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/execute.rb +2 -2
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +176 -61
- data/lib/chef/resource/openssl_x509_certificate.rb +11 -14
- data/lib/chef/resource/openssl_x509_crl.rb +1 -2
- data/lib/chef/resource/service.rb +2 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +1 -1
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/windows_dns_record.rb +17 -0
- data/lib/chef/resource/windows_firewall_profile.rb +197 -0
- data/lib/chef/resource/windows_security_policy.rb +49 -20
- data/lib/chef/resource_inspector.rb +7 -1
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/role.rb +1 -2
- data/lib/chef/shell/shell_session.rb +2 -0
- data/lib/chef/util/diff.rb +0 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/resource/aix_service_spec.rb +0 -2
- data/spec/functional/resource/aixinit_service_spec.rb +0 -1
- data/spec/functional/resource/apt_package_spec.rb +0 -1
- data/spec/functional/resource/cron_spec.rb +0 -1
- data/spec/functional/resource/git_spec.rb +23 -1
- data/spec/functional/resource/group_spec.rb +6 -2
- data/spec/functional/resource/insserv_spec.rb +0 -1
- data/spec/functional/resource/remote_file_spec.rb +1 -7
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -1
- data/spec/functional/run_lock_spec.rb +2 -1
- data/spec/functional/shell_spec.rb +5 -5
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +30 -2
- data/spec/integration/knife/cookbook_upload_spec.rb +27 -0
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +1 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +2 -0
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +10 -4
- data/spec/support/chef_helpers.rb +1 -20
- data/spec/support/platform_helpers.rb +0 -2
- data/spec/support/shared/functional/file_resource.rb +0 -1
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +0 -1
- data/spec/unit/application_spec.rb +4 -2
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +1 -1
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/data_collector_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +2 -6
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +0 -1
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/which.rb +8 -0
- data/spec/unit/node_spec.rb +98 -11
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/execute_spec.rb +0 -7
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/rubygems_spec.rb +5 -10
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/systemd_unit_spec.rb +28 -24
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/resource/execute_spec.rb +10 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -0
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/win32/security_spec.rb +4 -3
- metadata +38 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da6577b8fa0e261507befc2a92ae462125a90459fc41a5242ab72fbb47f345f
|
4
|
+
data.tar.gz: c8241aa29ec9a28873db433235136d600775e146949f38d2a7e6dc7796583e46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ca6640bb820a6065f8045332d1131387a4533befcb51e6d695d46ec7846be14b86d45c4ef8c237b8e15cbe32d05bb3d2f6d276ae46aaa281cf389c2590152fd
|
7
|
+
data.tar.gz: ebe331d00d5764fa420a1ec88b812737bc4e4f14af3531d75644135c61c9078c7bcbca89d9b24d74bbbce8bc62805aab4e5981b06fc3ec9346418445d9419f7d
|
data/Gemfile
CHANGED
@@ -9,12 +9,12 @@ gem "chef", path: "."
|
|
9
9
|
|
10
10
|
gem "ohai", git: "https://github.com/chef/ohai.git", branch: "master"
|
11
11
|
|
12
|
-
gem "chef-utils", path: File.expand_path("
|
13
|
-
gem "chef-config", path: File.expand_path("
|
12
|
+
gem "chef-utils", path: File.expand_path("chef-utils", __dir__) if File.exist?(File.expand_path("chef-utils", __dir__))
|
13
|
+
gem "chef-config", path: File.expand_path("chef-config", __dir__) if File.exist?(File.expand_path("chef-config", __dir__))
|
14
14
|
|
15
|
-
if File.exist?(File.expand_path("
|
15
|
+
if File.exist?(File.expand_path("chef-bin", __dir__))
|
16
16
|
# bundling in a git checkout
|
17
|
-
gem "chef-bin", path: File.expand_path("
|
17
|
+
gem "chef-bin", path: File.expand_path("chef-bin", __dir__)
|
18
18
|
else
|
19
19
|
# bundling in omnibus
|
20
20
|
gem "chef-bin" # rubocop:disable Bundler/DuplicatedGem
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
gemspec = eval(IO.read(File.expand_path("
|
1
|
+
gemspec = eval(IO.read(File.expand_path("chef.gemspec", __dir__)))
|
2
2
|
|
3
3
|
gemspec.platform = Gem::Platform.new(%w{universal mingw32})
|
4
4
|
|
@@ -14,7 +14,7 @@ gemspec.add_dependency "win32-process", "~> 0.8.2"
|
|
14
14
|
gemspec.add_dependency "win32-service", ">= 2.1.5", "< 3.0"
|
15
15
|
gemspec.add_dependency "wmi-lite", "~> 1.0"
|
16
16
|
gemspec.add_dependency "win32-taskscheduler", "~> 2.0"
|
17
|
-
gemspec.add_dependency "iso8601", "
|
17
|
+
gemspec.add_dependency "iso8601", ">= 0.12.1", "< 0.14" # validate 0.14 when it comes out
|
18
18
|
gemspec.add_dependency "win32-certstore", "~> 0.3"
|
19
19
|
gemspec.extensions << "ext/win32-eventlog/Rakefile"
|
20
20
|
gemspec.files += Dir.glob("{distro,ext}/**/*")
|
data/chef.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency "mixlib-cli", ">= 2.1.1", "< 3.0"
|
25
25
|
s.add_dependency "mixlib-log", ">= 2.0.3", "< 4.0"
|
26
26
|
s.add_dependency "mixlib-authentication", ">= 2.1", "< 4"
|
27
|
-
s.add_dependency "mixlib-shellout", ">= 3.
|
27
|
+
s.add_dependency "mixlib-shellout", ">= 3.1.1", "< 4.0"
|
28
28
|
s.add_dependency "mixlib-archive", ">= 0.4", "< 2.0"
|
29
29
|
s.add_dependency "ohai", "~> 16.0"
|
30
30
|
|
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_dependency "ed25519", "~> 1.2" # ed25519 ssh key support
|
37
37
|
s.add_dependency "bcrypt_pbkdf", "= 1.1.0.rc1" # ed25519 ssh key support
|
38
38
|
s.add_dependency "highline", ">= 1.6.9", "< 3"
|
39
|
+
s.add_dependency "tty-prompt", "~> 0.21" # knife ui.ask prompt
|
39
40
|
s.add_dependency "tty-screen", "~> 0.6" # knife list
|
40
41
|
s.add_dependency "pastel" # knife ui.color
|
41
42
|
s.add_dependency "erubis", "~> 2.7"
|
data/lib/chef/application.rb
CHANGED
@@ -194,8 +194,10 @@ class Chef
|
|
194
194
|
chef_config[:log_location].map! do |log_location|
|
195
195
|
case log_location
|
196
196
|
when :syslog, "syslog"
|
197
|
+
force_force_logger
|
197
198
|
logger::Syslog.new
|
198
199
|
when :win_evt, "win_evt"
|
200
|
+
force_force_logger
|
199
201
|
logger::WinEvt.new
|
200
202
|
else
|
201
203
|
# should be a path or STDOUT
|
@@ -204,6 +206,16 @@ class Chef
|
|
204
206
|
end
|
205
207
|
end
|
206
208
|
|
209
|
+
# Force the logger by default for the :winevt and :syslog loggers. Since we do not and cannot
|
210
|
+
# support multiple log levels in a mix-and-match situation with formatters and loggers, and the
|
211
|
+
# formatters do not support syslog, we force the formatter off by default and the log level is
|
212
|
+
# thus info by default. Users can add `--force-formatter -l info` to get back formatter output
|
213
|
+
# on STDOUT along with syslog logging.
|
214
|
+
#
|
215
|
+
def force_force_logger
|
216
|
+
chef_config[:force_logger] = true unless chef_config[:force_formatter]
|
217
|
+
end
|
218
|
+
|
207
219
|
# Use of output formatters is assumed if `force_formatter` is set or if `force_logger` is not set
|
208
220
|
def using_output_formatter?
|
209
221
|
chef_config[:force_formatter] || !chef_config[:force_logger]
|
@@ -2,14 +2,14 @@
|
|
2
2
|
require_relative "exceptions"
|
3
3
|
|
4
4
|
class Chef
|
5
|
-
class
|
5
|
+
class AttributeAllowlist
|
6
6
|
|
7
|
-
# filter takes two arguments - the data you want to filter, and
|
8
|
-
#
|
7
|
+
# filter takes two arguments - the data you want to filter, and an array of
|
8
|
+
# keys you want included. You can capture a subtree of the data to filter by
|
9
9
|
# providing a "/"-delimited string of keys. If some key includes "/"-characters,
|
10
10
|
# you must provide an array of keys instead.
|
11
11
|
#
|
12
|
-
#
|
12
|
+
# AttributeAllowlist.filter(
|
13
13
|
# { "filesystem" => {
|
14
14
|
# "/dev/disk" => {
|
15
15
|
# "size" => "10mb"
|
@@ -27,18 +27,18 @@ class Chef
|
|
27
27
|
# },
|
28
28
|
# ["network/interfaces/eth0", ["filesystem", "/dev/disk"]])
|
29
29
|
# will capture the eth0 and /dev/disk subtrees.
|
30
|
-
def self.filter(data,
|
31
|
-
return data if
|
30
|
+
def self.filter(data, allowlist = nil)
|
31
|
+
return data if allowlist.nil?
|
32
32
|
|
33
33
|
new_data = {}
|
34
|
-
|
34
|
+
allowlist.each do |item|
|
35
35
|
add_data(data, new_data, item)
|
36
36
|
end
|
37
37
|
new_data
|
38
38
|
end
|
39
39
|
|
40
|
-
# Walk the data has according to the keys provided by the
|
41
|
-
# and add the data to the
|
40
|
+
# Walk the data has according to the keys provided by the allowlisted item
|
41
|
+
# and add the data to the allowlisting result.
|
42
42
|
def self.add_data(data, new_data, item)
|
43
43
|
parts = to_array(item)
|
44
44
|
|
@@ -46,7 +46,7 @@ class Chef
|
|
46
46
|
filtered_data = new_data
|
47
47
|
parts[0..-2].each do |part|
|
48
48
|
unless all_data.key?(part)
|
49
|
-
Chef::Log.warn("Could not find
|
49
|
+
Chef::Log.warn("Could not find allowlist attribute #{item}.")
|
50
50
|
return nil
|
51
51
|
end
|
52
52
|
|
@@ -58,7 +58,7 @@ class Chef
|
|
58
58
|
# Note: You can't do all_data[parts[-1]] here because the value
|
59
59
|
# may be false-y
|
60
60
|
unless all_data.key?(parts[-1])
|
61
|
-
Chef::Log.warn("Could not find
|
61
|
+
Chef::Log.warn("Could not find allowlist attribute #{item}.")
|
62
62
|
return nil
|
63
63
|
end
|
64
64
|
|
@@ -2,14 +2,14 @@
|
|
2
2
|
require_relative "exceptions"
|
3
3
|
|
4
4
|
class Chef
|
5
|
-
class
|
5
|
+
class AttributeBlocklist
|
6
6
|
|
7
|
-
# filter takes two arguments - the data you want to filter, and
|
7
|
+
# filter takes two arguments - the data you want to filter, and an array
|
8
8
|
# of keys you want discarded. You can capture a subtree of the data to filter by
|
9
9
|
# providing a "/"-delimited string of keys. If some key includes "/"-characters,
|
10
10
|
# you must provide an array of keys instead.
|
11
11
|
#
|
12
|
-
#
|
12
|
+
# AttributeBlocklist.filter(
|
13
13
|
# { "filesystem" => {
|
14
14
|
# "/dev/disk" => {
|
15
15
|
# "size" => "10mb"
|
@@ -27,17 +27,17 @@ class Chef
|
|
27
27
|
# },
|
28
28
|
# ["network/interfaces/eth0", ["filesystem", "/dev/disk"]])
|
29
29
|
# will exclude the eth0 and /dev/disk subtrees.
|
30
|
-
def self.filter(data,
|
31
|
-
return data if
|
30
|
+
def self.filter(data, blocklist = nil)
|
31
|
+
return data if blocklist.nil?
|
32
32
|
|
33
|
-
|
33
|
+
blocklist.each do |item|
|
34
34
|
Chef::Log.warn("Removing item #{item}")
|
35
35
|
remove_data(data, item)
|
36
36
|
end
|
37
37
|
data
|
38
38
|
end
|
39
39
|
|
40
|
-
# Walk the data according to the keys provided by the
|
40
|
+
# Walk the data according to the keys provided by the blocklisted item
|
41
41
|
# to get a reference to the item that will be removed.
|
42
42
|
def self.remove_data(data, item)
|
43
43
|
parts = to_array(item)
|
@@ -45,7 +45,7 @@ class Chef
|
|
45
45
|
item_ref = data
|
46
46
|
parts[0..-2].each do |part|
|
47
47
|
unless item_ref[part]
|
48
|
-
Chef::Log.warn("Could not find
|
48
|
+
Chef::Log.warn("Could not find blocklist attribute #{item}.")
|
49
49
|
return nil
|
50
50
|
end
|
51
51
|
|
@@ -53,7 +53,7 @@ class Chef
|
|
53
53
|
end
|
54
54
|
|
55
55
|
unless item_ref.key?(parts[-1])
|
56
|
-
Chef::Log.warn("Could not find
|
56
|
+
Chef::Log.warn("Could not find blocklist attribute #{item}.")
|
57
57
|
return nil
|
58
58
|
end
|
59
59
|
|
@@ -5,14 +5,13 @@ class Chef
|
|
5
5
|
module DataHandler
|
6
6
|
class OrganizationDataHandler < DataHandlerBase
|
7
7
|
def normalize(organization, entry)
|
8
|
-
|
8
|
+
normalize_hash(organization, {
|
9
9
|
"name" => entry.org,
|
10
10
|
"full_name" => entry.org,
|
11
11
|
"org_type" => "Business",
|
12
12
|
"clientname" => "#{entry.org}-validator",
|
13
13
|
"billing_plan" => "platform-free",
|
14
14
|
})
|
15
|
-
result
|
16
15
|
end
|
17
16
|
|
18
17
|
def preserve_key?(key)
|
@@ -76,8 +76,7 @@ class Chef
|
|
76
76
|
raise Chef::Exceptions::MetadataNotFound.new(cookbook.root_paths[0], cookbook.name) unless cookbook.has_metadata_file?
|
77
77
|
|
78
78
|
if cookbook
|
79
|
-
|
80
|
-
tmp_cl = Chef::CookbookLoader.copy_to_tmp_dir_from_array([cookbook])
|
79
|
+
Chef::CookbookLoader.copy_to_tmp_dir_from_array([cookbook]) do |tmp_cl|
|
81
80
|
tmp_cl.load_cookbooks
|
82
81
|
tmp_cl.compile_metadata
|
83
82
|
tmp_cl.freeze_versions if options[:freeze]
|
@@ -91,9 +90,6 @@ class Chef
|
|
91
90
|
with_actual_cookbooks_dir(other.parent.file_path) do
|
92
91
|
uploader.upload_cookbooks
|
93
92
|
end
|
94
|
-
|
95
|
-
ensure
|
96
|
-
tmp_cl.unlink!
|
97
93
|
end
|
98
94
|
end
|
99
95
|
end
|
@@ -145,7 +145,7 @@ class Chef
|
|
145
145
|
|
146
146
|
def each_with_exceptions_unordered
|
147
147
|
if @each_running
|
148
|
-
raise "each() called on parallel enumerable twice simultaneously!
|
148
|
+
raise "each() called on parallel enumerable twice simultaneously! Bad mojo"
|
149
149
|
end
|
150
150
|
|
151
151
|
@each_running = true
|
data/lib/chef/client.rb
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
require_relative "config"
|
22
22
|
require_relative "mixin/params_validate"
|
23
|
-
require "chef-utils/dsl/
|
23
|
+
require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
|
24
24
|
require_relative "log"
|
25
25
|
require_relative "deprecated"
|
26
26
|
require_relative "server_api"
|
@@ -250,7 +250,7 @@ class Chef
|
|
250
250
|
logger.info "#{Chef::Dist::CLIENT.capitalize} pid: #{Process.pid}"
|
251
251
|
logger.info "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
|
252
252
|
logger.debug("#{Chef::Dist::CLIENT.capitalize} request_id: #{request_id}")
|
253
|
-
ENV["PATH"] = ChefUtils::DSL::
|
253
|
+
ENV["PATH"] = ChefUtils::DSL::DefaultPaths.default_paths if Chef::Config[:enforce_default_paths] || Chef::Config[:enforce_path_sanity]
|
254
254
|
|
255
255
|
if Chef::Config.target_mode?
|
256
256
|
get_ohai_data_remotely
|
@@ -343,7 +343,7 @@ class Chef
|
|
343
343
|
formatters_for_run.map do |formatter_name, output_path|
|
344
344
|
if output_path.nil?
|
345
345
|
Chef::Formatters.new(formatter_name, STDOUT_FD, STDERR_FD)
|
346
|
-
|
346
|
+
elsif output_path.is_a?(String)
|
347
347
|
io = File.open(output_path, "a+")
|
348
348
|
io.sync = true
|
349
349
|
Chef::Formatters.new(formatter_name, io, io)
|
@@ -72,10 +72,8 @@ class Chef
|
|
72
72
|
Chef::Log.trace("Current checksum: #{current_checksum}; manifest checksum: #{found_manifest_record["checksum"]})")
|
73
73
|
end
|
74
74
|
|
75
|
-
full_path_cache_filename = Chef::FileCache.load(cache_filename, false)
|
76
|
-
|
77
75
|
# return the filename, not the contents (second argument= false)
|
78
|
-
|
76
|
+
Chef::FileCache.load(cache_filename, false)
|
79
77
|
end
|
80
78
|
|
81
79
|
def validate_cached_copy(cache_filename)
|
@@ -120,8 +120,7 @@ class Chef
|
|
120
120
|
path = Chef::Util::PathHelper.escape_glob_dir(cookbook_path)
|
121
121
|
files = Dir[File.join(path, "**", "*.rb")]
|
122
122
|
files = remove_ignored_files(files)
|
123
|
-
|
124
|
-
files
|
123
|
+
remove_uninteresting_ruby_files(files)
|
125
124
|
end
|
126
125
|
|
127
126
|
def untested_ruby_files
|
data/lib/chef/cookbook_loader.rb
CHANGED
@@ -44,14 +44,11 @@ class Chef
|
|
44
44
|
# @return [Array<String>] the array of repo paths containing cookbook dirs
|
45
45
|
attr_reader :repo_paths
|
46
46
|
|
47
|
-
attr_accessor :tmp_working_dir_path
|
48
|
-
|
49
47
|
# XXX: this is highly questionable combined with the Hash-style each method
|
50
48
|
include Enumerable
|
51
49
|
|
52
50
|
# @param repo_paths [Array<String>] the array of repo paths containing cookbook dirs
|
53
51
|
def initialize(*repo_paths)
|
54
|
-
@tmp_working_dir_path = nil
|
55
52
|
@repo_paths = repo_paths.flatten.compact.map { |p| File.expand_path(p) }
|
56
53
|
raise ArgumentError, "You must specify at least one cookbook repo path" if @repo_paths.empty?
|
57
54
|
end
|
@@ -140,27 +137,23 @@ class Chef
|
|
140
137
|
|
141
138
|
# This method creates tmp directory and copies all cookbooks into it and creates cookbook loader object which points to tmp directory
|
142
139
|
def self.copy_to_tmp_dir_from_array(cookbooks)
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
dest = File.join(@tmp_working_dir_path, cookbook.name.to_s, path_in_cookbook)
|
154
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
155
|
-
FileUtils.cp_r(on_disk_path, dest)
|
140
|
+
Dir.mktmpdir do |tmp_dir|
|
141
|
+
cookbooks.each do |cookbook|
|
142
|
+
checksums_to_on_disk_paths = cookbook.checksums
|
143
|
+
cookbook.each_file do |manifest_record|
|
144
|
+
path_in_cookbook = manifest_record[:path]
|
145
|
+
on_disk_path = checksums_to_on_disk_paths[manifest_record[:checksum]]
|
146
|
+
dest = File.join(tmp_dir, cookbook.name.to_s, path_in_cookbook)
|
147
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
148
|
+
FileUtils.cp_r(on_disk_path, dest)
|
149
|
+
end
|
156
150
|
end
|
151
|
+
tmp_cookbook_loader ||= begin
|
152
|
+
Chef::Cookbook::FileVendor.fetch_from_disk(tmp_dir)
|
153
|
+
CookbookLoader.new(tmp_dir)
|
154
|
+
end
|
155
|
+
yield tmp_cookbook_loader
|
157
156
|
end
|
158
|
-
tmp_cookbook_loader ||= begin
|
159
|
-
Chef::Cookbook::FileVendor.fetch_from_disk(@tmp_working_dir_path)
|
160
|
-
CookbookLoader.new(@tmp_working_dir_path)
|
161
|
-
end
|
162
|
-
tmp_cookbook_loader.tmp_working_dir_path = @tmp_working_dir_path
|
163
|
-
tmp_cookbook_loader
|
164
157
|
end
|
165
158
|
|
166
159
|
# generates metadata.json adds it in the manifest
|
@@ -181,13 +174,6 @@ class Chef
|
|
181
174
|
end
|
182
175
|
end
|
183
176
|
|
184
|
-
# removes the tmp_dir_path
|
185
|
-
def unlink!
|
186
|
-
raise "Invalid directory path." if @tmp_working_dir_path.nil?
|
187
|
-
|
188
|
-
FileUtils.rm_rf(@tmp_working_dir_path)
|
189
|
-
end
|
190
|
-
|
191
177
|
alias :cookbooks :values
|
192
178
|
|
193
179
|
private
|
data/lib/chef/data_bag.rb
CHANGED
data/lib/chef/deprecated.rb
CHANGED
@@ -241,6 +241,14 @@ class Chef
|
|
241
241
|
target 30
|
242
242
|
end
|
243
243
|
|
244
|
+
class ResourceNameWithoutProvides < Base
|
245
|
+
target 31
|
246
|
+
end
|
247
|
+
|
248
|
+
class AttributeBlacklistConfiguration < Base
|
249
|
+
target 32
|
250
|
+
end
|
251
|
+
|
244
252
|
class Generic < Base
|
245
253
|
def url
|
246
254
|
"https://docs.chef.io/chef_deprecations_client/"
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "chef-utils" unless defined?(ChefUtils::CANARY)
|
20
|
+
require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
|
20
21
|
|
21
22
|
class Chef
|
22
23
|
module DSL
|
@@ -25,6 +26,7 @@ class Chef
|
|
25
26
|
# #value_for_platform.
|
26
27
|
module PlatformIntrospection
|
27
28
|
include ChefUtils
|
29
|
+
include Chef::Mixin::ChefUtilsWiring
|
28
30
|
|
29
31
|
# Implementation class for determining platform dependent values
|
30
32
|
class PlatformDependentValue
|
data/lib/chef/environment.rb
CHANGED
@@ -119,7 +119,7 @@ class Chef
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def to_h
|
122
|
-
|
122
|
+
{
|
123
123
|
"name" => @name,
|
124
124
|
"description" => @description,
|
125
125
|
"cookbook_versions" => @cookbook_versions,
|
@@ -128,7 +128,6 @@ class Chef
|
|
128
128
|
"default_attributes" => @default_attributes,
|
129
129
|
"override_attributes" => @override_attributes,
|
130
130
|
}
|
131
|
-
result
|
132
131
|
end
|
133
132
|
|
134
133
|
alias_method :to_hash, :to_h
|