mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-24 15:15:22 +00:00
Add XML config editing option for a network
This commit is contained in:
parent
573df2acaa
commit
ead0414a4d
3 changed files with 121 additions and 71 deletions
|
@ -1,5 +1,6 @@
|
|||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
{% load staticfiles %}
|
||||
{% block title %}{% trans "Network" %} - {{ pool }}{% endblock %}
|
||||
{% block content %}
|
||||
<!-- Page Heading -->
|
||||
|
@ -38,10 +39,10 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<p>{% trans "Network name:" %}</p>
|
||||
<p>{% trans "Device:" %}</p>
|
||||
<p>{% trans "State" %}</p>
|
||||
<p>{% trans "Autostart" %}</p>
|
||||
<p>{% trans "Network name" %}:</p>
|
||||
<p>{% trans "Device" %}:</p>
|
||||
<p>{% trans "State" %}:</p>
|
||||
<p>{% trans "Autostart" %}:</p>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-6">
|
||||
<p>{{ pool }}</p>
|
||||
|
@ -67,7 +68,31 @@
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{#{% if state %}#}
|
||||
<div class="row">
|
||||
<h3 class="page-header"></h3>
|
||||
</div>
|
||||
<div class="panel-group" id="accordion">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
|
||||
{% trans 'XML' %}
|
||||
</a>
|
||||
</div>
|
||||
<div id="collapseOne" class="panel-collapse collapse">
|
||||
<div class="panel-body">
|
||||
<form class="form-inline" method="post" role="form">{% csrf_token %}
|
||||
<div class="col-xs-12" id="xmlheight">
|
||||
<input type="hidden" name="edit_xml"/>
|
||||
<textarea id="edit_editor">{{ xml }}</textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right" name="edit_network">
|
||||
{% trans "Edit" %}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h3 class="page-header">{% trans "IPv4 Configuration" %}</h3>
|
||||
</div>
|
||||
|
@ -190,7 +215,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{#{% endif %}#}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block script %}
|
||||
|
@ -230,4 +254,14 @@
|
|||
});
|
||||
});
|
||||
</script>
|
||||
<script src="{% static "js/ace.js" %}"></script>
|
||||
<script>
|
||||
var editor = ace.edit("edit_editor");
|
||||
editor.getSession().setMode("ace/mode/xml");
|
||||
|
||||
var edit_input = $('input[name="edit_xml"]');
|
||||
editor.getSession().on("change", function () {
|
||||
edit_input.val(editor.getSession().getValue());
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
|
@ -88,6 +88,7 @@ def network(request, compute_id, pool):
|
|||
ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end()
|
||||
ipv4_network = conn.get_ipv4_network()
|
||||
fixed_address = conn.get_mac_ipaddr()
|
||||
xml = conn._XMLDesc(0)
|
||||
except libvirtError as lib_err:
|
||||
error_messages.append(lib_err)
|
||||
|
||||
|
@ -139,7 +140,6 @@ def network(request, compute_id, pool):
|
|||
conn.delete_fixed_address(mac)
|
||||
messages.success(request, "Fixed Address is Deleted.")
|
||||
return HttpResponseRedirect(request.get_full_path())
|
||||
|
||||
if 'modify_dhcp_range' in request.POST:
|
||||
range_start = request.POST.get('range_start', '')
|
||||
range_end = request.POST.get('range_end', '')
|
||||
|
@ -149,6 +149,22 @@ def network(request, compute_id, pool):
|
|||
return HttpResponseRedirect(request.get_full_path())
|
||||
except libvirtError as lib_err:
|
||||
error_messages.append(lib_err.message)
|
||||
if 'edit_network' in request.POST:
|
||||
edit_xml = request.POST.get('edit_xml', '')
|
||||
if edit_xml:
|
||||
try:
|
||||
new_conn = wvmNetworks(compute.hostname,
|
||||
compute.login,
|
||||
compute.password,
|
||||
compute.type)
|
||||
conn.define_network(edit_xml)
|
||||
if conn.is_active():
|
||||
messages.success(request, _("Network XML is changed. Stop and start network to activate new config."))
|
||||
else:
|
||||
messages.success(request, _("Network XML is changed."))
|
||||
return HttpResponseRedirect(request.get_full_path())
|
||||
except libvirtError as lib_err:
|
||||
error_messages.append(lib_err.message)
|
||||
|
||||
conn.close()
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ from vrtManager import util
|
|||
from vrtManager.IPy import IP
|
||||
from vrtManager.connection import wvmConnect
|
||||
from xml.etree import ElementTree
|
||||
from libvirt import VIR_NETWORK_SECTION_IP_DHCP_HOST, VIR_NETWORK_SECTION_IP_DHCP_RANGE
|
||||
from libvirt import VIR_NETWORK_SECTION_IP_DHCP_HOST
|
||||
from libvirt import VIR_NETWORK_UPDATE_COMMAND_ADD_LAST, VIR_NETWORK_UPDATE_COMMAND_DELETE, VIR_NETWORK_UPDATE_COMMAND_MODIFY
|
||||
from libvirt import VIR_NETWORK_UPDATE_AFFECT_LIVE, VIR_NETWORK_UPDATE_AFFECT_CONFIG
|
||||
|
||||
|
|
Loading…
Reference in a new issue