chef 15.11.8 → 15.12.22
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -3
- data/README.md +3 -3
- data/chef.gemspec +3 -3
- data/lib/chef/application/apply.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/deprecated.rb +8 -0
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +2 -0
- data/lib/chef/knife/bootstrap.rb +3 -6
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/provider/package/cab.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/msu.rb +1 -0
- data/lib/chef/provider/package/powershell.rb +5 -1
- data/lib/chef/provider/package/snap.rb +96 -27
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/cron_access.rb +11 -3
- data/lib/chef/resource/hostname.rb +2 -1
- data/lib/chef/resource/msu_package.rb +5 -0
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/msu_package_spec.rb +5 -2
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +2 -2
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/package/powershell_spec.rb +95 -86
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/zypper_repository_spec.rb +75 -25
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/msu_package_spec.rb +4 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- metadata +22 -16
@@ -169,7 +169,7 @@ describe Chef::Provider::Package::Snap do
|
|
169
169
|
|
170
170
|
it "does not throw an error if installed version not found" do
|
171
171
|
provider.load_current_resource
|
172
|
-
expect(provider.get_current_versions).to eq([
|
172
|
+
expect(provider.get_current_versions).to eq([])
|
173
173
|
end
|
174
174
|
end
|
175
175
|
end
|
@@ -18,22 +18,50 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
|
21
|
-
# Output of the command:
|
22
|
-
# => rpm -qa gpg-pubkey*
|
23
|
-
RPM_KEYS = <<~EOF.freeze
|
24
|
-
gpg-pubkey-307e3d54-4be01a65
|
25
|
-
gpg-pubkey-3dbdc284-53674dd4
|
26
|
-
EOF
|
27
|
-
|
28
|
-
# Output of the command:
|
29
|
-
# => gpg --with-fingerprint [FILE]
|
30
|
-
ZYPPER_GPG_FINGER = <<~EOF.freeze
|
31
|
-
pub 2048R/3DBDC284 2011-08-19 [expires: 2024-06-14]
|
32
|
-
Key fingerprint = 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
|
33
|
-
uid nginx signing key <signing-key@nginx.com>
|
34
|
-
EOF
|
35
|
-
|
36
21
|
describe Chef::Provider::ZypperRepository do
|
22
|
+
# Output of the command:
|
23
|
+
# => rpm -qa gpg-pubkey*
|
24
|
+
ZYPPER_RPM_KEYS = <<~EOF.freeze
|
25
|
+
gpg-pubkey-307e3d54-4be01a65
|
26
|
+
gpg-pubkey-3dbdc284-53674dd4
|
27
|
+
EOF
|
28
|
+
|
29
|
+
# Output of the command:
|
30
|
+
# => gpg --with-fingerprint [FILE]
|
31
|
+
ZYPPER_GPG_20 = <<~EOF.freeze
|
32
|
+
pub 2048R/3DBDC284 2011-08-19 [expires: 2024-06-14]
|
33
|
+
Key fingerprint = 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
|
34
|
+
uid nginx signing key <signing-key@nginx.com>
|
35
|
+
EOF
|
36
|
+
|
37
|
+
# Output of the command:
|
38
|
+
# => gpg --import-options import-show --dry-run --import --with-colons [FILE]
|
39
|
+
ZYPPER_GPG_22 = <<~EOF.freeze
|
40
|
+
pub:-:2048:1:ABF5BD827BD9BF62:1313747554:1718374819::-:::scSC::::::23::0:
|
41
|
+
fpr:::::::::573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62:
|
42
|
+
uid:-::::1466086904::F18C4DBBFCB45099ABB59088DB6B252FA7E9FB41::nginx signing key <signing-key@nginx.com>::::::::::0:
|
43
|
+
gpg: Total number processed: 1
|
44
|
+
EOF
|
45
|
+
|
46
|
+
# Output of the command:
|
47
|
+
# -> gpg --version
|
48
|
+
ZYPPER_GPG_VERSION = <<~EOF.freeze
|
49
|
+
gpg (GnuPG) 2.2.20
|
50
|
+
libgcrypt 1.8.5
|
51
|
+
Copyright (C) 2020 Free Software Foundation, Inc.
|
52
|
+
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
|
53
|
+
This is free software: you are free to change and redistribute it.
|
54
|
+
There is NO WARRANTY, to the extent permitted by law.
|
55
|
+
|
56
|
+
Home: /Users/tsmith/.gnupg
|
57
|
+
Supported algorithms:
|
58
|
+
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
|
59
|
+
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
|
60
|
+
CAMELLIA128, CAMELLIA192, CAMELLIA256
|
61
|
+
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
|
62
|
+
Compression: Uncompressed, ZIP, ZLIB, BZIP2
|
63
|
+
EOF
|
64
|
+
|
37
65
|
let(:new_resource) { Chef::Resource::ZypperRepository.new("Nginx Repository") }
|
38
66
|
let(:logger) { double("Mixlib::Log::Child").as_null_object }
|
39
67
|
let(:provider) do
|
@@ -45,11 +73,19 @@ describe Chef::Provider::ZypperRepository do
|
|
45
73
|
end
|
46
74
|
|
47
75
|
let(:rpm_key_finger) do
|
48
|
-
double("shell_out", stdout:
|
76
|
+
double("shell_out", stdout: ZYPPER_RPM_KEYS, exitstatus: 0, error?: false)
|
77
|
+
end
|
78
|
+
|
79
|
+
let(:gpg_20) do
|
80
|
+
double("shell_out", stdout: ZYPPER_GPG_20, exitstatus: 0, error?: false)
|
81
|
+
end
|
82
|
+
|
83
|
+
let(:gpg_22) do
|
84
|
+
double("shell_out", stdout: ZYPPER_GPG_22, exitstatus: 0, error?: false)
|
49
85
|
end
|
50
86
|
|
51
|
-
let(:
|
52
|
-
double("shell_out", stdout:
|
87
|
+
let(:gpg_ver) do
|
88
|
+
double("shell_out", stdout: ZYPPER_GPG_VERSION, exitstatus: 0, error?: false)
|
53
89
|
end
|
54
90
|
|
55
91
|
it "responds to load_current_resource" do
|
@@ -96,24 +132,38 @@ describe Chef::Provider::ZypperRepository do
|
|
96
132
|
|
97
133
|
describe "#key_installed?" do
|
98
134
|
before do
|
99
|
-
expect(provider).to receive(:shell_out).with("rpm -qa gpg-pubkey*").and_return(rpm_key_finger)
|
135
|
+
expect(provider).to receive(:shell_out).with("/bin/rpm -qa gpg-pubkey*").and_return(rpm_key_finger)
|
100
136
|
end
|
101
137
|
|
102
138
|
it "returns true if the key is installed" do
|
103
|
-
expect(provider).to receive(:
|
139
|
+
expect(provider).to receive(:short_key_id).and_return("3dbdc284")
|
104
140
|
expect(provider.key_installed?("/foo/nginx.key")).to be_truthy
|
105
141
|
end
|
106
142
|
|
107
143
|
it "returns false if the key is not installed" do
|
108
|
-
expect(provider).to receive(:
|
144
|
+
expect(provider).to receive(:short_key_id).and_return("BOGUS")
|
109
145
|
expect(provider.key_installed?("/foo/nginx.key")).to be_falsey
|
110
146
|
end
|
111
147
|
end
|
112
148
|
|
113
|
-
describe "#
|
114
|
-
it "returns the
|
115
|
-
expect(provider).to receive(:shell_out!).with("gpg --
|
116
|
-
expect(provider.
|
149
|
+
describe "#gpg_version" do
|
150
|
+
it "returns the gpg version by shelling out to gpg" do
|
151
|
+
expect(provider).to receive(:shell_out!).with("gpg --version").and_return(gpg_ver)
|
152
|
+
expect(provider.gpg_version).to eq(Gem::Version.new("2.2.20"))
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "#short_key_id" do
|
157
|
+
it "returns the short key ID via running a dry-run import on gpg 2.2+" do
|
158
|
+
expect(provider).to receive(:gpg_version).and_return(Gem::Version.new("2.2"))
|
159
|
+
expect(provider).to receive(:shell_out!).with("gpg --import-options import-show --dry-run --import --with-colons /foo/nginx.key").and_return(gpg_22)
|
160
|
+
expect(provider.short_key_id("/foo/nginx.key")).to eq("7bd9bf62")
|
161
|
+
end
|
162
|
+
|
163
|
+
it "returns the short key ID via --with-fingerpint on gpg < 2.2" do
|
164
|
+
expect(provider).to receive(:gpg_version).and_return(Gem::Version.new("2.0"))
|
165
|
+
expect(provider).to receive(:shell_out!).with("gpg --with-fingerprint /foo/nginx.key").and_return(gpg_20)
|
166
|
+
expect(provider.short_key_id("/foo/nginx.key")).to eq("3dbdc284")
|
117
167
|
end
|
118
168
|
end
|
119
169
|
|
@@ -18,8 +18,11 @@
|
|
18
18
|
require "spec_helper"
|
19
19
|
|
20
20
|
describe Chef::Resource::ArchiveFile do
|
21
|
-
|
22
|
-
let(:
|
21
|
+
let(:node) { Chef::Node.new }
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
24
|
+
let(:resource) { Chef::Resource::ArchiveFile.new("foo", run_context) }
|
25
|
+
let(:provider) { resource.provider_for_action(:extract) }
|
23
26
|
|
24
27
|
it "has a resource name of :archive_file" do
|
25
28
|
expect(resource.resource_name).to eql(:archive_file)
|
@@ -41,6 +44,12 @@ describe Chef::Resource::ArchiveFile do
|
|
41
44
|
expect(resource.mode).to eql("755")
|
42
45
|
end
|
43
46
|
|
47
|
+
it "mode property throws a deprecation warning if Integers are passed" do
|
48
|
+
expect(Chef::Log).to receive(:deprecation)
|
49
|
+
resource.mode 755
|
50
|
+
provider.define_resource_requirements
|
51
|
+
end
|
52
|
+
|
44
53
|
it "options property defaults to [:time]" do
|
45
54
|
expect(resource.options).to eql([:time])
|
46
55
|
end
|
@@ -29,15 +29,15 @@ describe Chef::Resource::WindowsDnsRecord do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "the record_type property accepts 'CNAME'" do
|
32
|
-
expect { resource.record_type "CNAME" }.not_to raise_error
|
32
|
+
expect { resource.record_type "CNAME" }.not_to raise_error
|
33
33
|
end
|
34
34
|
|
35
35
|
it "the record_type property accepts 'ARecord'" do
|
36
|
-
expect { resource.record_type "ARecord" }.not_to raise_error
|
36
|
+
expect { resource.record_type "ARecord" }.not_to raise_error
|
37
37
|
end
|
38
38
|
|
39
39
|
it "the record_type property accepts 'PTR'" do
|
40
|
-
expect { resource.record_type "PTR" }.not_to raise_error
|
40
|
+
expect { resource.record_type "PTR" }.not_to raise_error
|
41
41
|
end
|
42
42
|
|
43
43
|
it "the resource raises an ArgumentError if invalid record_type is set" do
|
@@ -29,11 +29,11 @@ describe Chef::Resource::WindowsDnsZone do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "the server_type property accepts 'Standalone'" do
|
32
|
-
expect { resource.server_type "Standalone" }.not_to raise_error
|
32
|
+
expect { resource.server_type "Standalone" }.not_to raise_error
|
33
33
|
end
|
34
34
|
|
35
35
|
it "the server_type property accepts 'Domain'" do
|
36
|
-
expect { resource.server_type "Domain" }.not_to raise_error
|
36
|
+
expect { resource.server_type "Domain" }.not_to raise_error
|
37
37
|
end
|
38
38
|
|
39
39
|
it "the resource raises an ArgumentError if invalid server_type is set" do
|
@@ -144,7 +144,7 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
144
144
|
resource.frequency :once
|
145
145
|
resource.random_delay "20"
|
146
146
|
resource.start_time "15:00"
|
147
|
-
expect { resource.after_created }.to_not raise_error
|
147
|
+
expect { resource.after_created }.to_not raise_error
|
148
148
|
end
|
149
149
|
|
150
150
|
it "raises error for invalid random_delay" do
|
@@ -26,7 +26,7 @@ describe Chef::Resource::WindowsUac do
|
|
26
26
|
|
27
27
|
%i{no_prompt secure_prompt_for_creds secure_prompt_for_consent prompt_for_creds prompt_for_consent prompt_for_consent_non_windows_binaries}.each do |val|
|
28
28
|
it "the consent_behavior_admins property accepts :#{val}" do
|
29
|
-
expect { resource.consent_behavior_admins val }.not_to raise_error
|
29
|
+
expect { resource.consent_behavior_admins val }.not_to raise_error
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -36,7 +36,7 @@ describe Chef::Resource::WindowsUac do
|
|
36
36
|
|
37
37
|
%i{auto_deny secure_prompt_for_creds prompt_for_creds}.each do |val|
|
38
38
|
it "the consent_behavior_users property accepts :#{val}" do
|
39
|
-
expect { resource.consent_behavior_users val }.not_to raise_error
|
39
|
+
expect { resource.consent_behavior_users val }.not_to raise_error
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -73,52 +73,52 @@ describe Chef::Resource::YumRepository do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
it "the timeout property expects numeric Strings" do
|
76
|
-
expect { resource.timeout "123" }.not_to raise_error
|
76
|
+
expect { resource.timeout "123" }.not_to raise_error
|
77
77
|
expect { resource.timeout "123foo" }.to raise_error(ArgumentError)
|
78
78
|
end
|
79
79
|
|
80
80
|
it "the priority property expects numeric Strings from '1' to '99'" do
|
81
|
-
expect { resource.priority "99" }.not_to raise_error
|
82
|
-
expect { resource.priority "1" }.not_to raise_error
|
81
|
+
expect { resource.priority "99" }.not_to raise_error
|
82
|
+
expect { resource.priority "1" }.not_to raise_error
|
83
83
|
expect { resource.priority "100" }.to raise_error(ArgumentError)
|
84
84
|
expect { resource.priority "0" }.to raise_error(ArgumentError)
|
85
85
|
end
|
86
86
|
|
87
87
|
it "the failovermethod property accepts 'priority' or 'roundrobin'" do
|
88
|
-
expect { resource.failovermethod "priority" }.not_to raise_error
|
89
|
-
expect { resource.failovermethod "roundrobin" }.not_to raise_error
|
88
|
+
expect { resource.failovermethod "priority" }.not_to raise_error
|
89
|
+
expect { resource.failovermethod "roundrobin" }.not_to raise_error
|
90
90
|
expect { resource.failovermethod "bob" }.to raise_error(ArgumentError)
|
91
91
|
end
|
92
92
|
|
93
93
|
it "the http_caching property accepts 'packages', 'all', or 'none'" do
|
94
|
-
expect { resource.http_caching "packages" }.not_to raise_error
|
95
|
-
expect { resource.http_caching "all" }.not_to raise_error
|
96
|
-
expect { resource.http_caching "none" }.not_to raise_error
|
94
|
+
expect { resource.http_caching "packages" }.not_to raise_error
|
95
|
+
expect { resource.http_caching "all" }.not_to raise_error
|
96
|
+
expect { resource.http_caching "none" }.not_to raise_error
|
97
97
|
expect { resource.http_caching "bob" }.to raise_error(ArgumentError)
|
98
98
|
end
|
99
99
|
|
100
100
|
it "the metadata_expire property accepts a time value or 'never'" do
|
101
|
-
expect { resource.metadata_expire "100" }.not_to raise_error
|
102
|
-
expect { resource.metadata_expire "100d" }.not_to raise_error
|
103
|
-
expect { resource.metadata_expire "100h" }.not_to raise_error
|
104
|
-
expect { resource.metadata_expire "100m" }.not_to raise_error
|
105
|
-
expect { resource.metadata_expire "never" }.not_to raise_error
|
101
|
+
expect { resource.metadata_expire "100" }.not_to raise_error
|
102
|
+
expect { resource.metadata_expire "100d" }.not_to raise_error
|
103
|
+
expect { resource.metadata_expire "100h" }.not_to raise_error
|
104
|
+
expect { resource.metadata_expire "100m" }.not_to raise_error
|
105
|
+
expect { resource.metadata_expire "never" }.not_to raise_error
|
106
106
|
expect { resource.metadata_expire "100s" }.to raise_error(ArgumentError)
|
107
107
|
end
|
108
108
|
|
109
109
|
it "the mirror_expire property accepts a time value" do
|
110
|
-
expect { resource.mirror_expire "100" }.not_to raise_error
|
111
|
-
expect { resource.mirror_expire "100d" }.not_to raise_error
|
112
|
-
expect { resource.mirror_expire "100h" }.not_to raise_error
|
113
|
-
expect { resource.mirror_expire "100m" }.not_to raise_error
|
110
|
+
expect { resource.mirror_expire "100" }.not_to raise_error
|
111
|
+
expect { resource.mirror_expire "100d" }.not_to raise_error
|
112
|
+
expect { resource.mirror_expire "100h" }.not_to raise_error
|
113
|
+
expect { resource.mirror_expire "100m" }.not_to raise_error
|
114
114
|
expect { resource.mirror_expire "never" }.to raise_error(ArgumentError)
|
115
115
|
end
|
116
116
|
|
117
117
|
it "the mirrorlist_expire property accepts a time value" do
|
118
|
-
expect { resource.mirrorlist_expire "100" }.not_to raise_error
|
119
|
-
expect { resource.mirrorlist_expire "100d" }.not_to raise_error
|
120
|
-
expect { resource.mirrorlist_expire "100h" }.not_to raise_error
|
121
|
-
expect { resource.mirrorlist_expire "100m" }.not_to raise_error
|
118
|
+
expect { resource.mirrorlist_expire "100" }.not_to raise_error
|
119
|
+
expect { resource.mirrorlist_expire "100d" }.not_to raise_error
|
120
|
+
expect { resource.mirrorlist_expire "100h" }.not_to raise_error
|
121
|
+
expect { resource.mirrorlist_expire "100m" }.not_to raise_error
|
122
122
|
expect { resource.mirrorlist_expire "never" }.to raise_error(ArgumentError)
|
123
123
|
end
|
124
124
|
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -378,7 +378,7 @@ describe Chef::Resource do
|
|
378
378
|
it "does not propagate validation errors" do
|
379
379
|
resource_class = Class.new(Chef::Resource) { property :foo, String, required: true }
|
380
380
|
resource = resource_class.new("required_property_tests")
|
381
|
-
expect { resource.to_text }.to_not raise_error
|
381
|
+
expect { resource.to_text }.to_not raise_error
|
382
382
|
end
|
383
383
|
end
|
384
384
|
end
|
@@ -21,6 +21,15 @@ end
|
|
21
21
|
describe Chef::Util::ThreadedJobQueue do
|
22
22
|
let(:queue) { Chef::Util::ThreadedJobQueue.new }
|
23
23
|
|
24
|
+
around(:example) do |example|
|
25
|
+
old_value = Thread.report_on_exception
|
26
|
+
Thread.report_on_exception = false
|
27
|
+
|
28
|
+
example.run
|
29
|
+
|
30
|
+
Thread.report_on_exception = old_value
|
31
|
+
end
|
32
|
+
|
24
33
|
it "should pass mutex to jobs with an arity of 1" do
|
25
34
|
job = double
|
26
35
|
expect(job).to receive(:arity).at_least(:once).and_return(1)
|
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: 15.
|
4
|
+
version: 15.12.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-26 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: 15.
|
19
|
+
version: 15.12.22
|
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: 15.
|
26
|
+
version: 15.12.22
|
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: 15.
|
33
|
+
version: 15.12.22
|
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: 15.
|
40
|
+
version: 15.12.22
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: train-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -249,7 +249,7 @@ dependencies:
|
|
249
249
|
version: '4.2'
|
250
250
|
- - "<"
|
251
251
|
- !ruby/object:Gem::Version
|
252
|
-
version: '
|
252
|
+
version: '7'
|
253
253
|
type: :runtime
|
254
254
|
prerelease: false
|
255
255
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -259,7 +259,7 @@ dependencies:
|
|
259
259
|
version: '4.2'
|
260
260
|
- - "<"
|
261
261
|
- !ruby/object:Gem::Version
|
262
|
-
version: '
|
262
|
+
version: '7'
|
263
263
|
- !ruby/object:Gem::Dependency
|
264
264
|
name: net-ssh-multi
|
265
265
|
requirement: !ruby/object:Gem::Requirement
|
@@ -284,22 +284,22 @@ dependencies:
|
|
284
284
|
name: net-sftp
|
285
285
|
requirement: !ruby/object:Gem::Requirement
|
286
286
|
requirements:
|
287
|
-
- - "~>"
|
288
|
-
- !ruby/object:Gem::Version
|
289
|
-
version: '2.1'
|
290
287
|
- - ">="
|
291
288
|
- !ruby/object:Gem::Version
|
292
289
|
version: 2.1.2
|
290
|
+
- - "<"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '4.0'
|
293
293
|
type: :runtime
|
294
294
|
prerelease: false
|
295
295
|
version_requirements: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
|
-
- - "~>"
|
298
|
-
- !ruby/object:Gem::Version
|
299
|
-
version: '2.1'
|
300
297
|
- - ">="
|
301
298
|
- !ruby/object:Gem::Version
|
302
299
|
version: 2.1.2
|
300
|
+
- - "<"
|
301
|
+
- !ruby/object:Gem::Version
|
302
|
+
version: '4.0'
|
303
303
|
- !ruby/object:Gem::Dependency
|
304
304
|
name: ed25519
|
305
305
|
requirement: !ruby/object:Gem::Requirement
|
@@ -400,16 +400,22 @@ dependencies:
|
|
400
400
|
name: ffi-libarchive
|
401
401
|
requirement: !ruby/object:Gem::Requirement
|
402
402
|
requirements:
|
403
|
+
- - "~>"
|
404
|
+
- !ruby/object:Gem::Version
|
405
|
+
version: '1.0'
|
403
406
|
- - ">="
|
404
407
|
- !ruby/object:Gem::Version
|
405
|
-
version:
|
408
|
+
version: 1.0.3
|
406
409
|
type: :runtime
|
407
410
|
prerelease: false
|
408
411
|
version_requirements: !ruby/object:Gem::Requirement
|
409
412
|
requirements:
|
413
|
+
- - "~>"
|
414
|
+
- !ruby/object:Gem::Version
|
415
|
+
version: '1.0'
|
410
416
|
- - ">="
|
411
417
|
- !ruby/object:Gem::Version
|
412
|
-
version:
|
418
|
+
version: 1.0.3
|
413
419
|
- !ruby/object:Gem::Dependency
|
414
420
|
name: chef-zero
|
415
421
|
requirement: !ruby/object:Gem::Requirement
|