1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/datasource
catborise 99eadaab31 fix(datasource): cloud-init endpoints work without login, keys need a unique name
The OpenStack-style cloud-init endpoints (index, meta_data.json,
user_data) are fetched by booting VMs, which do not log in. Since the
login-required middleware they redirected to the login page, so the
datasource has not worked. They are login_not_required now; they expose
a hostname and the public SSH keys of a VM's owners.

A VM is found by the reverse DNS name of the client address, and VM
names are not unique (only compute and UUID are). user_data merged the
owners of every VM with that name, so a user who named their VM like
another user's VM got their key into that VM at its next cloud-init
run. Keys are now given only when exactly one VM has the name.

The client address is the last X-Forwarded-For entry, which nginx in
the default setup appends; gunicorn listens on 127.0.0.1 only. The bare
except around the reverse lookup is narrowed to OSError.
2026-10-04 20:46:15 +03:00
..
migrations add new application datasource. provides basic interface for cloud-init tool (hostname, root ssh authorized keys) 2018-06-13 10:50:36 +02:00
templates fix datasource/templates/user_data, add newline at the end of ssh key and dont add other empty lines by @honza801 2019-11-20 16:53:17 +03:00
__init__.py add new application datasource. provides basic interface for cloud-init tool (hostname, root ssh authorized keys) 2018-06-13 10:50:36 +02:00
models.py fix some linter warnings 2020-09-25 15:57:17 +03:00
test_datasource.py fix(datasource): cloud-init endpoints work without login, keys need a unique name 2026-10-04 20:46:15 +03:00
tests.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00
urls.py format python code with black 2022-11-02 08:54:35 +03:00
views.py fix(datasource): cloud-init endpoints work without login, keys need a unique name 2026-10-04 20:46:15 +03:00