diff --git a/Dockerfile b/Dockerfile index f86f479e..e2461278 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM phusion/baseimage:jammy-1.0.1 +FROM phusion/baseimage:noble-1.0.2 EXPOSE 80 EXPOSE 6080 diff --git a/README.md b/README.md index 7f9069f5..341f059a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/retspen/webvirtcloud) # WebVirtCloud -###### Python 3.x & Django 4.2 LTS +###### Python >=3.11 & Django 4.2 LTS ## Features * QEMU/KVM Hypervisor Management diff --git a/conf/requirements.txt b/conf/requirements.txt index 28dc05a4..5a4f5bbd 100644 --- a/conf/requirements.txt +++ b/conf/requirements.txt @@ -1,26 +1,27 @@ -Django==4.2.14 -django_bootstrap5==24.2 +Django==4.2.20 +django_bootstrap5==25.1 django-bootstrap-icons==0.9.0 django-login-required-middleware==0.9.0 -django-otp==1.5.0 +django-otp==1.6.0 django-qr-code==4.1.0 -django-auth-ldap==4.8.0 -djangorestframework==3.15.2 +django-auth-ldap==5.1.0 +djangorestframework==3.16.0 drf-nested-routers==0.94.1 -drf-yasg==1.21.7 -eventlet==0.36.1 -gunicorn==22.0.0 +drf-yasg==1.21.10 +eventlet==0.39.1 +gunicorn==23.0.0 libsass==0.23.0 -libvirt-python==10.5.0 -lxml==5.2.2 +libvirt-python==11.2.0 +lxml==5.4.0 ldap3==2.9.1 markdown==3.6 #psycopg2-binary -python-engineio==4.9.1 -python-socketio==5.11.3 -qrcode==7.4.2 +python-engineio==4.12.0 +python-socketio==5.13.0 +qrcode==8.2 rwlock==0.0.7 tzdata websockify==0.12.0 -whitenoise==6.7.0 -zipp==3.19.2 +whitenoise==6.9.0 +zipp==3.21.0 +crypt-r==3.13.1 diff --git a/dev/requirements.txt b/dev/requirements.txt index 92871bd3..46506133 100644 --- a/dev/requirements.txt +++ b/dev/requirements.txt @@ -1,9 +1,9 @@ -r ../conf/requirements.txt -coverage==7.6.0 -django-debug-toolbar==4.4.6 +coverage==7.8.0 +django-debug-toolbar==5.2.0 django-debug-toolbar-template-profiler -pycodestyle==2.12.0 -pyflakes==3.2.0 -pylint==3.2.6 -yapf==0.40.2 -black==24.4.2 +pycodestyle==2.13.0 +pyflakes==3.3.2 +pylint==3.3.6 +yapf==0.43.0 +black==25.1.0 diff --git a/instances/views.py b/instances/views.py index 22e34e88..54b73afb 100755 --- a/instances/views.py +++ b/instances/views.py @@ -1,4 +1,4 @@ -import crypt +import crypt_r import json import os import re @@ -476,7 +476,7 @@ def set_root_pass(request, pk): if request.method == "POST": passwd = request.POST.get("passwd", None) if passwd: - passwd_hash = crypt.crypt(passwd, "$6$kgPoiREy") + passwd_hash = crypt_r.crypt(passwd, "$6$kgPoiREy") data = {"action": "password", "passwd": passwd_hash, "vname": instance.name} if instance.proxy.get_status() == 5: diff --git a/vrtManager/instance.py b/vrtManager/instance.py index 9cbe83e1..e9659a5e 100644 --- a/vrtManager/instance.py +++ b/vrtManager/instance.py @@ -631,7 +631,7 @@ def get_bootorder(self): dev_type = dev.get("type") dev_device = dev.get("device") - if dev_type == "file": + if dev_type == "file" or (dev_device == "disk" and dev_type == "network"): dev_target = dev.find("target").get("dev") elif dev_type == "network": diff --git a/vrtManager/storage.py b/vrtManager/storage.py index 03024f90..0037de22 100644 --- a/vrtManager/storage.py +++ b/vrtManager/storage.py @@ -34,6 +34,8 @@ def get_pool_by_target(self, target): stg = wvmStorage(self.host, self.login, self.passwd, self.conn, pool_name) if stg.get_target_path() == target: return self.get_storage(pool_name) + if stg.get_type() == "rbd" and stg.get_source_name() == target: + return self.get_storage(pool_name) return None def create_storage(self, stg_type, name, source, target):