1digraph "g" { 2 graph [ 3 fontsize = "12" 4 fontname = "Times-Roman" 5 fontcolor = "black" 6 bb = "0,0,398.922306,478.927856" 7 color = "black" 8 ] 9 node [ 10 fontsize = "12" 11 fontname = "Times-Roman" 12 fontcolor = "black" 13 shape = "ellipse" 14 color = "black" 15 ] 16 edge [ 17 fontsize = "12" 18 fontname = "Times-Roman" 19 fontcolor = "black" 20 color = "black" 21 ] 22 23// special nodes 24 "S_STARTING" 25 [ 26 color = "blue" 27 fontcolor = "blue" 28 ] 29 "S_TERMINATE" 30 [ 31 color = "red" 32 fontcolor = "red" 33 ] 34 35// DC only nodes 36 "S_RECOVERY_DC" [ fontcolor = "green" ] 37 "S_INTEGRATION" [ fontcolor = "green" ] 38 "S_POLICY_ENGINE" [ fontcolor = "green" ] 39 "S_TRANSITION_ENGINE" [ fontcolor = "green" ] 40 "S_RELEASE_DC" [ fontcolor = "green" ] 41 "S_<ANY_DC>" [ fontcolor = "green" ] 42 "S_IDLE" [ fontcolor = "green" ] 43 44// state transitions 45 "S_<ANY>" -> "S_ELECTION" [ label = "I_DC_TIMEOUT" ] 46 "S_<ANY>" -> "S_RECOVERY" [ label = "I_ERROR" ] 47 "S_<ANY>" -> "S_<ANY>" [ label = "I_ROUTER,\nI_REQUEST" ] 48 49 "S_<ANY_DC>" -> "S_RELEASE_DC" [ label = "I_SHUTDOWN" ] 50 "S_<ANY_DC>" -> "S_INTEGRATION" [ label = "I_NODE_JOIN" ] 51 "S_<ANY_DC>" -> "S_POLICY_ENGINE" [ label = "I_CIB_UPDATE,\nI_NODE_LEFT,\nI_NODE_LEAVING" ] 52 "S_<ANY_DC>" -> "S_RECOVERY_DC" [ label = "I_ERROR" ] 53 "S_<ANY_DC>" -> "S_<ANY_DC>" [ label = "I_ROUTER,\nI_REQUEST" ] 54 55 "S_ELECTION" -> "S_INTEGRATION" [ label = "I_ELECTION_DC" ] 56 "S_ELECTION" -> "S_NOT_DC" [ label = "I_NOT_DC" ] 57 "S_ELECTION" -> "S_RELEASE_DC" [ label = "I_ELECTION_RELEASE_DC" ] 58 59 "S_INTEGRATION" -> "S_POLICY_ENGINE" [ label = "I_SUCCESS" ] 60 61 "S_NOT_DC" -> "S_STOPPING" [ label = "I_SHUTDOWN" ] 62 63 "S_POLICY_ENGINE" -> "S_TRANSITION_ENGINE" [ label = "I_SUCCESS" ] 64 "S_POLICY_ENGINE" -> "S_POLICY_ENGINE" [ label = "I_FAIL\nI_RESTART" ] 65 66 "S_RECOVERY_DC" -> "S_INTEGRATION" [ label = "I_RECOVERED" ] 67 "S_RECOVERY_DC" -> "S_RELEASE_DC" [ label = "I_NOT_DC,\nI_SHUTDOWN" ] 68 69 "S_RECOVERY" -> "S_STOPPING" [ label = "I_SHUTDOWN" ] 70 "S_RECOVERY" -> "S_NOT_DC" [ label = "I_RECOVERED" ] 71 72 "S_RELEASE_DC" -> "S_NOT_DC" [ label = "I_RELEASE_SUCCESS" ] 73 "S_RELEASE_DC" -> "S_STOPPING" [ label = "I_RELEASE_FAIL" ] 74 75 "S_STARTING" -> "S_STOPPING" [ label = "I_FAIL" ] 76 "S_STARTING" -> "S_NOT_DC" [ label = "I_SUCCESS" ] 77 78 "S_STOPPING" -> "S_TERMINATE" [ label = "I_SUCCESS,\nI_FAIL" ] 79 80 "S_TRANSITION_ENGINE" -> "S_POLICY_ENGINE" [ label = "I_FAIL" ] 81 "S_TRANSITION_ENGINE" -> "S_IDLE" [ label = "I_SUCCESS" ] 82} 83