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

Add users and users VMs

;
This commit is contained in:
Retspen 2015-03-02 17:31:25 +02:00
parent 29b05745ad
commit 55e93a9087
11 changed files with 213 additions and 21 deletions

View file

@ -2,6 +2,8 @@ from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.shortcuts import render
from computes.models import Compute
from instances.models import Instance
from users.models import UserInstance
from vrtManager.hostdetails import wvmHostDetails
from vrtManager.connection import connection_manager
from libvirt import libvirtError
@ -30,16 +32,38 @@ def instances(request):
error_messages = []
all_host_vms = {}
computes = Compute.objects.filter()
all_user_vms = {}
computes = Compute.objects.all()
for compute in computes:
if connection_manager.host_is_up(compute.type, compute.hostname):
try:
conn = wvmHostDetails(compute, compute.login, compute.password, compute.type)
all_host_vms[compute.id, compute.name] = conn.get_host_instances()
conn.close()
except libvirtError as lib_err:
error_messages.append(lib_err)
if not request.user.is_superuser:
user_instances = UserInstance.objects.all()
for usr_inst in user_instances:
if connection_manager.host_is_up(usr_inst.instance.compute.type,
usr_inst.instance.compute.hostname):
conn = wvmHostDetails(usr_inst.instance.compute,
usr_inst.instance.compute.login,
usr_inst.instance.compute.password,
usr_inst.instance.compute.type)
all_user_vms[usr_inst.instance.compute.id,
usr_inst.instance.compute.name] = conn.get_user_instances(usr_inst.instance.name)
else:
for compute in computes:
if connection_manager.host_is_up(compute.type, compute.hostname):
try:
conn = wvmHostDetails(compute, compute.login, compute.password, compute.type)
all_host_vms[compute.id, compute.name] = conn.get_host_instances()
for vm, info in conn.get_host_instances().items():
try:
check_uuid = Instance.objects.get(compute_id=compute.id, name=vm)
if check_uuid.uuid != info['uuid']:
check_uuid.save()
except Instance.DoesNotExist:
check_uuid = Instance(compute_id=compute.id, name=vm, uuid=info['uuid'])
check_uuid.save()
conn.close()
except libvirtError as lib_err:
print 'Error'
error_messages.append(lib_err)
return render(request, 'instances.html', locals())
@ -53,4 +77,4 @@ def instance(request, comptes_id, vname):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('index'))
return render(request, 'instances.html', locals())
return render(request, 'instance.html', locals())