mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
Compare commits
12 commits
609aef664b
...
435f82b14d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
435f82b14d | ||
|
|
4646597b39 | ||
|
|
659a6edb73 | ||
|
|
099769d305 | ||
|
|
120f406b48 | ||
|
|
fd54c68e6b | ||
|
|
34f08fc555 | ||
|
|
8bca7db917 | ||
|
|
f26fa3d050 | ||
|
|
8c4f1d9fe8 | ||
|
|
55793d3901 | ||
|
|
9c1c281279 |
8 changed files with 139 additions and 17 deletions
|
|
@ -1,7 +1,7 @@
|
|||
[](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
|
||||
|
|
|
|||
83
conf/nginx/openAnolis_nginx.conf
Normal file
83
conf/nginx/openAnolis_nginx.conf
Normal 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 {
|
||||
# }
|
||||
# }
|
||||
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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":
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue