From 10ff86f9d7f350e0bd5a6fb788f86eff324a4090 Mon Sep 17 00:00:00 2001 From: "Joseph.Rawlings" Date: Mon, 2 Mar 2026 21:32:47 -0500 Subject: [PATCH] fix: LXC clone doesn't accept hostname parameter - set via config instead --- extensions/Servers/Proxmox/Proxmox.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/extensions/Servers/Proxmox/Proxmox.php b/extensions/Servers/Proxmox/Proxmox.php index 658ba011b..92571b2d0 100644 --- a/extensions/Servers/Proxmox/Proxmox.php +++ b/extensions/Servers/Proxmox/Proxmox.php @@ -485,21 +485,28 @@ class Proxmox extends ClassServer } // Create the VM/CT - use template's vmType for source path - $cloneResult = $this->requestAndWait('/nodes/' . $server->node->name . '/' . $templateVmType . '/' . $server->os->vm_id . '/clone', 'post', [ + // Clone parameters differ between KVM and LXC + $cloneParams = [ 'newid' => $server->vm_id, - 'hostname' => $server->hostname, 'target' => $server->node->name, 'full' => 1, 'storage' => $server->node->storage_location, 'pool' => $settings['pool'] ?? null, - ], $server->node->name); + ]; + + // KVM accepts 'name' for hostname during clone, LXC sets hostname via config after clone + if ($templateVmType === 'qemu') { + $cloneParams['name'] = $server->hostname; + } + + $cloneResult = $this->requestAndWait('/nodes/' . $server->node->name . '/' . $templateVmType . '/' . $server->os->vm_id . '/clone', 'post', $cloneParams, $server->node->name); if ($cloneResult !== 'stopped' && $cloneResult !== 'OK') { \Log::error('Proxmox VM/CT clone failed for server ' . $server->id, [ 'result' => $cloneResult, 'vm_id' => $server->vm_id, 'node' => $server->node->name, - 'type' => $vmType, + 'type' => $templateVmType, ]); $server->status = 'error'; $server->save();