1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances
catborise 8c0fbff8f7 feat(logs): admin changes and logins are recorded on the Logs page
The Logs page shows who added, changed or deleted a compute, from web
or API, and every login, failed login, lockout and logout, with the
client address and a Result column (Done, Failed, Unknown for older
rows). A failed change is recorded with its reason and the error still
reaches the user; a refused one is recorded too.

- logs.audit.write saves each row in its own savepoint and never
  raises, so a log write cannot break or undo the action it records.
  The audit() context manager writes one row when the change ends.
- Logs gains success and ip; user, host and instance are wider and
  date is indexed. The page orders by date then id.
- A compute edit names the changed fields; an edit that changes
  nothing writes no row, and an empty password field is no change.
- A compute's VMs leaving the panel get a system row each: owners
  kept on the Removed VMs page, moved to another compute, restored,
  left without owners, or the removed record expired.
- Job rows carry the result. A job's log entry that cannot be
  computed is logged and skipped instead of rolling back the finish
  (test_service.py changes this on purpose).
- Logins are recorded by signal receivers; CustomLoginView is removed
  and the plain LoginView is used. A wrong OTP code is a failed login,
  counted by django-axes toward the lockout.

Panel records and host-side objects follow in the next layers.
2026-10-23 10:30:48 +03:00
..
api feat(instances): migration runs as a job 2026-10-16 07:57:02 +03:00
fixtures Instances overhaul 2020-07-13 15:33:09 +06:00
migrations fix(computes): VM ownership survives a move or a short absence 2026-10-04 01:08:11 +03:00
templates fix(templates): each confirmation says what its action does 2026-10-21 21:25:45 +03:00
templatetags fix(instances): a refused VM create form comes back with what was entered 2026-10-20 08:12:25 +03:00
tests feat(logs): admin changes and logins are recorded on the Logs page 2026-10-23 10:30:48 +03:00
__init__.py Fixe migrations for new deployments 2020-05-28 18:19:25 +06:00
apps.py format python code with black 2022-11-02 08:54:35 +03:00
forms.py feat(instances): choose VNC or the serial console on the VM page 2026-10-17 19:48:58 +03:00
jobs.py feat(instances): a running VM can be cloned 2026-10-16 16:52:38 +03:00
models.py fix(instances): a custom VM gets the MAC addresses its create form shows 2026-10-19 22:24:57 +03:00
states.py fix(instances): every VM state has a label and the actions it allows 2026-10-05 19:34:30 +03:00
urls.py fix: add an authorization matrix test and close the endpoints it finds 2026-10-02 20:33:12 +03:00
utils.py feat(instances): a running migration can be cancelled; its time limit goes 2026-10-16 07:57:02 +03:00
views.py fix(templates): each delete page says what deleting its object does 2026-10-22 11:15:00 +03:00