def network(request, host_id, pool): """ Networks block """ if not request.user.is_authenticated(): return redirect('login') errors = [] compute = Compute.objects.get(id=host_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range_start = conn.get_ipv4_dhcp_range_start() ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() except libvirtError as err: errors.append(err) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return redirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'stop' in request.POST: try: conn.stop() return redirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'delete' in request.POST: try: conn.delete() return redirect('networks', args=[host_id]) except libvirtError as error_msg: errors.append(error_msg.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return redirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return redirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) conn.close() return render(request, 'network.html', locals())
def network(request, compute_id, pool): """ :param request: :param compute_id: :param pool: :return: """ compute = get_object_or_404(Compute, pk=compute_id) try: conn = wvmNetwork( compute.hostname, compute.login, compute.password, compute.type, pool, ) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() net_mac = conn.get_network_mac() net_forward = conn.get_network_forward() qos = conn.get_qos() dhcp_range_start = ipv4_dhcp_range_end = dict() ip_networks = conn.get_ip_networks() for family, ip_network in ip_networks.items(): if family == "ipv4": ipv4_dhcp_range_start = conn.get_dhcp_range_start(family) ipv4_dhcp_range_end = conn.get_dhcp_range_end(family) ipv4_network = ip_network ipv4_fixed_address = conn.get_dhcp_host_addr(family) elif family == "ipv6": ipv6_dhcp_range_start = conn.get_dhcp_range_start(family) ipv6_dhcp_range_end = conn.get_dhcp_range_end(family) ipv6_network = ip_network ipv6_fixed_address = conn.get_dhcp_host_addr(family) else: raise Exception(_("Unknown Network Family")) xml = conn._XMLDesc(0) except libvirtError as lib_err: messages.error(request, lib_err) return HttpResponseRedirect(reverse("networks", args=compute_id)) if request.method == "POST": if "start" in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) if "stop" in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) if "delete" in request.POST: try: conn.delete() return HttpResponseRedirect( reverse("networks", args=[compute_id])) except libvirtError as lib_err: messages.error(request, lib_err) if "set_autostart" in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) if "unset_autostart" in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) if "modify_fixed_address" in request.POST: name = request.POST.get("name", "") address = request.POST.get("address", "") family = request.POST.get("family", "ipv4") if family == "ipv4": mac_duid = request.POST.get("mac", "") if family == "ipv6": mac_duid = request.POST.get("id", "") try: ret_val = conn.modify_fixed_address(name, address, mac_duid, family) messages.success( request, _("Fixed address operation completed for %(family)s") % {"family": family.upper()}) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) except ValueError as val_err: messages.error(request, val_err) if "delete_fixed_address" in request.POST: ip = request.POST.get("address", "") family = request.POST.get("family", "ipv4") conn.delete_fixed_address(ip, family) messages.success( request, _("%(family)s Fixed Address is Deleted.") % {"family": family.upper()}) 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", "") family = request.POST.get("family", "ipv4") try: conn.modify_dhcp_range(range_start, range_end, family) messages.success( request, _("%(family)s DHCP Range is Changed.") % {"family": family.upper()}) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: messages.error(request, lib_err) if "edit_network" in request.POST: edit_xml = request.POST.get("edit_xml", "") if edit_xml: conn.edit_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()) if "set_qos" in request.POST: qos_dir = request.POST.get("qos_direction", "") average = request.POST.get("qos_average") or 0 peak = request.POST.get("qos_peak") or 0 burst = request.POST.get("qos_burst") or 0 try: conn.set_qos(qos_dir, average, peak, burst) if conn.is_active(): messages.success( request, _("%(qos_dir)s QoS is updated. Network XML is changed. Stop and start network to activate new config" ) % {"qos_dir": qos_dir.capitalize()}) else: messages.success( request, _("%(qos_dir)s QoS is set") % {"qos_dir": qos_dir.capitalize()}) except libvirtError as lib_err: messages.error(request, lib_err) return HttpResponseRedirect(request.get_full_path()) if "unset_qos" in request.POST: qos_dir = request.POST.get("qos_direction", "") conn.unset_qos(qos_dir) if conn.is_active(): messages.success( request, _("%(qos_dir)s QoS is deleted. Network XML is changed. \ Stop and start network to activate new config") % {"qos_dir": qos_dir.capitalize()}) else: messages.success( request, _("%(qos_dir)s QoS is deleted") % {"qos_dir": qos_dir.capitalize()}) return HttpResponseRedirect(request.get_full_path()) conn.close() return render(request, "network.html", locals())
def network(request, host_id, pool): """ Networks block """ errors = [] compute = Compute.objects.get(id=host_id) conn = None try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range = conn.get_ipv4_dhcp_range() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() object = { 'errors': {}, 'response': { 'networks': networks, 'state': state, 'device': device, 'autostart': autostart, 'ipv4_forward': ipv4_forward, 'ipv4_dhcp_range': { 'start': str(ipv4_dhcp_range[0]) if ipv4_dhcp_range else None, 'end': str(ipv4_dhcp_range[1] if ipv4_dhcp_range else None) }, 'ipv4_network': str(ipv4_network), 'fixed_address': fixed_address } } except libvirtError as err: errors.append(err) object = {'errors': [str(error) for error in errors]} if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect('/%s/networks' % host_id) except libvirtError as error_msg: errors.append(error_msg.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if conn: conn.close() return render(object, 'network.html', locals(), request)
def network(request, compute_id, pool): """ :param request: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) error_messages = [] compute = get_object_or_404(Compute, pk=compute_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range_start = conn.get_ipv4_dhcp_range_start() 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) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect( reverse('networks', args=[compute_id])) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'modify_fixed_address' in request.POST: name = request.POST.get('name', '') address = request.POST.get('address', '') mac = request.POST.get('mac', '') try: ret_val = conn.modify_fixed_address(name, address, mac) messages.success(request, "Fixed Address Operation Completed.") return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) except ValueError as val_err: error_messages.append(val_err.message) if 'delete_fixed_address' in request.POST: mac = request.POST.get('mac', '') 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', '') try: conn.modify_dhcp_range(range_start, range_end) messages.success(request, "DHCP Range is Changed.") 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() return render(request, 'network.html', locals())
def network(request, host_id, pool): """ Networks block """ if not request.user.is_authenticated(): return HttpResponseRedirect('/login') errors = [] compute = Compute.objects.get(id=host_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range = conn.get_ipv4_dhcp_range() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() except libvirtError as err: errors.append(err.message) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect('/networks/%s/' % host_id) except libvirtError as error_msg: errors.append(error_msg.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) conn.close() return render_to_response('network.html', locals(), context_instance=RequestContext(request))
def network(request, compute_id, pool): """ :param request: :return: """ if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) error_messages = [] compute = get_object_or_404(Compute, pk=compute_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range_start = conn.get_ipv4_dhcp_range_start() ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() except libvirtError as lib_err: error_messages.append(lib_err) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect(reverse('networks', args=[compute_id])) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) conn.close() return render(request, 'network.html', locals())
def network(request, compute_id, pool): """ :param request: :param compute_id: :param pool: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) error_messages = [] compute = get_object_or_404(Compute, pk=compute_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() net_mac = conn.get_network_mac() net_forward = conn.get_network_forward() qos = conn.get_qos() dhcp_range_start = ipv4_dhcp_range_end = dict() ip_networks = conn.get_ip_networks() for family, ip_network in ip_networks.items(): if family == "ipv4": ipv4_dhcp_range_start = conn.get_dhcp_range_start(family) ipv4_dhcp_range_end = conn.get_dhcp_range_end(family) ipv4_network = ip_network ipv4_fixed_address = conn.get_dhcp_host_addr(family) elif family == "ipv6": ipv6_dhcp_range_start = conn.get_dhcp_range_start(family) ipv6_dhcp_range_end = conn.get_dhcp_range_end(family) ipv6_network = ip_network ipv6_fixed_address = conn.get_dhcp_host_addr(family) else: raise Exception("Unknown Network Family") xml = conn._XMLDesc(0) except libvirtError as lib_err: error_messages.append(lib_err) return HttpResponseRedirect(reverse('networks', args=compute_id)) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect(reverse('networks', args=[compute_id])) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'modify_fixed_address' in request.POST: name = request.POST.get('name', '') address = request.POST.get('address', '') family = request.POST.get('family', 'ipv4') if family == 'ipv4': mac_duid = request.POST.get('mac', '') if family == 'ipv6': mac_duid = request.POST.get('id', '') try: ret_val = conn.modify_fixed_address(name, address, mac_duid, family) messages.success(request, "{} Fixed Address Operation Completed.".format(family.upper())) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) except ValueError as val_err: error_messages.append(val_err.message) if 'delete_fixed_address' in request.POST: ip = request.POST.get('address', '') family = request.POST.get('family', 'ipv4') conn.delete_fixed_address(ip, family) messages.success(request, "{} Fixed Address is Deleted.".format(family.upper())) 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', '') family = request.POST.get('family', 'ipv4') try: conn.modify_dhcp_range(range_start, range_end, family) messages.success(request, "{} DHCP Range is Changed.".format(family.upper())) 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: conn.edit_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()) if 'set_qos' in request.POST: qos_dir = request.POST.get('qos_direction', '') average = request.POST.get('qos_average') or 0 peak = request.POST.get('qos_peak') or 0 burst = request.POST.get('qos_burst') or 0 try: conn.set_qos(qos_dir, average, peak, burst) if conn.is_active(): messages.success(request, "{} Qos is set. Network XML is changed.".format(qos_dir.capitalize()) + "Stop and start network to activate new config") else: messages.success(request, "{} Qos is set".format(qos_dir.capitalize())) except libvirtError as le: messages.error(request, le.message) return HttpResponseRedirect(request.get_full_path()) if 'unset_qos' in request.POST: qos_dir = request.POST.get('qos_direction', '') conn.unset_qos(qos_dir) if conn.is_active(): messages.success(request, "{} Qos is deleted. Network XML is changed. ".format(qos_dir.capitalize()) + "Stop and start network to activate new config.") else: messages.success(request, "{} Qos is deleted".format(qos_dir.capitalize())) return HttpResponseRedirect(request.get_full_path()) conn.close() return render(request, 'network.html', locals())
def network(request, compute_id, pool): """ :param request: :return: """ if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) error_messages = [] compute = get_object_or_404(Compute, pk=compute_id) try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range_start = conn.get_ipv4_dhcp_range_start() ipv4_dhcp_range_end = conn.get_ipv4_dhcp_range_end() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() except libvirtError as lib_err: error_messages.append(lib_err) if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect( reverse('networks', args=[compute_id])) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as lib_err: error_messages.append(lib_err.message) conn.close() return render(request, 'network.html', locals())
def network(request, host_id, pool): """ Networks block """ errors = [] compute = Compute.objects.get(id=host_id) conn = None try: conn = wvmNetwork(compute.hostname, compute.login, compute.password, compute.type, pool) networks = conn.get_networks() state = conn.is_active() device = conn.get_bridge_device() autostart = conn.get_autostart() ipv4_forward = conn.get_ipv4_forward() ipv4_dhcp_range = conn.get_ipv4_dhcp_range() ipv4_network = conn.get_ipv4_network() fixed_address = conn.get_mac_ipaddr() object = { 'errors': {}, 'response': { 'networks': networks, 'state': state, 'device': device, 'autostart': autostart, 'ipv4_forward': ipv4_forward, 'ipv4_dhcp_range': { 'start': str(ipv4_dhcp_range[0]) if ipv4_dhcp_range else None, 'end': str(ipv4_dhcp_range[1] if ipv4_dhcp_range else None) }, 'ipv4_network': str(ipv4_network), 'fixed_address': fixed_address } } except libvirtError as err: errors.append(err) object = { 'errors': [str(error) for error in errors] } if request.method == 'POST': if 'start' in request.POST: try: conn.start() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'stop' in request.POST: try: conn.stop() return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'delete' in request.POST: try: conn.delete() return HttpResponseRedirect('/%s/networks' % host_id) except libvirtError as error_msg: errors.append(error_msg.message) if 'set_autostart' in request.POST: try: conn.set_autostart(1) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if 'unset_autostart' in request.POST: try: conn.set_autostart(0) return HttpResponseRedirect(request.get_full_path()) except libvirtError as error_msg: errors.append(error_msg.message) if conn: conn.close() return render(object, 'network.html', locals(), request)