mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
Added some funcitons
This commit is contained in:
parent
a2a679857c
commit
64b43f1385
3 changed files with 468 additions and 87 deletions
|
@ -120,7 +120,7 @@ def instance(request, compute_id, vname):
|
|||
{'dev': disk['dev'], 'storage': disk['storage'], 'image': image, 'format': disk['format']})
|
||||
return clone_disk
|
||||
|
||||
errors = []
|
||||
error_messages = []
|
||||
messages = []
|
||||
compute = Compute.objects.get(id=compute_id)
|
||||
computes = Compute.objects.all()
|
||||
|
@ -164,8 +164,8 @@ def instance(request, compute_id, vname):
|
|||
has_managed_save_image = conn.get_managed_save_image()
|
||||
clone_disks = show_clone_disk(disks)
|
||||
console_passwd = conn.get_console_passwd()
|
||||
except libvirtError as err:
|
||||
errors.append(err)
|
||||
except libvirtError as lib_err:
|
||||
error_messages.append(lib_err)
|
||||
|
||||
try:
|
||||
instance = Instance.objects.get(compute_id=compute_id, name=vname)
|
||||
|
@ -178,25 +178,19 @@ def instance(request, compute_id, vname):
|
|||
|
||||
try:
|
||||
if request.method == 'POST':
|
||||
if 'start' in request.POST:
|
||||
if 'poweron' in request.POST:
|
||||
conn.start()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#shutdown')
|
||||
if 'power' in request.POST:
|
||||
if 'shutdown' == request.POST.get('power', ''):
|
||||
conn.shutdown()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#shutdown')
|
||||
if 'destroy' == request.POST.get('power', ''):
|
||||
conn.force_shutdown()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#forceshutdown')
|
||||
if 'managedsave' == request.POST.get('power', ''):
|
||||
conn.managedsave()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#managedsave')
|
||||
if 'deletesaveimage' in request.POST:
|
||||
conn.managed_save_remove()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#managedsave')
|
||||
return HttpResponseRedirect(request.get_full_path() + '#poweron')
|
||||
if 'powercycle' in request.POST:
|
||||
conn.force_shutdown()
|
||||
conn.start()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#powercycle')
|
||||
if 'poweroff' == request.POST.get('power', ''):
|
||||
conn.shutdown()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#poweroff')
|
||||
if 'suspend' in request.POST:
|
||||
conn.suspend()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#suspend')
|
||||
return HttpResponseRedirect(request.get_full_path() + '#resume')
|
||||
if 'resume' in request.POST:
|
||||
conn.resume()
|
||||
return HttpResponseRedirect(request.get_full_path() + '#suspend')
|
||||
|
@ -204,13 +198,13 @@ def instance(request, compute_id, vname):
|
|||
if conn.get_status() == 1:
|
||||
conn.force_shutdown()
|
||||
try:
|
||||
instance = Instance.objects.get(compute_id=host_id, name=vname)
|
||||
instance = Instance.objects.get(compute_id=compute_id, name=vname)
|
||||
instance.delete()
|
||||
if request.POST.get('delete_disk', ''):
|
||||
conn.delete_disk()
|
||||
finally:
|
||||
conn.delete()
|
||||
return HttpResponseRedirect(reverse('instances', args=[host_id]))
|
||||
return HttpResponseRedirect(reverse('instances', args=[compute_id]))
|
||||
if 'snapshot' in request.POST:
|
||||
name = request.POST.get('name', '')
|
||||
conn.create_snapshot(name)
|
||||
|
@ -231,7 +225,7 @@ def instance(request, compute_id, vname):
|
|||
if 'unset_autostart' in request.POST:
|
||||
conn.set_autostart(0)
|
||||
return HttpResponseRedirect(request.get_full_path() + '#instancesettings')
|
||||
if 'change_settings' in request.POST:
|
||||
if 'resize' in request.POST:
|
||||
description = request.POST.get('description', '')
|
||||
vcpu = request.POST.get('vcpu', '')
|
||||
cur_vcpu = request.POST.get('cur_vcpu', '')
|
||||
|
@ -243,7 +237,7 @@ def instance(request, compute_id, vname):
|
|||
cur_memory_custom = request.POST.get('cur_memory_custom', '')
|
||||
if cur_memory_custom:
|
||||
cur_memory = cur_memory_custom
|
||||
conn.change_settings(description, cur_memory, memory, cur_vcpu, vcpu)
|
||||
conn.resize(cur_memory, memory, cur_vcpu, vcpu)
|
||||
return HttpResponseRedirect(request.get_full_path() + '#instancesettings')
|
||||
if 'change_xml' in request.POST:
|
||||
xml = request.POST.get('inst_xml', '')
|
||||
|
@ -260,11 +254,11 @@ def instance(request, compute_id, vname):
|
|||
passwd = ''
|
||||
if not passwd and not clear:
|
||||
msg = _("Enter the console password or select Generate")
|
||||
errors.append(msg)
|
||||
if not errors:
|
||||
error_messages.append(msg)
|
||||
if not error_messages:
|
||||
if not conn.set_console_passwd(passwd):
|
||||
msg = _("Error setting console password. You should check that your instance have an graphic device.")
|
||||
errors.append(msg)
|
||||
error_messages.append(msg)
|
||||
else:
|
||||
return HttpResponseRedirect(request.get_full_path() + '#console_pass')
|
||||
|
||||
|
@ -315,11 +309,11 @@ def instance(request, compute_id, vname):
|
|||
clone_data[post] = request.POST.get(post, '')
|
||||
|
||||
conn.clone_instance(clone_data)
|
||||
return HttpResponseRedirect(reverse('instance', args=[host_id, clone_data['name']]))
|
||||
return HttpResponseRedirect(reverse('instance', args=[compute_id, clone_data['name']]))
|
||||
|
||||
conn.close()
|
||||
|
||||
except libvirtError as err:
|
||||
errors.append(err)
|
||||
error_messages.append(err)
|
||||
|
||||
return render(request, 'instance.html', locals())
|
Loading…
Add table
Add a link
Reference in a new issue