12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Megatest. If not, see <http://www.gnu.org/licenses/>.
digraph G {
subgraph cluster_1 {
node [style=filled,shape=box];
check_available_queue -> remove_entries_over_10s_old;
remove_entries_over_10s_old -> set_available [label="num_avail < 3"];
remove_entries_over_10s_old -> exit [label="num_avail > 2"];
set_available -> delay_2s;
delay_2s -> check_place_in_queue;
check_place_in_queue -> "http:transport-launch" [label="at head"];
check_place_in_queue -> exit [label="not at head"];
"client:login" -> "server:shutdown" [label="login failed"];
"server:shutdown" -> exit;
subgraph cluster_2 {
"http:transport-launch" -> "http:transport-run";
"http:transport-launch" -> "http:transport-keep-running";
"http:transport-keep-running" -> "tests running?";
"tests running?" -> "client:login" [label=yes];
"tests running?" -> "server:shutdown" [label=no];
"client:login" -> delay_5s [label="login ok"];
delay_5s -> "http:transport-keep-running";
}
// start_server -> "server_running?";
// "server_running?" -> set_available [label="no"];
// "server_running?" -> delay_2s [label="yes"];
// delay_2s -> "still_running?";
|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Megatest. If not, see <http://www.gnu.org/licenses/>.
digraph G {
label = "Server Start Sequences";
color=brown;
subgraph cluster_1 {
node [style=filled,shape=box];
label="Finding Server";
START;
HaveServ [label="Look at .servinfo\nfiles for prime main"];
AskPrime [label="Ask Prime for main"];
PingPrime [label="Ping Prime"];
AskPrime [label="Ask .servinfo prime for server"];
StartServ [label="Launch Server Process for main.db"];
START -> HaveServ;
HaveServ -> PingPrime;
PingPrime -> AskPrime [label="Got response"];
PingPrime -> StartServ [label="No reponse"];
HaveServ -> StartServ [label="No files"];
StartServ -> "Delay 2s" -> START;
AskPrime -> DONE;
// check_available_queue -> remove_entries_over_10s_old;
// remove_entries_over_10s_old -> set_available [label="num_avail < 3"];
// remove_entries_over_10s_old -> exit [label="num_avail > 2"];
//
// set_available -> delay_2s;
// delay_2s -> check_place_in_queue;
//
// check_place_in_queue -> "http:transport-launch" [label="at head"];
// check_place_in_queue -> exit [label="not at head"];
//
// "client:login" -> "server:shutdown" [label="login failed"];
// "server:shutdown" -> exit;
}
subgraph cluster_2 {
// "http:transport-launch" -> "http:transport-run";
// "http:transport-launch" -> "http:transport-keep-running";
//
// "http:transport-keep-running" -> "tests running?";
// "tests running?" -> "client:login" [label=yes];
// "tests running?" -> "server:shutdown" [label=no];
// "client:login" -> delay_5s [label="login ok"];
delay_5s -> "http:transport-keep-running";
}
// start_server -> "server_running?";
// "server_running?" -> set_available [label="no"];
// "server_running?" -> delay_2s [label="yes"];
// delay_2s -> "still_running?";
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
//
// handle_requests -> start_shutdown [label="no traffic\nno running tests"];
// handle_requests -> shutdown_request;
// start_shutdown -> shutdown_delay;
// shutdown_request -> shutdown_delay;
// shutdown_delay -> exit;
label = "server:launch";
color=brown;
}
// client_start_server -> start_server;
// handle_requests -> read_write;
// read_write -> handle_requests;
}
|
<
<
<
<
<
<
<
|
85
86
87
88
89
90
91
92
|
//
// handle_requests -> start_shutdown [label="no traffic\nno running tests"];
// handle_requests -> shutdown_request;
// start_shutdown -> shutdown_delay;
// shutdown_request -> shutdown_delay;
// shutdown_delay -> exit;
}
|