mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-10 20:26:48 +00:00
fix(storages): the pool page measures its pool fresh, shares one clone dialog and says what it cannot show
- The page lists the volumes first: that refreshes the pool, and libvirt measures a pool's space only when it is refreshed, so the size and usage shown were as of the previous refresh. - A space that cannot be read says so instead of 0 bytes, and the pool's status, read from the same pool info, no longer fails the page after it; a stopped pool says its space and volumes are unavailable until it is started, instead of 0 bytes and nothing. - The API's pool is measured after the same refresh, and a stopped pool lists no volumes there instead of failing. - A clone the job refuses (a name in use, a volume gone) is a message on the page, not a server error. - An ISO image is recognised by its name (storages.jobs.is_iso): libvirt calls its format raw, so the template's "iso" check never disabled its Clone button. The clone job refuses one too; the upload uses the same rule. - One clone dialog serves every volume, filled and reset by the button that opens it, instead of one dialog per volume in the page; its fields have labels and its title names the dialog. - Volume rows are searched by name only (data-search), with a message when none matches, in a live region for screen readers; names show in full. The search script loads only with the volume table: on a stopped pool's page it failed for want of a search box. An empty pool says "This pool has no volumes". - The unused wvmStorage.get_volumes_details goes: update_volumes is the same.
This commit is contained in:
parent
3aac8f51f2
commit
fa5a8c4d6e
7 changed files with 239 additions and 139 deletions
|
|
@ -281,21 +281,6 @@ class wvmStorage(wvmConnect):
|
|||
def refresh(self):
|
||||
return self.pool.refresh(0)
|
||||
|
||||
def get_volumes_details(self):
|
||||
with contextlib.suppress(Exception):
|
||||
self.refresh()
|
||||
|
||||
vols = self.get_volumes()
|
||||
return [
|
||||
{
|
||||
"name": volname,
|
||||
"size": self.get_volume_size(volname),
|
||||
"allocation": self.get_volume_allocation(volname),
|
||||
"type": self.get_volume_format_type(volname),
|
||||
}
|
||||
for volname in vols
|
||||
]
|
||||
|
||||
def get_volume_details(self, volname):
|
||||
with contextlib.suppress(Exception):
|
||||
self.refresh()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue