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

logs i18n problems fixed

This commit is contained in:
cserma 2023-04-27 16:06:19 +03:00
parent da9fbeaff4
commit b81b63a962
17 changed files with 8792 additions and 11604 deletions

View file

@ -5,7 +5,8 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.utils.translation import gettext_lazy as _
#from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext_noop as _
from logs.views import addlogmsg
from appsettings.models import AppSettings
@ -24,7 +25,7 @@ def appsettings(request):
themes_list = os.listdir(sass_dir.value + "/wvc-themes")
except FileNotFoundError as err:
messages.error(request, err)
addlogmsg(request.user.username, "-", "", err)
addlogmsg(request.user.username, "-", "", err, ip=get_client_ip(request))
# Bootstrap settings related with filesystems, because of that they are excluded from other settings
appsettings = AppSettings.objects.exclude(
@ -45,7 +46,7 @@ def appsettings(request):
msg = err
messages.error(request, msg)
addlogmsg(request.user.username, "-", "", msg)
addlogmsg(request.user.username, "-", "", msg, ip=get_client_ip(request))
return HttpResponseRedirect(request.get_full_path())
if "BOOTSTRAP_THEME" in request.POST:
@ -79,7 +80,7 @@ def appsettings(request):
msg = err
messages.error(request, msg)
addlogmsg(request.user.username, "-", "", msg)
addlogmsg(request.user.username, "-", "", msg, ip=get_client_ip(request))
return HttpResponseRedirect(request.get_full_path())
for setting in appsettings:
@ -97,7 +98,15 @@ def appsettings(request):
msg = err
messages.error(request, msg)
addlogmsg(request.user.username, "-", "", msg)
addlogmsg(request.user.username, "-", "", msg, ip=get_client_ip(request))
return HttpResponseRedirect(request.get_full_path())
return render(request, "appsettings.html", locals())
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip

View file

@ -8,7 +8,7 @@
</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#logs" type="button" role="tab" aria-controls="logs" aria-selected="false">
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#logs" type="button" role="tab" aria-controls="logs" aria-selected="false" onclick="update_logs_table(vname);">
{% trans "Logs" %}
</button>
</li>
@ -85,6 +85,7 @@
<tr>
<th scope="col">{% trans "Date" %}</th>
<th scope="col">{% trans "User" %}</th>
<th scope="col">{% trans "IP" %}</th>
<th scope="col">{% trans "Message" %}</th>
</tr>
</thead>
@ -110,6 +111,7 @@
// console.log(row);
logs += '<tr><td style="width:150px">'+row['date']+'</td>';
logs += '<td>'+row['user']+'</td>';
logs += '<td>'+row['ip']+'</td>';
logs += '<td>'+row['message']+'</td></tr>';
});
$("#logs_table > tbody").html(logs);

View file

@ -19,7 +19,7 @@ from django.contrib.auth.models import User
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext_noop as _
from libvirt import (VIR_DOMAIN_UNDEFINE_KEEP_NVRAM,
VIR_DOMAIN_UNDEFINE_NVRAM,
VIR_DOMAIN_START_PAUSED,
@ -121,12 +121,12 @@ def instance(request, pk):
# instance.uuid = uuid
# instance.save()
# msg = _(f"Fixing UUID {uuid}")
# addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
# addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
# except Instance.DoesNotExist:
# instance = Instance(compute=compute, name=vname, uuid=uuid)
# instance.save()
# msg = _("Instance does not exist: Creating new instance")
# addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
# addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
# userinstances = UserInstance.objects.filter(instance=instance).order_by('user__username')
userinstances = instance.userinstance_set.order_by("user__username")
@ -337,7 +337,7 @@ def poweron(request, pk):
else:
instance.proxy.start()
addlogmsg(
request.user.username, instance.compute.name, instance.name, _("Power On")
request.user.username, instance.compute.name, instance.name, _("Power On"), ip=get_client_ip(request)
)
return redirect(request.META.get("HTTP_REFERER"))
@ -348,7 +348,7 @@ def powercycle(request, pk):
instance.proxy.force_shutdown()
instance.proxy.start()
addlogmsg(
request.user.username, instance.compute.name, instance.name, _("Power Cycle")
request.user.username, instance.compute.name, instance.name, _("Power Cycle"), ip=get_client_ip(request)
)
return redirect(request.META.get("HTTP_REFERER"))
@ -357,7 +357,7 @@ def poweroff(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.shutdown()
addlogmsg(
request.user.username, instance.compute.name, instance.name, _("Power Off")
request.user.username, instance.compute.name, instance.name, _("Power Off"), ip=get_client_ip(request)
)
return redirect(request.META.get("HTTP_REFERER"))
@ -367,7 +367,7 @@ def poweroff(request, pk):
def suspend(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.suspend()
addlogmsg(request.user.username, instance.compute.name, instance.name, _("Suspend"))
addlogmsg(request.user.username, instance.compute.name, instance.name, _("Suspend"), ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER"))
@ -375,7 +375,7 @@ def suspend(request, pk):
def resume(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.resume()
addlogmsg(request.user.username, instance.compute.name, instance.name, _("Resume"))
addlogmsg(request.user.username, instance.compute.name, instance.name, _("Resume"), ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER"))
@ -383,7 +383,7 @@ def force_off(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.force_shutdown()
addlogmsg(
request.user.username, instance.compute.name, instance.name, _("Force Off")
request.user.username, instance.compute.name, instance.name, _("Force Off"), ip=get_client_ip(request)
)
return redirect(request.META.get("HTTP_REFERER"))
@ -414,7 +414,7 @@ def destroy(request, pk):
instance.delete()
addlogmsg(
request.user.username, instance.compute.name, instance.name, _("Destroy")
request.user.username, instance.compute.name, instance.name, _("Destroy"), ip=get_client_ip(request)
)
return redirect(reverse("instances:index"))
@ -465,7 +465,7 @@ def migrate(request, pk):
"hostname": target_host.hostname,
"method": migration_method,
}
addlogmsg(request.user.username, current_host, instance.name, msg)
addlogmsg(request.user.username, current_host, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER"))
@ -489,7 +489,7 @@ def set_root_pass(request, pk):
if result["return"] == "success":
msg = _("Reset root password")
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
messages.success(request, msg)
else:
@ -523,7 +523,7 @@ def add_public_key(request, pk):
msg = _("Installed new SSH public key %(keyname)s") % {
"keyname": publickey.keyname
}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
if result["return"] == "success":
messages.success(request, msg)
@ -567,7 +567,7 @@ def resizevm_cpu(request, pk):
"new": vcpu,
}
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
messages.success(request, msg)
return redirect(reverse("instances:instance", args=[instance.id]) + "#resize")
@ -615,7 +615,7 @@ def resize_memory(request, pk):
"new_max": new_memory,
}
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
messages.success(request, msg)
@ -659,7 +659,7 @@ def resize_disk(request, pk):
instance.proxy.resize_disk(disks_new)
msg = _("Disk is resized: %(dev)s") % {"dev": disk["dev"]}
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
messages.success(request, msg)
@ -730,7 +730,7 @@ def add_new_vol(request, pk):
"name": name,
"format": format,
}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -780,7 +780,7 @@ def add_existing_vol(request, pk):
cache_mode=cache,
)
msg = _("Attach Existing disk: %(target_dev)s") % {"target_dev": target_dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -853,7 +853,7 @@ def edit_volume(request, pk):
else:
messages.success(request, _("Volume is changed successfully."))
msg = _("Edit disk: %(target_dev)s") % {"target_dev": target_dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -880,7 +880,7 @@ def delete_vol(request, pk):
instance.proxy.detach_disk(dev)
conn_delete.del_volume(name)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -895,7 +895,7 @@ def detach_vol(request, pk):
path = request.POST.get("path", "")
instance.proxy.detach_disk(dev)
msg = _("Detach disk: %(dev)s") % {"dev": dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -917,7 +917,7 @@ def add_cdrom(request, pk):
readonly=True,
)
msg = _("Add CD-ROM: %(target)s") % {"target": target}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -932,7 +932,7 @@ def detach_cdrom(request, pk, dev):
# dev = request.POST.get('detach_cdrom', '')
instance.proxy.detach_disk(dev)
msg = _("Detach CD-ROM: %(dev)s") % {"dev": dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -947,7 +947,7 @@ def unmount_iso(request, pk):
dev = request.POST.get("umount_iso", "")
instance.proxy.umount_iso(dev, image)
msg = _("Mount media: %(dev)s") % {"dev": dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -962,7 +962,7 @@ def mount_iso(request, pk):
dev = request.POST.get("mount_iso", "")
instance.proxy.mount_iso(dev, image)
msg = _("Unmount media: %(dev)s") % {"dev": dev}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#disks")
@ -980,7 +980,7 @@ def snapshot(request, pk):
desc = request.POST.get("description", "")
instance.proxy.create_snapshot(name, desc)
msg = _("Create snapshot: %(snap)s") % {"snap": name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#managesnapshot")
@ -995,7 +995,7 @@ def delete_snapshot(request, pk):
snap_name = request.POST.get("name", "")
instance.proxy.snapshot_delete(snap_name)
msg = _("Delete snapshot: %(snap)s") % {"snap": snap_name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#managesnapshot")
@ -1013,7 +1013,7 @@ def revert_snapshot(request, pk):
msg += snap_name
messages.success(request, msg)
msg = _("Revert snapshot: %(snap)s") % {"snap": snap_name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#managesnapshot")
@ -1030,7 +1030,7 @@ def create_external_snapshot(request, pk):
desc = request.POST.get("description", "")
instance.proxy.create_external_snapshot("s1." + name, instance, desc=desc)
msg = _("Create external snapshot: %(snap)s") % {"snap": name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#managesnapshot")
@ -1064,7 +1064,7 @@ def revert_external_snapshot(request, pk):
instance.proxy.revert_external_snapshot(name, date, desc)
instance.proxy.start() if instance_state else None
msg = _("Revert external snapshot: %(snap)s") % {"snap": name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#managesnapshot")
@ -1085,7 +1085,7 @@ def delete_external_snapshot(request, pk):
try:
instance.proxy.delete_external_snapshot(name)
msg = _("Delete external snapshot: %(snap)s") % {"snap": name}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
finally:
instance.proxy.force_shutdown() if instance_state else None
@ -1102,7 +1102,7 @@ def set_vcpu(request, pk):
else:
instance.proxy.set_vcpu(id, 0)
msg = _("VCPU %(id)s is enabled=%(enabled)s") % {"id": id, "enabled": enabled}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#resize")
@ -1112,7 +1112,7 @@ def set_vcpu_hotplug(request, pk):
status = True if request.POST.get("vcpu_hotplug", "False") == "True" else False
msg = _("VCPU Hot-plug is enabled=%(status)s") % {"status": status}
instance.proxy.set_vcpu_hotplug(status)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#resize")
@ -1121,7 +1121,7 @@ def set_autostart(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.set_autostart(1)
msg = _("Set autostart")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#boot_opt")
@ -1130,7 +1130,7 @@ def unset_autostart(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.set_autostart(0)
msg = _("Unset autostart")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#boot_opt")
@ -1139,7 +1139,7 @@ def set_bootmenu(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.set_bootmenu(1)
msg = _("Enable boot menu")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#boot_opt")
@ -1148,7 +1148,7 @@ def unset_bootmenu(request, pk):
instance = get_instance(request.user, pk)
instance.proxy.set_bootmenu(0)
msg = _("Disable boot menu")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#boot_opt")
@ -1174,7 +1174,7 @@ def set_bootorder(request, pk):
)
else:
messages.success(request, _("Boot order changed successfully."))
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#boot_opt")
@ -1185,7 +1185,7 @@ def change_xml(request, pk):
if new_xml:
instance.proxy._defineXML(new_xml)
msg = _("Change instance XML")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#xmledit")
@ -1199,7 +1199,7 @@ def set_guest_agent(request, pk):
instance.proxy.remove_guest_agent()
msg = _("Set Guest Agent: %(status)s") % {"status": status}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#options")
@ -1209,7 +1209,7 @@ def set_video_model(request, pk):
video_model = request.POST.get("video_model", "vga")
instance.proxy.set_video_model(video_model)
msg = _("Set Video Model: %(model)s") % {"model": video_model}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#options")
@ -1239,7 +1239,7 @@ def change_network(request, pk):
network_data[post] = request.POST.get(post, "")
instance.proxy.change_network(network_data)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
msg = _("Network Device Config is changed. Please shutdown instance to activate.")
if instance.proxy.get_status() != 5:
messages.success(request, msg)
@ -1266,7 +1266,7 @@ def add_network(request, pk):
instance.proxy.add_network(mac, source, source_type, nwfilter=nwfilter)
msg = _("Add network: %(mac)s") % {"mac": mac}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#network")
@ -1277,7 +1277,7 @@ def delete_network(request, pk):
instance.proxy.delete_network(mac_address)
msg = _("Delete Network: %(mac)s") % {"mac": mac_address}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#network")
@ -1290,7 +1290,7 @@ def set_link_state(request, pk):
state = "down" if state == "up" else "up"
instance.proxy.set_link_state(mac_address, state)
msg = _("Set Link State: %(state)s") % {"state": state}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#network")
@ -1367,7 +1367,7 @@ def add_owner(request, pk):
add_user_inst.save()
user = User.objects.get(id=user_id)
msg = _("Add owner: %(user)s") % {"user": user}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#users")
@ -1378,7 +1378,7 @@ def del_owner(request, pk):
userinstance = UserInstance.objects.get(pk=userinstance_id)
userinstance.delete()
msg = _("Delete owner: %(userinstance_id)s ") % {"userinstance_id": userinstance_id}
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#users")
@ -1452,7 +1452,7 @@ def clone(request, pk):
}
messages.success(request, msg)
addlogmsg(
request.user.username, instance.compute.name, new_instance.name, msg
request.user.username, instance.compute.name, new_instance.name, msg, ip=get_client_ip(request)
)
if app_settings.CLONE_INSTANCE_AUTO_MIGRATE == "True":
@ -1499,7 +1499,7 @@ def update_console(request, pk):
else:
msg = _("Set VNC password")
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
if "keymap" in form.changed_data or "clear_keymap" in form.changed_data:
@ -1510,21 +1510,21 @@ def update_console(request, pk):
msg = _("Set VNC keymap")
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
if "type" in form.changed_data:
instance.proxy.set_console_type(form.cleaned_data["type"])
msg = _("Set VNC type")
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
if "listen_on" in form.changed_data:
instance.proxy.set_console_listener_addr(form.cleaned_data["listen_on"])
msg = _("Set VNC listen address")
addlogmsg(
request.user.username, instance.compute.name, instance.name, msg
request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request)
)
return redirect(request.META.get("HTTP_REFERER") + "#vncsettings")
@ -1548,7 +1548,7 @@ def change_options(request, pk):
instance.proxy.set_options(options)
msg = _("Edit options")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
return redirect(request.META.get("HTTP_REFERER") + "#options")
@ -1562,7 +1562,7 @@ def getvvfile(request, pk):
)
msg = _("Send console.vv file")
addlogmsg(request.user.username, instance.compute.name, instance.name, msg)
addlogmsg(request.user.username, instance.compute.name, instance.name, msg, ip=get_client_ip(request))
response = HttpResponse(
content="",
content_type="application/x-virt-viewer",
@ -1884,7 +1884,7 @@ def create_instance(request, compute_id, arch, machine):
request.user.username,
create_instance.compute.name,
create_instance.name,
msg,
msg, ip=get_client_ip(request)
)
return redirect(
reverse("instances:instance", args=[create_instance.id])
@ -1946,3 +1946,11 @@ def flavor_delete(request, pk):
"common/confirm_delete.html",
{"object": flavor},
)
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -3,6 +3,7 @@ from django.utils.translation import gettext_lazy as _
class Logs(Model):
user = CharField(_("user"), max_length=50)
ip = CharField(_("ip"), max_length=50, default=None, blank=True, null=True)
host = CharField(_("host"), max_length=50, default="-")
instance = CharField(_("instance"), max_length=50)
message = CharField(_("message"), max_length=255)

View file

@ -7,7 +7,7 @@ from instances.models import Instance
from logs.models import Logs
def addlogmsg(user, host, instance, message):
def addlogmsg(user, host, instance, message, ip=None):
"""
:param user:
:param host:
@ -15,7 +15,7 @@ def addlogmsg(user, host, instance, message):
:param message:
:return:
"""
add_log_msg = Logs(user=user, host=host, instance=instance, message=message)
add_log_msg = Logs(user=user, host=host, instance=instance, message=message, ip=ip)
add_log_msg.save()
@ -33,6 +33,7 @@ def vm_logs(request, vname):
for l in logs_:
log = dict()
log["user"] = l.user
log["ip"] = l.ip
log["host"] = l.host
log["instance"] = l.instance
log["message"] = l.message

View file

@ -3,7 +3,8 @@ from computes.models import Compute
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.utils.translation import gettext_lazy as _
# from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext_noop as _
from libvirt import libvirtError
from logs.views import addlogmsg
from vrtManager import util
@ -61,11 +62,11 @@ def nwfilters(request, compute_id):
"filter": name
}
conn.create_nwfilter(xml)
addlogmsg(request.user.username, compute.hostname, "", msg)
addlogmsg(request.user.username, compute.hostname, "", msg, ip=get_client_ip(request))
except libvirtError as lib_err:
messages.error(request, lib_err)
addlogmsg(
request.user.username, compute.hostname, "", lib_err
request.user.username, compute.hostname, "", lib_err, ip=get_client_ip(request)
)
if "del_nwfilter" in request.POST:
@ -98,7 +99,7 @@ def nwfilters(request, compute_id):
"NWFilter is in use by %(instance)s. Cannot be deleted."
) % {"instance": inst}
messages.error(request, msg)
addlogmsg(request.user.username, compute.hostname, "", msg)
addlogmsg(request.user.username, compute.hostname, "", msg, ip=get_client_ip(request))
i_conn.close()
break
@ -106,7 +107,7 @@ def nwfilters(request, compute_id):
if nwfilter and not in_use:
nwfilter.undefine()
nwfilters_all.remove(nwfilter_info)
addlogmsg(request.user.username, compute.hostname, "", msg)
addlogmsg(request.user.username, compute.hostname, "", msg, ip=get_client_ip(request))
if "cln_nwfilter" in request.POST:
name = request.POST.get("nwfiltername", "")
@ -119,15 +120,15 @@ def nwfilters(request, compute_id):
"name": name,
"clone": cln_name,
}
addlogmsg(request.user.username, compute.hostname, "", msg)
addlogmsg(request.user.username, compute.hostname, "", msg, ip=get_client_ip(request))
conn.close()
except libvirtError as lib_err:
messages.error(request, lib_err)
addlogmsg(request.user.username, compute.hostname, "", lib_err)
addlogmsg(request.user.username, compute.hostname, "", lib_err, ip=get_client_ip(request))
except Exception as err:
messages.error(request, err)
addlogmsg(request.user.username, compute.hostname, "", err)
addlogmsg(request.user.username, compute.hostname, "", err, ip=get_client_ip(request))
return render(
request,
@ -242,3 +243,11 @@ def nwfilter(request, compute_id, nwfltr):
messages.error(request, error_msg)
return render(request, "nwfilter.html", locals())
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip