sodonnel commented on a change in pull request #1344: HDDS-1982 Extend
SCMNodeManager to support decommission and maintenance states
URL: https://github.com/apache/hadoop/pull/1344#discussion_r321191360
##########
File path:
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java
##########
@@ -219,47 +221,51 @@ private void initialiseState2EventMap() {
* | | | |
* V V | |
* [HEALTHY]------------------->[STALE]------------------->[DEAD]
- * | (TIMEOUT) | (TIMEOUT) |
- * | | |
- * | | |
- * | | |
- * | | |
- * | (DECOMMISSION) | (DECOMMISSION) | (DECOMMISSION)
- * | V |
- * +------------------->[DECOMMISSIONING]<----------------+
- * |
- * | (DECOMMISSIONED)
- * |
- * V
- * [DECOMMISSIONED]
*
*/
/**
* Initializes the lifecycle of node state machine.
*/
- private void initializeStateMachine() {
- stateMachine.addTransition(
+ private void initializeStateMachines() {
+ nodeHealthSM.addTransition(
NodeState.HEALTHY, NodeState.STALE, NodeLifeCycleEvent.TIMEOUT);
- stateMachine.addTransition(
+ nodeHealthSM.addTransition(
NodeState.STALE, NodeState.DEAD, NodeLifeCycleEvent.TIMEOUT);
- stateMachine.addTransition(
+ nodeHealthSM.addTransition(
NodeState.STALE, NodeState.HEALTHY, NodeLifeCycleEvent.RESTORE);
- stateMachine.addTransition(
+ nodeHealthSM.addTransition(
NodeState.DEAD, NodeState.HEALTHY, NodeLifeCycleEvent.RESURRECT);
- stateMachine.addTransition(
- NodeState.HEALTHY, NodeState.DECOMMISSIONING,
- NodeLifeCycleEvent.DECOMMISSION);
- stateMachine.addTransition(
- NodeState.STALE, NodeState.DECOMMISSIONING,
- NodeLifeCycleEvent.DECOMMISSION);
- stateMachine.addTransition(
- NodeState.DEAD, NodeState.DECOMMISSIONING,
- NodeLifeCycleEvent.DECOMMISSION);
- stateMachine.addTransition(
- NodeState.DECOMMISSIONING, NodeState.DECOMMISSIONED,
- NodeLifeCycleEvent.DECOMMISSIONED);
+ nodeOpStateSM.addTransition(
+ NodeOperationalState.IN_SERVICE, NodeOperationalState.DECOMMISSIONING,
+ NodeOperationStateEvent.START_DECOMMISSION);
+ nodeOpStateSM.addTransition(
+ NodeOperationalState.DECOMMISSIONING, NodeOperationalState.IN_SERVICE,
+ NodeOperationStateEvent.RETURN_TO_SERVICE);
+ nodeOpStateSM.addTransition(
+ NodeOperationalState.DECOMMISSIONING,
+ NodeOperationalState.DECOMMISSIONED,
+ NodeOperationStateEvent.COMPLETE_DECOMMISSION);
+ nodeOpStateSM.addTransition(
+ NodeOperationalState.DECOMMISSIONED, NodeOperationalState.IN_SERVICE,
+ NodeOperationStateEvent.RETURN_TO_SERVICE);
Review comment:
I have not yet considered what should happen. First stage is to get the
states in and make sure nothing breaks, then figure out how to use them :)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]