Skip to content

Commit f9baa14

Browse files
Add debian 7, fedora and opensuse with ssh versions
for old chef versions where autodetection does not work
1 parent 4d17292 commit f9baa14

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

libraries/devsec_ssh.rb

+10-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def get_ssh_version(package)
191191
end
192192

193193
# Guess the version of ssh via OS matrix
194-
def guess_ssh_version
194+
def guess_ssh_version # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
195195
family = node['platform_family']
196196
platform = node['platform']
197197
version = node['platform_version'].to_f
@@ -203,11 +203,20 @@ def guess_ssh_version
203203
return 6.6 if version >= 14.04
204204
when 'debian'
205205
return 6.6 if version >= 8
206+
return 6.0 if version >= 7
206207
return 5.3 if version <= 6
207208
end
208209
when 'rhel'
209210
return 6.6 if version >= 7
210211
return 5.3 if version >= 6
212+
when 'fedora'
213+
return 7.3 if version >= 25
214+
return 7.2 if version >= 24
215+
when 'suse'
216+
case platform
217+
when 'opensuse'
218+
return 6.6 if version >= 13.2
219+
end
211220
end
212221
Chef::Log.info("Unknown platform #{node['platform']} with version #{node['platform_version']} and family #{node['platform_family']}. Assuming ssh version #{FALLBACK_SSH_VERSION}")
213222
FALLBACK_SSH_VERSION

spec/libraries/devsec_ssh_spec.rb

+40
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,46 @@ def self.debug(*); end
109109
end
110110
end
111111

112+
context 'when running on Fedora 25' do
113+
let(:family) { 'fedora' }
114+
let(:platform) { 'fedora' }
115+
let(:version) { '25' }
116+
117+
it 'should return ssh version 7.3' do
118+
expect(subject.send(:guess_ssh_version)).to eq 7.3
119+
end
120+
end
121+
122+
context 'when running on Fedora 24' do
123+
let(:family) { 'fedora' }
124+
let(:platform) { 'fedora' }
125+
let(:version) { '24' }
126+
127+
it 'should return ssh version 7.2' do
128+
expect(subject.send(:guess_ssh_version)).to eq 7.2
129+
end
130+
end
131+
132+
context 'when running on Opensuse 13.2' do
133+
let(:family) { 'suse' }
134+
let(:platform) { 'opensuse' }
135+
let(:version) { '13.2' }
136+
137+
it 'should return ssh version 6.6' do
138+
expect(subject.send(:guess_ssh_version)).to eq 6.6
139+
end
140+
end
141+
142+
context 'when running on Opensuse 42.1' do
143+
let(:family) { 'suse' }
144+
let(:platform) { 'opensuse' }
145+
let(:version) { '42.1' }
146+
147+
it 'should return ssh version 6.6' do
148+
expect(subject.send(:guess_ssh_version)).to eq 6.6
149+
end
150+
end
151+
112152
context 'when running on unknown platform' do
113153
let(:family) { 'unknown' }
114154
let(:platform) { 'unknown' }

0 commit comments

Comments
 (0)