chef 18.4.12 → 18.6.2
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 +9 -2
- data/chef-universal-mingw-ucrt.gemspec +1 -1
- data/chef.gemspec +8 -8
- data/lib/chef/client.rb +0 -15
- data/lib/chef/cookbook/chefignore.rb +4 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -2
- data/lib/chef/cookbook/synchronizer.rb +2 -1
- data/lib/chef/cookbook_manifest.rb +2 -2
- data/lib/chef/exceptions.rb +1 -1
- data/lib/chef/file_cache.rb +17 -2
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/mixin/{homebrew_user.rb → homebrew.rb} +13 -16
- data/lib/chef/mixin/openssl_helper.rb +2 -13
- data/lib/chef/node/attribute.rb +3 -11
- data/lib/chef/node/immutable_collections.rb +15 -8
- data/lib/chef/node/mixin/state_tracking.rb +6 -3
- data/lib/chef/policy_builder/policyfile.rb +8 -0
- data/lib/chef/provider/package/chocolatey.rb +56 -26
- data/lib/chef/provider/package/homebrew.rb +6 -9
- data/lib/chef/provider/package/powershell.rb +1 -0
- data/lib/chef/provider/package/rubygems.rb +4 -0
- data/lib/chef/provider/package/snap.rb +1 -0
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/service/windows.rb +0 -1
- data/lib/chef/provider/user/windows.rb +5 -0
- data/lib/chef/resource/chef_client_config.rb +4 -2
- data/lib/chef/resource/chef_client_systemd_timer.rb +5 -0
- data/lib/chef/resource/chef_gem.rb +1 -1
- data/lib/chef/resource/execute.rb +8 -6
- data/lib/chef/resource/habitat_install.rb +2 -1
- data/lib/chef/resource/homebrew_cask.rb +19 -30
- data/lib/chef/resource/homebrew_tap.rb +32 -17
- data/lib/chef/resource/homebrew_update.rb +4 -4
- data/lib/chef/resource/powershell_package.rb +4 -0
- data/lib/chef/resource/snap_package.rb +23 -0
- data/lib/chef/resource/support/client.erb +4 -3
- data/lib/chef/resource/sysctl.rb +1 -0
- data/lib/chef/resource_inspector.rb +25 -7
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/registry.rb +5 -0
- data/lib/chef/win32/security.rb +9 -0
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/integration/client/fips_spec.rb +11 -2
- data/spec/integration/client/open_ssl_spec.rb +20 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/platform_helpers.rb +28 -7
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/unit/client_spec.rb +0 -16
- data/spec/unit/file_cache_spec.rb +64 -0
- data/spec/unit/mixin/homebrew_spec.rb +118 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +6 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +17 -12
- data/spec/unit/provider/package/homebrew_spec.rb +4 -1
- data/spec/unit/provider/package/windows_spec.rb +5 -5
- data/spec/unit/provider/package/zypper_spec.rb +0 -10
- data/spec/unit/provider/user/windows_spec.rb +1 -0
- data/spec/unit/resource_inspector_spec.rb +36 -0
- metadata +23 -10
- data/spec/unit/mixin/homebrew_user_spec.rb +0 -119
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 18.
|
4
|
+
version: 18.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 18.
|
19
|
+
version: 18.6.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 18.
|
26
|
+
version: 18.6.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: chef-utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 18.
|
33
|
+
version: 18.6.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 18.
|
40
|
+
version: 18.6.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: train-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,6 +45,9 @@ dependencies:
|
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.10'
|
48
|
+
- - "<="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 3.12.7
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -52,6 +55,9 @@ dependencies:
|
|
52
55
|
- - "~>"
|
53
56
|
- !ruby/object:Gem::Version
|
54
57
|
version: '3.10'
|
58
|
+
- - "<="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 3.12.7
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: train-winrm
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +247,9 @@ dependencies:
|
|
241
247
|
- - ">="
|
242
248
|
- !ruby/object:Gem::Version
|
243
249
|
version: 1.15.5
|
250
|
+
- - "<="
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: 1.16.3
|
244
253
|
type: :runtime
|
245
254
|
prerelease: false
|
246
255
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -248,6 +257,9 @@ dependencies:
|
|
248
257
|
- - ">="
|
249
258
|
- !ruby/object:Gem::Version
|
250
259
|
version: 1.15.5
|
260
|
+
- - "<="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 1.16.3
|
251
263
|
- !ruby/object:Gem::Dependency
|
252
264
|
name: ffi-yajl
|
253
265
|
requirement: !ruby/object:Gem::Requirement
|
@@ -536,14 +548,14 @@ dependencies:
|
|
536
548
|
requirements:
|
537
549
|
- - "~>"
|
538
550
|
- !ruby/object:Gem::Version
|
539
|
-
version:
|
551
|
+
version: 0.18.2
|
540
552
|
type: :runtime
|
541
553
|
prerelease: false
|
542
554
|
version_requirements: !ruby/object:Gem::Requirement
|
543
555
|
requirements:
|
544
556
|
- - "~>"
|
545
557
|
- !ruby/object:Gem::Version
|
546
|
-
version:
|
558
|
+
version: 0.18.2
|
547
559
|
description: A systems integration framework, built to bring the benefits of configuration
|
548
560
|
management to your entire infrastructure.
|
549
561
|
email: adam@chef.io
|
@@ -836,7 +848,7 @@ files:
|
|
836
848
|
- lib/chef/mixin/file_class.rb
|
837
849
|
- lib/chef/mixin/from_file.rb
|
838
850
|
- lib/chef/mixin/get_source_from_package.rb
|
839
|
-
- lib/chef/mixin/
|
851
|
+
- lib/chef/mixin/homebrew.rb
|
840
852
|
- lib/chef/mixin/lazy_module_include.rb
|
841
853
|
- lib/chef/mixin/notifying_block.rb
|
842
854
|
- lib/chef/mixin/openssl_helper.rb
|
@@ -1862,6 +1874,7 @@ files:
|
|
1862
1874
|
- spec/integration/client/exit_code_spec.rb
|
1863
1875
|
- spec/integration/client/fips_spec.rb
|
1864
1876
|
- spec/integration/client/ipv6_spec.rb
|
1877
|
+
- spec/integration/client/open_ssl_spec.rb
|
1865
1878
|
- spec/integration/compliance/compliance_spec.rb
|
1866
1879
|
- spec/integration/ohai/ohai_spec.rb
|
1867
1880
|
- spec/integration/recipes/accumulator_spec.rb
|
@@ -2059,7 +2072,7 @@ files:
|
|
2059
2072
|
- spec/unit/mixin/default_paths_spec.rb
|
2060
2073
|
- spec/unit/mixin/deprecation_spec.rb
|
2061
2074
|
- spec/unit/mixin/enforce_ownership_and_permissions_spec.rb
|
2062
|
-
- spec/unit/mixin/
|
2075
|
+
- spec/unit/mixin/homebrew_spec.rb
|
2063
2076
|
- spec/unit/mixin/lazy_module_include.rb
|
2064
2077
|
- spec/unit/mixin/openssl_helper_spec.rb
|
2065
2078
|
- spec/unit/mixin/params_validate_spec.rb
|
@@ -1,119 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Joshua Timberman (<joshua@chef.io>)
|
3
|
-
#
|
4
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
|
18
|
-
require "spec_helper"
|
19
|
-
require "chef/mixin/homebrew_user"
|
20
|
-
|
21
|
-
class ExampleHomebrewUser
|
22
|
-
include Chef::Mixin::HomebrewUser
|
23
|
-
end
|
24
|
-
|
25
|
-
describe Chef::Mixin::HomebrewUser do
|
26
|
-
let(:homebrew_user) { ExampleHomebrewUser.new }
|
27
|
-
let(:node) { Chef::Node.new }
|
28
|
-
|
29
|
-
describe "when the homebrew user is provided" do
|
30
|
-
let(:uid) { 1001 }
|
31
|
-
let(:user) { "foo" }
|
32
|
-
|
33
|
-
it "returns the homebrew user without looking at the file when uid is provided" do
|
34
|
-
expect(File).to receive(:exist?).exactly(0).times
|
35
|
-
expect(homebrew_user.find_homebrew_uid(uid)).to eq(uid)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "returns the homebrew user without looking at the file when name is provided" do
|
39
|
-
expect(File).to receive(:exist?).exactly(0).times
|
40
|
-
allow(Etc).to receive_message_chain(:getpwnam, :uid).and_return(uid)
|
41
|
-
expect(homebrew_user.find_homebrew_uid(user)).to eq(uid)
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
shared_examples "successfully find executable" do
|
47
|
-
let(:user) { nil }
|
48
|
-
let(:brew_owner) { 2001 }
|
49
|
-
let(:default_brew_path) { "/usr/local/bin/brew" }
|
50
|
-
let(:default_brew_path_arm) { "/opt/homebrew/bin/brew" }
|
51
|
-
let(:default_brew_path_linux) { "/home/linuxbrew/.linuxbrew/bin/brew" }
|
52
|
-
let(:stat_double) do
|
53
|
-
d = double
|
54
|
-
expect(d).to receive(:uid).and_return(brew_owner)
|
55
|
-
d
|
56
|
-
end
|
57
|
-
|
58
|
-
context "debug statement prints owner name" do
|
59
|
-
|
60
|
-
before do
|
61
|
-
expect(Etc).to receive(:getpwuid).with(brew_owner).and_return(OpenStruct.new(name: "name"))
|
62
|
-
end
|
63
|
-
|
64
|
-
def false_unless_specific_value(object, method, value)
|
65
|
-
allow(object).to receive(method).and_return(false)
|
66
|
-
allow(object).to receive(method).with(value).and_return(true)
|
67
|
-
end
|
68
|
-
|
69
|
-
it "returns the owner of the brew executable when it is at a default location for x86_64 machines" do
|
70
|
-
false_unless_specific_value(File, :exist?, default_brew_path)
|
71
|
-
false_unless_specific_value(File, :executable?, default_brew_path)
|
72
|
-
allow(File).to receive(:stat).with(default_brew_path).and_return(stat_double)
|
73
|
-
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
74
|
-
end
|
75
|
-
|
76
|
-
it "returns the owner of the brew executable when it is at a default location for arm machines" do
|
77
|
-
false_unless_specific_value(File, :exist?, default_brew_path_arm)
|
78
|
-
false_unless_specific_value(File, :executable?, default_brew_path_arm)
|
79
|
-
allow(File).to receive(:stat).with(default_brew_path_arm).and_return(stat_double)
|
80
|
-
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
81
|
-
end
|
82
|
-
|
83
|
-
it "returns the owner of the brew executable when it is at a default location for linux machines" do
|
84
|
-
false_unless_specific_value(File, :exist?, default_brew_path_linux)
|
85
|
-
false_unless_specific_value(File, :executable?, default_brew_path_linux)
|
86
|
-
allow(File).to receive(:stat).with(default_brew_path_linux).and_return(stat_double)
|
87
|
-
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
88
|
-
end
|
89
|
-
|
90
|
-
it "returns the owner of the brew executable when it is not at a default location" do
|
91
|
-
allow_any_instance_of(ExampleHomebrewUser).to receive(:which).and_return("/foo")
|
92
|
-
false_unless_specific_value(File, :exist?, "/foo")
|
93
|
-
false_unless_specific_value(File, :executable?, "/foo")
|
94
|
-
allow(homebrew_user).to receive_message_chain(:shell_out, :stdout, :strip).and_return("/foo")
|
95
|
-
allow(File).to receive(:stat).with("/foo").and_return(stat_double)
|
96
|
-
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
describe "when the homebrew user is not provided" do
|
103
|
-
|
104
|
-
it "raises an error if no executable is found" do
|
105
|
-
expect(File).to receive(:exist?).and_return(nil).at_least(:once)
|
106
|
-
expect { homebrew_user.find_homebrew_uid(user) }.to raise_error(Chef::Exceptions::CannotDetermineHomebrewOwner)
|
107
|
-
end
|
108
|
-
|
109
|
-
include_examples "successfully find executable"
|
110
|
-
|
111
|
-
context "the executable is owned by root" do
|
112
|
-
include_examples "successfully find executable" do
|
113
|
-
let(:brew_owner) { 0 }
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|