fix: LXC clone doesn't accept hostname parameter - set via config instead

This commit is contained in:
2026-03-02 21:32:47 -05:00
parent 74e52a87aa
commit 10ff86f9d7

View File

@@ -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();