chef 16.18.0 → 16.18.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +11 -2
  3. data/chef-universal-mingw32.gemspec +1 -0
  4. data/chef.gemspec +3 -2
  5. data/lib/chef/mixin/checksum.rb +6 -0
  6. data/lib/chef/mixin/powershell_exec.rb +7 -26
  7. data/lib/chef/platform/query_helpers.rb +2 -2
  8. data/lib/chef/provider/cron.rb +5 -1
  9. data/lib/chef/provider/file.rb +2 -2
  10. data/lib/chef/provider/package/windows.rb +1 -1
  11. data/lib/chef/provider/package/yum/yum_helper.py +0 -10
  12. data/lib/chef/resource/locale.rb +1 -1
  13. data/lib/chef/resource/rhsm_register.rb +17 -0
  14. data/lib/chef/resource/windows_user_privilege.rb +37 -27
  15. data/lib/chef/version.rb +1 -1
  16. data/lib/chef/win32/version.rb +2 -1
  17. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  18. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  19. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  20. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  21. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  22. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  23. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +55 -0
  24. data/spec/functional/resource/dsc_script_spec.rb +1 -1
  25. data/spec/functional/resource/windows_font_spec.rb +2 -1
  26. data/spec/functional/resource/yum_package_spec.rb +12 -0
  27. data/spec/functional/shell_spec.rb +5 -0
  28. data/spec/integration/client/fips_spec.rb +21 -0
  29. data/spec/spec_helper.rb +4 -0
  30. data/spec/support/platform_helpers.rb +4 -0
  31. data/spec/unit/daemon_spec.rb +1 -5
  32. data/spec/unit/mixin/checksum_spec.rb +28 -0
  33. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  34. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  35. data/spec/unit/provider/cron_spec.rb +34 -0
  36. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  37. metadata +16 -34
  38. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  39. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  40. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  41. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  42. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  43. 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: a65b4755816a9d5a1920b8f73627c07a6fadb7bc0d1f1132507ac3f547f289c8
4
- data.tar.gz: 50671c4259fc3d44a1794ba13759bea7c317129615c027272b9905947cc238dd
3
+ metadata.gz: c6482b24a4eb52181a9743c685ad7cde514a5b55d90ef41aea9758f99e442886
4
+ data.tar.gz: e4a0fb750927ef05607baaec55f4760a14cadcd59e465950ec43cdf31c1cac94
5
5
  SHA512:
6
- metadata.gz: eaaeb74c2d30b9bd21c8e777dc696730570a2901e60507feb65953324cff90cc4e7f1fb182f77a6bfdb02a238e05a709b872777fbe5aed062030fa5d9133a67d
7
- data.tar.gz: 287087f0edecb64d7feeae4dddff412d26ec3579ad6e3eeaad33ab0a4b1e2d3d1b32eb9f31ac85f13e42e78e6c23f019e5f09dd34220ef92e90e31dd89d15817
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
- gem "pry-byebug" unless RUBY_PLATFORM =~ /freebsd/i
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"
@@ -31,6 +31,12 @@ class Chef
31
31
 
32
32
  checksum.slice(0, 6)
33
33
  end
34
+
35
+ def checksum_match?(ref_checksum, diff_checksum)
36
+ return false if ref_checksum.nil? || diff_checksum.nil?
37
+
38
+ ref_checksum.casecmp?(diff_checksum)
39
+ end
34
40
  end
35
41
  end
36
42
  end
@@ -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
- require_relative "../powershell"
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
- # Run a command under PowerShell via a managed (.NET) API.
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
- require_relative "../powershell"
62
- exec = Chef::PowerShell.new("Get-DscLocalConfigurationManager")
61
+ require "chef-powershell"
62
+ exec = ChefPowerShell::PowerShell.new("Get-DscLocalConfigurationManager")
63
63
  exec.error!
64
64
  exec.result["RefreshMode"] == "Disabled"
65
65
  end
@@ -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) != current_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
 
@@ -334,7 +334,7 @@ class Chef
334
334
  end
335
335
 
