gns3-server 3.0.3__py3-none-any.whl → 3.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gns3-server might be problematic. Click here for more details.

Files changed (116) hide show
  1. gns3_server-3.0.5.dist-info/METADATA +202 -0
  2. {gns3_server-3.0.3.dist-info → gns3_server-3.0.5.dist-info}/RECORD +114 -59
  3. {gns3_server-3.0.3.dist-info → gns3_server-3.0.5.dist-info}/WHEEL +1 -1
  4. gns3server/api/routes/compute/cloud_nodes.py +1 -1
  5. gns3server/api/routes/controller/computes.py +1 -1
  6. gns3server/api/routes/controller/images.py +0 -5
  7. gns3server/api/routes/controller/links.py +52 -1
  8. gns3server/appliances/almalinux.gns3a +30 -0
  9. gns3server/appliances/arista-veos.gns3a +15 -15
  10. gns3server/appliances/aruba-arubaoscx.gns3a +39 -0
  11. gns3server/appliances/asterfusion-vAsterNOS-campus.gns3a +50 -0
  12. gns3server/appliances/asterfusion-vAsterNOS.gns3a +1 -1
  13. gns3server/appliances/centos-cloud.gns3a +24 -54
  14. gns3server/appliances/cisco-asav.gns3a +2 -2
  15. gns3server/appliances/cisco-c8000v.gns3a +15 -2
  16. gns3server/appliances/cisco-cat9k.gns3a +2 -2
  17. gns3server/appliances/cisco-csr1000v.gns3a +3 -3
  18. gns3server/appliances/cisco-iosv.gns3a +22 -7
  19. gns3server/appliances/cisco-iosvl2.gns3a +2 -1
  20. gns3server/appliances/cisco-iosxrv.gns3a +2 -2
  21. gns3server/appliances/cisco-iosxrv9k.gns3a +16 -133
  22. gns3server/appliances/cisco-iou-l2.gns3a +2 -0
  23. gns3server/appliances/cisco-iou-l3.gns3a +2 -0
  24. gns3server/appliances/cisco-nxosv.gns3a +2 -1
  25. gns3server/appliances/cisco-nxosv9k.gns3a +36 -343
  26. gns3server/appliances/exos.gns3a +13 -0
  27. gns3server/appliances/fedora-cloud.gns3a +30 -0
  28. gns3server/appliances/fortianalyzer.gns3a +42 -0
  29. gns3server/appliances/fortigate.gns3a +42 -0
  30. gns3server/appliances/fortimanager.gns3a +43 -1
  31. gns3server/appliances/infix.gns3a +118 -0
  32. gns3server/appliances/juniper-vJunos-router.gns3a +75 -0
  33. gns3server/appliances/nethsecurity.gns3a +44 -0
  34. gns3server/appliances/oracle-linux-cloud.gns3a +31 -1
  35. gns3server/appliances/rhel.gns3a +57 -1
  36. gns3server/appliances/rockylinux.gns3a +15 -0
  37. gns3server/appliances/vyos.gns3a +13 -0
  38. gns3server/compute/builtin/nodes/nat.py +1 -1
  39. gns3server/compute/docker/__init__.py +8 -9
  40. gns3server/compute/docker/docker_vm.py +2 -1
  41. gns3server/compute/qemu/qemu_vm.py +69 -28
  42. gns3server/compute/vmware/vmware_vm.py +1 -2
  43. gns3server/controller/__init__.py +14 -0
  44. gns3server/controller/compute.py +4 -3
  45. gns3server/controller/gns3vm/virtualbox_gns3_vm.py +55 -28
  46. gns3server/crash_report.py +1 -1
  47. gns3server/custom_symbols/6wind.svg +1 -0
  48. gns3server/custom_symbols/alpine-virt-qemu.svg +46 -0
  49. gns3server/custom_symbols/arista_bybaro.svg +24 -0
  50. gns3server/custom_symbols/asterfusion-vAsterNOS.svg +48 -0
  51. gns3server/custom_symbols/cisco-fmcv.svg +498 -0
  52. gns3server/custom_symbols/cisco-ise.svg +244 -0
  53. gns3server/custom_symbols/csr1000v_bybaro.svg +38 -0
  54. gns3server/custom_symbols/cumulus_bybaro.svg +27 -0
  55. gns3server/custom_symbols/firefox.svg +1 -0
  56. gns3server/custom_symbols/fortigate_bybaro.svg +42 -0
  57. gns3server/custom_symbols/fortinet.svg +72 -0
  58. gns3server/custom_symbols/innovaphone-ap-icon.jpg +0 -0
  59. gns3server/custom_symbols/innovaphone-pbx-green.png +0 -0
  60. gns3server/custom_symbols/juniper-vmx.svg +284 -0
  61. gns3server/custom_symbols/juniper-vqfx.svg +324 -0
  62. gns3server/custom_symbols/junos_olive_bybaro.svg +18 -0
  63. gns3server/custom_symbols/linux_guest.svg +1917 -0
  64. gns3server/custom_symbols/loadbalancer.svg +380 -0
  65. gns3server/custom_symbols/loadbalancer_docker.svg +387 -0
  66. gns3server/custom_symbols/mgmt_station.svg +1967 -0
  67. gns3server/custom_symbols/mgmt_station_docker.svg +1996 -0
  68. gns3server/custom_symbols/microsoft.svg +85 -0
  69. gns3server/custom_symbols/multilayer_switch_docker.svg +332 -0
  70. gns3server/custom_symbols/multilayer_switch_green_docker.svg +344 -0
  71. gns3server/custom_symbols/multilayer_switch_red_docker.svg +344 -0
  72. gns3server/custom_symbols/opennac.png +0 -0
  73. gns3server/custom_symbols/opensuse.svg +126 -0
  74. gns3server/custom_symbols/openvswitch_bybaro.svg +26 -0
  75. gns3server/custom_symbols/ostinato-3d-icon.svg +95 -0
  76. gns3server/custom_symbols/packetfence2.png +0 -0
  77. gns3server/custom_symbols/pan-vm-fw.svg +364 -0
  78. gns3server/custom_symbols/parrotlogo.png +0 -0
  79. gns3server/custom_symbols/qemu_guest_win10_bybaro.svg +56 -0
  80. gns3server/custom_symbols/qemu_guest_win7_bybaro.svg +59 -0
  81. gns3server/custom_symbols/qemu_guest_win8_bybaro.svg +56 -0
  82. gns3server/custom_symbols/router_docker.svg +213 -0
  83. gns3server/custom_symbols/router_green.svg +206 -0
  84. gns3server/custom_symbols/router_green_docker.svg +665 -0
  85. gns3server/custom_symbols/router_red.svg +206 -0
  86. gns3server/custom_symbols/router_red_docker.svg +213 -0
  87. gns3server/custom_symbols/rpi.png +0 -0
  88. gns3server/custom_symbols/securityonion-logo.png +0 -0
  89. gns3server/custom_symbols/shieldedtux.png +0 -0
  90. gns3server/custom_symbols/steelhead-vcx.png +0 -0
  91. gns3server/custom_symbols/stormshield.png +0 -0
  92. gns3server/custom_symbols/ubuntu.svg +1750 -0
  93. gns3server/custom_symbols/vRIN.svg +316 -0
  94. gns3server/custom_symbols/vsrx_bybaro.svg +44 -0
  95. gns3server/custom_symbols/vyos.svg +35 -0
  96. gns3server/disks/OVMF_CODE_4M.fd +0 -0
  97. gns3server/disks/OVMF_VARS_4M.fd +0 -0
  98. gns3server/schemas/__init__.py +1 -1
  99. gns3server/schemas/compute/docker_nodes.py +2 -2
  100. gns3server/schemas/compute/dynamips_nodes.py +5 -5
  101. gns3server/schemas/compute/iou_nodes.py +2 -2
  102. gns3server/schemas/controller/links.py +21 -0
  103. gns3server/schemas/controller/templates/docker_templates.py +2 -2
  104. gns3server/schemas/controller/templates/dynamips_templates.py +19 -19
  105. gns3server/schemas/controller/templates/iou_templates.py +4 -4
  106. gns3server/schemas/controller/templates/qemu_templates.py +1 -1
  107. gns3server/schemas/controller/users.py +3 -3
  108. gns3server/static/web-ui/index.html +1 -1
  109. gns3server/static/web-ui/main.fd9d76d279fa7d5e.js +1 -0
  110. gns3server/utils/images.py +10 -0
  111. gns3server/version.py +2 -2
  112. gns3_server-3.0.3.dist-info/METADATA +0 -869
  113. gns3server/static/web-ui/main.2e807eb4bc32f838.js +0 -1
  114. {gns3_server-3.0.3.dist-info → gns3_server-3.0.5.dist-info}/entry_points.txt +0 -0
  115. {gns3_server-3.0.3.dist-info → gns3_server-3.0.5.dist-info/licenses}/LICENSE +0 -0
  116. {gns3_server-3.0.3.dist-info → gns3_server-3.0.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,316 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="70"
13
+ height="70"
14
+ viewBox="0 0 70.000002 70.000001"
15
+ id="svg2"
16
+ version="1.1"
17
+ inkscape:version="0.91 r13725"
18
+ sodipodi:docname="vRIN.svg">
19
+ <defs
20
+ id="defs4">
21
+ <marker
22
+ inkscape:stockid="Arrow2Lend"
23
+ orient="auto"
24
+ refY="0"
25
+ refX="0"
26
+ id="marker4924"
27
+ style="overflow:visible"
28
+ inkscape:isstock="true">
29
+ <path
30
+ id="path4926"
31
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
32
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
33
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
34
+ inkscape:connector-curvature="0" />
35
+ </marker>
36
+ <marker
37
+ inkscape:stockid="Arrow2Mend"
38
+ orient="auto"
39
+ refY="0"
40
+ refX="0"
41
+ id="Arrow2Mend"
42
+ style="overflow:visible"
43
+ inkscape:isstock="true">
44
+ <path
45
+ id="path4185"
46
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
47
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
48
+ transform="scale(-0.6,-0.6)"
49
+ inkscape:connector-curvature="0" />
50
+ </marker>
51
+ <marker
52
+ inkscape:stockid="TriangleOutL"
53
+ orient="auto"
54
+ refY="0"
55
+ refX="0"
56
+ id="TriangleOutL"
57
+ style="overflow:visible"
58
+ inkscape:isstock="true">
59
+ <path
60
+ id="path4300"
61
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
62
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1"
63
+ transform="scale(0.8,0.8)"
64
+ inkscape:connector-curvature="0" />
65
+ </marker>
66
+ <marker
67
+ inkscape:stockid="Arrow1Lend"
68
+ orient="auto"
69
+ refY="0"
70
+ refX="0"
71
+ id="Arrow1Lend"
72
+ style="overflow:visible"
73
+ inkscape:isstock="true">
74
+ <path
75
+ id="path4161"
76
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
77
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1"
78
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
79
+ inkscape:connector-curvature="0" />
80
+ </marker>
81
+ <marker
82
+ inkscape:stockid="Arrow2Lend"
83
+ orient="auto"
84
+ refY="0"
85
+ refX="0"
86
+ id="marker4782"
87
+ style="overflow:visible"
88
+ inkscape:isstock="true">
89
+ <path
90
+ id="path4784"
91
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
92
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
93
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
94
+ inkscape:connector-curvature="0" />
95
+ </marker>
96
+ <marker
97
+ inkscape:stockid="Arrow2Lend"
98
+ orient="auto"
99
+ refY="0"
100
+ refX="0"
101
+ id="Arrow2Lend"
102
+ style="overflow:visible"
103
+ inkscape:isstock="true">
104
+ <path
105
+ id="path4179"
106
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
107
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
108
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
109
+ inkscape:connector-curvature="0" />
110
+ </marker>
111
+ <marker
112
+ inkscape:stockid="Arrow2Lend"
113
+ orient="auto"
114
+ refY="0"
115
+ refX="0"
116
+ id="marker4924-8"
117
+ style="overflow:visible"
118
+ inkscape:isstock="true">
119
+ <path
120
+ inkscape:connector-curvature="0"
121
+ id="path4926-5"
122
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
123
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
124
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
125
+ </marker>
126
+ <marker
127
+ inkscape:stockid="Arrow2Lend"
128
+ orient="auto"
129
+ refY="0"
130
+ refX="0"
131
+ id="marker4924-8-2"
132
+ style="overflow:visible"
133
+ inkscape:isstock="true">
134
+ <path
135
+ inkscape:connector-curvature="0"
136
+ id="path4926-5-7"
137
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
138
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
139
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
140
+ </marker>
141
+ <marker
142
+ inkscape:stockid="Arrow2Lend"
143
+ orient="auto"
144
+ refY="0"
145
+ refX="0"
146
+ id="marker4924-8-20"
147
+ style="overflow:visible"
148
+ inkscape:isstock="true">
149
+ <path
150
+ inkscape:connector-curvature="0"
151
+ id="path4926-5-8"
152
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
153
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
154
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
155
+ </marker>
156
+ <marker
157
+ inkscape:stockid="Arrow2Lend"
158
+ orient="auto"
159
+ refY="0"
160
+ refX="0"
161
+ id="marker4924-7"
162
+ style="overflow:visible"
163
+ inkscape:isstock="true">
164
+ <path
165
+ inkscape:connector-curvature="0"
166
+ id="path4926-7"
167
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
168
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
169
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
170
+ </marker>
171
+ <marker
172
+ inkscape:stockid="Arrow2Lend"
173
+ orient="auto"
174
+ refY="0"
175
+ refX="0"
176
+ id="marker4924-8-2-9"
177
+ style="overflow:visible"
178
+ inkscape:isstock="true">
179
+ <path
180
+ inkscape:connector-curvature="0"
181
+ id="path4926-5-7-4"
182
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
183
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
184
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
185
+ </marker>
186
+ <marker
187
+ inkscape:stockid="Arrow2Lend"
188
+ orient="auto"
189
+ refY="0"
190
+ refX="0"
191
+ id="marker4924-8-20-9"
192
+ style="overflow:visible"
193
+ inkscape:isstock="true">
194
+ <path
195
+ inkscape:connector-curvature="0"
196
+ id="path4926-5-8-8"
197
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
198
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
199
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
200
+ </marker>
201
+ <marker
202
+ inkscape:stockid="Arrow2Lend"
203
+ orient="auto"
204
+ refY="0"
205
+ refX="0"
206
+ id="marker4924-7-5"
207
+ style="overflow:visible"
208
+ inkscape:isstock="true">
209
+ <path
210
+ inkscape:connector-curvature="0"
211
+ id="path4926-7-0"
212
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
213
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
214
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
215
+ </marker>
216
+ <marker
217
+ inkscape:stockid="Arrow2Lend"
218
+ orient="auto"
219
+ refY="0"
220
+ refX="0"
221
+ id="marker4924-7-58"
222
+ style="overflow:visible"
223
+ inkscape:isstock="true">
224
+ <path
225
+ inkscape:connector-curvature="0"
226
+ id="path4926-7-9"
227
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
228
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
229
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
230
+ </marker>
231
+ </defs>
232
+ <sodipodi:namedview
233
+ id="base"
234
+ pagecolor="#ffffff"
235
+ bordercolor="#666666"
236
+ borderopacity="1.0"
237
+ inkscape:pageopacity="0.0"
238
+ inkscape:pageshadow="2"
239
+ inkscape:zoom="8"
240
+ inkscape:cx="13.588207"
241
+ inkscape:cy="41.315689"
242
+ inkscape:document-units="px"
243
+ inkscape:current-layer="layer1"
244
+ showgrid="false"
245
+ units="px"
246
+ inkscape:window-width="1920"
247
+ inkscape:window-height="1016"
248
+ inkscape:window-x="0"
249
+ inkscape:window-y="0"
250
+ inkscape:window-maximized="1"
251
+ fit-margin-top="0"
252
+ fit-margin-left="0"
253
+ fit-margin-right="0"
254
+ fit-margin-bottom="0" />
255
+ <metadata
256
+ id="metadata7">
257
+ <rdf:RDF>
258
+ <cc:Work
259
+ rdf:about="">
260
+ <dc:format>image/svg+xml</dc:format>
261
+ <dc:type
262
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
263
+ <dc:title />
264
+ </cc:Work>
265
+ </rdf:RDF>
266
+ </metadata>
267
+ <g
268
+ inkscape:label="vRIN"
269
+ inkscape:groupmode="layer"
270
+ id="layer1"
271
+ style="display:inline"
272
+ transform="translate(0,-892.46783)">
273
+ <circle
274
+ style="fill:#1392e8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
275
+ id="path3346"
276
+ cx="35"
277
+ cy="927.48718"
278
+ r="35" />
279
+ <circle
280
+ style="display:inline;fill:#91c2fb;fill-opacity:1;stroke:none"
281
+ id="path4149"
282
+ r="30.676126"
283
+ cy="927.48718"
284
+ cx="35.233734" />
285
+ <path
286
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7)"
287
+ d="m 22.32053,907.09486 18.69783,0"
288
+ id="path4152"
289
+ inkscape:connector-curvature="0" />
290
+ <path
291
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8-2-9)"
292
+ d="m 38.48734,920.78412 18.69783,0"
293
+ id="path4152-9-9"
294
+ inkscape:connector-curvature="0" />
295
+ <path
296
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8-20-9)"
297
+ d="m 38.6042,934.69063 18.69783,0"
298
+ id="path4152-9-91"
299
+ inkscape:connector-curvature="0" />
300
+ <path
301
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7-5)"
302
+ d="m -265.0259,179.09455 18.69783,0"
303
+ id="path4152-1"
304
+ inkscape:connector-curvature="0" />
305
+ <path
306
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.93489146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-7-58)"
307
+ d="m 22.32053,947.84486 18.69783,0"
308
+ id="path4152-2"
309
+ inkscape:connector-curvature="0" />
310
+ </g>
311
+ <path
312
+ style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:3;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4924-8)"
313
+ d="m 191.34167,32.035246 160,0"
314
+ id="path4152-9"
315
+ inkscape:connector-curvature="0" />
316
+ </svg>
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg id="svg1998" width="55.044277" height="63.620274" version="1.0" xmlns="http://www.w3.org/2000/svg">
3
+ <title id="title3303">ASA</title>
4
+ <defs id="defs2001">
5
+ <marker orient="auto" refY="0" refX="0" id="Arrow2Lstart" style="overflow:visible">
6
+ <path id="path11918" style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round" d="M 11.403143,4.732916 -1.416553,0.01878889 11.403144,-4.6953372 c -2.0480517,2.7832182 -2.0362508,6.5911436 -10e-7,9.4282532 z"/>
7
+ </marker>
8
+ <marker orient="auto" refY="0" refX="0" id="Arrow1Send" style="overflow:visible">
9
+ <path id="path11921" d="M -1.28,0 -2.3466667,1.0666667 1.3866667,0 -2.3466667,-1.0666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"/>
10
+ </marker>
11
+ <marker orient="auto" refY="0" refX="0" id="Arrow1Lstart" style="overflow:visible">
12
+ <path id="path11936" d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"/>
13
+ </marker>
14
+ <linearGradient id="linearGradient6875" gradientUnits="userSpaceOnUse" gradientTransform="matrix(26.557584,0,0,27.099161,-9.2951537,-5.3720715)" x1="2.1178279" y1="0.30649999" x2="-0.4954865" y2="0.30649999">
15
+ <stop style="stop-color:#6e8caa;stop-opacity:1;" offset="0" id="stop8333"/>
16
+ <stop style="stop-color:#dde3ef;stop-opacity:1;" offset="1" id="stop8335"/>
17
+ </linearGradient>
18
+ </defs>
19
+ <path id="path11907" d="m 2.277686,60.343382 v 3.25342 h 45.379267 v -3.25342 H 2.277686" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
20
+ <path id="path11020" d="M 47.765643,8.1809483 55.044279,1.3761504 55.028695,57.643455 47.654539,63.62027 47.765638,8.1809483" style="fill:#000000;fill-opacity:0.39215686;stroke:none;stroke-width:1.06666672"/>
21
+ <path id="path2037" d="M 0.47692057,5.3149867 V 49.230745 H 47.778461 V 5.3149867 H 0.47692057" style="fill:#6e8caa;fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
22
+ <path id="path2041" d="M 0,5.8198859 6.0551291,0.04776213 H 53.885337 L 47.777093,5.8198859 H 0" style="fill:url(#linearGradient6875);fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
23
+ <path id="path2045" d="M 47.635174,5.2911061 53.670405,0 v 43.968341 l -6.035231,5.291106 V 5.2911061" style="fill:#6e8296;fill-opacity:1;stroke:none;stroke-width:1.06666672"/>
24
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="m 68.017411,-124.00618 h 32.336679 v -2.5979 l 6.95208,5.19579 -6.95208,5.62568 v -2.59789 H 68.017411 v -5.62568" id="path39"/>
25
+ <path style="fill:#000000;stroke:#ffffff;stroke-width:1.06040335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 56.893321,-121.40829 H 70.452314" id="path61"/>
26
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,61.82555 H 0.42243277 V 55.665507 H 16.19484 v 6.160043" id="path99"/>
27
+ <path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47963932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,61.82555 H 0.57567743" id="path101"/>
28
+ <path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.66977537,55.665507 H 16.19484 v 6.160043" id="path103"/>
29
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,61.82555 H 31.991982 v -6.160043 h 15.788901 v 6.160043" id="path105"/>
30
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 40.280128,61.82555 H 24.474743 v -6.160043 h 15.805385 v 6.160043" id="path107"/>
31
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 24.474743,61.82555 H 8.6940847 V 55.665507 H 24.474743 v 6.160043" id="path109"/>
32
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.50290239;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,53.512289 2.638353,-2.735375 v -6.805626 l -2.638353,2.720386 v 6.820615" id="path111"/>
33
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 50.792321,59.372711 2.638353,-2.166775 v -6.166822 l -2.638353,2.160008 v 6.173589" id="path125"/>
34
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,61.82555 3.011438,-2.452839 v -6.173589 l -3.011438,2.466385 v 6.160043" id="path127"/>
35
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 31.991982,55.665507 H 16.19484 v -6.166811 h 15.797142 v 6.166811" id="path133"/>
36
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.06040335" d="M 16.19484,55.665507 H 0.42243277 V 49.498685 H 16.19484 v 6.166822" id="path135"/>
37
+ <path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48108193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 16.19484,55.665507 H 0.48158037" id="path137"/>
38
+ <path style="fill:#000000;stroke:#e1e1e1;stroke-width:0.48039833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 0.52620409,49.498696 H 16.19484 v 6.166811" id="path139"/>
39
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.47819233;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="M 47.780883,55.665507 H 31.991982 v -6.166811 h 15.788901 v 6.166811" id="path141"/>
40
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#e1e1e1;stroke-width:0.48692337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1" d="m 47.780883,55.665507 3.011438,-2.557269 v -6.387053 l -3.011438,2.550268 v 6.394054" id="path145"/>
41
+ <path d="M 24.272 46.546 C 34.337 46.546 42.543 38.338 42.543 28.274 C 42.543 18.21 34.337 10 24.272 10 C 14.207 10 6 18.21 6 28.274 C 6 38.338 14.207 46.546 24.272 46.546 Z" fill="#12537c"/>
42
+ <path d="M 24.001 48.003 C 35.017 48.003 44 39.018 44 28.003 C 44 16.987 35.017 8 24.001 8 C 12.984 8 4 16.987 4 28.003 C 4 39.018 12.984 48.003 24.001 48.003 Z" stroke="#bcbec0" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1.125" style="fill: rgb(18, 83, 124);"/>
43
+ <path d="M 22.025 26.701 L 20.936 26.701 L 8.503 26.701 L 8.503 23.706 L 19.439 23.706 L 19.439 17.324 L 17.836 17.324 L 19.397 14.621 L 20.604 12.533 L 20.958 11.92 L 22.52 14.621 L 24.078 17.324 L 23.366 17.324 L 22.434 17.324 L 22.434 25.203 L 22.434 26.701 L 22.025 26.701 L 22.025 26.701 Z M 34.665 27.673 L 34.665 26.701 L 26.887 26.701 L 25.39 26.701 L 25.39 26.289 L 25.39 25.203 L 25.39 12.858 L 28.385 12.858 L 28.385 23.705 L 34.664 23.705 L 34.666 22.141 L 37.366 23.703 L 39.453 24.907 L 39.248 25.264 L 39.453 24.907 L 40.069 25.263 L 37.366 26.824 L 34.664 28.381 L 34.664 27.673 L 34.665 27.673 Z M 19.849 43.677 L 19.849 43.267 L 20.261 43.267 L 19.849 43.267 L 19.849 43.677 L 19.439 43.677 L 19.439 32.828 L 13.334 32.828 L 13.334 34.468 L 10.633 32.907 L 7.931 31.348 L 10.633 29.787 L 13.334 28.228 L 13.334 28.937 L 13.334 29.835 L 20.936 29.835 L 22.434 29.835 L 22.434 30.245 L 22.434 31.331 L 22.434 43.677 L 19.849 43.677 L 19.849 43.677 Z M 26.886 43.239 L 27.242 43.034 L 26.886 43.239 L 26.886 43.239 Z M 25.325 41.358 L 23.766 38.654 L 24.477 38.654 L 25.39 38.653 L 25.39 31.331 L 25.39 29.835 L 25.8 29.835 L 26.887 29.835 L 39.32 29.835 L 39.32 32.828 L 28.386 32.828 L 28.386 38.655 L 30.006 38.655 L 28.446 41.359 L 27.242 43.444 L 26.887 44.062 L 25.325 41.358 L 25.325 41.358 Z" fill="white"/>
44
+ </svg>
@@ -0,0 +1,35 @@
1
+ <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect height="60" width="60" x="0" y="0" style="fill:#ffffff" />
3
+ <path d="M43.8 7.2H52.8V37.2H60V0H43.8V7.2Z" fill="url(#paint0_linear)"/>
4
+ <path d="M37.2 0H0V16.2H7.2V7.2H37.2V0Z" fill="url(#paint1_linear)"/>
5
+ <path d="M7.2 22.8H0V60H16.2V52.8H7.2V22.8Z" fill="url(#paint2_linear)"/>
6
+ <path d="M22.8 52.8V60H60V43.8H52.8V52.8H22.8Z" fill="url(#paint3_linear)"/>
7
+ <path d="M13.2 13.2H20.4L33.6 46.8H26.4L13.2 13.2Z" fill="url(#paint4_linear)"/>
8
+ <path d="M46.8 13.2H39.6L26.4 46.8H33.6L46.8 13.2Z" fill="url(#paint5_linear)"/>
9
+ <defs>
10
+ <linearGradient id="paint0_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#FFBF12"/>
12
+ <stop offset="1" stop-color="#FF9000"/>
13
+ </linearGradient>
14
+ <linearGradient id="paint1_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
15
+ <stop stop-color="#FFBF12"/>
16
+ <stop offset="1" stop-color="#FF9000"/>
17
+ </linearGradient>
18
+ <linearGradient id="paint2_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
19
+ <stop stop-color="#FFBF12"/>
20
+ <stop offset="1" stop-color="#FF9000"/>
21
+ </linearGradient>
22
+ <linearGradient id="paint3_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
23
+ <stop stop-color="#FFBF12"/>
24
+ <stop offset="1" stop-color="#FF9000"/>
25
+ </linearGradient>
26
+ <linearGradient id="paint4_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
27
+ <stop stop-color="#FFBF12"/>
28
+ <stop offset="1" stop-color="#FF9000"/>
29
+ </linearGradient>
30
+ <linearGradient id="paint5_linear" x1="0" y1="0" x2="60" y2="60" gradientUnits="userSpaceOnUse">
31
+ <stop stop-color="#FFBF12"/>
32
+ <stop offset="1" stop-color="#FF9000"/>
33
+ </linearGradient>
34
+ </defs>
35
+ </svg>
Binary file
Binary file
@@ -20,7 +20,7 @@ from .common import ErrorMessage
20
20
  from .version import Version
21
21
 
22
22
  # Controller schemas
23
- from .controller.links import LinkCreate, LinkUpdate, Link
23
+ from .controller.links import LinkCreate, LinkUpdate, Link, UDPPortInfo, EthernetPortInfo
24
24
  from .controller.computes import ComputeCreate, ComputeUpdate, ComputeVirtualBoxVM, ComputeVMwareVM, ComputeDockerImage, AutoIdlePC, Compute
25
25
  from .controller.templates import TemplateCreate, TemplateUpdate, TemplateUsage, Template
26
26
  from .controller.images import Image, ImageType
@@ -43,8 +43,8 @@ class DockerBase(BaseModel):
43
43
  environment: Optional[str] = Field(None, description="Docker environment variables")
44
44
  extra_hosts: Optional[str] = Field(None, description="Docker extra hosts (added to /etc/hosts)")
45
45
  extra_volumes: Optional[List[str]] = Field(None, description="Additional directories to make persistent")
46
- memory: Optional[int] = Field(None, description="Maximum amount of memory the container can use in MB")
47
- cpus: Optional[float] = Field(None, description="Maximum amount of CPU resources the container can use")
46
+ memory: Optional[int] = Field(None, ge=0, description="Maximum amount of memory the container can use in MB")
47
+ cpus: Optional[float] = Field(None, ge=0, description="Maximum amount of CPU resources the container can use")
48
48
  custom_adapters: Optional[List[CustomAdapter]] = Field(None, description="Custom adapters")
49
49
 
50
50
 
@@ -124,8 +124,8 @@ class DynamipsBase(BaseModel):
124
124
  name: Optional[str] = None
125
125
  dynamips_id: Optional[int] = Field(None, description="Dynamips internal ID")
126
126
  platform: Optional[DynamipsPlatform] = Field(None, description="Cisco router platform")
127
- ram: Optional[int] = Field(None, description="Amount of RAM in MB")
128
- nvram: Optional[int] = Field(None, description="Amount of NVRAM in KB")
127
+ ram: Optional[int] = Field(None, gt=0, description="Amount of RAM in MB")
128
+ nvram: Optional[int] = Field(None, gt=0, description="Amount of NVRAM in KB")
129
129
  image: Optional[str] = Field(None, description="Path to the IOS image")
130
130
  image_md5sum: Optional[str] = Field(None, description="Checksum of the IOS image")
131
131
  usage: Optional[str] = Field(None, description="How to use the Dynamips VM")
@@ -139,8 +139,8 @@ class DynamipsBase(BaseModel):
139
139
  idlemax: Optional[int] = Field(None, description="Idlemax value")
140
140
  idlesleep: Optional[int] = Field(None, description="Idlesleep value")
141
141
  exec_area: Optional[int] = Field(None, description="Exec area value")
142
- disk0: Optional[int] = Field(None, description="Disk0 size in MB")
143
- disk1: Optional[int] = Field(None, description="Disk1 size in MB")
142
+ disk0: Optional[int] = Field(None, ge=0, description="Disk0 size in MB")
143
+ disk1: Optional[int] = Field(None, ge=0, description="Disk1 size in MB")
144
144
  auto_delete_disks: Optional[bool] = Field(None, description="Automatically delete nvram and disk files")
145
145
  console: Optional[int] = Field(None, gt=0, le=65535, description="Console TCP port")
146
146
  console_type: Optional[DynamipsConsoleType] = Field(None, description="Console type")
@@ -176,7 +176,7 @@ class DynamipsCreate(DynamipsBase):
176
176
  name: str
177
177
  platform: str = Field(..., description="Cisco router platform", pattern="^c[0-9]{4}$")
178
178
  image: str = Field(..., description="Path to the IOS image")
179
- ram: int = Field(..., description="Amount of RAM in MB")
179
+ ram: int = Field(..., gt=0, description="Amount of RAM in MB")
180
180
 
181
181
 
182
182
  class DynamipsUpdate(DynamipsBase):
@@ -36,8 +36,8 @@ class IOUBase(BaseModel):
36
36
  md5sum: Optional[str] = Field(None, description="IOU executable checksum")
37
37
  serial_adapters: Optional[int] = Field(None, description="How many serial adapters are connected to IOU")
38
38
  ethernet_adapters: Optional[int] = Field(None, description="How many Ethernet adapters are connected to IOU")
39
- ram: Optional[int] = Field(None, description="Amount of RAM in MB")
40
- nvram: Optional[int] = Field(None, description="Amount of NVRAM in KB")
39
+ ram: Optional[int] = Field(None, gt=0, description="Amount of RAM in MB")
40
+ nvram: Optional[int] = Field(None, gt=0, description="Amount of NVRAM in KB")
41
41
  l1_keepalives: Optional[bool] = Field(None, description="Use default IOU values")
42
42
  use_default_iou_values: Optional[bool] = Field(None, description="Always up Ethernet interfaces")
43
43
  startup_config_content: Optional[str] = Field(None, description="Content of IOU startup configuration file")
@@ -92,3 +92,24 @@ class Link(LinkBase):
92
92
  None,
93
93
  description="Read only property. The compute identifier where a capture is running"
94
94
  )
95
+
96
+
97
+ class UDPPortInfo(BaseModel):
98
+ """
99
+ UDP port information.
100
+ """
101
+
102
+ node_id: UUID
103
+ lport: int
104
+ rhost: str
105
+ rport: int
106
+ type: str
107
+
108
+ class EthernetPortInfo(BaseModel):
109
+ """
110
+ Ethernet port information.
111
+ """
112
+
113
+ node_id: UUID
114
+ interface: str
115
+ type: str
@@ -49,8 +49,8 @@ class DockerTemplate(TemplateBase):
49
49
  )
50
50
  extra_hosts: Optional[str] = Field("", description="Docker extra hosts (added to /etc/hosts)")
51
51
  extra_volumes: Optional[List] = Field([], description="Additional directories to make persistent")
52
- memory: Optional[int] = Field(0, description="Maximum amount of memory the container can use in MB")
53
- cpus: Optional[float] = Field(0, description="Maximum amount of CPU resources the container can use")
52
+ memory: Optional[int] = Field(0, ge=0, description="Maximum amount of memory the container can use in MB")
53
+ cpus: Optional[float] = Field(0, ge=0, description="Maximum amount of CPU resources the container can use")
54
54
  custom_adapters: Optional[List[CustomAdapter]] = Field(default_factory=list, description="Custom adapters")
55
55
 
56
56
 
@@ -37,7 +37,7 @@ class DynamipsTemplate(TemplateBase):
37
37
  symbol: Optional[str] = "router"
38
38
  platform: DynamipsPlatform = Field(..., description="Cisco router platform")
39
39
  image: str = Field(..., description="Path to the IOS image")
40
- exec_area: Optional[int] = Field(64, description="Exec area value")
40
+ exec_area: Optional[int] = Field(64, ge=0, description="Exec area value")
41
41
  mmap: Optional[bool] = Field(True, description="MMAP feature")
42
42
  mac_addr: Optional[str] = Field(
43
43
  "", description="Base MAC address", pattern="^([0-9a-fA-F]{4}\\.){2}[0-9a-fA-F]{4}$|^$"
@@ -46,10 +46,10 @@ class DynamipsTemplate(TemplateBase):
46
46
  startup_config: Optional[str] = Field("ios_base_startup-config.txt", description="IOS startup configuration file")
47
47
  private_config: Optional[str] = Field("", description="IOS private configuration file")
48
48
  idlepc: Optional[str] = Field("", description="Idle-PC value", pattern="^(0x[0-9a-fA-F]+)?$|^$")
49
- idlemax: Optional[int] = Field(500, description="Idlemax value")
50
- idlesleep: Optional[int] = Field(30, description="Idlesleep value")
51
- disk0: Optional[int] = Field(0, description="Disk0 size in MB")
52
- disk1: Optional[int] = Field(0, description="Disk1 size in MB")
49
+ idlemax: Optional[int] = Field(500, ge=0, description="Idlemax value")
50
+ idlesleep: Optional[int] = Field(30, ge=0, description="Idlesleep value")
51
+ disk0: Optional[int] = Field(0, ge=0, description="Disk0 size in MB")
52
+ disk1: Optional[int] = Field(0, ge=0, description="Disk1 size in MB")
53
53
  auto_delete_disks: Optional[bool] = Field(False, description="Automatically delete nvram and disk files")
54
54
  console_type: Optional[DynamipsConsoleType] = Field(DynamipsConsoleType.telnet, description="Console type")
55
55
  console_auto_start: Optional[bool] = Field(
@@ -70,8 +70,8 @@ class DynamipsTemplate(TemplateBase):
70
70
 
71
71
  class C7200DynamipsTemplate(DynamipsTemplate):
72
72
 
73
- ram: Optional[int] = Field(512, description="Amount of RAM in MB")
74
- nvram: Optional[int] = Field(512, description="Amount of NVRAM in KB")
73
+ ram: Optional[int] = Field(512, gt=0, description="Amount of RAM in MB")
74
+ nvram: Optional[int] = Field(512, gt=0, description="Amount of NVRAM in KB")
75
75
  npe: Optional[DynamipsNPE] = Field(DynamipsNPE.npe_400, description="NPE model")
76
76
  midplane: Optional[DynamipsMidplane] = Field(DynamipsMidplane.vxr, description="Midplane model")
77
77
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
@@ -85,8 +85,8 @@ class C7200DynamipsTemplateUpdate(C7200DynamipsTemplate):
85
85
 
86
86
  class C3725DynamipsTemplate(DynamipsTemplate):
87
87
 
88
- ram: Optional[int] = Field(128, description="Amount of RAM in MB")
89
- nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
88
+ ram: Optional[int] = Field(128, gt=0, description="Amount of RAM in MB")
89
+ nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
90
90
  iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
91
91
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
92
92
 
@@ -99,8 +99,8 @@ class C3725DynamipsTemplateUpdate(C3725DynamipsTemplate):
99
99
 
100
100
  class C3745DynamipsTemplate(DynamipsTemplate):
101
101
 
102
- ram: Optional[int] = Field(256, description="Amount of RAM in MB")
103
- nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
102
+ ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
103
+ nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
104
104
  iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
105
105
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
106
106
 
@@ -121,8 +121,8 @@ class C3600ChassisType(str, Enum):
121
121
  class C3600DynamipsTemplate(DynamipsTemplate):
122
122
 
123
123
  chassis: Optional[C3600ChassisType] = Field("c3660", description="Chassis type")
124
- ram: Optional[int] = Field(192, description="Amount of RAM in MB")
125
- nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
124
+ ram: Optional[int] = Field(192, gt=0, description="Amount of RAM in MB")
125
+ nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
126
126
  iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
127
127
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
128
128
 
@@ -135,8 +135,8 @@ class C3600DynamipsTemplateUpdate(C3600DynamipsTemplate):
135
135
 
136
136
  class C2691DynamipsTemplate(DynamipsTemplate):
137
137
 
138
- ram: Optional[int] = Field(192, description="Amount of RAM in MB")
139
- nvram: Optional[int] = Field(256, description="Amount of NVRAM in KB")
138
+ ram: Optional[int] = Field(192, gt=0, description="Amount of RAM in MB")
139
+ nvram: Optional[int] = Field(256, gt=0, description="Amount of NVRAM in KB")
140
140
  iomem: Optional[int] = Field(5, ge=0, le=100, description="I/O memory percentage")
141
141
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
142
142
 
@@ -163,8 +163,8 @@ class C2600ChassisType(str, Enum):
163
163
  class C2600DynamipsTemplate(DynamipsTemplate):
164
164
 
165
165
  chassis: Optional[C2600ChassisType] = Field("2651XM", description="Chassis type")
166
- ram: Optional[int] = Field(160, description="Amount of RAM in MB")
167
- nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
166
+ ram: Optional[int] = Field(160, gt=0, description="Amount of RAM in MB")
167
+ nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
168
168
  iomem: Optional[int] = Field(15, ge=0, le=100, description="I/O memory percentage")
169
169
  sparsemem: Optional[bool] = Field(True, description="Sparse memory feature")
170
170
 
@@ -187,8 +187,8 @@ class C1700ChassisType(str, Enum):
187
187
  class C1700DynamipsTemplate(DynamipsTemplate):
188
188
 
189
189
  chassis: Optional[C1700ChassisType] = Field("1760", description="Chassis type")
190
- ram: Optional[int] = Field(160, description="Amount of RAM in MB")
191
- nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
190
+ ram: Optional[int] = Field(160, gt=0, description="Amount of RAM in MB")
191
+ nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
192
192
  iomem: Optional[int] = Field(15, ge=0, le=100, description="I/O memory percentage")
193
193
  sparsemem: Optional[bool] = Field(False, description="Sparse memory feature")
194
194
 
@@ -28,10 +28,10 @@ class IOUTemplate(TemplateBase):
28
28
  default_name_format: Optional[str] = "IOU{0}"
29
29
  symbol: Optional[str] = "multilayer_switch"
30
30
  path: str = Field(..., description="Path of IOU executable")
31
- ethernet_adapters: Optional[int] = Field(2, description="Number of ethernet adapters")
32
- serial_adapters: Optional[int] = Field(2, description="Number of serial adapters")
33
- ram: Optional[int] = Field(256, description="Amount of RAM in MB")
34
- nvram: Optional[int] = Field(128, description="Amount of NVRAM in KB")
31
+ ethernet_adapters: Optional[int] = Field(2, ge=0, description="Number of ethernet adapters")
32
+ serial_adapters: Optional[int] = Field(2, ge=0, description="Number of serial adapters")
33
+ ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
34
+ nvram: Optional[int] = Field(128, gt=0, description="Amount of NVRAM in KB")
35
35
  use_default_iou_values: Optional[bool] = Field(True, description="Use default IOU values")
36
36
  startup_config: Optional[str] = Field("iou_l3_base_startup-config.txt", description="Startup-config of IOU")
37
37
  private_config: Optional[str] = Field("", description="Private-config of IOU")
@@ -39,7 +39,7 @@ class QemuTemplate(TemplateBase):
39
39
  qemu_path: Optional[str] = Field("", description="Qemu executable path")
40
40
  platform: Optional[QemuPlatform] = Field(QemuPlatform.x86_64, description="Platform to emulate")
41
41
  linked_clone: Optional[bool] = Field(True, description="Whether the VM is a linked clone or not")
42
- ram: Optional[int] = Field(256, description="Amount of RAM in MB")
42
+ ram: Optional[int] = Field(256, gt=0, description="Amount of RAM in MB")
43
43
  cpus: Optional[int] = Field(1, ge=1, le=255, description="Number of vCPUs")
44
44
  maxcpus: Optional[int] = Field(1, ge=1, le=255, description="Maximum number of hotpluggable vCPUs")
45
45
  adapters: Optional[int] = Field(1, ge=0, le=275, description="Number of adapters")