gns3-server 3.0.0b2__py3-none-any.whl → 3.0.0b3__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.
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/METADATA +8 -8
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/RECORD +44 -27
- gns3server/api/routes/compute/dynamips_nodes.py +2 -2
- gns3server/api/routes/controller/images.py +4 -2
- gns3server/appliances/arista-veos.gns3a +178 -2
- gns3server/appliances/asterfusion-vAsterNOS.gns3a +2 -2
- gns3server/appliances/cisco-c8000v.gns3a +14 -1
- gns3server/appliances/openvswitch-management.gns3a +1 -1
- gns3server/appliances/opnsense.gns3a +2 -2
- gns3server/compute/docker/__init__.py +1 -1
- gns3server/compute/dynamips/__init__.py +4 -0
- gns3server/compute/iou/iou_vm.py +2 -1
- gns3server/controller/snapshot.py +3 -3
- gns3server/controller/symbol_themes.py +7 -0
- gns3server/controller/udp_link.py +1 -1
- gns3server/crash_report.py +1 -1
- gns3server/schemas/controller/templates/__init__.py +0 -1
- gns3server/services/authentication.py +2 -2
- gns3server/services/templates.py +1 -1
- gns3server/static/web-ui/index.html +1 -1
- gns3server/static/web-ui/main.f3840f9b1c0240e6.js +1 -0
- gns3server/symbols/affinity/circle/blue/nat.svg +60 -0
- gns3server/symbols/affinity/circle/blue/nat2.svg +55 -0
- gns3server/symbols/affinity/circle/gray/nat.svg +60 -0
- gns3server/symbols/affinity/circle/gray/nat2.svg +55 -0
- gns3server/symbols/affinity/circle/green/nat.svg +60 -0
- gns3server/symbols/affinity/circle/green/nat2.svg +55 -0
- gns3server/symbols/affinity/circle/red/nat.svg +60 -0
- gns3server/symbols/affinity/circle/red/nat2.svg +55 -0
- gns3server/symbols/affinity/square/blue/nat.svg +58 -0
- gns3server/symbols/affinity/square/blue/nat2.svg +74 -0
- gns3server/symbols/affinity/square/gray/nat.svg +58 -0
- gns3server/symbols/affinity/square/gray/nat2.svg +74 -0
- gns3server/symbols/affinity/square/green/nat.svg +58 -0
- gns3server/symbols/affinity/square/green/nat2.svg +74 -0
- gns3server/symbols/affinity/square/red/nat.svg +58 -0
- gns3server/symbols/affinity/square/red/nat2.svg +74 -0
- gns3server/symbols/classic/nat.svg +207 -0
- gns3server/utils/images.py +3 -5
- gns3server/version.py +1 -1
- gns3server/static/web-ui/main.8e8e3d55e78d84fc.js +0 -1
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/LICENSE +0 -0
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/WHEEL +0 -0
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/entry_points.txt +0 -0
- {gns3_server-3.0.0b2.dist-info → gns3_server-3.0.0b3.dist-info}/top_level.txt +0 -0
gns3server/compute/iou/iou_vm.py
CHANGED
|
@@ -661,7 +661,8 @@ class IOUVM(BaseNode):
|
|
|
661
661
|
self._telnet_server.close()
|
|
662
662
|
await self._telnet_server.wait_closed()
|
|
663
663
|
self._telnet_server = None
|
|
664
|
-
|
|
664
|
+
if self.is_running():
|
|
665
|
+
await self.start_console()
|
|
665
666
|
|
|
666
667
|
@locking
|
|
667
668
|
async def _networking(self):
|
|
@@ -51,11 +51,11 @@ class Snapshot:
|
|
|
51
51
|
self._project = project
|
|
52
52
|
if name:
|
|
53
53
|
self._name = name
|
|
54
|
-
self._created_at = datetime.now().timestamp()
|
|
54
|
+
self._created_at = datetime.now(timezone.utc).timestamp()
|
|
55
55
|
filename = (
|
|
56
56
|
self._name
|
|
57
57
|
+ "_"
|
|
58
|
-
+ datetime.
|
|
58
|
+
+ datetime.fromtimestamp(self._created_at, tz=timezone.utc).replace(tzinfo=None).strftime("%d%m%y_%H%M%S")
|
|
59
59
|
+ ".gns3project"
|
|
60
60
|
)
|
|
61
61
|
else:
|
|
@@ -66,7 +66,7 @@ class Snapshot:
|
|
|
66
66
|
datetime.strptime(datestring, "%d%m%y_%H%M%S").replace(tzinfo=timezone.utc).timestamp()
|
|
67
67
|
)
|
|
68
68
|
except ValueError:
|
|
69
|
-
self._created_at = datetime.
|
|
69
|
+
self._created_at = datetime.now(timezone.utc)
|
|
70
70
|
self._path = os.path.join(project.path, "snapshots", filename)
|
|
71
71
|
|
|
72
72
|
@property
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
CLASSIC_SYMBOL_THEME = {
|
|
20
20
|
"cloud": ":/symbols/classic/cloud.svg",
|
|
21
|
+
"nat": ":/symbols/classic/nat.svg",
|
|
21
22
|
"ethernet_switch": ":/symbols/classic/ethernet_switch.svg",
|
|
22
23
|
"hub": ":/symbols/classic/hub.svg",
|
|
23
24
|
"frame_relay_switch": ":/symbols/classic/frame_relay_switch.svg",
|
|
@@ -35,6 +36,7 @@ CLASSIC_SYMBOL_THEME = {
|
|
|
35
36
|
|
|
36
37
|
AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {
|
|
37
38
|
"cloud": ":/symbols/affinity/square/blue/cloud.svg",
|
|
39
|
+
"nat": ":/symbols/affinity/square/blue/nat.svg",
|
|
38
40
|
"ethernet_switch": ":/symbols/affinity/square/blue/switch.svg",
|
|
39
41
|
"hub": ":/symbols/affinity/square/blue/hub.svg",
|
|
40
42
|
"frame_relay_switch": ":/symbols/affinity/square/blue/isdn.svg",
|
|
@@ -52,6 +54,7 @@ AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {
|
|
|
52
54
|
|
|
53
55
|
AFFINITY_SQUARE_RED_SYMBOL_THEME = {
|
|
54
56
|
"cloud": ":/symbols/affinity/square/red/cloud.svg",
|
|
57
|
+
"nat": ":/symbols/affinity/square/red/nat.svg",
|
|
55
58
|
"ethernet_switch": ":/symbols/affinity/square/red/switch.svg",
|
|
56
59
|
"hub": ":/symbols/affinity/square/red/hub.svg",
|
|
57
60
|
"frame_relay_switch": ":/symbols/affinity/square/red/isdn.svg",
|
|
@@ -69,6 +72,7 @@ AFFINITY_SQUARE_RED_SYMBOL_THEME = {
|
|
|
69
72
|
|
|
70
73
|
AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {
|
|
71
74
|
"cloud": ":/symbols/affinity/square/gray/cloud.svg",
|
|
75
|
+
"nat": ":/symbols/affinity/square/gray/nat.svg",
|
|
72
76
|
"ethernet_switch": ":/symbols/affinity/square/gray/switch.svg",
|
|
73
77
|
"hub": ":/symbols/affinity/square/gray/hub.svg",
|
|
74
78
|
"frame_relay_switch": ":/symbols/affinity/square/gray/isdn.svg",
|
|
@@ -86,6 +90,7 @@ AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {
|
|
|
86
90
|
|
|
87
91
|
AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {
|
|
88
92
|
"cloud": ":/symbols/affinity/circle/blue/cloud.svg",
|
|
93
|
+
"nat": ":/symbols/affinity/circle/blue/nat.svg",
|
|
89
94
|
"ethernet_switch": ":/symbols/affinity/circle/blue/switch.svg",
|
|
90
95
|
"hub": ":/symbols/affinity/circle/blue/hub.svg",
|
|
91
96
|
"frame_relay_switch": ":/symbols/affinity/circle/blue/isdn.svg",
|
|
@@ -103,6 +108,7 @@ AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {
|
|
|
103
108
|
|
|
104
109
|
AFFINITY_CIRCLE_RED_SYMBOL_THEME = {
|
|
105
110
|
"cloud": ":/symbols/affinity/circle/red/cloud.svg",
|
|
111
|
+
"nat": ":/symbols/affinity/circle/red/nat.svg",
|
|
106
112
|
"ethernet_switch": ":/symbols/affinity/circle/red/switch.svg",
|
|
107
113
|
"hub": ":/symbols/affinity/circle/red/hub.svg",
|
|
108
114
|
"frame_relay_switch": ":/symbols/affinity/circle/red/isdn.svg",
|
|
@@ -120,6 +126,7 @@ AFFINITY_CIRCLE_RED_SYMBOL_THEME = {
|
|
|
120
126
|
|
|
121
127
|
AFFINITY_CIRCLE_GRAY_SYMBOL_THEME = {
|
|
122
128
|
"cloud": ":/symbols/affinity/circle/gray/cloud.svg",
|
|
129
|
+
"nat": ":/symbols/affinity/circle/gray/nat.svg",
|
|
123
130
|
"ethernet_switch": ":/symbols/affinity/circle/gray/switch.svg",
|
|
124
131
|
"hub": ":/symbols/affinity/circle/gray/hub.svg",
|
|
125
132
|
"frame_relay_switch": ":/symbols/affinity/circle/gray/isdn.svg",
|
|
@@ -213,7 +213,7 @@ class UDPLink(Link):
|
|
|
213
213
|
:returns: Node where the capture should run
|
|
214
214
|
"""
|
|
215
215
|
|
|
216
|
-
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub")
|
|
216
|
+
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub", "frame_relay_switch", "atm_switch")
|
|
217
217
|
|
|
218
218
|
for node in self._nodes:
|
|
219
219
|
if (
|
gns3server/crash_report.py
CHANGED
|
@@ -58,7 +58,7 @@ class CrashReport:
|
|
|
58
58
|
Report crash to a third party service
|
|
59
59
|
"""
|
|
60
60
|
|
|
61
|
-
DSN = "https://
|
|
61
|
+
DSN = "https://99870c759d1c1d62ceb091d59dbcfa78@o19455.ingest.us.sentry.io/38482"
|
|
62
62
|
_instance = None
|
|
63
63
|
|
|
64
64
|
def __init__(self):
|
|
@@ -45,7 +45,6 @@ class TemplateBase(BaseModel):
|
|
|
45
45
|
category: Optional[Category] = None
|
|
46
46
|
default_name_format: Optional[str] = None
|
|
47
47
|
symbol: Optional[str] = None
|
|
48
|
-
builtin: Optional[bool] = None
|
|
49
48
|
template_type: Optional[NodeType] = None
|
|
50
49
|
compute_id: Optional[str] = None
|
|
51
50
|
usage: Optional[str] = ""
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
from jose import JWTError, jwt
|
|
19
|
-
from datetime import datetime, timedelta
|
|
19
|
+
from datetime import datetime, timedelta, timezone
|
|
20
20
|
import bcrypt
|
|
21
21
|
|
|
22
22
|
from typing import Optional
|
|
@@ -48,7 +48,7 @@ class AuthService:
|
|
|
48
48
|
|
|
49
49
|
if not expires_in:
|
|
50
50
|
expires_in = Config.instance().settings.Controller.jwt_access_token_expire_minutes
|
|
51
|
-
expire = datetime.
|
|
51
|
+
expire = datetime.now(timezone.utc) + timedelta(minutes=expires_in)
|
|
52
52
|
to_encode = {"sub": username, "exp": expire}
|
|
53
53
|
if secret_key is None:
|
|
54
54
|
secret_key = Config.instance().settings.Controller.jwt_secret_key
|
gns3server/services/templates.py
CHANGED
|
@@ -46,6 +46,6 @@
|
|
|
46
46
|
|
|
47
47
|
gtag('config', 'G-5D6FZL9923');
|
|
48
48
|
</script>
|
|
49
|
-
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.
|
|
49
|
+
<script src="runtime.24fa95b7061d7056.js" type="module"></script><script src="polyfills.319c79dd175e50d0.js" type="module"></script><script src="main.f3840f9b1c0240e6.js" type="module"></script>
|
|
50
50
|
|
|
51
51
|
</body></html>
|