diff --git a/CHANGELOG b/CHANGELOG
index c9b2e747..255471b4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,20 @@
# Change Log
+## 2.2.33.1 21/06/2022
+
+* Add missing file for web-ui v2.2.33
+
+## 2.2.33 20/06/2022
+
+* Release web-ui v2.2.33
+* Upgrade sentry-sdk and psutil
+* Remove parameter "Name" not useful to create a Docker container
+* Support to reset all console connections. Ref https://github.com/GNS3/gns3-server/issues/1619
+* Config option to disable built-in templates
+* Add hostname entry to sample network config for Docker nodes. Fixes #2039
+* Run Xtigervnc with MIT-SHM extension disabled for Docker VNC console support. Fixes #2071
+* Added OpenRC init script
+
## 2.2.32 27/04/2022
* Docker: load custom interface files from /etc/network/interfaces (commented by default). Ref #2052
diff --git a/conf/gns3_server.conf b/conf/gns3_server.conf
index c260ba6c..d4b94a1b 100644
--- a/conf/gns3_server.conf
+++ b/conf/gns3_server.conf
@@ -85,6 +85,9 @@ allowed_interfaces = eth0,eth1,virbr0
; Default is virbr0 on Linux (requires libvirt) and vmnet8 for other platforms (requires VMware)
default_nat_interface = vmnet10
+; Enable the built-in templates
+enable_builtin_templates = True
+
[VPCS]
; VPCS executable location, default: search in PATH
;vpcs_path = vpcs
diff --git a/gns3server/appliances/cisco-nxosv9k.gns3a b/gns3server/appliances/cisco-nxosv9k.gns3a
index 2c1862b8..9c4516e8 100644
--- a/gns3server/appliances/cisco-nxosv9k.gns3a
+++ b/gns3server/appliances/cisco-nxosv9k.gns3a
@@ -33,6 +33,13 @@
"filesize": 1592000512,
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
},
+ {
+ "filename": "nexus9300v.9.3.8.qcow2",
+ "version": "9300v 9.3.8",
+ "md5sum": "f8bd834f8395c134dc98d895c98441af",
+ "filesize": 1976434688,
+ "download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(8)"
+ },
{
"filename": "nexus9500v.9.3.7.qcow2",
"version": "9500v 9.3.7",
@@ -176,6 +183,13 @@
"bios_image": "OVMF-20160813.fd",
"hda_disk_image": "nexus9500v64.10.1.1.qcow2"
}
+ },
+ {
+ "name": "9300v 9.3.8",
+ "images": {
+ "bios_image": "OVMF-20160813.fd",
+ "hda_disk_image": "nexus9300v.9.3.8.qcow2"
+ }
},
{
"name": "9500v 9.3.7",
diff --git a/gns3server/appliances/exos.gns3a b/gns3server/appliances/exos.gns3a
index 14416153..6d596124 100644
--- a/gns3server/appliances/exos.gns3a
+++ b/gns3server/appliances/exos.gns3a
@@ -27,6 +27,13 @@
"options": "-cpu core2duo"
},
"images": [
+ {
+ "filename": "EXOS-VM_v31.7.1.4.qcow2",
+ "version": "31.7.1.4",
+ "md5sum": "a70e4fa3bc361434237ad12937aaf0fb",
+ "filesize": 458227712,
+ "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v31.7.1.4.qcow2"
+ },
{
"filename": "EXOS-VM_v31.1.1.3.qcow2",
"version": "31.1.1.3",
@@ -99,6 +106,12 @@
}
],
"versions": [
+ {
+ "name": "31.7.1.4",
+ "images": {
+ "hda_disk_image": "EXOS-VM_v31.7.1.4.qcow2"
+ }
+ },
{
"name": "31.1.1.3",
"images": {
diff --git a/gns3server/appliances/freebsd.gns3a b/gns3server/appliances/freebsd.gns3a
index 61f62171..f05f2986 100644
--- a/gns3server/appliances/freebsd.gns3a
+++ b/gns3server/appliances/freebsd.gns3a
@@ -24,125 +24,35 @@
},
"images": [
{
- "filename": "FreeBSD-12.1-RELEASE-amd64.qcow2",
- "version": "12.1",
- "md5sum": "0079b4ca99f64bb825cfbaefcca10fd4",
- "filesize": 3043229696,
+ "filename": "FreeBSD-13.0-RELEASE-amd64.qcow2",
+ "version": "13.0",
+ "md5sum": "e8e598959da456c03260421b5f9890de",
+ "filesize": 3466854400,
"download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.1-RELEASE/amd64/Latest/FreeBSD-12.1-RELEASE-amd64.qcow2.xz",
+ "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/13.0-RELEASE/amd64/Latest/FreeBSD-13.0-RELEASE-amd64.qcow2.xz",
"compression": "xz"
},
{
- "filename": "FreeBSD-12.0-RELEASE-amd64.qcow2",
- "version": "12.0",
- "md5sum": "4d2126ba79dad224628be6f25a908bd8",
- "filesize": 2644836352,
+ "filename": "FreeBSD-12.3-RELEASE-amd64.qcow2",
+ "version": "12.3",
+ "md5sum": "3d7d5396f3d89ed30c2bfa2ee2e6b013",
+ "filesize": 3412000768,
"download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.0-RELEASE/amd64/Latest/FreeBSD-12.0-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-11.3-RELEASE-amd64.qcow2",
- "version": "11.3",
- "md5sum": "cdb35f676571b91584ff88502c48d399",
- "filesize": 1698037760,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/11.3-RELEASE/amd64/Latest/FreeBSD-11.3-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-11.2-RELEASE-amd64.qcow2",
- "version": "11.2",
- "md5sum": "44d37e65be4bb4054f067911c84d074a",
- "filesize": 1630076928,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/amd64/Latest/FreeBSD-11.2-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-11.1-RELEASE-amd64.qcow2",
- "version": "11.1",
- "md5sum": "d78b2a7d05ec62f799e14ded4817ea69",
- "filesize": 1533345792,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/11.1-RELEASE/amd64/Latest/FreeBSD-11.1-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-11.0-RELEASE-amd64.qcow2",
- "version": "11.0",
- "md5sum": "1b04999198f492afd6dc4935b8c7cc22",
- "filesize": 1384382464,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/11.0-RELEASE/amd64/Latest/FreeBSD-11.0-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-10.4-RELEASE-amd64.qcow2",
- "version": "10.4",
- "md5sum": "ad498873733c57d1f6d890d587a11e3c",
- "filesize": 1013448704,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/10.4-RELEASE/amd64/Latest/FreeBSD-10.4-RELEASE-amd64.qcow2.xz",
- "compression": "xz"
- },
- {
- "filename": "FreeBSD-10.3-RELEASE-amd64.qcow2",
- "version": "10.3",
- "md5sum": "1a00cebef520dfac8d2bda10ea16a951",
- "filesize": 974651392,
- "download_url": "https://www.freebsd.org/where.html",
- "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/10.3-RELEASE/amd64/Latest/FreeBSD-10.3-RELEASE-amd64.qcow2.xz",
+ "direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.3-RELEASE/amd64/Latest/FreeBSD-12.3-RELEASE-amd64.qcow2.xz",
"compression": "xz"
}
],
"versions": [
{
- "name": "12.1",
+ "name": "13.0",
"images": {
- "hda_disk_image": "FreeBSD-12.1-RELEASE-amd64.qcow2"
+ "hda_disk_image": "FreeBSD-13.0-RELEASE-amd64.qcow2"
}
},
{
- "name": "12.0",
+ "name": "12.3",
"images": {
- "hda_disk_image": "FreeBSD-12.0-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "11.3",
- "images": {
- "hda_disk_image": "FreeBSD-11.3-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "11.2",
- "images": {
- "hda_disk_image": "FreeBSD-11.2-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "11.1",
- "images": {
- "hda_disk_image": "FreeBSD-11.1-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "11.0",
- "images": {
- "hda_disk_image": "FreeBSD-11.0-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "10.4",
- "images": {
- "hda_disk_image": "FreeBSD-10.4-RELEASE-amd64.qcow2"
- }
- },
- {
- "name": "10.3",
- "images": {
- "hda_disk_image": "FreeBSD-10.3-RELEASE-amd64.qcow2"
+ "hda_disk_image": "FreeBSD-12.3-RELEASE-amd64.qcow2"
}
}
]
diff --git a/gns3server/appliances/huawei-ar1kv.gns3a b/gns3server/appliances/huawei-ar1kv.gns3a
index ef2ccfbd..fdb1c9d1 100644
--- a/gns3server/appliances/huawei-ar1kv.gns3a
+++ b/gns3server/appliances/huawei-ar1kv.gns3a
@@ -26,6 +26,13 @@
"options": "-machine type=pc,accel=kvm -vga std -usbdevice tablet -cpu host"
},
"images": [
+ {
+ "filename": "huaweiar1k-5.170-V300R021C00SPC100T-Auto-update-esn.qcow2",
+ "version": "V300R021C00SPC100T",
+ "md5sum": "9d98b31d400a94af37b5af6e9cfe8d80",
+ "filesize": 673465344,
+ "download_url": "https://support.huawei.com/enterprise/en/routers/ar1000v-pid-21768212/software"
+ },
{
"filename": "ar1k-V300R019C00SPC300.qcow2",
"version": "V300R019C00SPC300",
@@ -33,13 +40,21 @@
"filesize": 534904832,
"download_url": "https://support.huawei.com/enterprise/en/routers/ar1000v-pid-21768212/software"
}
+
],
"versions": [
+ {
+ "name": "V300R021C00SPC100T",
+ "images": {
+ "hda_disk_image": "huaweiar1k-5.170-V300R021C00SPC100T-Auto-update-esn.qcow2"
+ }
+ },
{
"name": "V300R019C00SPC300",
"images": {
"hda_disk_image": "ar1k-V300R019C00SPC300.qcow2"
}
}
+
]
}
diff --git a/gns3server/appliances/ubuntu-gui.gns3a b/gns3server/appliances/ubuntu-gui.gns3a
index 5d36b2a1..5a073e4f 100644
--- a/gns3server/appliances/ubuntu-gui.gns3a
+++ b/gns3server/appliances/ubuntu-gui.gns3a
@@ -23,94 +23,55 @@
"console_type": "vnc",
"boot_priority": "c",
"kvm": "require",
- "options": "-vga virtio"
+ "options": "-vga qxl"
},
"images": [
{
- "filename": "Ubuntu 20.10 (64bit).vmdk",
- "version": "20.10",
- "md5sum": "d7fb9d7b5f6e55349204d493d00507d2",
- "filesize": 7512915968,
- "download_url": "http://www.osboxes.org/ubuntu/"
+ "filename": "Ubuntu 22.04 (64bit).vmdk",
+ "version": "22.04",
+ "md5sum": "208657d5c13fd1e041794794ada32581",
+ "filesize": 9110487040,
+ "download_url": "https://www.osboxes.org/ubuntu/"
},
{
- "filename": "Ubuntu 20.04.2 (64bit).vmdk",
- "version": "20.04.2",
- "md5sum": "e995e5768c1dbee94bc02072d841bb50",
- "filesize": 7625179136,
- "download_url": "http://www.osboxes.org/ubuntu/"
+ "filename": "Ubuntu 20.04.4 (64bit).vmdk",
+ "version": "20.04.4",
+ "md5sum": "0482557da31d29f4f175945333e617f0",
+ "filesize": 8531083264,
+ "download_url": "https://www.osboxes.org/ubuntu/"
},
{
- "filename": "Ubuntu 20.04 (64bit).vmdk",
- "version": "20.04",
- "md5sum": "cf619dfe9bb8d89e2b18b067f02e57a0",
- "filesize": 6629883904,
- "download_url": "http://www.osboxes.org/ubuntu/"
- },
- {
- "filename": "Ubuntu 19.04 (64bit).vmdk",
- "version": "19.04",
- "md5sum": "21535675c54507e9325bf8774a7bd73e",
- "filesize": 5558435840,
- "download_url": "http://www.osboxes.org/ubuntu/"
- },
- {
- "filename": "Ubuntu 18.10 Cosmic (64Bit).vmdk",
- "version": "18.10",
- "md5sum": "7f72be569356baa20863cd354d2efa60",
- "filesize": 6747389952,
- "download_url": "http://www.osboxes.org/ubuntu/"
- },
- {
- "filename": "Ubuntu 18.04.2 (64bit).vmdk",
- "version": "18.04.2",
- "md5sum": "d57b732d90759e3b3a62594a83f8f196",
- "filesize": 6003097600,
- "download_url": "http://www.osboxes.org/ubuntu/"
+ "filename": "Ubuntu 18.04.6 (64bit).vmdk",
+ "version": "18.04.6",
+ "md5sum": "2a41138b36edd3f81b4cb89ea471f3fc",
+ "filesize": 7011631104,
+ "download_url": "https://www.osboxes.org/ubuntu/"
},
{
"filename": "Ubuntu 16.04.6 (64bit).vmdk",
"version": "16.04.6",
"md5sum": "33b2964cef607c1c9fe748db8a2fa6ea",
"filesize": 4780982272,
- "download_url": "http://www.osboxes.org/ubuntu/"
+ "download_url": "https://www.osboxes.org/ubuntu/"
}
],
"versions": [
{
- "name": "20.10",
+ "name": "22.04",
"images": {
- "hda_disk_image": "Ubuntu 20.10 (64bit).vmdk"
+ "hda_disk_image": "Ubuntu 22.04 (64bit).vmdk"
}
},
{
- "name": "20.04.2",
+ "name": "20.04.4",
"images": {
- "hda_disk_image": "Ubuntu 20.04.2 (64bit).vmdk"
+ "hda_disk_image": "Ubuntu 20.04.4 (64bit).vmdk"
}
},
{
- "name": "20.04",
+ "name": "18.04.6",
"images": {
- "hda_disk_image": "Ubuntu 20.04 (64bit).vmdk"
- }
- },
- {
- "name": "19.04",
- "images": {
- "hda_disk_image": "Ubuntu 19.04 (64bit).vmdk"
- }
- },
- {
- "name": "18.10",
- "images": {
- "hda_disk_image": "Ubuntu 18.10 Cosmic (64Bit).vmdk"
- }
- },
- {
- "name": "18.04.2",
- "images": {
- "hda_disk_image": "Ubuntu 18.04.2 (64bit).vmdk"
+ "hda_disk_image": "Ubuntu 18.04.6 (64bit).vmdk"
}
},
{
diff --git a/gns3server/compute/docker/docker_vm.py b/gns3server/compute/docker/docker_vm.py
index acd0e677..d84d8ffa 100644
--- a/gns3server/compute/docker/docker_vm.py
+++ b/gns3server/compute/docker/docker_vm.py
@@ -358,7 +358,8 @@ class DockerVM(BaseNode):
# DHCP config for eth{adapter}
#auto eth{adapter}
#iface eth{adapter} inet dhcp
-""".format(adapter=adapter))
+#\thostname {hostname}
+""".format(adapter=adapter, hostname=self._name))
return path
async def create(self):
@@ -385,7 +386,6 @@ class DockerVM(BaseNode):
params = {
"Hostname": self._name,
- "Name": self._name,
"Image": self._image,
"NetworkDisabled": True,
"Tty": True,
@@ -654,50 +654,39 @@ class DockerVM(BaseNode):
if tigervnc_path:
with open(os.path.join(self.working_dir, "vnc.log"), "w") as fd:
- self._vnc_process = await asyncio.create_subprocess_exec(
- tigervnc_path,
- "-geometry",
- self._console_resolution,
- "-depth",
- "16",
- "-interface",
- self._manager.port_manager.console_host,
- "-rfbport",
- str(self.console),
- "-AlwaysShared",
- "-SecurityTypes",
- "None",
- f":{self._display}",
- stdout=fd,
- stderr=subprocess.STDOUT,
- )
+ self._vnc_process = await asyncio.create_subprocess_exec(tigervnc_path,
+ "-extension", "MIT-SHM",
+ "-geometry", self._console_resolution,
+ "-depth", "16",
+ "-interface", self._manager.port_manager.console_host,
+ "-rfbport", str(self.console),
+ "-AlwaysShared",
+ "-SecurityTypes", "None",
+ ":{}".format(self._display),
+ stdout=fd, stderr=subprocess.STDOUT)
else:
if restart is False:
- self._xvfb_process = await asyncio.create_subprocess_exec(
- "Xvfb", "-nolisten", "tcp", f":{self._display}", "-screen", "0", self._console_resolution + "x16"
- )
+ self._xvfb_process = await asyncio.create_subprocess_exec("Xvfb",
+ "-nolisten", "tcp",
+ "-extension", "MIT-SHM",
+ ":{}".format(self._display),
+ "-screen", "0",
+ self._console_resolution + "x16")
# We pass a port for TCPV6 due to a crash in X11VNC if not here: https://github.com/GNS3/gns3-server/issues/569
with open(os.path.join(self.working_dir, "vnc.log"), "w") as fd:
- self._vnc_process = await asyncio.create_subprocess_exec(
- "x11vnc",
- "-forever",
- "-nopw",
- "-shared",
- "-geometry",
- self._console_resolution,
- "-display",
- f"WAIT:{self._display}",
- "-rfbport",
- str(self.console),
- "-rfbportv6",
- str(self.console),
- "-noncache",
- "-listen",
- self._manager.port_manager.console_host,
- stdout=fd,
- stderr=subprocess.STDOUT,
- )
+ self._vnc_process = await asyncio.create_subprocess_exec("x11vnc",
+ "-forever",
+ "-nopw",
+ "-shared",
+ "-noshm",
+ "-geometry", self._console_resolution,
+ "-display", "WAIT:{}".format(self._display),
+ "-rfbport", str(self.console),
+ "-rfbportv6", str(self.console),
+ "-noncache",
+ "-listen", self._manager.port_manager.console_host,
+ stdout=fd, stderr=subprocess.STDOUT)
async def _start_vnc(self):
"""
diff --git a/gns3server/controller/node.py b/gns3server/controller/node.py
index 9d1673af..598eedc1 100644
--- a/gns3server/controller/node.py
+++ b/gns3server/controller/node.py
@@ -619,6 +619,17 @@ class Node:
except asyncio.TimeoutError:
raise ControllerTimeoutError(f"Timeout when reset console {self._name}")
+ async def reset_console(self):
+ """
+ Reset the console
+ """
+
+ if self._console and self._console_type == "telnet":
+ try:
+ await self.post("/console/reset", timeout=240)
+ except asyncio.TimeoutError:
+ raise aiohttp.web.HTTPRequestTimeout(text="Timeout when reset console {}".format(self._name))
+
async def post(self, path, data=None, **kwargs):
"""
HTTP post on the node
diff --git a/gns3server/crash_report.py b/gns3server/crash_report.py
index 9c534d9d..350d1c66 100644
--- a/gns3server/crash_report.py
+++ b/gns3server/crash_report.py
@@ -59,7 +59,7 @@ class CrashReport:
Report crash to a third party service
"""
- DSN = "https://57f6b1102b6a4985a8e93aed51e19b8b@o19455.ingest.sentry.io/38482"
+ DSN = "https://0d263705382642f287a1ed05fce61171@o19455.ingest.sentry.io/38482"
_instance = None
def __init__(self):
diff --git a/gns3server/static/web-ui/index.html b/gns3server/static/web-ui/index.html
index b21615d1..55e40525 100644
--- a/gns3server/static/web-ui/index.html
+++ b/gns3server/static/web-ui/index.html
@@ -46,6 +46,6 @@
gtag('config', 'G-5D6FZL9923');
-
+