mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-09 03:36:48 +00:00
fix(logs): a row says what happened: a recovered migration, a failed clone step, a device not there
- A migration whose libvirt call failed but which recovery finds moved (or cannot tell) gets a row of that end; only a failure already logged by migrate_instance is not logged twice. - A clone made with its resize or start failed, and a recovered migration whose autostart or NVRAM step failed, write a failed row of that step, as migrate_instance does for its later steps. - Setting the link state of an interface or the video model of a VM that has none is refused: it changed nothing and was logged as done. - The rows of a removed VM record (deleted or expired) name its host, VM and UUID, so the VM's history has them.
This commit is contained in:
parent
470cc9860e
commit
528b4492f6
14 changed files with 390 additions and 304 deletions
|
|
@ -8,6 +8,7 @@ from django.urls import reverse
|
|||
from django.utils import timezone
|
||||
|
||||
from instances.models import InstanceTombstone
|
||||
from logs.models import Logs
|
||||
|
||||
UUID = "00000000-0000-4000-8000-000000000001"
|
||||
|
||||
|
|
@ -57,3 +58,6 @@ class TombstoneTests(TestCase):
|
|||
self.assertRedirects(response, reverse("admin:tombstone_list"))
|
||||
self.assertContains(response, "Removed VM ts-vm deleted")
|
||||
self.assertFalse(InstanceTombstone.objects.exists())
|
||||
# the VM's history (found by UUID) has it
|
||||
self.assertEqual(list(Logs.objects.filter(message__startswith="Removed VM").values_list("host", "instance", "instance_uuid")),
|
||||
[("ts-host", "ts-vm", UUID)])
|
||||
|
|
|
|||
|
|
@ -343,7 +343,8 @@ def tombstone_list(request):
|
|||
def tombstone_delete(request, pk):
|
||||
tombstone = get_object_or_404(InstanceTombstone, pk=pk)
|
||||
if request.method == "POST":
|
||||
with audit(request, None, f"Removed VM {tombstone.name} ({tombstone.uuid})", "delete"):
|
||||
with audit(request, tombstone.host or None, f"Removed VM {tombstone.name} ({tombstone.uuid})", "delete",
|
||||
instance=tombstone.name, uuid=tombstone.uuid):
|
||||
tombstone.delete()
|
||||
messages.success(request, _("Removed VM %(name)s deleted") % {"name": tombstone.name})
|
||||
return redirect("admin:tombstone_list")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue