From f589254b1814517ec9cc239d1fb8135a4bab3fd1 Mon Sep 17 00:00:00 2001 From: Florian Derler Date: Tue, 16 Jun 2026 16:43:36 +0200 Subject: [PATCH 1/3] #128 - add qemu/generic kvm support to windows virtualization fact Signed-off-by: Florian Derler --- lib/facter/resolvers/windows/virtualization.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/facter/resolvers/windows/virtualization.rb b/lib/facter/resolvers/windows/virtualization.rb index e955028cf..836300df5 100644 --- a/lib/facter/resolvers/windows/virtualization.rb +++ b/lib/facter/resolvers/windows/virtualization.rb @@ -49,7 +49,7 @@ def determine_hypervisor_by_manufacturer(comp) 'hyperv' elsif /^Xen/.match?(manufacturer) 'xen' - elsif /^Amazon EC2/.match?(manufacturer) + elsif /^(Amazon EC2|QEMU)/.match?(manufacturer) 'kvm' else 'physical' From c0cff0b094b44ab3ef2efda308e9bd11ba64aed3 Mon Sep 17 00:00:00 2001 From: Florian Derler Date: Tue, 16 Jun 2026 16:53:29 +0200 Subject: [PATCH 2/3] 128# - add proxmox/qemu test Signed-off-by: Florian Derler --- .../resolvers/windows/virtualization_spec.rb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spec/facter/resolvers/windows/virtualization_spec.rb b/spec/facter/resolvers/windows/virtualization_spec.rb index b2a501523..0d2814337 100644 --- a/spec/facter/resolvers/windows/virtualization_spec.rb +++ b/spec/facter/resolvers/windows/virtualization_spec.rb @@ -181,6 +181,27 @@ end end + describe '#resolve Proxmox/QEMU VM' do + before do + allow(win32ole).to receive(:Model).and_return(model) + allow(win32ole).to receive(:Manufacturer).and_return(manufacturer) + allow(win32ole).to receive(:OEMStringArray).and_return('') + end + + let(:query_result) { [win32ole] } + let(:model) { 'Standard PC (i440FX + PIIX, 1996)' } + let(:manufacturer) { 'QEMU' } + + it 'detects virtual machine model' do + expect(Facter::Resolvers::Windows::Virtualization.resolve(:virtual)).to eql('kvm') + end + + it 'detects that is virtual' do + expect(Facter::Resolvers::Windows::Virtualization.resolve(:is_virtual)).to be(true) + end + end + + describe '#resolve Physical Machine' do before do allow(win32ole).to receive(:Model).and_return(model) From 8e7c3e146aba26ec0002ec9d62d69dea34e1058d Mon Sep 17 00:00:00 2001 From: Florian Derler Date: Tue, 16 Jun 2026 17:10:40 +0200 Subject: [PATCH 3/3] remove empty line Signed-off-by: Florian Derler --- spec/facter/resolvers/windows/virtualization_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/facter/resolvers/windows/virtualization_spec.rb b/spec/facter/resolvers/windows/virtualization_spec.rb index 0d2814337..fb11f7f49 100644 --- a/spec/facter/resolvers/windows/virtualization_spec.rb +++ b/spec/facter/resolvers/windows/virtualization_spec.rb @@ -201,7 +201,6 @@ end end - describe '#resolve Physical Machine' do before do allow(win32ole).to receive(:Model).and_return(model)