fix: LXC clone doesn't accept hostname parameter - set via config instead
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user