chef 16.18.0 → 16.18.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +11 -2
- data/chef-universal-mingw32.gemspec +1 -0
- data/chef.gemspec +3 -2
- data/lib/chef/mixin/checksum.rb +6 -0
- data/lib/chef/mixin/powershell_exec.rb +7 -26
- data/lib/chef/platform/query_helpers.rb +2 -2
- data/lib/chef/provider/cron.rb +5 -1
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/package/windows.rb +1 -1
- data/lib/chef/provider/package/yum/yum_helper.py +0 -10
- data/lib/chef/resource/locale.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +17 -0
- data/lib/chef/resource/windows_user_privilege.rb +37 -27
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/version.rb +2 -1
- data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +55 -0
- data/spec/functional/resource/dsc_script_spec.rb +1 -1
- data/spec/functional/resource/windows_font_spec.rb +2 -1
- data/spec/functional/resource/yum_package_spec.rb +12 -0
- data/spec/functional/shell_spec.rb +5 -0
- data/spec/integration/client/fips_spec.rb +21 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/platform_helpers.rb +4 -0
- data/spec/unit/daemon_spec.rb +1 -5
- data/spec/unit/mixin/checksum_spec.rb +28 -0
- data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
- data/spec/unit/platform/query_helpers_spec.rb +5 -5
- data/spec/unit/provider/cron_spec.rb +34 -0
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
- metadata +16 -34
- data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6482b24a4eb52181a9743c685ad7cde514a5b55d90ef41aea9758f99e442886
|
4
|
+
data.tar.gz: e4a0fb750927ef05607baaec55f4760a14cadcd59e465950ec43cdf31c1cac94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 505644901501305a4aac09c186b9dcac0019f7d71dc1c0343f942501fdb769716e416dcc7fc10df42b871e6072dccdc4e342336c746f7ced7d89d34d260d0e1d
|
7
|
+
data.tar.gz: bf4fd87c204998756c798eb32e72cdd7ca6338dad9d61396cf076d530478d9e949f675d0ba3a6a88912ef4f1b7cc19eb6bea8f402a4bdae34aecac4c0d27c0b3
|
data/Gemfile
CHANGED
@@ -3,6 +3,9 @@ source "https://rubygems.org"
|
|
3
3
|
# 1.15+ is required for M1 mac builds
|
4
4
|
gem "ffi", ">=1.15"
|
5
5
|
|
6
|
+
# Nwed to file a bug with rest-client. In the meantime, we can use this until they accept the update.
|
7
|
+
gem "rest-client", git: "https://github.com/chef/rest-client", branch: "jfm/ucrt_update1"
|
8
|
+
|
6
9
|
# Note we do not use the gemspec DSL which restricts to the
|
7
10
|
# gemspec for the current platform and filters out other platforms
|
8
11
|
# during a bundle lock operation. We actually want dependencies from
|
@@ -15,6 +18,10 @@ gem "ohai", git: "https://github.com/chef/ohai.git", branch: "16-stable"
|
|
15
18
|
gem "chef-utils", path: File.expand_path("chef-utils", __dir__) if File.exist?(File.expand_path("chef-utils", __dir__))
|
16
19
|
gem "chef-config", path: File.expand_path("chef-config", __dir__) if File.exist?(File.expand_path("chef-config", __dir__))
|
17
20
|
|
21
|
+
# gems below are added here for Chef-16 compat. Their modern versions don't support Ruby 2.6
|
22
|
+
gem "semverse", "= 3.0.0"
|
23
|
+
gem "train-core", "= 3.2"
|
24
|
+
|
18
25
|
if File.exist?(File.expand_path("chef-bin", __dir__))
|
19
26
|
# bundling in a git checkout
|
20
27
|
gem "chef-bin", path: File.expand_path("chef-bin", __dir__)
|
@@ -23,7 +30,8 @@ else
|
|
23
30
|
gem "chef-bin" # rubocop:disable Bundler/DuplicatedGem
|
24
31
|
end
|
25
32
|
|
26
|
-
gem "cheffish", ">= 14"
|
33
|
+
# gem "cheffish", ">= 14"
|
34
|
+
gem "cheffish", "= 16.0.26"
|
27
35
|
|
28
36
|
gem "chef-telemetry", ">=1.0.8" # 1.0.8 removes the http dep
|
29
37
|
|
@@ -39,7 +47,8 @@ group(:omnibus_package, :pry) do
|
|
39
47
|
# some work is ongoing? https://github.com/deivid-rodriguez/pry-byebug/issues/343
|
40
48
|
gem "pry", "= 0.13.0"
|
41
49
|
# byebug does not install on freebsd on ruby 3.0
|
42
|
-
|
50
|
+
# This is the last version compatible for ruby2.6, which is used at linting step
|
51
|
+
gem "pry-byebug", "~> 3.9.0" unless RUBY_PLATFORM =~ /freebsd/i
|
43
52
|
gem "pry-stack_explorer"
|
44
53
|
end
|
45
54
|
|
@@ -15,6 +15,7 @@ gemspec.add_dependency "wmi-lite", "~> 1.0"
|
|
15
15
|
gemspec.add_dependency "win32-taskscheduler", "~> 2.0"
|
16
16
|
gemspec.add_dependency "iso8601", ">= 0.12.1", "< 0.14" # validate 0.14 when it comes out
|
17
17
|
gemspec.add_dependency "win32-certstore", "~> 0.5.0" # 0.5+ required for specifying user vs. system store
|
18
|
+
gemspec.add_dependency "chef-powershell", "~> 1.0.12"
|
18
19
|
gemspec.extensions << "ext/win32-eventlog/Rakefile"
|
19
20
|
gemspec.files += Dir.glob("{distro,ext}/**/*")
|
20
21
|
|
data/chef.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
|
27
27
|
s.add_dependency "chef-config", "= #{Chef::VERSION}"
|
28
28
|
s.add_dependency "chef-utils", "= #{Chef::VERSION}"
|
29
|
-
s.add_dependency "train-core", "~> 3.2", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
|
29
|
+
# s.add_dependency "train-core", "~> 3.2", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
|
30
30
|
s.add_dependency "train-winrm", ">= 0.2.5"
|
31
31
|
|
32
32
|
s.add_dependency "license-acceptance", ">= 1.0.5", "< 3"
|
@@ -38,7 +38,8 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.add_dependency "ohai", "~> 16.0"
|
39
39
|
s.add_dependency "inspec-core", "~> 4.23"
|
40
40
|
|
41
|
-
s.add_dependency "ffi", ">= 1.9.25"
|
41
|
+
# s.add_dependency "ffi", ">= 1.9.25"
|
42
|
+
s.add_dependency "ffi", ">= 1.15"
|
42
43
|
s.add_dependency "ffi-yajl", "~> 2.2"
|
43
44
|
s.add_dependency "net-ssh", ">= 5.1", "< 7"
|
44
45
|
s.add_dependency "net-ssh-multi", "~> 1.2", ">= 1.2.1"
|
data/lib/chef/mixin/checksum.rb
CHANGED
@@ -15,8 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
|
19
|
-
require_relative "../pwsh"
|
18
|
+
# Powershell is being run using chef-powershell gem. The code resides at https://github.com/chef/chef-powershell-shim
|
20
19
|
|
21
20
|
# The powershell_exec mixin provides in-process access to the PowerShell engine.
|
22
21
|
#
|
@@ -95,33 +94,15 @@ require_relative "../pwsh"
|
|
95
94
|
# credentials of the user running Chef Client are used.
|
96
95
|
#
|
97
96
|
|
97
|
+
if ChefUtils.windows?
|
98
|
+
require "chef-powershell"
|
99
|
+
end
|
100
|
+
|
98
101
|
class Chef
|
99
102
|
module Mixin
|
100
103
|
module PowershellExec
|
101
|
-
|
102
|
-
|
103
|
-
# Requires: .NET Framework 4.0 or higher on the target machine.
|
104
|
-
#
|
105
|
-
# @param script [String] script to run
|
106
|
-
# @param interpreter [Symbol] the interpreter type, `:powershell` or `:pwsh`
|
107
|
-
# @return [Chef::PowerShell] output
|
108
|
-
def powershell_exec(script, interpreter = :powershell)
|
109
|
-
case interpreter
|
110
|
-
when :powershell
|
111
|
-
Chef::PowerShell.new(script)
|
112
|
-
when :pwsh
|
113
|
-
Chef::Pwsh.new(script)
|
114
|
-
else
|
115
|
-
raise ArgumentError, "Expected interpreter of :powershell or :pwsh"
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
# The same as the #powershell_exec method except this will raise
|
120
|
-
# Chef::PowerShell::CommandFailed if the command fails
|
121
|
-
def powershell_exec!(script, interpreter = :powershell)
|
122
|
-
cmd = powershell_exec(script, interpreter)
|
123
|
-
cmd.error!
|
124
|
-
cmd
|
104
|
+
if ChefUtils.windows?
|
105
|
+
include ChefPowerShell::ChefPowerShellModule::PowerShellExec
|
125
106
|
end
|
126
107
|
end
|
127
108
|
end
|
@@ -58,8 +58,8 @@ class Chef
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def dsc_refresh_mode_disabled?(node)
|
61
|
-
|
62
|
-
exec =
|
61
|
+
require "chef-powershell"
|
62
|
+
exec = ChefPowerShell::PowerShell.new("Get-DscLocalConfigurationManager")
|
63
63
|
exec.error!
|
64
64
|
exec.result["RefreshMode"] == "Disabled"
|
65
65
|
end
|
data/lib/chef/provider/cron.rb
CHANGED
@@ -88,7 +88,11 @@ class Chef
|
|
88
88
|
|
89
89
|
def cron_different?
|
90
90
|
CRON_ATTRIBUTES.any? do |cron_var|
|
91
|
-
new_resource.send(cron_var)
|
91
|
+
if new_resource.send(cron_var).class == current_resource.send(cron_var).class
|
92
|
+
new_resource.send(cron_var) != current_resource.send(cron_var)
|
93
|
+
else
|
94
|
+
new_resource.send(cron_var).to_s != current_resource.send(cron_var).to_s
|
95
|
+
end
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
data/lib/chef/provider/file.rb
CHANGED
@@ -334,7 +334,7 @@ class Chef
|
|
334
334
|
end
|
335
335
|
|
336
336
|
def do_validate_content
|
337
|
-
if new_resource.checksum && tempfile && (
|
337
|
+
if new_resource.checksum && tempfile && !checksum_match?(new_resource.checksum, tempfile_checksum)
|
338
338
|
raise Chef::Exceptions::ChecksumMismatch.new(short_cksum(new_resource.checksum), short_cksum(tempfile_checksum))
|
339
339
|
end
|
340
340
|
|
@@ -448,7 +448,7 @@ class Chef
|
|
448
448
|
|
449
449
|
def contents_changed?
|
450
450
|
logger.trace "calculating checksum of #{tempfile.path} to compare with #{current_resource.checksum}"
|
451
|
-
tempfile_checksum
|
451
|
+
!checksum_match?(tempfile_checksum, current_resource.checksum)
|
452
452
|
end
|
453
453
|
|
454
454
|
def tempfile
|
@@ -38,7 +38,7 @@ class Chef
|
|
38
38
|
def define_resource_requirements
|
39
39
|
if new_resource.checksum
|
40
40
|
requirements.assert(:install) do |a|
|
41
|
-
a.assertion { new_resource.checksum
|
41
|
+
a.assertion { checksum_match?(new_resource.checksum, checksum(source_location)) }
|
42
42
|
a.failure_message Chef::Exceptions::Package, "Checksum on resource (#{short_cksum(new_resource.checksum)}) does not match checksum on content (#{short_cksum(source_location)})"
|
43
43
|
end
|
44
44
|
end
|
@@ -155,16 +155,6 @@ def query(command):
|
|
155
155
|
outpipe.write("%(n)s %(e)s:%(v)s-%(r)s %(a)s\n" % { 'n': pkg.name, 'e': pkg.epoch, 'v': pkg.version, 'r': pkg.release, 'a': pkg.arch })
|
156
156
|
outpipe.flush()
|
157
157
|
|
158
|
-
# Reset any repos we were passed in enablerepo/disablerepo to the original state in enabled_repos
|
159
|
-
if 'repos' in command:
|
160
|
-
for repo in command['repos']:
|
161
|
-
if 'enable' in repo:
|
162
|
-
if base.repos.getRepo(repo['enable']) not in enabled_repos:
|
163
|
-
base.repos.disableRepo(repo['enable'])
|
164
|
-
if 'disable' in repo:
|
165
|
-
if base.repos.getRepo(repo['disable']) in enabled_repos:
|
166
|
-
base.repos.enableRepo(repo['disable'])
|
167
|
-
|
168
158
|
# the design of this helper is that it should try to be 'brittle' and fail hard and exit in order
|
169
159
|
# to keep process tables clean. additional error handling should probably be added to the retry loop
|
170
160
|
# on the ruby side.
|
data/lib/chef/resource/locale.rb
CHANGED
@@ -115,7 +115,7 @@ class Chef
|
|
115
115
|
|
116
116
|
requirements.assert(:all_actions) do |a|
|
117
117
|
# RHEL/CentOS type platforms don't have locale-gen
|
118
|
-
a.assertion {
|
118
|
+
a.assertion { which("locale-gen") }
|
119
119
|
a.failure_message(Chef::Exceptions::ProviderNotFound, "The locale resource requires the locale-gen tool")
|
120
120
|
end
|
121
121
|
end
|
@@ -93,12 +93,17 @@ class Chef
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
+
package flush_package_cache_name do
|
97
|
+
action :nothing
|
98
|
+
end
|
99
|
+
|
96
100
|
execute "Register to RHSM" do
|
97
101
|
sensitive new_resource.sensitive
|
98
102
|
command register_command
|
99
103
|
default_env true
|
100
104
|
action :run
|
101
105
|
not_if { registered_with_rhsm? } unless new_resource.force
|
106
|
+
notifies :flush_cache, "package[#{flush_package_cache_name}]", :immediately
|
102
107
|
end
|
103
108
|
|
104
109
|
if new_resource.install_katello_agent && !new_resource.satellite_host.nil?
|
@@ -109,11 +114,16 @@ class Chef
|
|
109
114
|
action :unregister do
|
110
115
|
description "Unregister the node from RHSM."
|
111
116
|
|
117
|
+
package flush_package_cache_name do
|
118
|
+
action :nothing
|
119
|
+
end
|
120
|
+
|
112
121
|
execute "Unregister from RHSM" do
|
113
122
|
command "subscription-manager unregister"
|
114
123
|
default_env true
|
115
124
|
action :run
|
116
125
|
only_if { registered_with_rhsm? }
|
126
|
+
notifies :flush_cache, "package[#{flush_package_cache_name}]", :immediately
|
117
127
|
notifies :run, "execute[Clean RHSM Config]", :immediately
|
118
128
|
end
|
119
129
|
|
@@ -125,6 +135,13 @@ class Chef
|
|
125
135
|
end
|
126
136
|
|
127
137
|
action_class do
|
138
|
+
#
|
139
|
+
# @return [String]
|
140
|
+
#
|
141
|
+
def flush_package_cache_name
|
142
|
+
"rhsm_register-#{new_resource.name}-flush_cache"
|
143
|
+
end
|
144
|
+
|
128
145
|
#
|
129
146
|
# @return [Symbol] dnf_package or yum_package depending on OS release
|
130
147
|
#
|
@@ -24,7 +24,7 @@ class Chef
|
|
24
24
|
unified_mode true
|
25
25
|
|
26
26
|
provides :windows_user_privilege
|
27
|
-
description "The windows_user_privilege resource allows to add
|
27
|
+
description "The windows_user_privilege resource allows to add a privilege to a principal or (User/Group).\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
|
28
28
|
|
29
29
|
introduced "16.0"
|
30
30
|
|
@@ -39,23 +39,32 @@ class Chef
|
|
39
39
|
end
|
40
40
|
```
|
41
41
|
|
42
|
-
**
|
42
|
+
**Provide only the Builtin Guests and Administrator Groups with the SeCreatePageFile Privilege**:
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
windows_user_privilege 'Create Pagefile' do
|
46
|
+
privilege 'SeCreatePagefilePrivilege'
|
47
|
+
users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
|
48
|
+
action :set
|
49
|
+
end
|
50
|
+
```
|
51
|
+
|
52
|
+
**Add the SeDenyRemoteInteractiveLogonRight Privilege to the 'Remote interactive logon' principal**:
|
43
53
|
|
44
54
|
```ruby
|
45
55
|
windows_user_privilege 'Remote interactive logon' do
|
46
56
|
privilege 'SeDenyRemoteInteractiveLogonRight'
|
47
|
-
users ['Builtin\\Guests', 'NT AUTHORITY\\Local Account']
|
48
57
|
action :add
|
49
58
|
end
|
50
59
|
```
|
51
60
|
|
52
|
-
**
|
61
|
+
**Add to the Builtin Guests Group the SeCreatePageFile Privilege**:
|
53
62
|
|
54
63
|
```ruby
|
55
|
-
windows_user_privilege 'Create Pagefile' do
|
64
|
+
windows_user_privilege 'Guests add Create Pagefile' do
|
65
|
+
principal 'BUILTIN\\Guests'
|
56
66
|
privilege 'SeCreatePagefilePrivilege'
|
57
|
-
|
58
|
-
action :set
|
67
|
+
action :add
|
59
68
|
end
|
60
69
|
```
|
61
70
|
|
@@ -90,6 +99,7 @@ class Chef
|
|
90
99
|
SeCreateSymbolicLinkPrivilege
|
91
100
|
SeCreateTokenPrivilege
|
92
101
|
SeDebugPrivilege
|
102
|
+
SeDelegateSessionUserImpersonatePrivilege
|
93
103
|
SeDenyBatchLogonRight
|
94
104
|
SeDenyInteractiveLogonRight
|
95
105
|
SeDenyNetworkLogonRight
|
@@ -126,20 +136,20 @@ class Chef
|
|
126
136
|
}.freeze
|
127
137
|
|
128
138
|
property :principal, String,
|
129
|
-
|
130
|
-
|
139
|
+
description: "An optional property to add the privilege for given principal. Use only with add and remove action. Principal can either be a User/Group or one of special identities found here Ref: https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/special-identities",
|
140
|
+
name_property: true
|
131
141
|
|
132
142
|
property :users, [Array, String],
|
133
|
-
|
134
|
-
|
143
|
+
description: "An optional property to set the privilege for given users. Use only with set action.",
|
144
|
+
coerce: proc { |v| Array(v) }
|
135
145
|
|
136
146
|
property :privilege, [Array, String],
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
147
|
+
description: "One or more privileges to set for principal or users/groups. For more information on what each privilege does Ref: https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment",
|
148
|
+
required: true,
|
149
|
+
coerce: proc { |v| Array(v) },
|
150
|
+
callbacks: {
|
151
|
+
"Privilege property restricted to the following values: #{PRIVILEGE_OPTS}" => lambda { |n| (n - PRIVILEGE_OPTS).empty? },
|
152
|
+
}, identity: true
|
143
153
|
|
144
154
|
load_current_value do |new_resource|
|
145
155
|
if new_resource.principal && (new_resource.action.include?(:add) || new_resource.action.include?(:remove))
|
@@ -147,15 +157,15 @@ class Chef
|
|
147
157
|
end
|
148
158
|
end
|
149
159
|
|
150
|
-
action :add do
|
151
|
-
([*new_resource.privilege] - [*current_resource.privilege]).each do |
|
152
|
-
converge_by("adding
|
153
|
-
Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal,
|
160
|
+
action :add, description: "Add a privileges to a principal." do
|
161
|
+
([*new_resource.privilege] - [*current_resource.privilege]).each do |principal_right|
|
162
|
+
converge_by("adding principal '#{new_resource.principal}' privilege #{principal_right}") do
|
163
|
+
Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal, principal_right)
|
154
164
|
end
|
155
165
|
end
|
156
166
|
end
|
157
167
|
|
158
|
-
action :set do
|
168
|
+
action :set, description: "Set the privileges that are listed in the `privilege` property for only the users listed in the `users` property. All other users not listed with given privilege will be have the privilege removed." do
|
159
169
|
if new_resource.users.nil? || new_resource.users.empty?
|
160
170
|
raise Chef::Exceptions::ValidationFailed, "Users are required property with set action."
|
161
171
|
end
|
@@ -190,7 +200,7 @@ class Chef
|
|
190
200
|
end
|
191
201
|
end
|
192
202
|
|
193
|
-
action :clear do
|
203
|
+
action :clear, description: "Clear all user privileges" do
|
194
204
|
new_resource.privilege.each do |privilege|
|
195
205
|
accounts = Chef::ReservedNames::Win32::Security.get_account_with_user_rights(privilege)
|
196
206
|
|
@@ -204,7 +214,7 @@ class Chef
|
|
204
214
|
end
|
205
215
|
end
|
206
216
|
|
207
|
-
action :remove do
|
217
|
+
action :remove, description: "Remove a principal privilege" do
|
208
218
|
curr_res_privilege = current_resource.privilege
|
209
219
|
missing_res_privileges = (new_resource.privilege - curr_res_privilege)
|
210
220
|
|
@@ -212,9 +222,9 @@ class Chef
|
|
212
222
|
Chef::Log.info("User \'#{new_resource.principal}\' for Privilege: #{missing_res_privileges.join(", ")} not found. Nothing to remove.")
|
213
223
|
end
|
214
224
|
|
215
|
-
(new_resource.privilege - missing_res_privileges).each do |
|
216
|
-
converge_by("removing
|
217
|
-
Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal,
|
225
|
+
(new_resource.privilege - missing_res_privileges).each do |principal_right|
|
226
|
+
converge_by("removing principal #{new_resource.principal} from privilege #{principal_right}") do
|
227
|
+
Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal, principal_right)
|
218
228
|
end
|
219
229
|
end
|
220
230
|
end
|
data/lib/chef/version.rb
CHANGED
data/lib/chef/win32/version.rb
CHANGED
@@ -51,7 +51,8 @@ class Chef
|
|
51
51
|
WIN_VERSIONS = {
|
52
52
|
"Windows Server 2022" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number >= 20348 } },
|
53
53
|
"Windows Server 2019" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number >= 17763 && build_number < 20348 } },
|
54
|
-
"Windows
|
54
|
+
"Windows 11" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type == VER_NT_WORKSTATION && build_number >= 22000 } },
|
55
|
+
"Windows 10" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type == VER_NT_WORKSTATION && build_number >= 19044 && build_number < 22000 } },
|
55
56
|
"Windows Server 2016" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type != VER_NT_WORKSTATION && build_number <= 14393 } },
|
56
57
|
"Windows 8.1" => { major: 6, minor: 3, callable: lambda { |product_type, suite_mask, build_number| product_type == VER_NT_WORKSTATION } },
|
57
58
|
"Windows Server 2012 R2" => { major: 6, minor: 3, callable: lambda { |product_type, suite_mask, build_number| product_type != VER_NT_WORKSTATION } },
|
Binary file
|
Binary file
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
|
3
|
+
<revision>1667508211</revision>
|
4
|
+
<data type="filelists">
|
5
|
+
<checksum type="sha256">401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93</checksum>
|
6
|
+
<open-checksum type="sha256">bf9808b81cb2dbc54b4b8e35adc584ddcaa73bd81f7088d73bf7dbbada961310</open-checksum>
|
7
|
+
<location href="repodata/401dc-filelists.xml.gz"/>
|
8
|
+
<timestamp>1667508211</timestamp>
|
9
|
+
<size>123</size>
|
10
|
+
<open-size>125</open-size>
|
11
|
+
</data>
|
12
|
+
<data type="primary">
|
13
|
+
<checksum type="sha256">dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9</checksum>
|
14
|
+
<open-checksum type="sha256">e1e2ffd2fb1ee76f87b70750d00ca5677a252b397ab6c2389137a0c33e7b359f</open-checksum>
|
15
|
+
<location href="repodata/dabe2-primary.xml.gz"/>
|
16
|
+
<timestamp>1667508211</timestamp>
|
17
|
+
<size>134</size>
|
18
|
+
<open-size>167</open-size>
|
19
|
+
</data>
|
20
|
+
<data type="primary_db">
|
21
|
+
<checksum type="sha256">5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945</checksum>
|
22
|
+
<open-checksum type="sha256">f0d550414e8f2e960e82e704549364299ca9e3e8664ad4faffd208262c3b6d12</open-checksum>
|
23
|
+
<location href="repodata/5dc1e-primary.sqlite.bz2"/>
|
24
|
+
<timestamp>1667508211</timestamp>
|
25
|
+
<database_version>10</database_version>
|
26
|
+
<size>1131</size>
|
27
|
+
<open-size>21504</open-size>
|
28
|
+
</data>
|
29
|
+
<data type="other_db">
|
30
|
+
<checksum type="sha256">7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4</checksum>
|
31
|
+
<open-checksum type="sha256">4de0fe7c5dd2674849a7c63c326e42f33af0a0f46219bc6dd59f51dfa2ac8c68</open-checksum>
|
32
|
+
<location href="repodata/7c365-other.sqlite.bz2"/>
|
33
|
+
<timestamp>1667508211</timestamp>
|
34
|
+
<database_version>10</database_version>
|
35
|
+
<size>575</size>
|
36
|
+
<open-size>6144</open-size>
|
37
|
+
</data>
|
38
|
+
<data type="other">
|
39
|
+
<checksum type="sha256">6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670</checksum>
|
40
|
+
<open-checksum type="sha256">e0ed5e0054194df036cf09c1a911e15bf2a4e7f26f2a788b6f47d53e80717ccc</open-checksum>
|
41
|
+
<location href="repodata/6bf96-other.xml.gz"/>
|
42
|
+
<timestamp>1667508211</timestamp>
|
43
|
+
<size>123</size>
|
44
|
+
<open-size>121</open-size>
|
45
|
+
</data>
|
46
|
+
<data type="filelists_db">
|
47
|
+
<checksum type="sha256">01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523</checksum>
|
48
|
+
<open-checksum type="sha256">c4211f57bdcbb142c9f93a6d32401539f775eb6a670ab7a423e13f435ce94689</open-checksum>
|
49
|
+
<location href="repodata/01a3b-filelists.sqlite.bz2"/>
|
50
|
+
<timestamp>1667508211</timestamp>
|
51
|
+
<database_version>10</database_version>
|
52
|
+
<size>586</size>
|
53
|
+
<open-size>7168</open-size>
|
54
|
+
</data>
|
55
|
+
</repomd>
|
@@ -263,7 +263,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only, :ruby64_only d
|
|
263
263
|
dsc_test_resource.cwd(dsc_environment_fail_etc_directory)
|
264
264
|
expect {
|
265
265
|
dsc_test_resource.run_action(:run)
|
266
|
-
}.to raise_error(
|
266
|
+
}.to raise_error(ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed, /#{exception_message_signature}/)
|
267
267
|
end
|
268
268
|
end
|
269
269
|
end
|
@@ -18,7 +18,8 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
|
-
|
21
|
+
# these tests hang on Buildkite on Chef 16 Verify pipeline
|
22
|
+
describe Chef::Resource::WindowsFont, :windows_only, :broken do
|
22
23
|
let(:resource_name) { "Playmaker.ttf" }
|
23
24
|
let(:resource_source) { "https://www.wfonts.com/download/data/2020/05/06/playmaker/Playmaker.ttf" }
|
24
25
|
|
@@ -50,6 +50,12 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
50
50
|
baseurl=file://#{CHEF_SPEC_ASSETS}/yumrepo
|
51
51
|
enable=1
|
52
52
|
gpgcheck=0
|
53
|
+
[chef-yum-empty]
|
54
|
+
name=Chef DNF spec empty repo
|
55
|
+
baseurl=file://#{CHEF_SPEC_ASSETS}/yumrepo-empty
|
56
|
+
enable=1
|
57
|
+
gpgcheck=0
|
58
|
+
|
53
59
|
EOF
|
54
60
|
end
|
55
61
|
shell_out!("rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | grep chef_rpm | xargs -r rpm -e")
|
@@ -633,6 +639,12 @@ describe Chef::Resource::YumPackage, :requires_root, external: exclude_test do
|
|
633
639
|
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^chef_rpm-1.10-1.#{pkg_arch}$")
|
634
640
|
end
|
635
641
|
|
642
|
+
it "should work to disable a repo" do
|
643
|
+
flush_cache
|
644
|
+
yum_package.options("--disablerepo=chef-yum-localtesting --enablerepo=chef-yum-empty")
|
645
|
+
expect { yum_package.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /No candidate version available/)
|
646
|
+
end
|
647
|
+
|
636
648
|
it "when an idempotent install action is run, does not leave repos disabled" do
|
637
649
|
flush_cache
|
638
650
|
# this is a bit tricky -- we need this action to be idempotent, so that it doesn't recycle any
|
@@ -80,6 +80,11 @@ describe Shell do
|
|
80
80
|
# so hide the require here
|
81
81
|
|
82
82
|
require "pty"
|
83
|
+
|
84
|
+
# FIXME this is temporary... Solaris envs have TERM set to unknown
|
85
|
+
# and the value isn't propagating from the build environment TERM
|
86
|
+
# variable
|
87
|
+
ENV["TERM"] = "vt100" if ["", "unknown"].include?(ENV["TERM"].to_s)
|
83
88
|
config = File.expand_path("shef-config.rb", CHEF_SPEC_DATA)
|
84
89
|
reader, writer, pid = PTY.spawn("bundle exec chef-shell --no-multiline --no-singleline --no-colorize -c #{config} #{options}")
|
85
90
|
read_until(reader, "chef (#{Chef::VERSION})>")
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "chef-client fips" do
|
4
|
+
def enable_fips
|
5
|
+
OpenSSL.fips_mode = true
|
6
|
+
end
|
7
|
+
|
8
|
+
# All tests assume fips mode is off at present
|
9
|
+
after { OpenSSL.fips_mode = false }
|
10
|
+
|
11
|
+
# For non-FIPS OSes/builds of Ruby, enabling FIPS should error
|
12
|
+
example "Error enabling fips_mode if FIPS not linked", fips_mode: false do
|
13
|
+
expect { enable_fips }.to raise_error(OpenSSL::OpenSSLError)
|
14
|
+
end
|
15
|
+
|
16
|
+
# For FIPS OSes/builds of Ruby, enabling FIPS should not error
|
17
|
+
example "Do not error enabling fips_mode if FIPS linked", fips_mode: true do
|
18
|
+
expect { enable_fips }.not_to raise_error
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -139,6 +139,10 @@ RSpec.configure do |config|
|
|
139
139
|
|
140
140
|
config.filter_run_excluding skip_buildkite: true if ENV["BUILDKITE"]
|
141
141
|
|
142
|
+
config.filter_run_excluding fips_mode: !fips_mode_build? unless opensuse?
|
143
|
+
# RubyDistros OpenSUSE docker images have a broken fips
|
144
|
+
config.filter_run_excluding :fips_mode if opensuse?
|
145
|
+
|
142
146
|
config.filter_run_excluding windows_only: true unless windows?
|
143
147
|
config.filter_run_excluding not_supported_on_windows: true if windows?
|
144
148
|
config.filter_run_excluding not_supported_on_macos: true if macos?
|
data/spec/unit/daemon_spec.rb
CHANGED
@@ -170,11 +170,7 @@ describe Chef::Daemon do
|
|
170
170
|
|
171
171
|
it "should log an appropriate error message and fail miserably" do
|
172
172
|
allow(Process).to receive(:initgroups).and_raise(Errno::EPERM)
|
173
|
-
|
174
|
-
if RUBY_PLATFORM.match("solaris2") || RUBY_PLATFORM.match("aix")
|
175
|
-
error = "Not owner"
|
176
|
-
end
|
177
|
-
expect(Chef::Application).to receive(:fatal!).with("Permission denied when trying to change 999:999 to 501:20. #{error}")
|
173
|
+
expect(Chef::Application).to receive(:fatal!).with(/Permission denied when trying to change 999:999 to 501:20/)
|
178
174
|
Chef::Daemon._change_privilege(testuser)
|
179
175
|
end
|
180
176
|
end
|
@@ -51,4 +51,32 @@ describe Chef::Mixin::Checksum do
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
describe "checksum_match?" do
|
55
|
+
context "when checksum cases match" do
|
56
|
+
it "returns true" do
|
57
|
+
expect(@checksum_user.checksum_match?("u7ghbxikk3i9blsimmy2y2ionmxx", "u7ghbxikk3i9blsimmy2y2ionmxx")).to be true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when one checksum is uppercase and other is lowercase" do
|
62
|
+
it "returns true" do
|
63
|
+
expect(@checksum_user.checksum_match?("U7GHBXIKK3I9BLSIMMY2Y2IONMXX", "u7ghbxikk3i9blsimmy2y2ionmxx")).to be true
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when checksums do not match" do
|
68
|
+
it "returns false" do
|
69
|
+
expect(@checksum_user.checksum_match?("u7ghbxikk3i9blsimmy2y2ionmxx", "09ee9c8cc70501763563bcf9c218")).to be false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when checksum is nil" do
|
74
|
+
it "returns false" do
|
75
|
+
expect(@checksum_user.checksum_match?("u7ghbxikk3i9blsimmy2y2ionmxx", nil)).to be false
|
76
|
+
expect(@checksum_user.checksum_match?(nil, "09ee9c8cc70501763563bcf9c218")).to be false
|
77
|
+
expect(@checksum_user.checksum_match?(nil, nil)).to be false
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
54
82
|
end
|
@@ -25,8 +25,8 @@ describe Chef::Mixin::PowershellExec, :windows_only do
|
|
25
25
|
|
26
26
|
describe "#powershell_exec" do
|
27
27
|
context "not specifying an interpreter" do
|
28
|
-
it "runs a basic command and returns a
|
29
|
-
expect(object.powershell_exec("$PSVersionTable")).to be_kind_of(
|
28
|
+
it "runs a basic command and returns a ChefPowerShell::PowerShell object" do
|
29
|
+
expect(object.powershell_exec("$PSVersionTable")).to be_kind_of(ChefPowerShell::PowerShell)
|
30
30
|
end
|
31
31
|
|
32
32
|
it "uses less than version 6" do
|
@@ -36,8 +36,8 @@ describe Chef::Mixin::PowershellExec, :windows_only do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
context "using pwsh interpreter" do
|
39
|
-
it "runs a basic command and returns a
|
40
|
-
expect(object.powershell_exec("$PSVersionTable", :pwsh)).to be_kind_of(
|
39
|
+
it "runs a basic command and returns a ChefPowerShell::Pwsh object" do
|
40
|
+
expect(object.powershell_exec("$PSVersionTable", :pwsh)).to be_kind_of(ChefPowerShell::Pwsh)
|
41
41
|
end
|
42
42
|
|
43
43
|
it "uses greater than version 6" do
|
@@ -47,8 +47,8 @@ describe Chef::Mixin::PowershellExec, :windows_only do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
context "using powershell interpreter" do
|
50
|
-
it "runs a basic command and returns a
|
51
|
-
expect(object.powershell_exec("$PSVersionTable", :powershell)).to be_kind_of(
|
50
|
+
it "runs a basic command and returns a ChefPowerShell::PowerShell object" do
|
51
|
+
expect(object.powershell_exec("$PSVersionTable", :powershell)).to be_kind_of(ChefPowerShell::PowerShell)
|
52
52
|
end
|
53
53
|
|
54
54
|
it "uses less than version 6" do
|
@@ -75,12 +75,12 @@ describe Chef::Mixin::PowershellExec, :windows_only do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
describe "#powershell_exec!" do
|
78
|
-
it "runs a basic command and returns a
|
79
|
-
expect(object.powershell_exec!("$PSVersionTable")).to be_kind_of(
|
78
|
+
it "runs a basic command and returns a ChefPowerShell::PowerShell object" do
|
79
|
+
expect(object.powershell_exec!("$PSVersionTable")).to be_kind_of(ChefPowerShell::PowerShell)
|
80
80
|
end
|
81
81
|
|
82
82
|
it "raises an error if the command fails" do
|
83
|
-
expect { object.powershell_exec!("this-should-error") }.to raise_error(
|
83
|
+
expect { object.powershell_exec!("this-should-error") }.to raise_error(ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed)
|
84
84
|
end
|
85
85
|
|
86
86
|
it "raises an error if the interpreter is invalid" do
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
|
-
describe "Chef::Platform#supports_dsc_invoke_resource?" do
|
21
|
+
describe "Chef::Platform#supports_dsc_invoke_resource?", :windows_only do
|
22
22
|
it "returns false if powershell is not present" do
|
23
23
|
node = Chef::Node.new
|
24
24
|
expect(Chef::Platform.supports_dsc_invoke_resource?(node)).to be_falsey
|
@@ -39,12 +39,12 @@ describe "Chef::Platform#supports_dsc_invoke_resource?" do
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
describe "Chef::Platform#dsc_refresh_mode_disabled?" do
|
42
|
+
describe "Chef::Platform#dsc_refresh_mode_disabled?", :windows_only do
|
43
43
|
let(:node) { instance_double("Chef::Node") }
|
44
|
-
let(:powershell) { instance_double("
|
44
|
+
let(:powershell) { instance_double("ChefPowerShell::PowerShell") }
|
45
45
|
|
46
46
|
it "returns true when RefreshMode is Disabled" do
|
47
|
-
expect(
|
47
|
+
expect(ChefPowerShell::PowerShell).to receive(:new)
|
48
48
|
.with("Get-DscLocalConfigurationManager")
|
49
49
|
.and_return(powershell)
|
50
50
|
expect(powershell).to receive(:error!)
|
@@ -53,7 +53,7 @@ describe "Chef::Platform#dsc_refresh_mode_disabled?" do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
it "returns false when RefreshMode is not Disabled" do
|
56
|
-
expect(
|
56
|
+
expect(ChefPowerShell::PowerShell).to receive(:new)
|
57
57
|
.with("Get-DscLocalConfigurationManager")
|
58
58
|
.and_return(powershell)
|
59
59
|
expect(powershell).to receive(:error!)
|
@@ -724,6 +724,40 @@ describe Chef::Provider::Cron do
|
|
724
724
|
end
|
725
725
|
end
|
726
726
|
|
727
|
+
context "when integers are provided to the resource to express time values" do
|
728
|
+
it "should not report any difference" do
|
729
|
+
@new_resource.minute(1)
|
730
|
+
@new_resource.hour(1)
|
731
|
+
@new_resource.day(1)
|
732
|
+
@new_resource.month(1)
|
733
|
+
@new_resource.weekday(1)
|
734
|
+
allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
|
735
|
+
# Chef Name: cronhole some stuff
|
736
|
+
1 1 1 1 1 /bin/true
|
737
|
+
CRONTAB
|
738
|
+
|
739
|
+
@provider.run_action(:create)
|
740
|
+
expect(@new_resource).not_to be_updated_by_last_action
|
741
|
+
end
|
742
|
+
end
|
743
|
+
|
744
|
+
context "when strings are provided to the resource to express time values" do
|
745
|
+
it "should not report any difference" do
|
746
|
+
@new_resource.minute("1")
|
747
|
+
@new_resource.hour("1")
|
748
|
+
@new_resource.day("1")
|
749
|
+
@new_resource.month("1")
|
750
|
+
@new_resource.weekday("1")
|
751
|
+
allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
|
752
|
+
# Chef Name: cronhole some stuff
|
753
|
+
1 1 1 1 1 /bin/true
|
754
|
+
CRONTAB
|
755
|
+
|
756
|
+
@provider.run_action(:create)
|
757
|
+
expect(@new_resource).not_to be_updated_by_last_action
|
758
|
+
end
|
759
|
+
end
|
760
|
+
|
727
761
|
context "when environment variable is used" do
|
728
762
|
before :each do
|
729
763
|
@provider.cron_exists = true
|
@@ -50,7 +50,7 @@ describe Chef::Util::DSC::LocalConfigurationManager do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
let(:powershell) do
|
53
|
-
double("
|
53
|
+
double("ChefPowerShell::PowerShell", errors: lcm_errors, error?: !lcm_errors.empty?, result: lcm_result)
|
54
54
|
end
|
55
55
|
|
56
56
|
describe "test_configuration method invocation" do
|
@@ -185,7 +185,7 @@ describe Chef::Util::DSC::LocalConfigurationManager do
|
|
185
185
|
context "when invalid dsc script is given" do
|
186
186
|
it "raises exception" do
|
187
187
|
configuration_document = "invalid-config"
|
188
|
-
expect { lcm.send(:run_configuration_cmdlet, configuration_document, true) }.to raise_error(
|
188
|
+
expect { lcm.send(:run_configuration_cmdlet, configuration_document, true) }.to raise_error(ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed)
|
189
189
|
end
|
190
190
|
end
|
191
191
|
end
|
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: 16.18.
|
4
|
+
version: 16.18.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,48 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 16.18.
|
19
|
+
version: 16.18.30
|
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: 16.18.
|
26
|
+
version: 16.18.30
|
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: 16.18.
|
33
|
+
version: 16.18.30
|
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: 16.18.
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: train-core
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '3.2'
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 3.2.28
|
51
|
-
type: :runtime
|
52
|
-
prerelease: false
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
55
|
-
- - "~>"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '3.2'
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 3.2.28
|
40
|
+
version: 16.18.30
|
61
41
|
- !ruby/object:Gem::Dependency
|
62
42
|
name: train-winrm
|
63
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +206,14 @@ dependencies:
|
|
226
206
|
requirements:
|
227
207
|
- - ">="
|
228
208
|
- !ruby/object:Gem::Version
|
229
|
-
version: 1.
|
209
|
+
version: '1.15'
|
230
210
|
type: :runtime
|
231
211
|
prerelease: false
|
232
212
|
version_requirements: !ruby/object:Gem::Requirement
|
233
213
|
requirements:
|
234
214
|
- - ">="
|
235
215
|
- !ruby/object:Gem::Version
|
236
|
-
version: 1.
|
216
|
+
version: '1.15'
|
237
217
|
- !ruby/object:Gem::Dependency
|
238
218
|
name: ffi-yajl
|
239
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1907,6 +1887,13 @@ files:
|
|
1907
1887
|
- spec/functional/assets/mytest-1.0-1.noarch.rpm
|
1908
1888
|
- spec/functional/assets/mytest-2.0-1.noarch.rpm
|
1909
1889
|
- spec/functional/assets/testchefsubsys
|
1890
|
+
- spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2
|
1891
|
+
- spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz
|
1892
|
+
- spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2
|
1893
|
+
- spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz
|
1894
|
+
- spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2
|
1895
|
+
- spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz
|
1896
|
+
- spec/functional/assets/yumrepo-empty/repodata/repomd.xml
|
1910
1897
|
- spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm
|
1911
1898
|
- spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm
|
1912
1899
|
- spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm
|
@@ -1921,12 +1908,6 @@ files:
|
|
1921
1908
|
- spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm
|
1922
1909
|
- spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm
|
1923
1910
|
- spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm
|
1924
|
-
- spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2
|
1925
|
-
- spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz
|
1926
|
-
- spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2
|
1927
|
-
- spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2
|
1928
|
-
- spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz
|
1929
|
-
- spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz
|
1930
1911
|
- spec/functional/assets/yumrepo/repodata/filelists.xml.gz
|
1931
1912
|
- spec/functional/assets/yumrepo/repodata/other.xml.gz
|
1932
1913
|
- spec/functional/assets/yumrepo/repodata/primary.xml.gz
|
@@ -2030,6 +2011,7 @@ files:
|
|
2030
2011
|
- spec/functional/win32/versions_spec.rb
|
2031
2012
|
- spec/integration/client/client_spec.rb
|
2032
2013
|
- spec/integration/client/exit_code_spec.rb
|
2014
|
+
- spec/integration/client/fips_spec.rb
|
2033
2015
|
- spec/integration/client/ipv6_spec.rb
|
2034
2016
|
- spec/integration/compliance/compliance_spec.rb
|
2035
2017
|
- spec/integration/knife/chef_fs_data_store_spec.rb
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|