chef 18.0.169-x64-mingw-ucrt → 18.0.185-x64-mingw-ucrt

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9266dcbd5ec629da3d181bc59d6d8c4dd85164d139c536c7c3a8531dc74c36e
4
- data.tar.gz: 659f34c3aaacfbcd9436a0a518ac396dc0fbe05856ea91c2de980db15f1b53e7
3
+ metadata.gz: 7c1122c2620c6af08992ae09d67f314ac5b96734570a645e2f9cd8884f2dd377
4
+ data.tar.gz: 20bc9d8e1ee79d6eb62643889f4eb03bacdc9da1bac21d3f80df2da1687a887e
5
5
  SHA512:
6
- metadata.gz: 50db8bf3f025d8a18f87fb96157d82abfc4aac1418873aff75baaac1c0881c4ca72aae40060f43e0b078eceb4188602e8b72ae0d417fcb46c4a0aa5e708a0399
7
- data.tar.gz: 0b4b59b458ff073c96cb73cc777b870e2ce448750d53ddf971e2f5626212e9437bb3c87a83d1d07b6f8046752764eb5ebe5b4282d0524bea4cc3ee159637d90f
6
+ metadata.gz: 3afda04ca448d98ff93d09766628ce5482a8cefda00b1f08c86b46f5049e8d332e89dae62ac32226bf141ab27aac4491214dd855f65c96dcfb9b7493e93c96f4
7
+ data.tar.gz: 1081a2c6449d32ff1f922aeacdb25e1cfecd71d1b47491f626e8db533d9c29a64a06f8833f30ba82f4c606397061dd1392e994241e836b2e84c38a3f15edb59c
data/chef.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
 
31
31
  s.add_dependency "chef-config", "= #{Chef::VERSION}"
32
32
  s.add_dependency "chef-utils", "= #{Chef::VERSION}"
33
- s.add_dependency "train-core", "~> 3.10", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
33
+ s.add_dependency "train-core", "~> 3.10" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
34
34
  s.add_dependency "train-winrm", ">= 0.2.5"
35
35
  s.add_dependency "train-rest", ">= 0.4.1" # target mode with rest APIs
36
36
 
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
 
46
46
  s.add_dependency "ffi", ">= 1.15.5"
47
47
  s.add_dependency "ffi-yajl", "~> 2.2"
48
- s.add_dependency "net-sftp", ">= 2.1.2", "< 4.0" # remote_file resource
48
+ s.add_dependency "net-sftp", ">= 2.1.2", "< 5.0" # remote_file resource
49
49
  s.add_dependency "net-ftp" # remote_file resource
50
50
  s.add_dependency "erubis", "~> 2.7" # template resource / cookbook syntax check
51
51
  s.add_dependency "diff-lcs", ">= 1.2.4", "!= 1.4.0", "< 1.6.0" # 1.4 breaks output. Used in lib/chef/util/diff
@@ -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
@@ -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
 
@@ -336,7 +336,7 @@ class Chef
336
336
  end
337
337
 
338
338
  def do_validate_content
339
- if new_resource.checksum && tempfile && ( new_resource.checksum != tempfile_checksum )
339
+ if new_resource.checksum && tempfile && !checksum_match?(new_resource.checksum, tempfile_checksum)
340
340
  raise Chef::Exceptions::ChecksumMismatch.new(short_cksum(new_resource.checksum), short_cksum(tempfile_checksum))
341
341
  end
342
342
 
@@ -450,7 +450,7 @@ class Chef
450
450
 
451
451
  def contents_changed?
452
452
  logger.trace "calculating checksum of #{tempfile.path} to compare with #{current_resource.checksum}"
453
- tempfile_checksum != current_resource.checksum
453
+ !checksum_match?(tempfile_checksum, current_resource.checksum)
454
454
  end
455
455
 
456
456
  def tempfile
@@ -66,7 +66,7 @@ class Chef
66
66
  if new_resource.source
67
67
  install_snap_from_source(names, new_resource.source)
68
68
  else
