1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2025-07-31 12:41:08 +00:00

Compare commits

...

12 commits

Author SHA1 Message Date
MAQI7
435f82b14d
Merge 55793d3901 into 4646597b39 2025-05-03 09:32:40 +00:00
catborise
4646597b39
Merge pull request #668 from catborise/master
update minimum python3 requirements. python3 >= 3.11
2025-05-02 10:25:20 +03:00
catborise
659a6edb73 update minimum python3 requirements. python3 >= 3.11 2025-05-02 10:23:51 +03:00
catborise
099769d305
Merge pull request #666 from liangsuilong/master
crypt-r replaces crypt stdlib, support python-3.13
2025-05-02 10:10:40 +03:00
catborise
120f406b48
Merge pull request #667 from catborise/master
update requirements
2025-05-02 10:10:18 +03:00
catborise
fd54c68e6b
Merge pull request #664 from fangebee/master
Some fixes regarding Ceph/RBD volumes handling
2025-05-02 10:07:48 +03:00
catborise
34f08fc555 update requirements 2025-05-02 10:06:09 +03:00
Liang Suilong
8bca7db917 crypt-r replaces crypt stdlib, support python-3.13 2025-03-30 10:33:51 +08:00
fangebee
f26fa3d050
Detect RDB pools too 2025-03-14 10:31:40 +01:00
fangebee
8c4f1d9fe8
Workaround issue #663
do not confuse a network volume with a network interface
2025-03-13 18:17:21 +01:00
MAQI7
55793d3901
Update webvirtcloud.sh 2022-09-02 02:06:39 +00:00
maqi
9c1c281279 add support openAnolis 2022-09-01 16:43:42 +08:00
8 changed files with 139 additions and 17 deletions

View file

@ -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

View file

@ -0,0 +1,83 @@
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2;
# listen [::]:443 ssl http2;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers PROFILE=SYSTEM;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}

View file

@ -2,25 +2,26 @@ 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.4
django-otp==1.6.0
django-qr-code==4.1.0
django-auth-ldap==5.1.0
djangorestframework==3.15.2
djangorestframework==3.16.0
drf-nested-routers==0.94.1
drf-yasg==1.21.10
eventlet==0.39.1
gunicorn==23.0.0
libsass==0.23.0
libvirt-python==11.1.0
lxml==5.3.1
libvirt-python==11.2.0
lxml==5.4.0
ldap3==2.9.1
markdown==3.6
#psycopg2-binary
python-engineio==4.11.2
python-socketio==5.12.1
qrcode==8.0
python-engineio==4.12.0
python-socketio==5.13.0
qrcode==8.2
rwlock==0.0.7
tzdata
websockify==0.12.0
whitenoise==6.9.0
zipp==3.21.0
crypt-r==3.13.1

View file

@ -1,9 +1,9 @@
-r ../conf/requirements.txt
coverage==7.6.12
django-debug-toolbar==5.0.1
coverage==7.8.0
django-debug-toolbar==5.2.0
django-debug-toolbar-template-profiler
pycodestyle==2.12.1
pyflakes==3.2.0
pylint==3.3.5
pycodestyle==2.13.0
pyflakes==3.3.2
pylint==3.3.6
yapf==0.43.0
black==25.1.0

View file

@ -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:

View file

@ -631,7 +631,7 @@ class wvmInstance(wvmConnect):
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":

View file

@ -34,6 +34,8 @@ class wvmStorages(wvmConnect):
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):

View file

@ -119,7 +119,7 @@ install_packages () {
fi
done;
;;
fedora|openEuler)
fedora|openEuler|openAnolis)
for p in $PACKAGES; do
if dnf list installed "$p" >/dev/null 2>&1; then
echo " * $p already installed"
@ -411,6 +411,15 @@ case $distro in
supervisor_conf_path=/etc/supervisord.d
supervisor_file_name=webvirtcloud.ini
;;
*OpenAnolis*|*openAnolis*)
echo " The installer has detected $distro version $version."
distro=openAnolis
nginx_group=nginx
nginxfile=/etc/nginx/conf.d/$APP_NAME.conf
supervisor_service=supervisord
supervisor_conf_path=/etc/supervisord.d
supervisor_file_name=webvirtcloud.ini
;;
*)
echo " The installer was unable to determine your OS. Exiting for safety."
exit 1
@ -627,6 +636,33 @@ case $distro in
restart_nginx
fi
;;
openAnolis)
if [[ "$version" == "8.4" ]]; then
# Install for openAnolis 8.4
tzone=\'$(timedatectl|grep "Time zone"| awk '{print $3}')\'
echo "* Installing OS requirements."
PACKAGES="git python3-virtualenv python3-devel python3-pip libvirt-devel glibc gcc nginx supervisor python3-lxml python3-libguestfs iproute-tc cyrus-sasl-md5"
install_packages
set_hosts
install_webvirtcloud
echo "* Configuring Nginx."
configure_nginx
echo "* Configuring Supervisor."
configure_supervisor
set_firewall
set_selinux
restart_supervisor
restart_nginx
fi
;;
esac