From fc09b1181b39510212a0f74ed5c5172a42be563e Mon Sep 17 00:00:00 2001 From: Bernhard Suttner Date: Fri, 6 Feb 2026 22:46:41 +0100 Subject: [PATCH 1/2] Use: Rebuild only if host powered off Use https://github.com/theforeman/foreman/pull/10860 and refactor the vsphere/proxmox methods as it is no longer needed to start/stop/reboot --- .../concerns/foreman_bootdisk/compute_resources/proxmox.rb | 1 - .../concerns/foreman_bootdisk/compute_resources/vmware.rb | 4 ---- app/models/concerns/foreman_bootdisk/host_ext.rb | 4 ++++ 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/models/concerns/foreman_bootdisk/compute_resources/proxmox.rb b/app/models/concerns/foreman_bootdisk/compute_resources/proxmox.rb index c694c6f7..59033c63 100644 --- a/app/models/concerns/foreman_bootdisk/compute_resources/proxmox.rb +++ b/app/models/concerns/foreman_bootdisk/compute_resources/proxmox.rb @@ -27,7 +27,6 @@ def iso_attach(iso, vm_uuid) disks = server.disks.map { |disk| disk.split(":")[0] }.join(";") server.update({ ide2: "#{volume.volid},media=cdrom" }) server.update({ boot: "order=ide2;#{disks}" }) - server.reboot end def iso_detach(vm_uuid) diff --git a/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb b/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb index c9e4b1d1..7563d694 100644 --- a/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb +++ b/app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb @@ -42,11 +42,7 @@ def iso_attach(iso, vm_uuid) 'allow_guest_control' => true, 'controller_key' => controller[:key] } - vm = find_vm_by_uuid(vm_uuid) - vm.stop if vm.ready? - vm.reload client.vm_reconfig_cdrom options - vm.start if !vm.ready? end def iso_detach(vm_uuid) diff --git a/app/models/concerns/foreman_bootdisk/host_ext.rb b/app/models/concerns/foreman_bootdisk/host_ext.rb index 5a9f600d..0788452f 100644 --- a/app/models/concerns/foreman_bootdisk/host_ext.rb +++ b/app/models/concerns/foreman_bootdisk/host_ext.rb @@ -31,6 +31,10 @@ def bootdisk_downloadable? architecture.blank? || intel_arch? end + def bootdisk_rebuild_requires_poweroff + true + end + def intel_arch? /i.86|x86[_-]64/ =~ architecture.name end From 2a5e190dc6432b352e7bafd62b9ce32bece03df9 Mon Sep 17 00:00:00 2001 From: Bernhard Suttner Date: Fri, 6 Feb 2026 23:01:53 +0100 Subject: [PATCH 2/2] adapt test because of foreman PR 10550 --- test/unit/concerns/compute_resources/vmware_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/concerns/compute_resources/vmware_test.rb b/test/unit/concerns/compute_resources/vmware_test.rb index a6ca0593..412189e7 100644 --- a/test/unit/concerns/compute_resources/vmware_test.rb +++ b/test/unit/concerns/compute_resources/vmware_test.rb @@ -62,7 +62,7 @@ class VmwareTest < ActiveSupport::TestCase attrs_out = { cpus: '1', provision_method: 'bootdisk', - firmware: 'bios', + firmware: 'automatic', cdroms: [mock_cdrom], boot_order: %w[cdrom disk], boot_retry: 10000