1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-09 03:36:48 +00:00
Commit graph

39 commits

Author SHA1 Message Date
catborise
d5df187de4 fix(networks, storages): a name in use is refused by the page again
The create forms of networks and storage pools checked the new name
against the host's list of networks or pools, but that list holds one
dict per object, so the name never matched and the check never fired;
libvirt refused the duplicate with its own wording. The check now
compares names: the page shows its own message, nothing is sent to
libvirt, and the Logs page gets a failed row "...: add: name already
in use".
2026-10-23 14:07:47 +03:00
catborise
5b8793ad4c feat(logs): changes to networks, storage, interfaces, secrets and filters are logged
The Logs page now records every change an admin makes to a compute's
libvirt objects, with the compute's name in the host column:

- networks: add, start, stop, delete, autostart, DHCP range, fixed
  addresses, QoS and XML edits;
- storage pools: add, start, stop, delete, autostart, from web and
  API; volumes: add and delete (web and API), clone and ISO upload;
- host interfaces: add, start, stop, delete;
- secrets: add, set value (never the value), delete;
- network filters: add, clone, delete, XML edits, rules and
  references.

A refused or failed change is a failed row with its reason (libvirt
text through safe_text). The volume clone and upload jobs write their
row when they end; a refused submission is a failed row at once. A
volume row names the volume libvirt created (a dir pool adds .qcow2 or
.img). Volume create or delete through the API on an inactive pool
(409) is a failed row.

Network filters: the rows read "Network filter f1: add" instead of
"f1 network filter is created", and their host is the compute's name
instead of its hostname. A duplicate name or UUID no longer raises a
bare exception, and a filter XML that cannot be parsed no longer ends
in UnboundLocalError.
2026-10-23 13:30:21 +03:00
catborise
8c1d7d33bb fix(networks): a network QoS rate that is not a whole number is refused
A network's QoS form whose rate was not a whole number (abc, 1.5) made
wvmNetwork.set_qos raise a ValueError that the view did not catch: the
request ended in a server error. The page's pattern stops this in a
browser, but the server must refuse it too. set_qos now says "QoS rates
must be whole numbers", and the view reports that, as it does a libvirt
error, and goes back to the network's page.
2026-10-20 22:37:48 +03:00
catborise
0a1219c659 fix(networks): a subnet that is not one is refused by the create form
The create-network form only checked the characters of its subnets, so
192.0.2.0/33 or 999.0.2.0/24 passed and network_size raised a
ValueError: the user got a server error instead of a message. So did a
subnet too small for the gateway, DHCP range and broadcast address that
network_size derives (0.0.0.0/32, 255.255.255.255/32), and 192.0.2.0/31
or a bare address gave an inverted DHCP range.

Each subnet field now parses its value as a network of its IP version
and refuses it with a field error otherwise. An IPv4 prefix must be /30
or shorter; the IPv6 prefix must be /64, which the view checked after
the form and now the form does.
2026-10-20 22:37:44 +03:00
catborise
9c3a7cdbec fix(vrtManager): request values are not written into XPath expressions
Four lookups built XPath expressions from values that come from
requests (CodeQL py/xpath-injection, plus get_capabilities, which
CodeQL did not flag; the pages are for superusers):

- The architecture in the create wizard's URLs went into
  arch[@name='...'] in get_emulator, get_machine_types and
  get_capabilities: "nope' or '1'='1" matched every architecture. It is
  now an XPath variable ($arch), which is never parsed as XPath.
- Network filter rules were found with a predicate built from the
  posted action, direction and priority: a quote raised SyntaxError (an
  error page). The rule is now found by comparing its attributes.
- unset_qos put the posted direction into the path, so "*" removed
  every bandwidth setting. It accepts inbound and outbound, as set_qos
  does; the network page shows an error for anything else.