336
336
  def do_validate_content
337
- if new_resource.checksum && tempfile && ( new_resource.checksum != tempfile_checksum )
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 != current_resource.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 == checksum(source_location) }
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.
@@ -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 { shell_out("locale-gen") }
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 and set principal (User/Group) to the specified privilege.\n Ref: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment"
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
- **Add the SeDenyRemoteInteractiveLogonRight Privilege to the Builtin Guests and Local Accounts User Groups**:
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
- **Provide only the Builtin Guests and Administrator Groups with the SeCreatePageFile Privilege**:
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
- users ['BUILTIN\\Guests', 'BUILTIN\\Administrators']
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
- description: "An optional property to add the user to the given privilege. Use only with add and remove action.",
130
- name_property: true
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
- description: "An optional property to set the privilege for given users. Use only with set action.",
134
- coerce: proc { |v| Array(v) }
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
- description: "One or more privileges to set for users.",
138
- required: true,
139
- coerce: proc { |v| Array(v) },
140
- callbacks: {
141
- "Privilege property restricted to the following values: #{PRIVILEGE_OPTS}" => lambda { |n| (n - PRIVILEGE_OPTS).empty? },
142
- }, identity: true
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 |user_right|
152
- converge_by("adding user '#{new_resource.principal}' privilege #{user_right}") do
153
- Chef::ReservedNames::Win32::Security.add_account_right(new_resource.principal, user_right)
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 |user_right|
216
- converge_by("removing user #{new_resource.principal} from privilege #{user_right}") do
217
- Chef::ReservedNames::Win32::Security.remove_account_right(new_resource.principal, user_right)
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
@@ -23,7 +23,7 @@ require_relative "version_string"
23
23
 
24
24
  class Chef
25
25
  CHEF_ROOT = File.expand_path("..", __dir__)
26
- VERSION = Chef::VersionString.new("16.18.0")
26
+ VERSION = Chef::VersionString.new("16.18.30")
27
27
  end
28
28
 
29
29
  #
@@ -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 10" => { major: 10, minor: 0, callable: lambda { |product_type, suite_mask, build_number| product_type == VER_NT_WORKSTATION } },
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 } },
@@ -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(Chef::PowerShell::CommandFailed, /#{exception_message_signature}/)
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
- describe Chef::Resource::WindowsFont, :windows_only do
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?
@@ -226,6 +226,10 @@ def fips?
226
226
  ENV["CHEF_FIPS"] == "1"
227
227
  end
228
228
 
229
+ def fips_mode_build?
230
+ OpenSSL::OPENSSL_FIPS
231
+ end
232
+
229
233
  class HttpHelper
230
234
  extend Ohai::Mixin::HttpHelper
231
235
  def self.logger
@@ -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
- error = "Operation not permitted"
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 Chef::PowerShell object" do
29
- expect(object.powershell_exec("$PSVersionTable")).to be_kind_of(Chef::PowerShell)
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 Chef::PowerShell object" do
40
- expect(object.powershell_exec("$PSVersionTable", :pwsh)).to be_kind_of(Chef::Pwsh)
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 Chef::PowerShell object" do
51
- expect(object.powershell_exec("$PSVersionTable", :powershell)).to be_kind_of(Chef::PowerShell)
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 Chef::PowerShell object" do
79
- expect(object.powershell_exec!("$PSVersionTable")).to be_kind_of(Chef::PowerShell)
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(Chef::PowerShell::CommandFailed)
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("Chef::PowerShell") }
44
+ let(:powershell) { instance_double("ChefPowerShell::PowerShell") }
45
45
 
46
46
  it "returns true when RefreshMode is Disabled" do
47
- expect(Chef::PowerShell).to receive(:new)
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(Chef::PowerShell).to receive(:new)
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("Chef::PowerShell", errors: lcm_errors, error?: !lcm_errors.empty?, result: lcm_result)
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(Chef::PowerShell::CommandFailed)
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.0
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: 2022-04-28 00:00:00.000000000 Z
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.0
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.0
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.0
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.0
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.9.25
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.9.25
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