1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-04-01 06:50:25 +03:00

feature : Add DISK_SNAPSHOT_POWEROFF state

This commit is contained in:
Ruben S. Montero 2015-05-20 00:21:26 +02:00
parent 98f76cf3fe
commit e306680729
7 changed files with 48 additions and 12 deletions
include
share/doc/xsd
src
lcm
oca
java/src/org/opennebula/client/vm
ruby/opennebula
sunstone

@ -155,7 +155,8 @@ public:
BOOT_UNDEPLOY_FAILURE = 47,
BOOT_STOPPED_FAILURE = 48,
PROLOG_RESUME_FAILURE = 49,
PROLOG_UNDEPLOY_FAILURE = 50
PROLOG_UNDEPLOY_FAILURE = 50,
DISK_SNAPSHOT_POWEROFF = 51
};
static int lcm_state_from_str(string& st, LcmState& state)
@ -211,6 +212,7 @@ public:
else if ( st == "BOOT_UNDEPLOY_FAILURE") { state = BOOT_UNDEPLOY_FAILURE; }
else if ( st == "PROLOG_RESUME_FAILURE") { state = PROLOG_RESUME_FAILURE; }
else if ( st == "PROLOG_UNDEPLOY_FAILURE") { state = PROLOG_UNDEPLOY_FAILURE; }
else if ( st == "DISK_SNAPSHOT_POWEROFF") { state = DISK_SNAPSHOT_POWEROFF; }
else {return -1;}
return 0;
@ -269,6 +271,7 @@ public:
case BOOT_UNDEPLOY_FAILURE: st = "BOOT_UNDEPLOY_FAILURE"; break;
case PROLOG_RESUME_FAILURE: st = "PROLOG_RESUME_FAILURE"; break;
case PROLOG_UNDEPLOY_FAILURE: st = "PROLOG_UNDEPLOY_FAILURE"; break;
case DISK_SNAPSHOT_POWEROFF: st = "DISK_SNAPSHOT_POWEROFF"; break;
}
return st;

@ -163,7 +163,8 @@
BOOT_UNDEPLOY_FAILURE = 47,
BOOT_STOPPED_FAILURE = 48,
PROLOG_RESUME_FAILURE = 49,
PROLOG_UNDEPLOY_FAILURE = 50
PROLOG_UNDEPLOY_FAILURE = 50,
DISK_SNAPSHOT_POWEROFF = 51
-->
<xs:element name="LCM_STATE" type="xs:integer"/>
<xs:element name="PREV_STATE" type="xs:integer"/>

@ -96,7 +96,8 @@
BOOT_UNDEPLOY_FAILURE = 47,
BOOT_STOPPED_FAILURE = 48,
PROLOG_RESUME_FAILURE = 49,
PROLOG_UNDEPLOY_FAILURE = 50
PROLOG_UNDEPLOY_FAILURE = 50,
DISK_SNAPSHOT_POWEROFF = 51
-->
<xs:element name="LCM_STATE" type="xs:integer"/>
<xs:element name="PREV_STATE" type="xs:integer"/>

