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

add views/instance/settings/vnc listen addresses

configures console listen addresses for instance

update webvirtcloud/settings.py QEMU_CONSOLE_LISTEN_ADDRESSES according to template, before use

instances/views.py remove include webvirtcloud.settings (duplicate)
This commit is contained in:
Ing. Jan KRCMAR 2018-06-15 14:13:50 +02:00
parent 6b444075b6
commit 22d03da60f
4 changed files with 71 additions and 3 deletions

View file

@ -712,6 +712,27 @@
</div>
</div>
</form>
<p>{% trans "To set console listen address, shutdown the instance." %}</p>
<form class="form-horizontal" method="post" role="form">{% csrf_token %}
<div class="form-group" id="console_listen_address_selection">
<label for="console_select_listen_address" class="col-sm-2 control-label">{% trans "Listen on" %}</label>
<div class="col-sm-6">
<select id="console_select_listen_address" class="form-control" name="console_listen_address">
<option value="" style="font-weight: bold">{% trans "please choose" %}</option>
{% for address, label in console_listen_addresses %}
<option value="{{ address }}">{{ label }}</option>
{% endfor %}
</select>
</div>
<div class="col-sm-3">
{% ifequal status 5 %}
<button type="submit" class="btn btn-success " name="set_console_listen_address">{% trans "Set" %}</button>
{% else %}
<button class="btn btn-success disabled" name="set_console_listen_address">{% trans "Set" %}</button>
{% endifequal %}
</div>
</div>
</form>
<p>{% trans "To create console password, shutdown the instance." %}</p>
<form class="form-horizontal" method="post" role="form">{% csrf_token %}
<div class="form-group">
@ -1273,6 +1294,13 @@
$("#console_select_type option[value='" + console_type + "']").prop('selected', true);
}
});
$(document).ready(function () {
// set current console listen address or fall back to default
var console_listen_address = "{{ console_listen_address }}"
if (console_listen_address != '') {
$("#console_select_listen_address option[value='" + console_listen_address + "']").prop('selected', true);
}
});
{% if not request.user.is_superuser %}
$('#select_clone_name').on('change', function () {
update_clone_disk_name($(this).val());

View file

@ -22,7 +22,6 @@ from vrtManager.connection import connection_manager
from vrtManager.create import wvmCreate
from vrtManager.util import randomPasswd
from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE
from webvirtcloud.settings import QEMU_KEYMAPS, QEMU_CONSOLE_TYPES
from logs.views import addlogmsg
from django.conf import settings
@ -186,8 +185,9 @@ def instance(request, compute_id, vname):
computes_count = computes.count()
users = User.objects.all().order_by('username')
publickeys = UserSSHKey.objects.filter(user_id=request.user.id)
keymaps = QEMU_KEYMAPS
console_types = QEMU_CONSOLE_TYPES
keymaps = settings.QEMU_KEYMAPS
console_types = settings.QEMU_CONSOLE_TYPES
console_listen_addresses = settings.QEMU_CONSOLE_LISTEN_ADDRESSES
try:
userinstace = UserInstance.objects.get(instance__compute_id=compute_id,
instance__name=vname,
@ -330,6 +330,7 @@ def instance(request, compute_id, vname):
console_type = conn.get_console_type()
console_port = conn.get_console_port()
console_keymap = conn.get_console_keymap()
console_listen_address = conn.get_console_listen_addr()
snapshots = sorted(conn.get_snapshot(), reverse=True)
inst_xml = conn._XMLDesc(VIR_DOMAIN_XML_SECURE)
has_managed_save_image = conn.get_managed_save_image()
@ -617,6 +618,13 @@ def instance(request, compute_id, vname):
msg = _("Set VNC type")
addlogmsg(request.user.username, instance.name, msg)
return HttpResponseRedirect(request.get_full_path() + '#vncsettings')
if 'set_console_listen_address' in request.POST:
console_type = request.POST.get('console_listen_address', '')
conn.set_console_listen_addr(console_type)
msg = _("Set VNC listen address")
addlogmsg(request.user.username, instance.name, msg)
return HttpResponseRedirect(request.get_full_path() + '#vncsettings')
if request.user.is_superuser:
if 'migrate' in request.POST: