Merge pull request #2267 from GNS3/release-v2.2.42

Release v2.2.42
pull/2274/head
Jeremy Grossmann 9 months ago committed by GitHub
commit 9f5aece8b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,5 +1,16 @@
# Change Log
## 2.2.42 09/08/2023
* Bundle web-ui v2.2.42
* Handle API version key in VirtualBox 7. Fixes #2266
* Enable system certificate store for SSL connections
* Use DEFAULT_BUFFER_SIZE for md5sum
* Fix version check when installing appliances. Ref https://github.com/GNS3/gns3-gui/issues/3486
* Allow connection to ws console over IPv6. Fixes https://github.com/GNS3/gns3-web-ui/issues/1400
* Support for Python 3.12
* Remove import urllib3 and let sentry_sdk import and patch it. Fixes https://github.com/GNS3/gns3-gui/issues/3498
## 2.2.41 12/07/2023
* Bundle web-ui v2.2.41

@ -24,6 +24,22 @@
"kvm": "allow"
},
"images": [
{
"filename": "AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2",
"version": "9.2",
"md5sum": "c5bc76e8c95ac9f810a3482c80a54cc7",
"filesize": 563347456,
"download_url": "https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/",
"direct_download_url": "https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2"
},
{
"filename": "AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2",
"version": "8.8",
"md5sum": "3958c5fc25770ef63cf97aa5d93f0a0b",
"filesize": 565444608,
"download_url": "https://repo.almalinux.org/almalinux/8/cloud/x86_64/images/",
"direct_download_url": "https://repo.almalinux.org/almalinux/8/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2"
},
{
"filename": "AlmaLinux-8-GenericCloud-8.7-20221111.x86_64.qcow2",
"version": "8.7",
@ -42,6 +58,20 @@
}
],
"versions": [
{
"name": "9.2",
"images": {
"hda_disk_image": "AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "8.8",
"images": {
"hda_disk_image": "AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2",
"cdrom_image": "almalinux-cloud-init-data.iso"
}
},
{
"name": "8.7",
"images": {

@ -26,6 +26,22 @@
"options": "-nographic"
},
"images": [
{
"filename": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2",
"version": "Stream-9 (20230727.1)",
"md5sum": "b66b7e4951cb5491ae44d5616d56b7cf",
"filesize": 1128764416,
"download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2"
},
{
"filename": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
"version": "Stream-8 (20230710.0)",
"md5sum": "83e02ce98c29753c86fb7be7d802aa75",
"filesize": 1676164096,
"download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images",
"direct_download_url": "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2"
},
{
"filename": "CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2",
"version": "8.4 (2105)",
@ -60,6 +76,20 @@
}
],
"versions": [
{
"name": "Stream-9 (20230727.1)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "Stream-8 (20230710.0)",
"images": {
"hda_disk_image": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2",
"cdrom_image": "centos-cloud-init-data.iso"
}
},
{
"name": "8.4 (2105)",
"images": {

@ -24,12 +24,12 @@
},
"images": [
{
"filename": "debian-12-genericcloud-amd64-20230612-1409.qcow2",
"version": "12.0",
"md5sum": "524cf33a1284d6e3363bd4d843756386",
"filename": "debian-12-genericcloud-amd64-20230723-1450.qcow2",
"version": "12.1",
"md5sum": "6d1efcaa206de01eeeb590d773421c5c",
"filesize": 280166400,
"download_url": "https://cloud.debian.org/images/cloud/bookworm/",
"direct_download_url": "https://cloud.debian.org/images/cloud/bookworm/20230612-1409/debian-12-genericcloud-amd64-20230612-1409.qcow2"
"direct_download_url": "https://cloud.debian.org/images/cloud/bookworm/20230723-1450/debian-12-genericcloud-amd64-20230723-1450.qcow2"
},
{
"filename": "debian-11-genericcloud-amd64-20230601-1398.qcow2",
@ -58,9 +58,9 @@
],
"versions": [
{
"name": "12.0",
"name": "12.1",
"images": {
"hda_disk_image": "debian-12-genericcloud-amd64-20230612-1409.qcow2",
"hda_disk_image": "debian-12-genericcloud-amd64-20230723-1450.qcow2",
"cdrom_image": "debian-cloud-init-data.iso"
}
},

@ -0,0 +1,17 @@
{
"appliance_id": "f59a5cf6-baaa-45a6-9685-989a2c3f3f4a",
"name": "endhost",
"category": "guest",
"description": "General purpose alpine-based endhost",
"vendor_name": "endhost",
"vendor_url": "https://www.alpinelinux.org",
"product_name": "endhost",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"docker": {
"adapters": 1,
"image": "gns3/endhost:latest"
}
}

@ -27,6 +27,13 @@
"options": "-nographic"
},
"images": [
{
"filename": "VOSSGNS3.8.10.1.0.qcow2",
"version": "v8.10.1.0",
"md5sum": "d8f09f5a9759882be84ad7e4be575ed3",
"filesize": 433258496,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_VOSS/VOSSGNS3.8.10.1.0.qcow2"
},
{
"filename": "VOSSGNS3.8.8.0.0.qcow2",
"version": "v8.8.0.0",
@ -85,6 +92,13 @@
}
],
"versions": [
{
"name": "v8.10.1.0",
"images":
{
"hda_disk_image": "VOSSGNS3.8.10.1.0.qcow2"
}
},
{
"name": "v8.8.0.0",
"images": {

@ -26,6 +26,30 @@
"options": "-nographic"
},
"images": [
{
"filename": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
"version": "38-1.6",
"md5sum": "53ddfe7b28666d5ddc55e93ff06abad2",
"filesize": 497287168,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images",
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images/Fedora-Cloud-Base-38-1.6.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-37-1.7.x86_64.qcow2",
"version": "37-1.7",
"md5sum": "36f7b464b6ab46ad97c001b539495e90",
"filesize": 492830720,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/37/Cloud/x86_64/images",
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/37/Cloud/x86_64/images/Fedora-Cloud-Base-37-1.7.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-36-1.5.x86_64.qcow2",
"version": "36-1.5",
"md5sum": "7f7cdad25b77f232078bf454c39529d3",
"filesize": 448266240,
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images",
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-36-1.5.x86_64.qcow2"
},
{
"filename": "Fedora-Cloud-Base-35-1.2.x86_64.qcow2",
"version": "35-1.2",
@ -44,6 +68,27 @@
}
],
"versions": [
{
"name": "38-1.6",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "37-1.7",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-37-1.7.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "36-1.5",
"images": {
"hda_disk_image": "Fedora-Cloud-Base-36-1.5.x86_64.qcow2",
"cdrom_image": "fedora-cloud-init-data.iso"
}
},
{
"name": "35-1.2",
"images": {

@ -0,0 +1,18 @@
{
"appliance_id": "79df483d-8cc9-48de-85ea-e6cb45b93e2a",
"name": "haproxy",
"category": "guest",
"description": "haproxy alpine container",
"vendor_name": "haproxy",
"vendor_url": "https://www.haproxy.org",
"product_name": "haproxy",
"registry_version": 4,
"status": "experimental",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "Modify /etc/haproxy/haproxy.cfg to suit your needs.",
"docker": {
"adapters": 1,
"image": "gns3/haproxy:latest"
}
}

@ -21,7 +21,7 @@
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-machine type=pc-1.0,accel=kvm -serial mon:stdio -nographic -nodefaults -rtc base=utc -cpu host"
"options": "-machine type=pc,accel=kvm -serial mon:stdio -nographic -nodefaults -rtc base=utc -cpu host"
},
"images": [
{

@ -23,7 +23,7 @@
"arch": "x86_64",
"console_type": "telnet",
"kvm": "require",
"options": "-machine type=pc-1.0,accel=kvm -serial mon:stdio -nographic -nodefaults -rtc base=utc -cpu host"
"options": "-machine type=pc,accel=kvm -serial mon:stdio -nographic -nodefaults -rtc base=utc -cpu host"
},
"images": [
{

@ -13,7 +13,7 @@
"availability": "service-contract",
"maintainer": "Neyder Achahuanco",
"maintainer_email": "neyder@neyder.net",
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.5/x86_64/product-software attach/customize cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.2/x86_64/product-software attach/customize cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
@ -26,6 +26,48 @@
"options": "-nographic"
},
"images": [
{
"filename": "rhel-9.2-x86_64-kvm.qcow2",
"version": "9.2",
"md5sum": "f33845298b387dbcfbf162c6b4e3f8c8",
"filesize": 819265536,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.2/x86_64/product-software"
},
{
"filename": "rhel-baseos-9.1-x86_64-kvm.qcow2",
"version": "9.1",
"md5sum": "622de743da83bcec1ad2959ecaedb8f4",
"filesize": 753401856,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.1/x86_64/product-software"
},
{
"filename": "rhel-baseos-9.0-x86_64-kvm.qcow2",
"version": "9.0",
"md5sum": "4a41497d354fe99a4abf55f1ed73edcb",
"filesize": 696582144,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/9.0/x86_64/product-software"
},
{
"filename": "rhel-8.8-x86_64-kvm.qcow2",
"version": "8.8",
"md5sum": "bf22af816ba6abd846bbb0c9ecf7bce1",
"filesize": 926810112,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.8/x86_64/product-software"
},
{
"filename": "rhel-8.7-x86_64-kvm.qcow2",
"version": "8.7",
"md5sum": "ab71a2c4cc276441bf999f531e064507",
"filesize": 858128384,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.7/x86_64/product-software"
},
{
"filename": "rhel-8.6-x86_64-kvm.qcow2",
"version": "8.6",
"md5sum": "19501666f46df6b5472db1254e86a339",
"filesize": 832438272,
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software"
},
{
"filename": "rhel-8.5-x86_64-kvm.qcow2",
"version": "8.5",
@ -70,6 +112,48 @@
}
],
"versions": [
{
"name": "9.2",
"images": {
"hda_disk_image": "rhel-9.2-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "9.1",
"images": {
"hda_disk_image": "rhel-baseos-9.1-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "9.0",
"images": {
"hda_disk_image": "rhel-baseos-9.0-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.8",
"images": {
"hda_disk_image": "rhel-8.8-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.7",
"images": {
"hda_disk_image": "rhel-8.7-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.6",
"images": {
"hda_disk_image": "rhel-8.6-x86_64-kvm.qcow2",
"cdrom_image": "rhel-cloud-init.iso"
}
},
{
"name": "8.5",
"images": {

@ -26,9 +26,17 @@
"options": "-nographic"
},
"images": [
{
"filename": "ubuntu-23.04-server-cloudimg-arm64.img",
"version": "Ubuntu 23.04 (Lunar Lobster)",
"md5sum": "35fa3b31b65717af6f0520a769aac8c0",
"filesize": 786432000,
"download_url": "https://cloud-images.ubuntu.com/releases/23.04/release/",
"direct_download_url": "https://cloud-images.ubuntu.com/releases/23.04/release/ubuntu-23.04-server-cloudimg-arm64.img"
},
{
"filename": "ubuntu-22.04-server-cloudimg-amd64.img",
"version": "22.04 (LTS)",
"version": "Ubuntu 22.04 LTS (Jammy Jellyfish)",
"md5sum": "3ce0b84f9592482fb645e8253b979827",
"filesize": 686096384,
"download_url": "https://cloud-images.ubuntu.com/releases/jammy/release",
@ -36,7 +44,7 @@
},
{
"filename": "ubuntu-20.04-server-cloudimg-amd64.img",
"version": "20.04 (LTS)",
"version": "Ubuntu 20.04 LTS (Focal Fossa)",
"md5sum": "044bc979b2238192ee3edb44e2bb6405",
"filesize": 552337408,
"download_url": "https://cloud-images.ubuntu.com/releases/focal/release-20210119.1/",
@ -44,7 +52,7 @@
},
{
"filename": "ubuntu-18.04-server-cloudimg-amd64.img",
"version": "18.04 (LTS)",
"version": "Ubuntu 18.04 LTS (Bionic Beaver)",
"md5sum": "f4134e7fa16d7fa766c7467cbe25c949",
"filesize": 336134144,
"download_url": "https://cloud-images.ubuntu.com/releases/18.04/release-20180426.2/",
@ -61,21 +69,28 @@
],
"versions": [
{
"name": "22.04 (LTS)",
"name": "Ubuntu 23.04 (Lunar Lobster)",
"images": {
"hda_disk_image": "ubuntu-23.04-server-cloudimg-arm64.img",
"cdrom_image": "ubuntu-cloud-init-data.iso"
}
},
{
"name": "Ubuntu 22.04 LTS (Jammy Jellyfish)",
"images": {
"hda_disk_image": "ubuntu-22.04-server-cloudimg-amd64.img",
"cdrom_image": "ubuntu-cloud-init-data.iso"
}
},
{
"name": "20.04 (LTS)",
"name": "Ubuntu 20.04 LTS (Focal Fossa)",
"images": {
"hda_disk_image": "ubuntu-20.04-server-cloudimg-amd64.img",
"cdrom_image": "ubuntu-cloud-init-data.iso"
}
},
{
"name": "18.04 (LTS)",
"name": "Ubuntu 18.04 LTS (Bionic Beaver)",
"images": {
"hda_disk_image": "ubuntu-18.04-server-cloudimg-amd64.img",
"cdrom_image": "ubuntu-cloud-init-data.iso"

@ -27,6 +27,13 @@
"options": "-usbdevice tablet"
},
"images": [
{
"filename": "SERVER_EVAL_x64FRE_en-us.iso",
"version": "2022",
"md5sum": "e7908933449613edc97e1b11180429d1",
"filesize": 5044094976,
"download_url": "https://www.microsoft.com/en-gb/evalcenter/evaluate-windows-server-2022"
},
{
"filename": "Win2k16_14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO",
"version": "2016",
@ -51,6 +58,13 @@
}
],
"versions": [
{
"name": "2022",
"images": {
"hda_disk_image": "empty100G.qcow2",
"cdrom_image": "SERVER_EVAL_x64FRE_en-us.iso"
}
},
{
"name": "2016",
"images": {

@ -251,7 +251,9 @@ class Controller:
self._iou_license_settings = controller_settings["iou_license"]
previous_version = controller_settings.get("version")
if not previous_version or parse_version(__version__) > parse_version(previous_version):
log.info("Comparing controller version {} with config version {}".format(__version__, previous_version))
if not previous_version or \
parse_version(__version__.split("+")[0]) > parse_version(previous_version.split("+")[0]):
self._appliance_manager.install_builtin_appliances()
self._appliance_manager.appliances_etag = controller_settings.get("appliances_etag")

@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os
import json
import uuid
@ -23,6 +22,7 @@ import asyncio
import aiohttp
import shutil
try:
import importlib_resources
except ImportError:
@ -200,7 +200,10 @@ class ApplianceManager:
log.info("Checking if appliances are up-to-date (ETag {})".format(self._appliances_etag))
headers["If-None-Match"] = self._appliances_etag
async with aiohttp.ClientSession() as session:
async with session.get('https://api.github.com/repos/GNS3/gns3-registry/contents/appliances', headers=headers) as response:
async with session.get(
'https://api.github.com/repos/GNS3/gns3-registry/contents/appliances',
headers=headers
) as response:
if response.status == 304:
log.info("Appliances are already up-to-date (ETag {})".format(self._appliances_etag))
return

@ -80,6 +80,9 @@ class VirtualBoxGNS3VM(BaseGNS3VM):
except ValueError:
continue
self._system_properties[name.strip()] = value.strip()
if "API Version" in self._system_properties:
# API version is not consistent between VirtualBox versions, the key is named "API Version" in VirtualBox 7
self._system_properties["API version"] = self._system_properties.pop("API Version")
async def _check_requirements(self):
"""

@ -29,11 +29,9 @@ import struct
import platform
import locale
import distro
import urllib3
from .version import __version__, __version_info__
from .config import Config
from .utils.get_resource import get_resource
import logging
log = logging.getLogger(__name__)
@ -59,7 +57,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://e27fbedc2e824ceb9f8d8508c5d37507@o19455.ingest.sentry.io/38482"
DSN = "https://226eee142b22cc399d1566b3dd4cbc86@o19455.ingest.sentry.io/38482"
_instance = None
def __init__(self):
@ -72,24 +70,14 @@ class CrashReport:
sentry_uncaught.disabled = True
if SENTRY_SDK_AVAILABLE:
cacert = None
if hasattr(sys, "frozen"):
cacert_resource = get_resource("cacert.pem")
if cacert_resource is not None and os.path.isfile(cacert_resource):
cacert = cacert_resource
else:
log.error("The SSL certificate bundle file '{}' could not be found".format(cacert_resource))
# Don't send log records as events.
sentry_logging = LoggingIntegration(level=logging.INFO, event_level=None)
try:
sentry_sdk.init(dsn=CrashReport.DSN,
release=__version__,
ca_certs=cacert,
default_integrations=False,
integrations=[sentry_logging])
except urllib3.exceptions.HTTPError as e:
except Exception as e:
log.error("Crash report could not be sent: {}".format(e))
return

@ -17,6 +17,7 @@
import aiohttp
import asyncio
import ipaddress
from gns3server.web.route import Route
from gns3server.controller import Controller
@ -477,7 +478,16 @@ class NodeHandler:
await ws.prepare(request)
request.app['websockets'].add(ws)
ws_console_compute_url = "ws://{compute_host}:{compute_port}/v2/compute/projects/{project_id}/{node_type}/nodes/{node_id}/console/ws".format(compute_host=compute.host,
compute_host = compute.host
try:
# handle IPv6 address
ip = ipaddress.ip_address(compute_host)
if isinstance(ip, ipaddress.IPv6Address):
compute_host = '[' + compute_host + ']'
except ValueError:
pass
ws_console_compute_url = "ws://{compute_host}:{compute_port}/v2/compute/projects/{project_id}/{node_type}/nodes/{node_id}/console/ws".format(compute_host=compute_host,
compute_port=compute.port,
project_id=project.id,
node_type=node.node_type,

@ -35,7 +35,6 @@ from gns3server.version import __version__
from gns3server.config import Config
from gns3server.crash_report import CrashReport
import logging
log = logging.getLogger(__name__)
@ -243,6 +242,13 @@ def run():
user_log.info("Running with Python {major}.{minor}.{micro} and has PID {pid}".format(major=sys.version_info[0], minor=sys.version_info[1],
micro=sys.version_info[2], pid=os.getpid()))
try:
import truststore
truststore.inject_into_ssl()
log.info("Using system certificate store for SSL connections")
except ImportError:
pass
# check for the correct locale (UNIX/Linux only)
locale_check()

@ -46,6 +46,6 @@
gtag('config', 'G-5D6FZL9923');
</script>
<script src="runtime.baa1121a4737aeb68bb7.js" defer></script><script src="polyfills-es5.865074f5cd9a121111a2.js" nomodule defer></script><script src="polyfills.2f91a039d848e57ff02e.js" defer></script><script src="main.1379a5647e8bc6d3e401.js" defer></script>
<script src="runtime.baa1121a4737aeb68bb7.js" defer></script><script src="polyfills-es5.865074f5cd9a121111a2.js" nomodule defer></script><script src="polyfills.2f91a039d848e57ff02e.js" defer></script><script src="main.6b11a28a9dc4ce54a2ab.js" defer></script>
</body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -20,7 +20,7 @@ import hashlib
from ..config import Config
from . import force_unix_path
from io import DEFAULT_BUFFER_SIZE
import logging
log = logging.getLogger(__name__)
@ -167,12 +167,13 @@ def md5sum(path, stopped_event=None):
try:
m = hashlib.md5()
log.debug("Calculating MD5 sum of `{}`".format(path))
with open(path, 'rb') as f:
while True:
if stopped_event is not None and stopped_event.is_set():
log.error("MD5 sum calculation of `{}` has stopped due to cancellation".format(path))
return
buf = f.read(128)
buf = f.read(DEFAULT_BUFFER_SIZE)
if not buf:
break
m.update(buf)

@ -23,8 +23,8 @@
# or negative for a release candidate or beta (after the base version
# number has been incremented)
__version__ = "2.2.41"
__version_info__ = (2, 2, 41, 0)
__version__ = "2.2.42"
__version_info__ = (2, 2, 42, 0)
if "dev" in __version__:
try:

@ -2,15 +2,16 @@ jsonschema>=4.17.3,<4.18; python_version >= '3.7'
jsonschema==3.2.0; python_version < '3.7' # v3.2.0 is the last version to support Python 3.6
aiohttp>=3.8.4,<3.9
aiohttp-cors>=0.7.0,<0.8
aiofiles>=22.1.0,<22.2; python_version >= '3.7'
aiofiles>=23.1.0,<23.2; python_version >= '3.7'
aiofiles==0.8.0; python_version < '3.7' # v0.8.0 is the last version to support Python 3.6
Jinja2>=3.1.2,<3.2; python_version >= '3.7'
Jinja2==3.0.3; python_version < '3.7' # v3.0.3 is the last version to support Python 3.6
sentry-sdk==1.17.0,<1.18
psutil==5.9.4
sentry-sdk==1.29.2,<1.30
psutil==5.9.5
async-timeout>=4.0.2,<4.1
distro>=1.8.0
py-cpuinfo>=9.0.0,<10.0
importlib-resources>=1.3; python_version <= '3.9'
truststore>=0.7.0; python_version >= '3.10'
setuptools>=60.8.1; python_version >= '3.7'
setuptools==59.6.0; python_version < '3.7' # v59.6.0 is the last version to support Python 3.6

@ -72,7 +72,7 @@ if [ "$CUSTOM_REPO" = false ] ; then
else
cd "$REPO_DIR"
git checkout master
git checkout 2.2
git fetch --tags
git pull
@ -96,3 +96,8 @@ yarn ng build --source-map=false --configuration=production --base-href /static/
cp -R $REPO_DIR/dist/* "$GNS3SERVER_DIR/gns3server/static/web-ui/"
cd "$GNS3SERVER_DIR"
git add gns3server/static/web-ui/*
if [[ -n "$TAG" ]]
then
git commit -m "Bundle web-ui ${TAG}"
fi

Loading…
Cancel
Save