From fe16dc671e0b0db9b7db8bfd65f7da646b80c349 Mon Sep 17 00:00:00 2001 From: B-Woody Date: Fri, 10 Jul 2026 19:38:46 +1000 Subject: [PATCH 1/4] Fix: Explicitly set model='virtio-scsi' for SCSI controllers on Q35 guests --- lib/fog/libvirt/models/compute/server.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/fog/libvirt/models/compute/server.rb b/lib/fog/libvirt/models/compute/server.rb index 0b23755..28ffcd8 100644 --- a/lib/fog/libvirt/models/compute/server.rb +++ b/lib/fog/libvirt/models/compute/server.rb @@ -395,6 +395,10 @@ def to_xml xml.address(:type => "drive", :controller => 0, :bus => 0, :unit => 0) end end + + if volumes.any? { |v| v.bus == 'scsi' } + xml.controller(:type => 'scsi', :index => '0', :model => 'virtio-scsi') + end nics.each do |nic| xml.interface(:type => nic.type) do From 19eb4f19fb9cf87be5a34415bb5fd76d1eba70cc Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 10 Jul 2026 11:58:01 +0200 Subject: [PATCH 2/4] Remove trailing whitespace --- lib/fog/libvirt/models/compute/server.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/fog/libvirt/models/compute/server.rb b/lib/fog/libvirt/models/compute/server.rb index 28ffcd8..1f9706c 100644 --- a/lib/fog/libvirt/models/compute/server.rb +++ b/lib/fog/libvirt/models/compute/server.rb @@ -395,7 +395,6 @@ def to_xml xml.address(:type => "drive", :controller => 0, :bus => 0, :unit => 0) end end - if volumes.any? { |v| v.bus == 'scsi' } xml.controller(:type => 'scsi', :index => '0', :model => 'virtio-scsi') end From b6d3db715133cbcb4288156eee239b1b7c9990bd Mon Sep 17 00:00:00 2001 From: B-Woody Date: Fri, 10 Jul 2026 20:10:30 +1000 Subject: [PATCH 3/4] Trying to fix conditional statement that failed in test --- lib/fog/libvirt/models/compute/server.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/fog/libvirt/models/compute/server.rb b/lib/fog/libvirt/models/compute/server.rb index 1f9706c..8364327 100644 --- a/lib/fog/libvirt/models/compute/server.rb +++ b/lib/fog/libvirt/models/compute/server.rb @@ -395,7 +395,9 @@ def to_xml xml.address(:type => "drive", :controller => 0, :bus => 0, :unit => 0) end end - if volumes.any? { |v| v.bus == 'scsi' } + + if volumes.any? { |v| v.respond_to?(:bus) && v.bus == 'scsi' } || + (respond_to?(:disks) && disks.any? { |d| d.is_a?(Hash) && d[:bus] == 'scsi' }) xml.controller(:type => 'scsi', :index => '0', :model => 'virtio-scsi') end From b12d352d39f11f0f90a0a0691a592bae9a8d7e61 Mon Sep 17 00:00:00 2001 From: B-Woody Date: Fri, 10 Jul 2026 20:26:09 +1000 Subject: [PATCH 4/4] trigger ci again