From ab85640c56c995ac75d7c2ec4460c215211c49d3 Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Tue, 8 Oct 2013 19:40:39 +0200 Subject: [PATCH] feature #2092: Changed PROLOG and EPILOG bypass to TransferManager.cc --- src/lcm/LifeCycleActions.cc | 12 ------------ src/tm/TransferManager.cc | 28 +++++++++++++++++++++++++++- src/vm/VirtualMachine.cc | 4 +--- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/lcm/LifeCycleActions.cc b/src/lcm/LifeCycleActions.cc index 22d3d6f254..88703058aa 100644 --- a/src/lcm/LifeCycleActions.cc +++ b/src/lcm/LifeCycleActions.cc @@ -21,8 +21,6 @@ void LifeCycleManager::deploy_action(int vid) { VirtualMachine * vm; ostringstream os; - Host * host; - bool host_is_hybrid; vm = vmpool->get(vid,true); @@ -31,16 +29,6 @@ void LifeCycleManager::deploy_action(int vid) return; } - host = hpool->get(vm->get_hid(),true); - host_is_hybrid=host->isHybrid(); - host->unlock(); - - if (host_is_hybrid) - { - trigger(PROLOG_SUCCESS,vid); - return; - } - if ( vm->get_state() == VirtualMachine::ACTIVE ) { Nebula& nd = Nebula::instance(); diff --git a/src/tm/TransferManager.cc b/src/tm/TransferManager.cc index 20c627d1ab..1ace1db10b 100644 --- a/src/tm/TransferManager.cc +++ b/src/tm/TransferManager.cc @@ -436,6 +436,8 @@ void TransferManager::prolog_action(int vid) string error_str; VirtualMachine * vm; + Host * host; + bool host_is_hybrid; Nebula& nd = Nebula::instance(); const TransferManagerDriver * tm_md; @@ -460,9 +462,19 @@ void TransferManager::prolog_action(int vid) } int uid = vm->get_uid(); - vm->unlock(); + host = hpool->get(vm->get_hid(),true); + host_is_hybrid=host->isHybrid(); + host->unlock(); + + if (host_is_hybrid) + { + vm->unlock(); + (nd.get_lcm())->trigger(LifeCycleManager::PROLOG_SUCCESS,vid); + return; + } + User * user = Nebula::instance().get_upool()->get(uid, true); if (user != 0) @@ -1041,6 +1053,9 @@ void TransferManager::epilog_action(int vid) VirtualMachine * vm; Nebula& nd = Nebula::instance(); + Host * host; + bool host_is_hybrid; + const TransferManagerDriver * tm_md; vector attrs; @@ -1061,6 +1076,17 @@ void TransferManager::epilog_action(int vid) goto error_history; } + host = hpool->get(vm->get_hid(),true); + host_is_hybrid=host->isHybrid(); + host->unlock(); + + if (host_is_hybrid) + { + vm->unlock(); + (nd.get_lcm())->trigger(LifeCycleManager::EPILOG_SUCCESS,vid); + return; + } + vm_tm_mad = vm->get_tm_mad(); vm_ds_id = vm->get_ds_id(); tm_md = get(); diff --git a/src/vm/VirtualMachine.cc b/src/vm/VirtualMachine.cc index 0bdd56b35f..833bf953d3 100644 --- a/src/vm/VirtualMachine.cc +++ b/src/vm/VirtualMachine.cc @@ -251,9 +251,7 @@ int VirtualMachine::insert(SqlDB * db, string& error_str) string value; int ivalue; float fvalue; - - bool ec2_present; - + ostringstream oss; // ------------------------------------------------------------------------