bug 10929: allow only OperationFailedToError event to trigger transition to Error state.

This commit is contained in:
Kelven Yang 2011-08-01 18:32:12 -07:00
parent 80684861cf
commit 04528c821b
2 changed files with 8 additions and 2 deletions

View File

@ -69,7 +69,12 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, StateObject
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.DestroyRequested, State.Destroyed);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.StopRequested, State.Stopped);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.AgentReportStopped, State.Stopped);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.OperationFailed, State.Error);
// please pay attention about state transition to Error state, there should be only one case (failed in VM creation process)
// that can have such transition
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.OperationFailedToError, State.Error);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.OperationFailed, State.Stopped);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.ExpungeOperation, State.Expunging);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.AgentReportShutdowned, State.Stopped);
s_fsm.addTransition(State.Stopped, VirtualMachine.Event.AgentReportMigrated, State.Stopped);
@ -156,6 +161,7 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, StateObject
ExpungeOperation,
OperationSucceeded,
OperationFailed,
OperationFailedToError,
OperationRetry,
AgentReportShutdowned,
AgentReportMigrated

View File

@ -1646,7 +1646,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
if (vm != null) {
if (vm.getState().equals(State.Stopped)) {
try {
_itMgr.stateTransitTo(vm, VirtualMachine.Event.OperationFailed, null);
_itMgr.stateTransitTo(vm, VirtualMachine.Event.OperationFailedToError, null);
} catch (NoTransitionException e1) {
s_logger.warn(e1.getMessage());
}