1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/instances
catborise d37aa42392 feat(console): a working serial console
The xterm console never connected: socketiod expected a different token
format, its worker had no compute credentials, one global console was
shared by every client and its output broadcast to all of them, and the
Docker image did not run socketiod at all.

- console/tokens.py: one authorize() for noVNC and socketiod; the signed
  token is the only credential, checked at connect time.
- socketiod: one pty worker per client (consolecallback with the
  instance id), one session per VM, a session cap, input and resize
  checked; the parent never opens libvirt. The engine.io same-origin
  check is on.
- consolecallback: opens the console with the compute's credentials and
  exits with a message when it cannot.
- Docker runs socketiod as a runit service; nginx proxies /socket.io/
  with Host and the scheme for the origin check. Supervisor and systemd
  start it as well; WEBVIRTCLOUD_SERIAL_CONSOLE=1 enables it.
- Tests: token and session unit tests, socketiod as a process, and a
  live test that reads SeaBIOS from a wvc-test VM on the TCP and SSH
  hosts.
2026-10-17 19:43:09 +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 build: Chart.js 4.5.1 2026-10-17 13:19:43 +03:00
templatetags fix(instances): every VM state has a label and the actions it allows 2026-10-05 19:34:30 +03:00
tests feat(console): a working serial console 2026-10-17 19:43:09 +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): VM create runs as a job, also in the API 2026-10-15 09:28:43 +03:00
jobs.py feat(instances): a running VM can be cloned 2026-10-16 16:52:38 +03:00
models.py feat(instances): VM create runs as a job, also in the API 2026-10-15 09:28:43 +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 feat(instances): migration runs as a job 2026-10-16 07:57:02 +03:00