def _build_cluster_status_fsm_table():
 S = ClusterStatusStates
 I = ClusterStatusInputs
 O = ClusterStatusOutputs
 table = TransitionTable()
 table = table.addTransitions(S.DISCONNECTED, {I.CONNECTED_TO_CONTROL_SERVICE: ([O.STORE_CLIENT], S.IGNORANT), I.SHUTDOWN: ([], S.SHUTDOWN)})
 table = table.addTransitions(S.IGNORANT, {I.DISCONNECTED_FROM_CONTROL_SERVICE: ([], S.DISCONNECTED), I.STATUS_UPDATE: ([O.UPDATE_STATUS], S.KNOWLEDGEABLE), I.SHUTDOWN: ([O.DISCONNECT], S.SHUTDOWN)})
 table = table.addTransitions(S.KNOWLEDGEABLE, {I.STATUS_UPDATE: ([O.UPDATE_STATUS], S.KNOWLEDGEABLE), I.DISCONNECTED_FROM_CONTROL_SERVICE: ([O.STOP], S.DISCONNECTED), I.SHUTDOWN: ([O.STOP, O.DISCONNECT], S.SHUTDOWN)})
 table = table.addTransitions(S.SHUTDOWN, {I.DISCONNECTED_FROM_CONTROL_SERVICE: ([], S.SHUTDOWN), I.STATUS_UPDATE: ([], S.SHUTDOWN)})
 return table

def _build_cluster_status_fsm_table ( ) : S = ClusterStatusStates I = ClusterStatusInputs O = ClusterStatusOutputs table = TransitionTable ( ) table = table . addTransitions ( S . DISCONNECTED , { I . CONNECTED_TO_CONTROL_SERVICE : ( [ O . STORE_CLIENT ] , S . IGNORANT ) , I . SHUTDOWN : ( [ ] , S . SHUTDOWN ) } ) table = table . addTransitions ( S . IGNORANT , { I . DISCONNECTED_FROM_CONTROL_SERVICE : ( [ ] , S . DISCONNECTED ) , I . STATUS_UPDATE : ( [ O . UPDATE_STATUS ] , S . KNOWLEDGEABLE ) , I . SHUTDOWN : ( [ O . DISCONNECT ] , S . SHUTDOWN ) } ) table = table . addTransitions ( S . KNOWLEDGEABLE , { I . STATUS_UPDATE : ( [ O . UPDATE_STATUS ] , S . KNOWLEDGEABLE ) , I . DISCONNECTED_FROM_CONTROL_SERVICE : ( [ O . STOP ] , S . DISCONNECTED ) , I . SHUTDOWN : ( [ O . STOP , O . DISCONNECT ] , S . SHUTDOWN ) } ) table = table . addTransitions ( S . SHUTDOWN , { I . DISCONNECTED_FROM_CONTROL_SERVICE : ( [ ] , S . SHUTDOWN ) , I . STATUS_UPDATE : ( [ ] , S . SHUTDOWN ) } ) return table
create the transitiontable needed by the cluster status fsm .