From cfbfbf48adff0df2eddc0fd9640fdfac218b9420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Czern=C3=BD?= Date: Fri, 19 Feb 2021 09:37:32 +0100 Subject: [PATCH] M #-: Fix DS id while resuming undeployed VM (#837) (cherry picked from commit 05e235cde32e69e9ffb6cff1e6824d22a2bddaa3) --- src/rm/RequestManagerVirtualMachine.cc | 5 ++++- src/tm/TransferManager.cc | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/rm/RequestManagerVirtualMachine.cc b/src/rm/RequestManagerVirtualMachine.cc index ffcea5dac1..723833ec8b 100644 --- a/src/rm/RequestManagerVirtualMachine.cc +++ b/src/rm/RequestManagerVirtualMachine.cc @@ -878,7 +878,10 @@ void VirtualMachineDeploy::request_execute(xmlrpc_c::paramList const& paramList, vm->get_action() == VMActions::UNDEPLOY_ACTION || vm->get_action() == VMActions::UNDEPLOY_HARD_ACTION)) { - ds_id = vm->get_ds_id(); + if (ds_id == -1) + { + ds_id = vm->get_ds_id(); + } check_nic_auto = false; } diff --git a/src/tm/TransferManager.cc b/src/tm/TransferManager.cc index eb1da8b7bf..2b7b9f581a 100644 --- a/src/tm/TransferManager.cc +++ b/src/tm/TransferManager.cc @@ -890,7 +890,7 @@ void TransferManager::prolog_resume_action(int vid) VirtualMachineDisks& disks = vm->get_disks(); - if (!vm->hasHistory()) + if (!vm->hasHistory() || !vm->hasPreviousHistory()) { goto error_history; } @@ -935,6 +935,7 @@ void TransferManager::prolog_resume_action(int vid) } string tsys = (*disk)->vector_value("TM_MAD_SYSTEM"); + if (!tsys.empty()) { tm_mad_system = "." + tsys; @@ -942,10 +943,10 @@ void TransferManager::prolog_resume_action(int vid) //MV(.tm_mad_system) tm_mad fe:system_dir/disk.i host:remote_system_dir/disk.i vmid dsid(image) xfr << "MV" - << tm_mad_system + << tm_mad_system << " " << tm_mad << " " << nd.get_nebula_hostname() << ":" - << vm->get_system_dir() << "/disk." << disk_id << " " + << vm->get_previous_system_dir() << "/disk." << disk_id << " " << vm->get_hostname() << ":" << vm->get_system_dir() << "/disk." << disk_id << " " << vm->get_oid() << " " @@ -955,7 +956,7 @@ void TransferManager::prolog_resume_action(int vid) //MV tm_mad fe:system_dir host:remote_system_dir vmid dsid(system) xfr << "MV " << vm_tm_mad << " " - << nd.get_nebula_hostname() << ":"<< vm->get_system_dir() << " " + << nd.get_nebula_hostname() << ":"<< vm->get_previous_system_dir() << " " << vm->get_hostname() << ":" << vm->get_system_dir()<< " " << vm->get_oid() << " " << vm->get_ds_id() << endl;