mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-24 23:25:24 +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" %}
|
{% extends "base.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% load staticfiles %}
|
||||||
{% block title %}{% trans "Network" %} - {{ pool }}{% endblock %}
|
{% block title %}{% trans "Network" %} - {{ pool }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<!-- Page Heading -->
|
<!-- Page Heading -->
|
||||||
|
@ -38,10 +39,10 @@
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-6 col-sm-4">
|
<div class="col-xs-6 col-sm-4">
|
||||||
<p>{% trans "Network name:" %}</p>
|
<p>{% trans "Network name" %}:</p>
|
||||||
<p>{% trans "Device:" %}</p>
|
<p>{% trans "Device" %}:</p>
|
||||||
<p>{% trans "State" %}</p>
|
<p>{% trans "State" %}:</p>
|
||||||
<p>{% trans "Autostart" %}</p>
|
<p>{% trans "Autostart" %}:</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-6">
|
<div class="col-xs-6 col-sm-6">
|
||||||
<p>{{ pool }}</p>
|
<p>{{ pool }}</p>
|
||||||
|
@ -67,7 +68,31 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<div class="row">
|
||||||
<h3 class="page-header">{% trans "IPv4 Configuration" %}</h3>
|
<h3 class="page-header">{% trans "IPv4 Configuration" %}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
@ -190,7 +215,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{#{% endif %}#}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block script %}
|
{% block script %}
|
||||||
|
@ -230,4 +254,14 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</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 %}
|
{% endblock %}
|
|
@ -88,6 +88,7 @@ def network(request, compute_id, pool):
|
||||||
ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end()
|
ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end()
|
||||||
ipv4_network = conn.get_ipv4_network()
|
ipv4_network = conn.get_ipv4_network()
|
||||||
fixed_address = conn.get_mac_ipaddr()
|
fixed_address = conn.get_mac_ipaddr()
|
||||||
|
xml = conn._XMLDesc(0)
|
||||||
except libvirtError as lib_err:
|
except libvirtError as lib_err:
|
||||||
error_messages.append(lib_err)
|
error_messages.append(lib_err)
|
||||||
|
|
||||||
|
@ -139,7 +140,6 @@ def network(request, compute_id, pool):
|
||||||
conn.delete_fixed_address(mac)
|
conn.delete_fixed_address(mac)
|
||||||
messages.success(request, "Fixed Address is Deleted.")
|
messages.success(request, "Fixed Address is Deleted.")
|
||||||
return HttpResponseRedirect(request.get_full_path())
|
return HttpResponseRedirect(request.get_full_path())
|
||||||
|
|
||||||
if 'modify_dhcp_range' in request.POST:
|
if 'modify_dhcp_range' in request.POST:
|
||||||
range_start = request.POST.get('range_start', '')
|
range_start = request.POST.get('range_start', '')
|
||||||
range_end = request.POST.get('range_end', '')
|
range_end = request.POST.get('range_end', '')
|
||||||
|
@ -149,6 +149,22 @@ def network(request, compute_id, pool):
|
||||||
return HttpResponseRedirect(request.get_full_path())
|
return HttpResponseRedirect(request.get_full_path())
|
||||||
except libvirtError as lib_err:
|
except libvirtError as lib_err:
|
||||||
error_messages.append(lib_err.message)
|
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()
|
conn.close()
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ from vrtManager import util
|
||||||
from vrtManager.IPy import IP
|
from vrtManager.IPy import IP
|
||||||
from vrtManager.connection import wvmConnect
|
from vrtManager.connection import wvmConnect
|
||||||
from xml.etree import ElementTree
|
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_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
|
from libvirt import VIR_NETWORK_UPDATE_AFFECT_LIVE, VIR_NETWORK_UPDATE_AFFECT_CONFIG
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue