mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-01 16:20:13 +03:00
Merge branch '2.2' into 3.0
# Conflicts: # gns3server/compute/builtin/nodes/cloud.py # gns3server/compute/vmware/vmware_vm.py # gns3server/controller/link.py # gns3server/controller/snapshot.py # gns3server/handlers/api/compute/dynamips_vm_handler.py # gns3server/handlers/api/compute/iou_handler.py # gns3server/handlers/api/compute/qemu_handler.py # gns3server/handlers/api/controller/link_handler.py # gns3server/schemas/link.py # gns3server/utils/path.py # gns3server/version.py # requirements.txt
This commit is contained in:
commit
6ec028ea4e
@ -1,5 +1,14 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## 2.2.22 10/06/2021
|
||||||
|
|
||||||
|
* Fix VMware support on macOS BigSur
|
||||||
|
* Link style support. Fixes https://github.com/GNS3/gns3-gui/issues/2461
|
||||||
|
* Release web UI version 2.2.22
|
||||||
|
* Preserve auto_start/auto_open/auto_close when restoring snapshot
|
||||||
|
* Fix uBridge errors for cloud nodes not visible in logs. Fixes #1895
|
||||||
|
* Prevent directory traversal. Fixes #1894
|
||||||
|
|
||||||
## 2.2.21 10/05/2021
|
## 2.2.21 10/05/2021
|
||||||
|
|
||||||
* Release Web-Ui v2.2.21
|
* Release Web-Ui v2.2.21
|
||||||
|
|||||||
46
gns3server/appliances/6wind-turbo-router.gns3a
Normal file
46
gns3server/appliances/6wind-turbo-router.gns3a
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"name": "6WIND Turbo Router",
|
||||||
|
"category": "router",
|
||||||
|
"description": "6WIND Turbo Router is a high performance, ready-to-use software virtual router. It can be deployed bare metal or in virtual machines on commercial-off-the-shelf (COTS) servers. It is a carrier-grade solution for Service Prodivers aiming at using white boxes to deploy network functions. Typical use-cases are transit/peering router, IPsec VPN gateway and CGNAT.",
|
||||||
|
"vendor_name": "6WIND",
|
||||||
|
"vendor_url": "https://www.6wind.com/",
|
||||||
|
"documentation_url": "https://doc.6wind.com/turbo-router-3/latest/turbo-router/",
|
||||||
|
"product_name": "6WIND Turbo Router",
|
||||||
|
"product_url": "https://www.6wind.com/vrouter-solutions/turbo-router/",
|
||||||
|
"registry_version": 4,
|
||||||
|
"status": "stable",
|
||||||
|
"maintainer": "GNS3 Team",
|
||||||
|
"maintainer_email": "developers@gns3.net",
|
||||||
|
"usage": "Default username / password is admin / admin.",
|
||||||
|
"symbol": "6wind.svg",
|
||||||
|
"port_name_format": "eth{0}",
|
||||||
|
"qemu": {
|
||||||
|
"adapter_type": "virtio-net-pci",
|
||||||
|
"adapters": 8,
|
||||||
|
"ram": 4096,
|
||||||
|
"cpus": 4,
|
||||||
|
"hda_disk_interface": "virtio",
|
||||||
|
"arch": "x86_64",
|
||||||
|
"console_type": "telnet",
|
||||||
|
"boot_priority": "c",
|
||||||
|
"kvm": "require",
|
||||||
|
"options": "-cpu host"
|
||||||
|
},
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"filename": "6wind-vrouter-tr-ae-x86_64-v3.1.4.m1.qcow2",
|
||||||
|
"version": "3.1.4.m1",
|
||||||
|
"md5sum": "bc84b81fba4f2f01eda6a338469e37a5",
|
||||||
|
"filesize": 693829632,
|
||||||
|
"download_url": "https://portal.6wind.com/register.php?utm_campaign=GNS3-2021-EVAL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"versions": [
|
||||||
|
{
|
||||||
|
"name": "3.1.4.m1",
|
||||||
|
"images": {
|
||||||
|
"hda_disk_image": "6wind-vrouter-tr-ae-x86_64-v3.1.4.m1.qcow2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -30,6 +30,13 @@
|
|||||||
"filesize": 1048576,
|
"filesize": 1048576,
|
||||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "vios-adventerprisek9-m.spa.159-3.m3.qcow2",
|
||||||
|
"version": "15.9(3)M3",
|
||||||
|
"md5sum": "12893843af18e4c62f13d07266755653",
|
||||||
|
"filesize": 57296384,
|
||||||
|
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
"filename": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
||||||
@ -76,6 +83,13 @@
|
|||||||
],
|
],
|
||||||
"versions": [
|
"versions": [
|
||||||
{
|
{
|
||||||
|
"name": "15.9(3)M3",
|
||||||
|
"images": {
|
||||||
|
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m3.qcow2",
|
||||||
|
"hdb_disk_image": "IOSv_startup_config.img"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
"name": "15.9(3)M2",
|
"name": "15.9(3)M2",
|
||||||
"images": {
|
"images": {
|
||||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m2.qcow2",
|
||||||
|
|||||||
@ -23,6 +23,13 @@
|
|||||||
"kvm": "require"
|
"kvm": "require"
|
||||||
},
|
},
|
||||||
"images": [
|
"images": [
|
||||||
|
{
|
||||||
|
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2",
|
||||||
|
"version": "15.2(20200924:215240)",
|
||||||
|
"md5sum": "99ecab32de12410c533e6abd4e9710aa",
|
||||||
|
"filesize": 90409984,
|
||||||
|
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20190423.qcow2",
|
"filename": "vios_l2-adventerprisek9-m.ssa.high_iron_20190423.qcow2",
|
||||||
"version": "15.2(6.0.81)E",
|
"version": "15.2(6.0.81)E",
|
||||||
@ -53,6 +60,12 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"name": "15.2(20200924:215240)",
|
||||||
|
"images": {
|
||||||
|
"hda_disk_image": "vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "15.2(6.0.81)E",
|
"name": "15.2(6.0.81)E",
|
||||||
"images": {
|
"images": {
|
||||||
|
|||||||
@ -23,6 +23,14 @@
|
|||||||
"kvm": "require"
|
"kvm": "require"
|
||||||
},
|
},
|
||||||
"images": [
|
"images": [
|
||||||
|
{
|
||||||
|
"filename": "kali-linux-2021.1-live-amd64.iso",
|
||||||
|
"version": "2021.1",
|
||||||
|
"md5sum": "3a3716fef866e5c29a1c1ccfc94264b5",
|
||||||
|
"filesize": 3591385088,
|
||||||
|
"download_url": "http://cdimage.kali.org/kali-2021.1/",
|
||||||
|
"direct_download_url": "http://cdimage.kali.org/kali-2021.1/kali-linux-2021.1-live-amd64.iso"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"filename": "kali-linux-2019.3-amd64.iso",
|
"filename": "kali-linux-2019.3-amd64.iso",
|
||||||
"version": "2019.3",
|
"version": "2019.3",
|
||||||
@ -137,6 +145,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"name": "2021.1",
|
||||||
|
"images": {
|
||||||
|
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
|
||||||
|
"cdrom_image": "kali-linux-2021.1-live-amd64.iso"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "2019.3",
|
"name": "2019.3",
|
||||||
"images": {
|
"images": {
|
||||||
|
|||||||
@ -430,6 +430,7 @@ class Cloud(BaseNode):
|
|||||||
await self._add_ubridge_connection(nio, port_number)
|
await self._add_ubridge_connection(nio, port_number)
|
||||||
self._nios[port_number] = nio
|
self._nios[port_number] = nio
|
||||||
except (NodeError, UbridgeError) as e:
|
except (NodeError, UbridgeError) as e:
|
||||||
|
log.error('Cannot add NIO on cloud "{name}": {error}'.format(name=self._name, error=e))
|
||||||
await self._stop_ubridge()
|
await self._stop_ubridge()
|
||||||
self.status = "stopped"
|
self.status = "stopped"
|
||||||
self._nios[port_number] = nio
|
self._nios[port_number] = nio
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import asyncio
|
|||||||
import subprocess
|
import subprocess
|
||||||
import logging
|
import logging
|
||||||
import codecs
|
import codecs
|
||||||
|
import ipaddress
|
||||||
|
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from gns3server.utils.interfaces import interfaces
|
from gns3server.utils.interfaces import interfaces
|
||||||
@ -50,6 +51,7 @@ class VMware(BaseManager):
|
|||||||
self._vmrun_path = None
|
self._vmrun_path = None
|
||||||
self._host_type = None
|
self._host_type = None
|
||||||
self._vmnets = []
|
self._vmnets = []
|
||||||
|
self._vmnets_info = {}
|
||||||
self._vmnet_start_range = 2
|
self._vmnet_start_range = 2
|
||||||
if sys.platform.startswith("win"):
|
if sys.platform.startswith("win"):
|
||||||
self._vmnet_end_range = 19
|
self._vmnet_end_range = 19
|
||||||
@ -277,7 +279,7 @@ class VMware(BaseManager):
|
|||||||
else:
|
else:
|
||||||
# location on Linux
|
# location on Linux
|
||||||
vmware_networking_file = "/etc/vmware/networking"
|
vmware_networking_file = "/etc/vmware/networking"
|
||||||
vmnet_interfaces = []
|
vmnet_interfaces = {}
|
||||||
try:
|
try:
|
||||||
with open(vmware_networking_file, encoding="utf-8") as f:
|
with open(vmware_networking_file, encoding="utf-8") as f:
|
||||||
for line in f.read().splitlines():
|
for line in f.read().splitlines():
|
||||||
@ -285,7 +287,20 @@ class VMware(BaseManager):
|
|||||||
if match:
|
if match:
|
||||||
vmnet = f"vmnet{match.group(1)}"
|
vmnet = f"vmnet{match.group(1)}"
|
||||||
if vmnet not in ("vmnet0", "vmnet1", "vmnet8"):
|
if vmnet not in ("vmnet0", "vmnet1", "vmnet8"):
|
||||||
vmnet_interfaces.append(vmnet)
|
vmnet_interfaces[vmnet] = {}
|
||||||
|
with open(vmware_networking_file, "r", encoding="utf-8") as f:
|
||||||
|
for line in f.read().splitlines():
|
||||||
|
match = re.search(r"VNET_([0-9]+)_HOSTONLY_SUBNET\s+(.*)", line)
|
||||||
|
if match:
|
||||||
|
vmnet = "vmnet{}".format(match.group(1))
|
||||||
|
if vmnet in vmnet_interfaces.keys():
|
||||||
|
vmnet_interfaces[vmnet]["subnet"] = match.group(2)
|
||||||
|
match = re.search(r"VNET_([0-9]+)_HOSTONLY_NETMASK\s+(.*)", line)
|
||||||
|
if match:
|
||||||
|
vmnet = "vmnet{}".format(match.group(1))
|
||||||
|
if vmnet in vmnet_interfaces.keys():
|
||||||
|
vmnet_interfaces[vmnet]["netmask"] = match.group(2)
|
||||||
|
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
raise VMwareError(f"Cannot open {vmware_networking_file}: {e}")
|
raise VMwareError(f"Cannot open {vmware_networking_file}: {e}")
|
||||||
return vmnet_interfaces
|
return vmnet_interfaces
|
||||||
@ -330,6 +345,25 @@ class VMware(BaseManager):
|
|||||||
)
|
)
|
||||||
return self._vmnets.pop(0)
|
return self._vmnets.pop(0)
|
||||||
|
|
||||||
|
def find_bridge_interface(self, vmnet_interface):
|
||||||
|
"""
|
||||||
|
Find the bridge interface that is used for the vmnet interface in VMware.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if vmnet_interface in self._vmnets_info.keys():
|
||||||
|
subnet = self._vmnets_info[vmnet_interface].get("subnet", None)
|
||||||
|
netmask = self._vmnets_info[vmnet_interface].get("netmask", None)
|
||||||
|
if subnet and netmask:
|
||||||
|
for interface in interfaces():
|
||||||
|
try:
|
||||||
|
network = ipaddress.ip_network(f"{subnet}/{netmask}")
|
||||||
|
ip = ipaddress.ip_address(interface["ip_address"])
|
||||||
|
except ValueError:
|
||||||
|
continue
|
||||||
|
if ip in network:
|
||||||
|
return interface["name"]
|
||||||
|
return None
|
||||||
|
|
||||||
def refresh_vmnet_list(self, ubridge=True):
|
def refresh_vmnet_list(self, ubridge=True):
|
||||||
|
|
||||||
if ubridge:
|
if ubridge:
|
||||||
@ -338,6 +372,8 @@ class VMware(BaseManager):
|
|||||||
else:
|
else:
|
||||||
vmnet_interfaces = self._get_vmnet_interfaces()
|
vmnet_interfaces = self._get_vmnet_interfaces()
|
||||||
|
|
||||||
|
self._vmnets_info = vmnet_interfaces.copy()
|
||||||
|
vmnet_interfaces = list(vmnet_interfaces.keys())
|
||||||
# remove vmnets already in use
|
# remove vmnets already in use
|
||||||
for vmware_vm in self._nodes.values():
|
for vmware_vm in self._nodes.values():
|
||||||
for used_vmnet in vmware_vm.vmnets:
|
for used_vmnet in vmware_vm.vmnets:
|
||||||
@ -754,5 +790,4 @@ class VMware(BaseManager):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
vmware = VMware.instance()
|
vmware = VMware.instance()
|
||||||
print("=> Check version")
|
|
||||||
loop.run_until_complete(asyncio.ensure_future(vmware.check_vmware_version()))
|
loop.run_until_complete(asyncio.ensure_future(vmware.check_vmware_version()))
|
||||||
|
|||||||
@ -22,9 +22,11 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import platform
|
||||||
|
|
||||||
from gns3server.utils.asyncio.telnet_server import AsyncioTelnetServer
|
from gns3server.utils.asyncio.telnet_server import AsyncioTelnetServer
|
||||||
from gns3server.utils.asyncio.serial import asyncio_open_serial
|
from gns3server.utils.asyncio.serial import asyncio_open_serial
|
||||||
|
from gns3server.utils import parse_version
|
||||||
from gns3server.utils.asyncio import locking
|
from gns3server.utils.asyncio import locking
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from .vmware_error import VMwareError
|
from .vmware_error import VMwareError
|
||||||
@ -260,8 +262,13 @@ class VMwareVM(BaseNode):
|
|||||||
if self._get_vmx_setting(connected):
|
if self._get_vmx_setting(connected):
|
||||||
del self._vmx_pairs[connected]
|
del self._vmx_pairs[connected]
|
||||||
|
|
||||||
|
use_ubridge = True
|
||||||
|
# use alternative method to find vmnet interfaces on macOS >= 11.0 (BigSur)
|
||||||
|
# because "bridge" interfaces are used instead and they are only created on the VM starts
|
||||||
|
if sys.platform.startswith("darwin") and parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
|
||||||
|
use_ubridge = False
|
||||||
|
self.manager.refresh_vmnet_list(ubridge=use_ubridge)
|
||||||
# then configure VMware network adapters
|
# then configure VMware network adapters
|
||||||
self.manager.refresh_vmnet_list()
|
|
||||||
for adapter_number in range(0, self._adapters):
|
for adapter_number in range(0, self._adapters):
|
||||||
|
|
||||||
custom_adapter = self._get_custom_adapter_settings(adapter_number)
|
custom_adapter = self._get_custom_adapter_settings(adapter_number)
|
||||||
@ -347,8 +354,17 @@ class VMwareVM(BaseNode):
|
|||||||
vmnet_interface = os.path.basename(self._vmx_pairs[vnet])
|
vmnet_interface = os.path.basename(self._vmx_pairs[vnet])
|
||||||
|
|
||||||
if sys.platform.startswith("darwin"):
|
if sys.platform.startswith("darwin"):
|
||||||
# special case on OSX, we cannot bind VMnet interfaces using the libpcap
|
if parse_version(platform.mac_ver()[0]) >= parse_version("11.0.0"):
|
||||||
await self._ubridge_send(f'bridge add_nio_fusion_vmnet {vnet} "{vmnet_interface}"')
|
# a bridge interface (bridge100, bridge101 etc.) is used instead of a vmnet interface
|
||||||
|
# on macOS >= 11.0 (Big Sur)
|
||||||
|
vmnet_interface = self.manager.find_bridge_interface(vmnet_interface)
|
||||||
|
if not vmnet_interface:
|
||||||
|
raise VMwareError(f"Could not find bridge interface linked with {vmnet_interface}")
|
||||||
|
block_host_traffic = self.manager.config.get_section_config("VMware").getboolean("block_host_traffic", False)
|
||||||
|
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||||
|
else:
|
||||||
|
# special case on macOS, we cannot bind VMnet interfaces using the libpcap
|
||||||
|
await self._ubridge_send('bridge add_nio_fusion_vmnet {name} "{interface}"'.format(name=vnet, interface=vmnet_interface))
|
||||||
else:
|
else:
|
||||||
block_host_traffic = self.manager.config.VMware.block_host_traffic
|
block_host_traffic = self.manager.config.VMware.block_host_traffic
|
||||||
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
await self._add_ubridge_ethernet_connection(vnet, vmnet_interface, block_host_traffic)
|
||||||
|
|||||||
@ -39,7 +39,8 @@ Handle the import of project from a .gns3project
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False):
|
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False,
|
||||||
|
auto_start=False, auto_open=False, auto_close=True):
|
||||||
"""
|
"""
|
||||||
Import a project contain in a zip file
|
Import a project contain in a zip file
|
||||||
|
|
||||||
@ -99,9 +100,9 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
|||||||
topology = load_topology(os.path.join(path, "project.gns3"))
|
topology = load_topology(os.path.join(path, "project.gns3"))
|
||||||
topology["name"] = project_name
|
topology["name"] = project_name
|
||||||
# To avoid unexpected behavior (project start without manual operations just after import)
|
# To avoid unexpected behavior (project start without manual operations just after import)
|
||||||
topology["auto_start"] = False
|
topology["auto_start"] = auto_start
|
||||||
topology["auto_open"] = False
|
topology["auto_open"] = auto_open
|
||||||
topology["auto_close"] = True
|
topology["auto_close"] = auto_close
|
||||||
|
|
||||||
# Generate a new node id
|
# Generate a new node id
|
||||||
node_old_to_new = {}
|
node_old_to_new = {}
|
||||||
|
|||||||
@ -85,6 +85,7 @@ class Link:
|
|||||||
self._link_type = "ethernet"
|
self._link_type = "ethernet"
|
||||||
self._suspended = False
|
self._suspended = False
|
||||||
self._filters = {}
|
self._filters = {}
|
||||||
|
self._link_style = {}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def filters(self):
|
def filters(self):
|
||||||
@ -170,6 +171,13 @@ class Link:
|
|||||||
self._project.emit_notification("link.updated", self.asdict())
|
self._project.emit_notification("link.updated", self.asdict())
|
||||||
self._project.dump()
|
self._project.dump()
|
||||||
|
|
||||||
|
async def update_link_style(self, link_style):
|
||||||
|
if link_style != self._link_style:
|
||||||
|
self._link_style = link_style
|
||||||
|
await self.update()
|
||||||
|
self._project.emit_notification("link.updated", self.__json__())
|
||||||
|
self._project.dump()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created(self):
|
def created(self):
|
||||||
"""
|
"""
|
||||||
@ -432,7 +440,13 @@ class Link:
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
if topology_dump:
|
if topology_dump:
|
||||||
return {"nodes": res, "link_id": self._id, "filters": self._filters, "suspend": self._suspended}
|
return {
|
||||||
|
"nodes": res,
|
||||||
|
"link_id": self._id,
|
||||||
|
"filters": self._filters,
|
||||||
|
"link_style": self._link_style,
|
||||||
|
"suspend": self._suspended,
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
"nodes": res,
|
"nodes": res,
|
||||||
"link_id": self._id,
|
"link_id": self._id,
|
||||||
@ -444,4 +458,5 @@ class Link:
|
|||||||
"link_type": self._link_type,
|
"link_type": self._link_type,
|
||||||
"filters": self._filters,
|
"filters": self._filters,
|
||||||
"suspend": self._suspended,
|
"suspend": self._suspended,
|
||||||
|
"link_style": self._link_style,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -966,6 +966,8 @@ class Project:
|
|||||||
link = await self.add_link(link_id=link_data["link_id"])
|
link = await self.add_link(link_id=link_data["link_id"])
|
||||||
if "filters" in link_data:
|
if "filters" in link_data:
|
||||||
await link.update_filters(link_data["filters"])
|
await link.update_filters(link_data["filters"])
|
||||||
|
if "link_style" in link_data:
|
||||||
|
await link.update_link_style(link_data["link_style"])
|
||||||
for node_link in link_data.get("nodes", []):
|
for node_link in link_data.get("nodes", []):
|
||||||
node = self.get_node(node_link["node_id"])
|
node = self.get_node(node_link["node_id"])
|
||||||
port = node.get_port(node_link["adapter_number"], node_link["port_number"])
|
port = node.get_port(node_link["adapter_number"], node_link["port_number"])
|
||||||
|
|||||||
@ -127,9 +127,9 @@ class Snapshot:
|
|||||||
if os.path.exists(project_files_path):
|
if os.path.exists(project_files_path):
|
||||||
await wait_run_in_executor(shutil.rmtree, project_files_path)
|
await wait_run_in_executor(shutil.rmtree, project_files_path)
|
||||||
with open(self._path, "rb") as f:
|
with open(self._path, "rb") as f:
|
||||||
project = await import_project(
|
project = await import_project(self._project.controller, self._project.id, f, location=self._project.path,
|
||||||
self._project.controller, self._project.id, f, location=self._project.path
|
auto_start=self._project.auto_start, auto_open=self._project.auto_open,
|
||||||
)
|
auto_close=self._project.auto_close)
|
||||||
except (OSError, PermissionError) as e:
|
except (OSError, PermissionError) as e:
|
||||||
raise ControllerError(str(e))
|
raise ControllerError(str(e))
|
||||||
await project.open()
|
await project.open()
|
||||||
|
|||||||
@ -59,7 +59,7 @@ class CrashReport:
|
|||||||
Report crash to a third party service
|
Report crash to a third party service
|
||||||
"""
|
"""
|
||||||
|
|
||||||
DSN = "https://ccd9829f1391432c900aa835e7eb1050:83d10f4d74654e2b8428129a62cf31cf@o19455.ingest.sentry.io/38482"
|
DSN = "https://022a311c303844b787956ede74383ad6:3013e7e214ad4473aa2cb3ade9eb2d40@o19455.ingest.sentry.io/38482"
|
||||||
_instance = None
|
_instance = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|||||||
0
gns3server/handlers/api/compute/iou_handler.py
Normal file
0
gns3server/handlers/api/compute/iou_handler.py
Normal file
0
gns3server/handlers/api/compute/qemu_handler.py
Normal file
0
gns3server/handlers/api/compute/qemu_handler.py
Normal file
0
gns3server/handlers/api/controller/link_handler.py
Normal file
0
gns3server/handlers/api/controller/link_handler.py
Normal file
0
gns3server/schemas/link.py
Normal file
0
gns3server/schemas/link.py
Normal file
1
gns3server/static/web-ui/26.cfdf2094b483560ea5f2.js
Normal file
1
gns3server/static/web-ui/26.cfdf2094b483560ea5f2.js
Normal file
File diff suppressed because one or more lines are too long
@ -23,9 +23,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
@angular-react/core
|
|
||||||
MIT
|
|
||||||
|
|
||||||
@angular/animations
|
@angular/animations
|
||||||
MIT
|
MIT
|
||||||
|
|
||||||
@ -371,31 +368,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
angular-persistence
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2017 Scott O'Bryan
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
angular-resizable-element
|
angular-resizable-element
|
||||||
MIT
|
MIT
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
@ -421,30 +393,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
angular2-indexeddb
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016 Gil Fink and contributors
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
bootstrap
|
bootstrap
|
||||||
MIT
|
MIT
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
@ -471,31 +419,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
classnames
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2017 Jed Watson
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
core-js
|
core-js
|
||||||
MIT
|
MIT
|
||||||
Copyright (c) 2014-2021 Denis Pushkarev
|
Copyright (c) 2014-2021 Denis Pushkarev
|
||||||
@ -519,31 +442,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
css-to-style
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2020 Jacob Buck
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
css-tree
|
css-tree
|
||||||
MIT
|
MIT
|
||||||
Copyright (C) 2016-2019 by Roman Dvornov
|
Copyright (C) 2016-2019 by Roman Dvornov
|
||||||
@ -567,25 +465,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
d
|
|
||||||
ISC
|
|
||||||
ISC License
|
|
||||||
|
|
||||||
Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
|
||||||
copyright notice and this permission notice appear in all copies.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
d3-array
|
d3-array
|
||||||
BSD-3-Clause
|
BSD-3-Clause
|
||||||
Copyright 2010-2016 Mike Bostock
|
Copyright 2010-2016 Mike Bostock
|
||||||
@ -1663,88 +1542,124 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
dom-helpers
|
mdn-data
|
||||||
MIT
|
CC0-1.0
|
||||||
The MIT License (MIT)
|
CC0 1.0 Universal
|
||||||
|
|
||||||
Copyright (c) 2015 Jason Quense
|
Statement of Purpose
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
The laws of most jurisdictions throughout the world automatically confer
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
exclusive Copyright and Related Rights (defined below) upon the creator and
|
||||||
in the Software without restriction, including without limitation the rights
|
subsequent owner(s) (each and all, an "owner") of an original work of
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
authorship and/or a database (each, a "Work").
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||||
copies or substantial portions of the Software.
|
purpose of contributing to a commons of creative, cultural and scientific
|
||||||
|
works ("Commons") that the public can reliably and without fear of later
|
||||||
|
claims of infringement build upon, modify, incorporate in other works, reuse
|
||||||
|
and redistribute as freely as possible in any form whatsoever and for any
|
||||||
|
purposes, including without limitation commercial purposes. These owners may
|
||||||
|
contribute to the Commons to promote the ideal of a free culture and the
|
||||||
|
further production of creative, cultural and scientific works, or to gain
|
||||||
|
reputation or greater distribution for their Work in part through the use and
|
||||||
|
efforts of others.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
For these and/or other purposes and motivations, and without any expectation
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
of additional consideration or compensation, the person associating CC0 with a
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
and publicly distribute the Work under its terms, with knowledge of his or her
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
Copyright and Related Rights in the Work and the meaning and intended legal
|
||||||
SOFTWARE.
|
effect of CC0 on those rights.
|
||||||
|
|
||||||
eev
|
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||||
MIT
|
protected by copyright and related or neighboring rights ("Copyright and
|
||||||
|
Related Rights"). Copyright and Related Rights include, but are not limited
|
||||||
|
to, the following:
|
||||||
|
|
||||||
es5-ext
|
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||||
ISC
|
and translate a Work;
|
||||||
ISC License
|
|
||||||
|
|
||||||
Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
|
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
depicted in a Work;
|
||||||
copyright notice and this permission notice appear in all copies.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
iv. rights protecting against unfair competition in regards to a Work,
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
subject to the limitations in paragraph 4(a), below;
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
|
v. rights protecting the extraction, dissemination, use and reuse of data in
|
||||||
|
a Work;
|
||||||
|
|
||||||
es6-symbol
|
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||||
ISC
|
European Parliament and of the Council of 11 March 1996 on the legal
|
||||||
ISC License
|
protection of databases, and under any national implementation thereof,
|
||||||
|
including any amended or successor version of such directive); and
|
||||||
|
|
||||||
Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
|
vii. other similar, equivalent or corresponding rights throughout the world
|
||||||
|
based on applicable law or treaty, and any national implementations thereof.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||||
copyright notice and this permission notice appear in all copies.
|
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||||
|
and Related Rights and associated claims and causes of action, whether now
|
||||||
|
known or unknown (including existing as well as future claims and causes of
|
||||||
|
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||||
|
duration provided by applicable law or treaty (including future time
|
||||||
|
extensions), (iii) in any current or future medium and for any number of
|
||||||
|
copies, and (iv) for any purpose whatsoever, including without limitation
|
||||||
|
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
|
||||||
|
the Waiver for the benefit of each member of the public at large and to the
|
||||||
|
detriment of Affirmer's heirs and successors, fully intending that such Waiver
|
||||||
|
shall not be subject to revocation, rescission, cancellation, termination, or
|
||||||
|
any other legal or equitable action to disrupt the quiet enjoyment of the Work
|
||||||
|
by the public as contemplated by Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
shall be preserved to the maximum extent permitted taking into account
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
is so judged Affirmer hereby grants to each affected person a royalty-free,
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
non transferable, non sublicensable, non exclusive, irrevocable and
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
unconditional license to exercise Affirmer's Copyright and Related Rights in
|
||||||
|
the Work (i) in all territories worldwide, (ii) for the maximum duration
|
||||||
|
provided by applicable law or treaty (including future time extensions), (iii)
|
||||||
|
in any current or future medium and for any number of copies, and (iv) for any
|
||||||
|
purpose whatsoever, including without limitation commercial, advertising or
|
||||||
|
promotional purposes (the "License"). The License shall be deemed effective as
|
||||||
|
of the date CC0 was applied by Affirmer to the Work. Should any part of the
|
||||||
|
License for any reason be judged legally invalid or ineffective under
|
||||||
|
applicable law, such partial invalidity or ineffectiveness shall not
|
||||||
|
invalidate the remainder of the License, and in such case Affirmer hereby
|
||||||
|
affirms that he or she will not (i) exercise any of his or her remaining
|
||||||
|
Copyright and Related Rights in the Work or (ii) assert any associated claims
|
||||||
|
and causes of action with respect to the Work, in either case contrary to
|
||||||
|
Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
|
4. Limitations and Disclaimers.
|
||||||
|
|
||||||
ext
|
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||||
ISC
|
surrendered, licensed or otherwise affected by this document.
|
||||||
ISC License
|
|
||||||
|
|
||||||
Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
|
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||||
|
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||||
|
including without limitation warranties of title, merchantability, fitness
|
||||||
|
for a particular purpose, non infringement, or the absence of latent or
|
||||||
|
other defects, accuracy, or the present or absence of errors, whether or not
|
||||||
|
discoverable, all to the greatest extent permissible under applicable law.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
that may apply to the Work or any use thereof, including without limitation
|
||||||
copyright notice and this permission notice appear in all copies.
|
any person's Copyright and Related Rights in the Work. Further, Affirmer
|
||||||
|
disclaims responsibility for obtaining any necessary consents, permissions
|
||||||
|
or other rights required for any use of the Work.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
party to this document and has no duty or obligation with respect to this
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
CC0 or use of the Work.
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
For more information, please see
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
<http://creativecommons.org/publicdomain/zero/1.0/>
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
mousetrap
|
mousetrap
|
||||||
@ -1953,6 +1868,7 @@ ngx-childprocess
|
|||||||
MIT
|
MIT
|
||||||
|
|
||||||
ngx-device-detector
|
ngx-device-detector
|
||||||
|
MIT
|
||||||
|
|
||||||
ngx-electron
|
ngx-electron
|
||||||
MIT
|
MIT
|
||||||
@ -2163,157 +2079,6 @@ Apache-2.0
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
object-assign
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
prop-types
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2013-present, Facebook, Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
prop-types-extra
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2015 react-bootstrap
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
react
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
react-bootstrap
|
|
||||||
MIT
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
react-dom
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
regenerator-runtime
|
regenerator-runtime
|
||||||
MIT
|
MIT
|
||||||
MIT License
|
MIT License
|
||||||
@ -2777,31 +2542,6 @@ THE SOFTWARE.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
scheduler
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
source-map
|
source-map
|
||||||
BSD-3-Clause
|
BSD-3-Clause
|
||||||
|
|
||||||
@ -2851,31 +2591,6 @@ WTFPL
|
|||||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||||
|
|
||||||
|
|
||||||
stylenames
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2016 Kevin
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
svg-crowbar
|
svg-crowbar
|
||||||
MIT
|
MIT
|
||||||
Copyright (c) 2013 The New York Times
|
Copyright (c) 2013 The New York Times
|
||||||
@ -2902,25 +2617,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
type
|
|
||||||
ISC
|
|
||||||
ISC License
|
|
||||||
|
|
||||||
Copyright (c) 2019, Mariusz Nowak, @medikoo, medikoo.com
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
|
||||||
copyright notice and this permission notice appear in all copies.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
uuid
|
uuid
|
||||||
MIT
|
MIT
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
@ -2946,31 +2642,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
warning
|
|
||||||
MIT
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2013-present, Facebook, Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
webpack
|
webpack
|
||||||
MIT
|
MIT
|
||||||
Copyright JS Foundation and other contributors
|
Copyright JS Foundation and other contributors
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
GNS3 WebUI is web implementation of user interface for GNS3 software.
|
GNS3 WebUI is web implementation of user interface for GNS3 software.
|
||||||
|
|
||||||
Current version: 2.2.19
|
Current version: 2.2.22
|
||||||
|
|
||||||
Current version: 2020.4.0-beta.1
|
Current version: 2020.4.0-beta.1
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gns3server/static/web-ui/main.a282bb409c84da5e1694.js
Normal file
1
gns3server/static/web-ui/main.a282bb409c84da5e1694.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
!function(e){function r(r){for(var n,l,f=r[0],i=r[1],p=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++)0!==o[t[f]]&&(n=!1);n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={0:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,(function(r){return e[r]}).bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="";var f=window.webpackJsonp=window.webpackJsonp||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var p=0;p<f.length;p++)r(f[p]);var a=i;t()}([]);
|
|
||||||
1
gns3server/static/web-ui/runtime.e26845e5075a4dddd709.js
Normal file
1
gns3server/static/web-ui/runtime.e26845e5075a4dddd709.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
!function(){"use strict";var e,n,r,t={},o={};function u(e){var n=o[e];if(void 0!==n)return n.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return t[e](r,r.exports,u),r.loaded=!0,r.exports}u.m=t,e=[],u.O=function(n,r,t,o){if(!r){var i=1/0;for(f=0;f<e.length;f++){r=e[f][0],t=e[f][1],o=e[f][2];for(var a=!0,c=0;c<r.length;c++)(!1&o||i>=o)&&Object.keys(u.O).every(function(e){return u.O[e](r[c])})?r.splice(c--,1):(a=!1,o<i&&(i=o));a&&(e.splice(f--,1),n=t())}return n}o=o||0;for(var f=e.length;f>0&&e[f-1][2]>o;f--)e[f]=e[f-1];e[f]=[r,t,o]},u.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(n,{a:n}),n},u.d=function(e,n){for(var r in n)u.o(n,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce(function(n,r){return u.f[r](e,n),n},[]))},u.u=function(e){return e+".cfdf2094b483560ea5f2.js"},u.miniCssF=function(e){return"styles.930334e6afa524cfbf2b.css"},u.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},u.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n={},r="gns3-web-ui:",u.l=function(e,t,o,i){if(n[e])n[e].push(t);else{var a,c;if(void 0!==o)for(var f=document.getElementsByTagName("script"),s=0;s<f.length;s++){var l=f[s];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==r+o){a=l;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,u.nc&&a.setAttribute("nonce",u.nc),a.setAttribute("data-webpack",r+o),a.src=e),n[e]=[t];var d=function(r,t){a.onerror=a.onload=null,clearTimeout(p);var o=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach(function(e){return e(t)}),r)return r(t)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),c&&document.head.appendChild(a)}},u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.p="",function(){var e={666:0};u.f.j=function(n,r){var t=u.o(e,n)?e[n]:void 0;if(0!==t)if(t)r.push(t[2]);else if(666!=n){var o=new Promise(function(r,o){t=e[n]=[r,o]});r.push(t[2]=o);var i=u.p+u.u(n),a=new Error;u.l(i,function(r){if(u.o(e,n)&&(0!==(t=e[n])&&(e[n]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;a.message="Loading chunk "+n+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,t[1](a)}},"chunk-"+n,n)}else e[n]=0},u.O.j=function(n){return 0===e[n]};var n=function(n,r){var t,o,i=r[0],a=r[1],c=r[2],f=0;for(t in a)u.o(a,t)&&(u.m[t]=a[t]);if(c)var s=c(u);for(n&&n(r);f<i.length;f++)u.o(e,o=i[f])&&e[o]&&e[o][0](),e[i[f]]=0;return u.O(s)},r=self.webpackChunkgns3_web_ui=self.webpackChunkgns3_web_ui||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();
|
||||||
File diff suppressed because one or more lines are too long
11
gns3server/static/web-ui/styles.930334e6afa524cfbf2b.css
Normal file
11
gns3server/static/web-ui/styles.930334e6afa524cfbf2b.css
Normal file
File diff suppressed because one or more lines are too long
@ -221,6 +221,7 @@ async def test_json(project, compute):
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filters": {},
|
"filters": {},
|
||||||
|
"link_style": {},
|
||||||
"suspend": False,
|
"suspend": False,
|
||||||
"link_type": "ethernet",
|
"link_type": "ethernet",
|
||||||
"capturing": False,
|
"capturing": False,
|
||||||
@ -250,6 +251,7 @@ async def test_json(project, compute):
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"link_style": {},
|
||||||
"filters": {},
|
"filters": {},
|
||||||
"suspend": False
|
"suspend": False
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user