├── create ├── __init__.py ├── models.py ├── tests.py ├── fixtures │ └── initial_data.json └── forms.py ├── console ├── __init__.py ├── tests.py ├── cert.pem ├── views.py └── tunnel.py ├── hostdetail ├── __init__.py ├── tests.py └── views.py ├── instance ├── __init__.py ├── templatetags │ ├── __init__.py │ └── tags_active.py ├── admin.py ├── tests.py └── models.py ├── interfaces ├── __init__.py ├── tests.py ├── forms.py └── views.py ├── networks ├── __init__.py ├── tests.py ├── forms.py └── views.py ├── secrets ├── __init__.py ├── forms.py ├── tests.py └── views.py ├── serverlog ├── __init__.py ├── views.py ├── models.py └── tests.py ├── servers ├── __init__.py ├── tests.py └── models.py ├── storages ├── __init__.py ├── tests.py └── forms.py ├── vrtManager ├── __init__.py ├── secrets.py ├── hostdetails.py ├── util.py └── interface.py ├── webvirtmgr ├── __init__.py ├── local │ ├── __init__.py │ └── local_settings.py.example ├── utils │ ├── __init__.py │ └── secret_key.py ├── static │ ├── img │ │ ├── asc.gif │ │ ├── bg.gif │ │ ├── desc.gif │ │ └── favicon.ico │ ├── js │ │ ├── novnc │ │ │ ├── Orbitron700.ttf │ │ │ ├── Orbitron700.woff │ │ │ ├── web-socket-js │ │ │ │ └── WebSocketMain.swf │ │ │ ├── blue.css │ │ │ ├── playback.js │ │ │ ├── black.css │ │ │ └── base64.js │ │ ├── infrastructure.js │ │ └── spice-html5 │ │ │ ├── spicearraybuffer.js │ │ │ ├── bitmap.js │ │ │ ├── prng4.js │ │ │ ├── thirdparty │ │ │ ├── prng4.js │ │ │ ├── rng.js │ │ │ └── rsa.js │ │ │ ├── resize.js │ │ │ ├── filexfer.js │ │ │ ├── rng.js │ │ │ ├── spicedataview.js │ │ │ ├── cursor.js │ │ │ ├── wire.js │ │ │ └── rsa.js │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ └── css │ │ ├── table-sort.css │ │ ├── signin.css │ │ ├── bootstrap-multiselect.css │ │ └── webvirtmgr.css ├── settings-dev.py ├── wsgi.py └── urls.py ├── templates ├── sidebar_close.html ├── logout.html ├── 403.html ├── 404.html ├── 500.html ├── login.html ├── base_auth.html ├── sidebar.html ├── base.html ├── interface.html ├── hostdetail.html ├── console-base.html └── infrastructure.html ├── deploy ├── fabric │ ├── fab_requirements.txt │ ├── templates │ │ ├── webvirtmgr.ini │ │ ├── README.md │ │ ├── nginx.conf │ │ └── original.nginx.conf │ ├── settings.py │ ├── fabfile.py │ ├── README.md │ └── utils.py └── rpmbuild │ ├── README.md │ └── webvirtmgr.spec ├── conf ├── saltstack │ └── centos_rhel │ │ └── salt │ │ ├── top.sls │ │ └── libvirt │ │ ├── iptables │ │ ├── libvirtd │ │ └── init.sls ├── conf.d │ └── webvirtmgr-console ├── init │ ├── webvirtmgr-console.service │ ├── webvirtmgr.service │ └── webvirtmgr-redhat.conf └── initd │ ├── webvirtmgr-console-arch │ ├── webvirtmgr-console-gentoo │ ├── webvirtmgr-console-ubuntu │ ├── webvirtmgr-console-redhat │ └── webvirtmgr-console-suse ├── images └── README.md ├── locale ├── ru │ └── LC_MESSAGES │ │ └── django.mo ├── da_DK │ └── LC_MESSAGES │ │ └── django.mo └── zh_CN │ └── LC_MESSAGES │ └── django.mo ├── dev-requirements.txt ├── requirements.txt ├── .gitignore ├── manage.py ├── .travis.yml ├── Vagrantfile ├── MANIFEST.in ├── README.md └── setup.py /create/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /console/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hostdetail/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /instance/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /networks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /secrets/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /serverlog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /servers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vrtManager/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webvirtmgr/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webvirtmgr/local/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webvirtmgr/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /instance/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/sidebar_close.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /serverlog/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /deploy/fabric/fab_requirements.txt: -------------------------------------------------------------------------------- 1 | Fabric==1.8.2 2 | fabtools==0.17.0 3 | -------------------------------------------------------------------------------- /conf/saltstack/centos_rhel/salt/top.sls: -------------------------------------------------------------------------------- 1 | base: 2 | '*': 3 | - libvirt 4 | -------------------------------------------------------------------------------- /images/README.md: -------------------------------------------------------------------------------- 1 | Folder need for upload ISO images (You can delete this file) 2 | -------------------------------------------------------------------------------- /interfaces/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /webvirtmgr/static/img/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/img/asc.gif -------------------------------------------------------------------------------- /webvirtmgr/static/img/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/img/bg.gif -------------------------------------------------------------------------------- /locale/ru/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/locale/ru/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /webvirtmgr/static/img/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/img/desc.gif -------------------------------------------------------------------------------- /locale/da_DK/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/locale/da_DK/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /locale/zh_CN/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/locale/zh_CN/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /webvirtmgr/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/img/favicon.ico -------------------------------------------------------------------------------- /dev-requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | 3 | django-jenkins==0.14.1 4 | pyflakes==0.7.3 5 | pylint==1.1.0 6 | pep8==1.4.6 -------------------------------------------------------------------------------- /webvirtmgr/static/js/novnc/Orbitron700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/js/novnc/Orbitron700.ttf -------------------------------------------------------------------------------- /webvirtmgr/static/js/novnc/Orbitron700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/js/novnc/Orbitron700.woff -------------------------------------------------------------------------------- /webvirtmgr/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /webvirtmgr/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /webvirtmgr/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /webvirtmgr/static/js/novnc/web-socket-js/WebSocketMain.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daniviga/webvirtmgr/HEAD/webvirtmgr/static/js/novnc/web-socket-js/WebSocketMain.swf -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | django==1.5.5 2 | gunicorn==18.0 3 | # Utility Requirements 4 | # for SECURE_KEY generation 5 | lockfile>=0.9 6 | # Uncoment for support ldap 7 | #django-auth-ldap==1.2.0 8 | -------------------------------------------------------------------------------- /conf/conf.d/webvirtmgr-console: -------------------------------------------------------------------------------- 1 | WEBVIRTMGR_DAEMON="/var/www/webvirtmgr/console/webvirtmgr-console" 2 | WEBVIRTMGR_LOCK_DIR="/var/lock/webvirtmgr" 3 | WEBVIRTMGR_USER="apache" 4 | WEBVIRTMGR_GROUP="apache" 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | webvirtmgr.sqlite3 2 | venv 3 | *.pyc 4 | .DS_Store 5 | ._* 6 | .idea 7 | .vagrant 8 | webvirtmgr/local/.secret_key_store 9 | webvirtmgr/local/local_settings.py 10 | dist 11 | webvirtmgr.egg-info 12 | -------------------------------------------------------------------------------- /serverlog/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class InstanceLog(models.Model): 5 | message = models.TextField() 6 | date = models.DateTimeField(auto_now_add=True) 7 | 8 | def __unicode__(self): 9 | return self.message -------------------------------------------------------------------------------- /conf/init/webvirtmgr-console.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=WebVirtMgr NoVNC proxy 3 | 4 | [Service] 5 | ExecStart=/usr/lib/python2.7/site-packages/webvirtmgr/console/webvirtmgr-console 6 | Type=simple 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /instance/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.contrib.admin.options import ModelAdmin 3 | from models import Instance 4 | 5 | 6 | class InstanceAdmin(ModelAdmin): 7 | pass 8 | 9 | admin.site.register(Instance, InstanceAdmin) 10 | -------------------------------------------------------------------------------- /instance/templatetags/tags_active.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | import re 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.simple_tag 8 | def active(request, pattern): 9 | if re.search(pattern, request.path): 10 | return 'selected' 11 | return '' 12 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webvirtmgr.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /create/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class Flavor(models.Model): 5 | label = models.CharField(max_length=12) 6 | memory = models.IntegerField() 7 | vcpu = models.IntegerField() 8 | disk = models.IntegerField() 9 | 10 | def __unicode__(self): 11 | return self.name 12 | -------------------------------------------------------------------------------- /deploy/fabric/templates/webvirtmgr.ini: -------------------------------------------------------------------------------- 1 | [program:webvirtmgr] 2 | autorestart = True 3 | autostart = True 4 | command = /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py 5 | directory = /var/www/webvirtmgr 6 | redirect_stderr = True 7 | stdout_logfile = /var/log/supervisor/webvirtmgr.log 8 | user = nginx 9 | -------------------------------------------------------------------------------- /conf/initd/webvirtmgr-console-arch: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=WebVirtMgr NoVNC proxy 3 | 4 | [Service] 5 | EnvironmentFile=/etc/conf.d/webvirtmgr-console 6 | Environment=PYTHONPATH=/usr/share/novnc/utils/ 7 | User=http 8 | Group=http 9 | ExecStart=/var/www/webvirtmgr/console/webvirtmgr-console 10 | Type=simple 11 | 12 | [Install] 13 | WantedBy=multi-user.target -------------------------------------------------------------------------------- /conf/init/webvirtmgr.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=WebVirtMgr Gunicorn Server 3 | 4 | [Service] 5 | WorkingDirectory=/usr/lib/python2.7/site-packages/webvirtmgr 6 | ExecStart=/usr/bin/python /usr/lib/python2.7/site-packages/webvirtmgr/manage.py run_gunicorn -c /usr/lib/python2.7/site-packages/webvirtmgr/conf/gunicorn.conf.py 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /templates/logout.html: -------------------------------------------------------------------------------- 1 | {% extends "base_auth.html" %} 2 | {% load i18n %} 3 | {% block title %}{% trans "Sign Out" %}{% endblock %} 4 | {% block content %} 5 |
{% trans "403 Forbidden" %}
10 |{% trans "You do not have the permission to access this page." %}
11 | ← Back 12 |{% trans "404 Not Found" %}
11 | 12 |{% trans "The requested page was not found on this server." %}
13 | ← Back 14 |{% trans "500 Internal Server Error" %}
11 | 12 |{% trans "The server encountered an internal error or misconfiguration and was unable to complete you request." %}
13 | ← Back 14 || {% trans "Interface" %} | 20 |{{ iface }} | 21 |
| {% trans "IPv4" %} ({% ifequal ipv4 None %}None{% else %}{{ ipv4_type }}{% endifequal %}) | 24 |{{ ipv4 }} | 25 |
| {% trans "IPv6" %} ({% ifequal ipv6 None %}None{% else %}{{ ipv6_type }}{% endifequal %}) | 28 |{{ ipv6 }} | 29 |
| {% trans "MAC Adress" %} | 32 |{{ mac }} | 33 |
| {% trans "Interface type" %} | 36 |{{ itype }} | 37 |
| {% trans "Bridge device" %} | 41 |{{ bridge }} | 42 |
| {% trans "Boot mode" %} | 46 |{{ start_mode }} | 47 |
| {% trans "State" %} | 50 |51 | 61 | | 62 |
| {% trans "Connection" %} | 22 |{{ uri_conn }} | 23 |
| {% trans "Hostname" %} | 26 |{{ hostname }} | 27 |
| {% trans "Hypervisor" %} | 30 |{{ hypervisor }} | 31 |
| {% trans "Memory" %} | 34 |{{ host_memory|filesizeformat }} | 35 |
| {% trans "Logical CPUs" %} | 38 |{{ logical_cpu }} | 39 |
| {% trans "Processor" %} | 42 |{{ model_cpu }} | 43 |
| {% trans "Architecture" %} | 46 |{{ host_arch }} | 47 |
{% trans "CPU usage" %}
53 | 54 |{% trans "Memory usage" %}
55 | 56 || # | 38 |{% trans "Hostname / VMs" %} | 39 |{% trans "Status" %} | 40 |{% trans "VCPUs" %} | 41 |{% trans "Memory" %} | 42 |{% trans "Usage" %} | 43 |
|---|---|---|---|---|---|
| {{ forloop.counter }} | 49 |{{ host.1 }} | 50 |{% ifequal host.2 1 %}{% trans "Active" %} 51 | {% endifequal %} 52 | {% ifequal host.2 2 %}{% trans "Not Active" %} 53 | {% endifequal %} 54 | {% ifequal host.2 3 %}{% trans "Connection Failed" %} 55 | {% endifequal %} 56 | | 57 |{{ host.3 }} | 58 |{{ host.4|filesizeformat }} | 59 |{{ host.5 }}% | 60 |
| 65 | | {{ forloop.counter }} {{ vm }} | 67 |{% ifequal info.0 1 %}{% trans "Running" %} 68 | {% endifequal %} 69 | {% ifequal info.0 3 %}{% trans "Suspend" %} 70 | {% endifequal %} 71 | {% ifequal info.0 5 %}{% trans "Shutoff" %} 72 | {% endifequal %} 73 | | 74 |{{ info.1 }} | 75 |{{ info.2|filesizeformat }} | 76 |{{ info.3 }}% | 77 |