Skip to content

Commit af9d4a9

Browse files
authored
Merge pull request #1220 from jeckersb/import-flow-diagram
ostree-ext/docs: container image import flow diagram
2 parents d9b18c8 + 8466cb8 commit af9d4a9

File tree

2 files changed

+673
-0
lines changed

2 files changed

+673
-0
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
digraph {
2+
compound=true;
3+
4+
subgraph cluster_import {
5+
label="store::import";
6+
import_blob[label="blob"];
7+
import_driver[label="driver"];
8+
import_r[label="r"];
9+
import_r2[label="r",shape="tripleoctagon"];
10+
import_r -> import_r2[label="join_fetch"];
11+
import_driver -> import_r2[label="join_fetch"];
12+
}
13+
14+
15+
subgraph cluster_fetch_layer {
16+
label="unencapsulate::fetch_layer";
17+
fetch_layer_blob[label="blob"];
18+
fetch_layer_driver[label="driver"];
19+
fetch_layer_blob -> import_blob;
20+
fetch_layer_driver -> import_driver;
21+
}
22+
23+
subgraph cluster_get_blob {
24+
label="imageproxy::get_blob";
25+
get_blob_fd[label="(_,fd)"];
26+
get_blob_fd2[label="tokio::File(tokio::BufReader)"];
27+
get_blob_finish[label="finish"];
28+
get_blob_fd2 -> fetch_layer_blob;
29+
get_blob_finish -> fetch_layer_driver;
30+
get_blob_fd -> get_blob_fd2;
31+
}
32+
33+
subgraph cluster_impl_request {
34+
label="imageproxy::impl_request";
35+
request_req[label="req"];
36+
request_req -> get_blob_fd;
37+
}
38+
39+
subgraph cluster_finish_pipe {
40+
label="imageproxy::finish_pipe";
41+
finish_pipe_r_fd[label="(r,fd)"];
42+
finish_pipe_r[label="r"];
43+
request_req -> finish_pipe_r_fd;
44+
finish_pipe_r_fd -> finish_pipe_r;
45+
finish_pipe_r -> get_blob_finish;
46+
}
47+
48+
subgraph cluster_write_tar {
49+
label="tar::write_tar";
50+
write_tar_src[label="src"];
51+
write_tar_filtered_result[label="filtered_result"];
52+
write_tar_output_copier[label="output_copier"];
53+
import_blob -> write_tar_src;
54+
write_tar_ostree_commit_process[label="<ostree commit process>"];
55+
write_tar_child_stdin[label="child_stdin"];
56+
write_tar_ostree_commit_process -> write_tar_child_stdin;
57+
58+
subgraph cluster_write_tar_status_future {
59+
label="status Future";
60+
write_tar_status_future_r[label="r"];
61+
}
62+
63+
write_tar_r[label="r"];
64+
write_tar_ostree_commit_process -> write_tar_r[label="spawn()"];
65+
write_tar_r -> write_tar_status_future_r;
66+
67+
subgraph cluster_write_tar_output_copier_future {
68+
label="output_copier Future";
69+
write_tar_output_copier_future_child_stdout[label="child_stdout"];
70+
write_tar_output_copier_future_child_stderr[label="child_stderr"];
71+
}
72+
73+
write_tar_ostree_commit_process -> write_tar_output_copier_future_child_stdout;
74+
write_tar_ostree_commit_process -> write_tar_output_copier_future_child_stderr;
75+
76+
77+
write_tar_filtered_result2[label="filtered_result (in try_join block)"];
78+
79+
write_tar_status_future_r -> write_tar_filtered_result2[label="tokio::try_join!"];
80+
write_tar_filtered_result -> write_tar_filtered_result2[label="tokio::try_join!"];
81+
82+
write_tar_output_copier_await[label="output_copier.await"];
83+
write_tar_filtered_result2 -> write_tar_output_copier_await;
84+
write_tar_output_copier -> write_tar_output_copier_await;
85+
86+
write_tar_output_copier_future_child_stderr -> write_tar_output_copier[ltail=cluster_write_tar_output_copier_future];
87+
}
88+
89+
subgraph cluster_filter_tar_async {
90+
label="tar::filter_tar_async";
91+
92+
subgraph cluster_tar_transformer {
93+
label="tar_transformer Future";
94+
tar_transformer_src[label="src"];
95+
96+
tar_transformer_src2[label="src: SyncIoBridge(src)"];
97+
tar_transformer_src -> tar_transformer_src2;
98+
tar_transformer_src3[label="src: decompressor(src)"];
99+
tar_transformer_src2 -> tar_transformer_src3;
100+
tar_transformer_tx_buf[label="tx_buf"];
101+
tar_transformer_dest[label="dest: SyncIoBridge(tx_buf)"];
102+
tar_transformer_tx_buf -> tar_transformer_dest;
103+
}
104+
105+
subgraph cluster_filter_tar_async_copier_future {
106+
label="copier Future";
107+
filter_tar_async_copier_future_rx_buf[label="rx_buf"];
108+
filter_tar_async_copier_future_dest[label="dest"];
109+
}
110+
111+
filter_tar_async_src[label="src"];
112+
filter_tar_async_dest[label="dest"];
113+
write_tar_src -> filter_tar_async_src;
114+
filter_tar_async_tx_buf[label="tx_buf"];
115+
filter_tar_async_rx_buf[label="rx_buf"];
116+
write_tar_child_stdin -> filter_tar_async_dest;
117+
filter_tar_async_src -> tar_transformer_src;
118+
filter_tar_async_tx_buf -> tar_transformer_tx_buf;
119+
filter_tar_async_rx_buf -> filter_tar_async_copier_future_rx_buf[label="&mut"];
120+
filter_tar_async_dest -> filter_tar_async_copier_future_dest[label="&mut"];
121+
filter_tar_async_r[label="r"];
122+
tar_transformer_src -> filter_tar_async_r[label="tokio::join!", ltail=cluster_tar_transformer];
123+
filter_tar_async_copier_future_dest -> filter_tar_async_r[label="tokio::join!", ltail=cluster_filter_tar_async_copier_future];
124+
filter_tar_async_r2[label="r"];
125+
filter_tar_async_src2[label="src"];
126+
127+
filter_tar_async_r -> filter_tar_async_r2;
128+
filter_tar_async_r -> filter_tar_async_src2;
129+
130+
filter_tar_async_r2 -> write_tar_filtered_result;
131+
132+
filter_tar_async_drop_src[label="drop(src)"];
133+
filter_tar_async_src2 -> filter_tar_async_drop_src;
134+
135+
}
136+
137+
write_tar_output_copier_await -> import_r[ltail=cluster_write_tar];
138+
139+
}

0 commit comments

Comments
 (0)