1
2
3
4
5
6
7
8
9
10
11
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
|
// This is a graphviz file. To generate a diagram from this source,
// you must first install graphviz (available from homebrew). Then run
// the following command:
//
// dot -Tpng -o security_use_case_diagram.png security_use_case_diagram.dot
digraph G {
graph [fontsize = 14, penwidth = 0, rankdir = LR];
node [shape = "plaintext"];
edge [color = "deepskyblue", fontsize = 9, dir = none];
subgraph cluster_vm {
label = "Nova instances";
penwidth = 1;
subgraph cluster_vmmiddleware {
label = "";
penwidth = 0;
subgraph cluster_vmmiddlewareapp1 {
label = "Django/icinga host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-MW-001";
penwidth = 0;
vmmiddlewareapp1_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmmiddlewareapp2 {
label = "Django/icinga host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-MW-002";
penwidth = 0;
vmmiddlewareapp2_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmmiddlewaredatabase1 {
label = "Database host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-001";
penwidth = 0;
vmmiddlewaredatabase1_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmmiddlewaredatabase2 {
label = "Database host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-002";
penwidth = 0;
vmmiddlewaredatabase2_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmmiddlewaredatabase3 {
label = "Database host 3\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-003";
penwidth = 0;
vmmiddlewaredatabase3_icon [label = "", image = "computer.png"];
}
}
subgraph cluster_vmservices {
label = "";
penwidth = 0;
subgraph cluster_vmservices1 {
label = "ansible-queue/dns-admin host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-CM-001";
penwidth = 0;
vmservices1_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmservices2 {
label = "ansible-queue/dns-admin host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-CM-002";
penwidth = 0;
vmservices2_icon [label = "", image = "computer.png"];
}
}
subgraph cluster_vmlb {
label = "";
penwidth = 0;
subgraph cluster_vmlb1 {
label = "Load balancer host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-LB-001";
penwidth = 0;
vmlb1_icon [label = "", image = "computer.png"];
}
subgraph cluster_vmlb2 {
label = "Load balancer host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-LB-002";
penwidth = 0;
vmlb2_icon [label = "", image = "computer.png"];
}
}
}
subgraph cluster_port {
label = "Neutron ports";
penwidth = 1;
subgraph cluster_portmiddleware {
label = "";
penwidth = 0;
subgraph cluster_portmiddlewareapp1 {
label = "Django/icinga host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-MW-001\n2607:f160:b:10f1::6";
penwidth = 0;
portmiddlewareapp1_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portmiddlewareapp2 {
label = "Django/icinga host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-MW-002\n2607:f160:b:10f1::5";
penwidth = 0;
portmiddlewareapp2_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portmiddlewaredatabase1 {
label = "Database host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-001\n2607:f160:b:10f1::b";
penwidth = 0;
portmiddlewaredatabase1_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portmiddlewaredatabase2 {
label = "Database host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-002\n2607:f160:b:10f1::3";
penwidth = 0;
portmiddlewaredatabase2_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portmiddlewaredatabase3 {
label = "Database host 3\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-003\n2607:f160:b:10f1::c";
penwidth = 0;
portmiddlewaredatabase3_icon [label = "", image = "network-wired.png"];
}
}
subgraph cluster_portservices {
label = "";
penwidth = 0;
subgraph cluster_portservices1 {
label = "ansible-queue/\ndns-admin host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-CM-001\n2607:f160:b:10f1::7";
penwidth = 0;
portservices1_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portservices2 {
label = "ansible-queue/\ndns-admin host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-CM-002\n2607:f160:b:10f1::8";
penwidth = 0;
portservices2_icon [label = "", image = "network-wired.png"];
}
}
subgraph cluster_portlb {
label = "";
penwidth = 0;
subgraph cluster_portlb1 {
label = "Load balancer host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-LB-001\n2607:f160:b:10f1::e";
penwidth = 0;
portlb1_icon [label = "", image = "network-wired.png"];
}
subgraph cluster_portlb2 {
label = "Load balancer host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-LB-002\n2607:f160:b:10f1::d";
penwidth = 0;
portlb2_icon [label = "", image = "network-wired.png"];
}
}
}
subgraph cluster_volume {
label = "Cinder volumes";
penwidth = 1;
subgraph cluster_volumemiddleware {
label = "";
penwidth = 0;
subgraph cluster_volumemiddlewaredatabase1 {
label = "Database host 1\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-01";
penwidth = 0;
volumemiddlewaredatabase1_icon [label = "", image = "drive-removable-media.png"];
}
subgraph cluster_volumemiddlewaredatabase2 {
label = "Database host 2\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-02";
penwidth = 0;
volumemiddlewaredatabase2_icon [label = "", image = "drive-removable-media.png"];
}
subgraph cluster_volumemiddlewaredatabase3 {
label = "Database host 3\nSOLKTX01VZBvVFE-Y-WR-X-00-DB-03";
penwidth = 0;
volumemiddlewaredatabase3_icon [label = "", image = "drive-removable-media.png"];
}
}
}
vmmiddlewareapp1_icon -> portmiddlewareapp1_icon;
vmmiddlewareapp2_icon -> portmiddlewareapp2_icon;
vmmiddlewaredatabase1_icon -> portmiddlewaredatabase1_icon;
vmmiddlewaredatabase2_icon -> portmiddlewaredatabase2_icon;
vmmiddlewaredatabase3_icon -> portmiddlewaredatabase3_icon;
vmservices1_icon -> portservices1_icon;
vmservices2_icon -> portservices2_icon;
vmlb1_icon -> portlb1_icon;
vmlb2_icon -> portlb2_icon;
vmmiddlewaredatabase1_icon -> volumemiddlewaredatabase1_icon;
vmmiddlewaredatabase2_icon -> volumemiddlewaredatabase2_icon;
vmmiddlewaredatabase3_icon -> volumemiddlewaredatabase3_icon;
}
|