69
- install_snaps(names)
69
+ install_snaps(names, versions)
70
70
  end
71
71
  end
72
72
 
@@ -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
@@ -56,6 +56,8 @@ class Chef
56
56
 
57
57
  description "Use the **apt_package** resource to manage packages on Debian, Ubuntu, and other platforms that use the APT package system."
58
58
 
59
+ allowed_actions :install, :upgrade, :remove, :purge, :reconfig, :lock, :unlock
60
+
59
61
  property :default_release, String,
60
62
  description: "The default release. For example: `stable`.",
61
63
  desired_state: false
@@ -255,7 +255,7 @@ class Chef
255
255
  action :create, description: "Create a client.rb config file and folders for configuring #{ChefUtils::Dist::Infra::PRODUCT}." do
256
256
  [
257
257
  new_resource.config_directory,
258
- (::File.dirname(new_resource.log_location) unless new_resource.log_location.nil?),
258
+ (::File.dirname(new_resource.log_location) if new_resource.log_location.is_a?(String) && !%w{STDOUT STDERR}.include?(new_resource.log_location) && !new_resource.log_location.empty?),
259
259
  new_resource.file_backup_path,
260
260
  new_resource.file_cache_path,
261
261
  ::File.join(new_resource.config_directory, "client.d"),
@@ -265,7 +265,7 @@ class Chef
265
265
  directory dir_path do
266
266
  user new_resource.user unless new_resource.user.nil?
267
267
  group new_resource.group unless new_resource.group.nil?
268
- mode dir_path == ::File.dirname(new_resource.log_location) ? "0755" : "0750"
268
+ mode dir_path == ::File.dirname(new_resource.log_location.to_s) ? "0755" : "0750"
269
269
  recursive true
270
270
  end
271
271
  end
@@ -57,6 +57,8 @@ class Chef
57
57
  ```
58
58
  DOC
59
59
 
60
+ allowed_actions :install
61
+
60
62
  property :app, String,
61
63
  description: "The name of the application as it appears in the `/Volumes` directory if it differs from the resource block's name.",
62
64
  name_property: true
@@ -30,6 +30,8 @@ class Chef
30
30
 
31
31
  description "Use the **freebsd_package** resource to manage packages for the FreeBSD platform."
32
32
 
33
+ allowed_actions :install, :remove
34
+
33
35
  # make sure we assign the appropriate underlying providers based on what
34
36
  # package managers exist on this FreeBSD system or the source of the package
35
37
  #
@@ -59,6 +59,8 @@ class Chef
59
59
  ```
60
60
  EXAMPLES
61
61
 
62
+ allowed_actions :install, :upgrade, :remove, :purge
63
+
62
64
  property :package_name, String,
63
65
  description: "An optional property to set the package name if it differs from the resource block's name.",
64
66
  identity: true
@@ -60,6 +60,8 @@ class Chef
60
60
  ```
61
61
  DOC
62
62
 
63
+ allowed_actions :install, :upgrade, :remove, :purge
64
+
63
65
  property :homebrew_user, [ String, Integer ],
64
66
  description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command.\n\n#{ChefUtils::Dist::Infra::PRODUCT}, by default, will attempt to execute a Homebrew command as the owner of the `/usr/local/bin/brew` executable. If that executable does not exist, #{ChefUtils::Dist::Infra::PRODUCT} will attempt to find the user by executing `which brew`. If that executable cannot be found, #{ChefUtils::Dist::Infra::PRODUCT} will print an error message: `Could not find the 'brew' executable in /usr/local/bin or anywhere on the path.`.\n\nSet this property to specify the Homebrew owner for situations where Chef Infra Client cannot automatically detect the correct owner.'"
65
67
 
@@ -25,6 +25,8 @@ class Chef
25
25
 
26
26
  description "Use the **macports_package** resource to manage packages for the macOS platform using the MacPorts package management system."
27
27
 
28
+ allowed_actions :install, :upgrade, :remove, :purge
29
+
28
30
  property :package_name, String,
29
31
  description: "An optional property to set the package name if it differs from the resource block's name.",
30
32
  identity: true
@@ -48,6 +48,8 @@ class Chef
48
48
  ```
49
49
  DOC
50
50
 
51
+ allowed_actions :install, :remove
52
+
51
53
  property :package_name, String,
52
54
  description: "An optional property to set the package name if it differs from the resource block's name.",
53
55
  identity: true
@@ -24,6 +24,8 @@ class Chef
24
24
 
25
25
  provides :pacman_package
26
26
 
27
+ allowed_actions :install, :upgrade, :remove, :purge
28
+
27
29
  description "Use the **pacman_package** resource to manage packages (using pacman) on the Arch Linux platform."
28
30
  end
29
31
  end
@@ -26,6 +26,8 @@ class Chef
26
26
 
27
27
  description "Use the **portage_package** resource to manage packages for the Gentoo platform."
28
28
 
29
+ allowed_actions :install, :upgrade, :remove, :purge
30
+
29
31
  property :package_name, String,
30
32
  description: "An optional property to set the package name if it differs from the resource block's name.",
31
33
  identity: true
@@ -24,6 +24,8 @@ class Chef
24
24
 
25
25
  provides :rpm_package
26
26
 
27
+ allowed_actions :install, :upgrade, :remove
28
+
27
29
  description "Use the **rpm_package** resource to manage packages using the RPM Package Manager."
28
30
 
29
31
  property :allow_downgrade, [ TrueClass, FalseClass ],
@@ -27,6 +27,8 @@ class Chef
27
27
 
28
28
  description "Use the **smartos_package** resource to manage packages for the SmartOS platform."
29
29
 
30
+ allowed_actions :install, :upgrade, :remove
31
+
30
32
  property :package_name, String,
31
33
  description: "An optional property to set the package name if it differs from the resource block's name.",
32
34
  identity: true
@@ -27,6 +27,8 @@ class Chef
27
27
  description "Use the **snap_package** resource to manage snap packages on Debian and Ubuntu platforms."
28
28
  introduced "15.0"
29
29
 
30
+ allowed_actions :install, :upgrade, :remove, :purge
31
+
30
32
  property :channel, String,
31
33
  description: "The default channel. For example: stable.",
32
34
  default: "stable",
@@ -27,6 +27,8 @@ class Chef
27
27
 
28
28
  description "Use the **solaris_package** resource to manage packages on the Solaris platform."
29
29
 
30
+ allowed_actions :install, :upgrade, :remove
31
+
30
32
  property :package_name, String,
31
33
  description: "An optional property to set the package name if it differs from the resource block's name.",
32
34
  identity: true
@@ -78,7 +78,7 @@ class Chef
78
78
  ```ruby
79
79
  windows_package '7zip' do
80
80
  source 'http://www.7-zip.org/a/7z938-x64.msi'
81
- checksum '7c8e873991c82ad9cfc123415254ea6101e9a645e12977dcd518979e50fdedf3'
81
+ checksum '7c8e873991c82ad9cfcdbdf45254ea6101e9a645e12977dcd518979e50fdedf3'
82
82
  end
83
83
  ```
84
84
 
@@ -91,7 +91,7 @@ class Chef
91
91
  source 'http://www.7-zip.org/a/7z938-x64.msi'
92
92
  remote_file_attributes ({
93
93
  :path => 'C:\\7zip.msi',
94
- :checksum => '7c8e873991c82ad9cfc123415254ea6101e9a645e12977dcd518979e50fdedf3'
94
+ :checksum => '7c8e873991c82ad9cfcdbdf45254ea6101e9a645e12977dcd518979e50fdedf3'
95
95
  })
96
96
  end
97
97
  ```
@@ -100,7 +100,7 @@ class Chef
100
100
 
101
101
  ```ruby
102
102
  windows_package 'Mercurial 3.6.1 (64-bit)' do
103
- source 'http://mercurial.selenic.com/release/windows/Mercurial-3.6.1-x64.exe'
103
+ source 'https://www.mercurial-scm.org/release/windows/Mercurial-3.6.1-x64.exe'
104
104
  checksum 'febd29578cb6736163d232708b834a2ddd119aa40abc536b2c313fc5e1b5831d'
105
105
  end
106
106
  ```
@@ -109,6 +109,8 @@ class Chef
109
109
  ```
110
110
  DOC
111
111
 
112
+ allowed_actions :install, :upgrade, :remove, :purge, :lock, :unlock
113
+
112
114
  # XXX: the coercions here are due to the provider promiscuously updating the properties on the
113
115
  # new_resource which causes immutable modification exceptions when passed an immutable node array.
114
116
  #
@@ -53,6 +53,8 @@ class Chef
53
53
  ```
54
54
  DOC
55
55
 
56
+ allowed_actions :install, :upgrade, :remove, :purge, :lock, :unlock
57
+
56
58
  property :gpg_check, [ TrueClass, FalseClass ],
57
59
  description: "Verify the package's GPG signature. Can also be controlled site-wide using the `zypper_check_gpg` config option.",
58
60
  default: lazy { Chef::Config[:zypper_check_gpg] }, default_description: "true"
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("18.0.169")
26
+ VERSION = Chef::VersionString.new("18.0.185")
27
27
  end
28
28
 
29
29
  #
@@ -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
@@ -769,6 +769,42 @@ describe Chef::Provider::Cron do
769
769
  end
770
770
  end
771
771
 
772
+ context "when integers are provided to the resource to express time values" do
773
+ it "should not report any difference" do
774
+ @new_resource.minute(1)
775
+ @new_resource.hour(1)
776
+ @new_resource.day(1)
777
+ @new_resource.month(1)
778
+ @new_resource.weekday(1)
779
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
780
+ # Chef Name: cronhole some stuff
781
+ 1 1 1 1 1 /bin/true
782
+
783
+ CRONTAB
784
+
785
+ @provider.run_action(:create)
786
+ expect(@new_resource).not_to be_updated_by_last_action
787
+ end
788
+ end
789
+
790
+ context "when strings are provided to the resource to express time values" do
791
+ it "should not report any difference" do
792
+ @new_resource.minute("1")
793
+ @new_resource.hour("1")
794
+ @new_resource.day("1")
795
+ @new_resource.month("1")
796
+ @new_resource.weekday("1")
797
+ allow(@provider).to receive(:read_crontab).and_return(<<~CRONTAB)
798
+ # Chef Name: cronhole some stuff
799
+ 1 1 1 1 1 /bin/true
800
+
801
+ CRONTAB
802
+
803
+ @provider.run_action(:create)
804
+ expect(@new_resource).not_to be_updated_by_last_action
805
+ end
806
+ end
807
+
772
808
  context "when environment variable is used" do
773
809
  before :each do
774
810
  @provider.cron_exists = true
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.0.169
4
+ version: 18.0.185
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-27 00:00:00.000000000 Z
11
+ date: 2022-11-15 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.0.169
19
+ version: 18.0.185
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.0.169
26
+ version: 18.0.185
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.0.169
33
+ version: 18.0.185
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.0.169
40
+ version: 18.0.185
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: train-core
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -45,9 +45,6 @@ dependencies:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.10'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 3.2.28
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
@@ -55,9 +52,6 @@ dependencies:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
54
  version: '3.10'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 3.2.28
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: train-winrm
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -271,7 +265,7 @@ dependencies:
271
265
  version: 2.1.2
272
266
  - - "<"
273
267
  - !ruby/object:Gem::Version
274
- version: '4.0'
268
+ version: '5.0'
275
269
  type: :runtime
276
270
  prerelease: false
277
271
  version_requirements: !ruby/object:Gem::Requirement
@@ -281,7 +275,7 @@ dependencies:
281
275
  version: 2.1.2
282
276
  - - "<"
283
277
  - !ruby/object:Gem::Version
284
- version: '4.0'
278
+ version: '5.0'
285
279
  - !ruby/object:Gem::Dependency
286
280
  name: net-ftp
287
281
  requirement: !ruby/object:Gem::Requirement