fix(deploy): apply VM config reliably after clone

- wait for clone lock release before config.put (cross-node clones kept
  lock past wait_for_task, dropping ALL requested settings silently)
- configure_vm applies params in independent groups (compute/network/
  cloudinit/disk) with per-group errors and lock retry
- set sockets=1 with cores so total vCPU matches request
- keep template net0 model/MAC/options, replace only bridge
- disk resize: pick boot disk via regex over all buses, report failures
- surface config errors as deploy warnings in UI toast instead of
  silent success

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 02:31:21 +05:00
parent e366646257
commit 7d52297f76
5 changed files with 230 additions and 90 deletions

View File

@@ -271,6 +271,12 @@ export default function InstancesPage() {
error_message: data.error_message ?? undefined,
});
if (data.status === 'completed') {
if (data.error_message) {
toast.warning(
t('instances.deploy_completed_with_warnings', 'ВМ создана, но часть настроек не применилась'),
{ description: data.error_message, duration: 15000 },
);
}
setTimeout(() => removeTask(task.id), 5000);
}
} catch { /* ignore */ }

View File

@@ -247,6 +247,7 @@
"all_nodes": "All nodes",
"all_servers": "All servers",
"no_instances": "No instances found",
"deploy_completed_with_warnings": "VM created, but some settings were not applied",
"try_other_search": "Try a different search query",
"create_first": "Create your first instance",
"showing": "Showing",

View File

@@ -247,6 +247,7 @@
"all_nodes": "Все узлы",
"all_servers": "Все серверы",
"no_instances": "Инстансы не найдены",
"deploy_completed_with_warnings": "ВМ создана, но часть настроек не применилась",
"try_other_search": "Попробуйте другой поисковый запрос",
"create_first": "Создайте свой первый инстанс",
"showing": "Показано",