Skip to content

Commit f5d7556

Browse files
committed
(FACT-3121) Detect SmartOS LX virtualization
1 parent 034fbc0 commit f5d7556

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/facter/util/facts/posix/virtual_detector.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module Posix
77
module VirtualDetector
88
class << self
99
def platform
10-
@@fact_value ||= check_docker_lxc || check_freebsd || check_gce || retrieve_from_virt_what
10+
@@fact_value ||= check_docker_lxc || check_freebsd || check_gce || check_smartos_lx || retrieve_from_virt_what
1111
@@fact_value ||= check_vmware || check_open_vz || check_vserver || check_xen || check_other_facts
1212
@@fact_value ||= check_lspci || 'physical'
1313

@@ -25,6 +25,10 @@ def check_gce
2525
'gce' if bios_vendor&.include?('Google')
2626
end
2727

28+
def check_smartos_lx
29+
'smartos-lx' if Facter::Resolvers::Uname.resolve(:kernelversion) == 'BrandZ virtual linux'
30+
end
31+
2832
def check_vmware
2933
Facter::Resolvers::Vmware.resolve(:vm)
3034
end

spec/facter/util/facts/posix/virtual_detector_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,19 @@
241241
end
242242
end
243243

244+
context 'when smartos-lx' do
245+
let(:value) { 'smartos-lx' }
246+
247+
before do
248+
allow(Facter::Resolvers::VirtWhat).to receive(:resolve).with(:vm).and_return('lxc')
249+
allow(Facter::Resolvers::Uname).to receive(:resolve).with(:kernelversion).and_return('BrandZ virtual linux')
250+
end
251+
252+
it 'returns smartos-lx' do
253+
expect(detector.platform).to eq(value)
254+
end
255+
end
256+
244257
context 'when all resolvers return nil ' do
245258
let(:vm) { 'physical' }
246259

0 commit comments

Comments
 (0)