No other XPath in vrtManager is built from a value; the remaining
expressions are constants. The tests fail on the previous code.
2026-10-06 08:55:41 +03:00
catborise
60565b05b3 fix(tests): decouple tests from local libvirt, support configurable test host, and fix URL/logging bugs 2026-09-25 11:51:45 +03:00
catborise
a1eab70e2d reorg imports and black format 2022-11-02 16:05:41 +03:00
catborise
217e106c8b format python code with black 2022-11-02 08:54:35 +03:00
catborise
508e3609be lint with black python. convert f style strings to old one. some small fixes 2020-11-05 12:34:31 +03:00
Real-Gecko
01043ba8a8 Templates cleanup 2020-10-15 20:18:45 +06:00
Real-Gecko
1b3fd9d05e replaced ugettext_lazy with gettext_lazy 2020-10-14 18:27:57 +06:00
catborise
015719b952 add macvtap support : create macvtap virtual net, add/edit instance network for macvtap 2020-07-23 13:36:49 +03:00
catborise
7c93ee1e2f bootstrap 4.5 fixations & Update strings style to f-string 2020-06-04 11:38:41 +03:00
catborise
871083967f bootstrap 4.5 fixations & fix various localizations 2020-06-04 11:35:57 +03:00
Real-Gecko
27f62dff6c Added admin application
- Manage users
- Manage groups
- Manage logs
2020-05-27 18:24:06 +06:00
Real-Gecko
38befa4362 Added django-login-required-middleware
Thus eliminating need for login_requred decorator on every view
2020-05-27 12:43:29 +06:00
catborise
4d40de1b55 Python3 & Django 2.2 Migration - Fix & Updates 2020-03-16 16:59:45 +03:00
catborise
a6f7618854 convert django.core.urlresolver to django.urls. fix i18n. fix identation 2020-01-24 10:09:46 +03:00
catborise
d7f283f089 network qos adding, listing, backend revamped. Add network bug for nat networks solved 2019-11-20 08:42:09 +03:00
catborise
d7b350a591 networks/view.py Add Qos Functions. Edit with XML corrections 2019-11-15 11:35:22 +03:00
catborise
930cef24be IPv6 Support: Create ipv6 network support added. Some small fixes 2019-11-08 18:26:47 +03:00
catborise
8bc316355d Reconfig to create nat routed network without subnet 2019-11-07 16:49:40 +03:00
catborise
78ec7ac746 network: Add network pool mac info. dhcp->dhcp4 conversion. 2019-11-07 14:07:57 +03:00
catborise
c5a96b7662 Add IPv6 support. 2019-11-07 10:33:36 +03:00
catborise
38ae62d093 define network with XML is related with network object. It is converted 2019-10-30 11:02:38 +03:00
catborise
0fdc2dae33 fix redirection for network connection error 2019-09-11 11:12:33 +03:00
catborise
828a271789 pep8 style code corrections 2019-09-10 09:48:31 +03:00
catborise
ead0414a4d Add XML config editing option for a network 2019-01-24 15:02:19 +03:00
catborise
bd63e3e4e6 Add Fixed Network Address operations. Add Modify dhcp range for stopped networks. 2019-01-22 16:53:10 +03:00
Jan Krcmar
dac974ddab request.user.is_authenticated() substitued for @login_required decorator
settings.LOGIN_URL = /accounts/login
2015-12-22 15:09:02 +01:00
Retspen
b4e8da8671 Resoved problem with app template 2015-04-02 16:20:46 +03:00
Retspen
35da9ad193 Added 404 and fixed urls 2015-04-02 15:39:40 +03:00
Retspen
ea41412aac Move tempates 2015-04-02 11:48:40 +03:00
Retspen
ed2b28c25e Add new forms and templates 2015-03-10 16:24:10 +02:00
Retspen
8f5ccb3519 Add new rule and tags 2015-03-03 16:53:10 +02:00
Retspen
5960e94da5 Add logs and block for templates 2015-03-03 11:34:09 +02:00
Retspen
fa3df5bff3 Refactoring 2015-02-27 11:51:33 +02:00
Retspen
dd5f98cbe8 build new tree 2015-02-27 11:28:22 +02:00
Retspen
4d48e79341 Initial commit 2015-02-27 10:53:51 +02:00