@ -917,6 +917,7 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
case VirtualMachine::HOTPLUG:
vm->clear_attach_disk();
vmpool->update(vm);
vm->set_running_etime(the_time);
vmpool->update_history(vm);
@ -927,6 +928,7 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
case VirtualMachine::HOTPLUG_NIC:
vm->clear_attach_nic();
vmpool->update(vm);
vm->set_running_etime(the_time);
vmpool->update_history(vm);
@ -936,11 +938,8 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
break;
case VirtualMachine::HOTPLUG_SAVEAS:
case VirtualMachine::HOTPLUG_SAVEAS_POWEROFF:
case VirtualMachine::HOTPLUG_SAVEAS_SUSPENDED:
tm->trigger(TransferManager::DRIVER_CANCEL, vid);
vm->cancel_saveas_disk(image_id);
vmpool->update(vm);
vm->set_running_etime(the_time);
vmpool->update_history(vm);
@ -949,14 +948,34 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
vmm->trigger(VirtualMachineManager::CLEANUP,vid);
break;
case VirtualMachine::HOTPLUG_SAVEAS_POWEROFF:
case VirtualMachine::HOTPLUG_SAVEAS_SUSPENDED:
tm->trigger(TransferManager::DRIVER_CANCEL, vid);
vm->cancel_saveas_disk(image_id);
vmpool->update(vm);
vm->set_running_etime(the_time);
vmpool->update_history(vm);
break;
case VirtualMachine::HOTPLUG_PROLOG_POWEROFF:
case VirtualMachine::HOTPLUG_EPILOG_POWEROFF:
vm->clear_attach_disk();
vmpool->update(vm);
tm->trigger(TransferManager::DRIVER_CANCEL,vid);
tm->trigger(TransferManager::EPILOG_DELETE,vid);
break;
case VirtualMachine::DISK_SNAPSHOT_POWEROFF:
//TODO CLEAR CURRENT SNAPSHOT
//vmpool->update(vm);
tm->trigger(TransferManager::DRIVER_CANCEL, vid);
tm->trigger(TransferManager::EPILOG_DELETE,vid);
break;
case VirtualMachine::MIGRATE:
vm->set_running_etime(the_time);
vmpool->update_history(vm);
@ -967,7 +986,8 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
vm->set_previous_reason(History::USER);
vmpool->update_previous_history(vm);
hpool->del_capacity(vm->get_previous_hid(), vm->get_oid(), cpu, mem, disk);
hpool->del_capacity(vm->get_previous_hid(), vm->get_oid(), cpu,
mem, disk);
vmm->trigger(VirtualMachineManager::DRIVER_CANCEL,vid);
vmm->trigger(VirtualMachineManager::CLEANUP_BOTH,vid);
@ -992,7 +1012,8 @@ void LifeCycleManager::clean_up_vm(VirtualMachine * vm, bool dispose, int& imag
vm->set_previous_reason(History::USER);
vmpool->update_previous_history(vm);
hpool->del_capacity(vm->get_previous_hid(), vm->get_oid(), cpu, mem, disk);
hpool->del_capacity(vm->get_previous_hid(), vm->get_oid(), cpu,
mem, disk);
vmm->trigger(VirtualMachineManager::DRIVER_CANCEL,vid);
vmm->trigger(VirtualMachineManager::CLEANUP_PREVIOUS,vid);
@ -1220,6 +1241,10 @@ void LifeCycleManager::recover(VirtualMachine * vm, bool success)
case VirtualMachine::HOTPLUG_SNAPSHOT:
lcm_action = LifeCycleManager::SNAPSHOT_CREATE_FAILURE;
break;
case VirtualMachine::DISK_SNAPSHOT_POWEROFF:
//TODO trigger lcm action
break;
}
if (lcm_action != LifeCycleManager::FINALIZE)
@ -1420,6 +1445,7 @@ void LifeCycleManager::retry(VirtualMachine * vm)
case VirtualMachine::HOTPLUG_SAVEAS_SUSPENDED:
case VirtualMachine::HOTPLUG_PROLOG_POWEROFF:
case VirtualMachine::HOTPLUG_EPILOG_POWEROFF:
case VirtualMachine::DISK_SNAPSHOT_POWEROFF:
case VirtualMachine::RUNNING:
case VirtualMachine::UNKNOWN:
break;

@ -127,7 +127,8 @@ public class VirtualMachine extends PoolElement{
"BOOT_UNDEPLOY_FAILURE",
"BOOT_STOPPED_FAILURE",
"PROLOG_RESUME_FAILURE",
"PROLOG_UNDEPLOY_FAILURE"
"PROLOG_UNDEPLOY_FAILURE",
"DISK_SNAPSHOT_POWEROFF"
};
private static final String[] SHORT_LCM_STATES =
@ -182,7 +183,8 @@ public class VirtualMachine extends PoolElement{
"fail", // BOOT_UNDEPLOY_FAILURE
"fail", // BOOT_STOPPED_FAILURE
"fail", // PROLOG_RESUME_FAILURE
"fail" // PROLOG_UNDEPLOY_FAILURE
"fail", // PROLOG_UNDEPLOY_FAILURE
"snap" // DISK_SNAPSHOT_POWEROFF
};
/**

@ -104,6 +104,7 @@ module OpenNebula
BOOT_STOPPED_FAILURE
PROLOG_RESUME_FAILURE
PROLOG_UNDEPLOY_FAILURE
DISK_SNAPSHOT_POWEROFF
}
SHORT_VM_STATES={
@ -169,7 +170,8 @@ module OpenNebula
"BOOT_UNDEPLOY_FAILURE" => "fail",
"BOOT_STOPPED_FAILURE" => "fail",
"PROLOG_RESUME_FAILURE" => "fail",
"PROLOG_UNDEPLOY_FAILURE" => "fail"
"PROLOG_UNDEPLOY_FAILURE" => "fail",
"DISK_SNAPSHOT_POWEROFF" => "snap"
}
MIGRATE_REASON=%w{NONE ERROR USER}

@ -83,6 +83,7 @@ VNC_STATES = [
#48, #BOOT_STOPPED_FAILURE
#49, #PROLOG_RESUME_FAILURE
#50, #PROLOG_UNDEPLOY_FAILURE
#51, #DISK_SNAPSHOT_POWEROFF
]
class OpenNebulaVNC