1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-20 10:50:08 +03:00

feature #3958: Merge common code for PROLOG_MIGRATE_UNKNOWN

This commit is contained in:
Ruben S. Montero 2016-03-03 23:38:36 +01:00
parent 82336ddc23
commit dafeeaf95c
2 changed files with 13 additions and 43 deletions

View File

@ -251,19 +251,25 @@ void LifeCycleManager::migrate_action(int vid)
vmm->trigger(VirtualMachineManager::SAVE,vid);
}
else if (vm->get_state() == VirtualMachine::POWEROFF ||
vm->get_state() == VirtualMachine::SUSPENDED )
vm->get_state() == VirtualMachine::SUSPENDED ||
(vm->get_state() == VirtualMachine::ACTIVE &&
vm->get_lcm_state() == VirtualMachine::UNKNOWN ))
{
//------------------------------------------------------
// Bypass SAVE_MIGRATE & go to PROLOG_MIGRATE_POWEROFF
//------------------------------------------------------
//----------------------------------------------------------------------
// Bypass SAVE_MIGRATE & go to PROLOG_MIGRATE_POWEROFF/SUSPENDED/UNKNOWN
//----------------------------------------------------------------------
if (vm->get_state() == VirtualMachine::POWEROFF)
{
vm->set_state(VirtualMachine::PROLOG_MIGRATE_POWEROFF);
}
else // VirtualMachine::SUSPENDED
else if (vm->get_state() == VirtualMachine::SUSPENDED)
{
vm->set_state(VirtualMachine::PROLOG_MIGRATE_SUSPEND);
}
else //VirtualMachine::UNKNOWN
{
vm->set_state(VirtualMachine::PROLOG_MIGRATE_UNKNOWN);
}
vm->set_state(VirtualMachine::ACTIVE);
@ -292,40 +298,6 @@ void LifeCycleManager::migrate_action(int vid)
tm->trigger(TransferManager::PROLOG_MIGR,vid);
}
else if (vm->get_state() == VirtualMachine::ACTIVE &&
vm->get_lcm_state() == VirtualMachine::UNKNOWN)
{
//----------------------------------------------------
// Bypass SAVE_MIGRATE goto PROLOG_MIGRATE_UNKNOWN
//----------------------------------------------------
vm->set_resched(false);
vm->set_state(VirtualMachine::PROLOG_MIGRATE_UNKNOWN);
vm->delete_snapshots();
vm->reset_info();
vmpool->update(vm);
vm->set_stime(the_time);
vm->set_prolog_stime(the_time);
vmpool->update_history(vm);
vm->get_requirements(cpu, mem, disk, pci);
hpool->add_capacity(vm->get_hid(), vm->get_oid(), cpu, mem, disk, pci);
hpool->del_capacity(vm->get_previous_hid(), vm->get_oid(), cpu, mem,
disk, pci);
//----------------------------------------------------
tm->trigger(TransferManager::PROLOG_MIGR,vid);
}
else
{
vm->log("LCM", Log::ERROR, "migrate_action, VM in a wrong state.");
@ -1606,10 +1578,12 @@ void LifeCycleManager::updatesg_action(int sgid)
case VirtualMachine::PROLOG_MIGRATE_SUSPEND_FAILURE:
case VirtualMachine::PROLOG_RESUME_FAILURE:
case VirtualMachine::PROLOG_UNDEPLOY_FAILURE:
case VirtualMachine::PROLOG_MIGRATE_UNKNOWN_FAILURE:
case VirtualMachine::PROLOG_FAILURE:
case VirtualMachine::PROLOG_MIGRATE:
case VirtualMachine::PROLOG_MIGRATE_POWEROFF:
case VirtualMachine::PROLOG_MIGRATE_SUSPEND:
case VirtualMachine::PROLOG_MIGRATE_UNKNOWN:
case VirtualMachine::PROLOG_RESUME:
case VirtualMachine::PROLOG_UNDEPLOY:
case VirtualMachine::EPILOG:

View File

@ -663,10 +663,6 @@ void LifeCycleManager::prolog_success_action(int vid)
case VirtualMachine::PROLOG:
case VirtualMachine::PROLOG_FAILURE: //recover success
action = VirtualMachineManager::DEPLOY;
vm->set_state(VirtualMachine::BOOT);
break;
case VirtualMachine::PROLOG_MIGRATE_UNKNOWN:
case VirtualMachine::PROLOG_MIGRATE_UNKNOWN_FAILURE: //recover success
action = VirtualMachineManager::DEPLOY;