mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-09 11:46:49 +00:00
fix(instances): internal snapshot names are checked, snapshot dates carry the year
Only external snapshots had their name checked. An internal one could be taken with an empty name: libvirt named it, the job and its log row named nothing, and a recovery looked for "" and marked the job failed though the snapshot existed. Both kinds now pass the same check when queued, and the internal form asks for a name as the external one does. Snapshot dates showed no year, so last year's snapshot looked like this year's in the list one reverts from; they now read 2026-10-13 23:04:00 under "Date (time zone)", as on the Jobs page.
This commit is contained in:
parent
fa84ce8113
commit
e29a79c76d
4 changed files with 22 additions and 10 deletions
|
|
@ -348,6 +348,11 @@ class wvmInstances(wvmConnect):
|
|||
) from error
|
||||
|
||||
|
||||
def check_snapshot_name(name):
|
||||
if not SNAPSHOT_NAME.fullmatch(name):
|
||||
raise util.OperationError("Snapshot names are 1-64 letters, digits, '.', '_' or '-' and do not start with '.'")
|
||||
|
||||
|
||||
def agent_command(dom, command, arguments=None):
|
||||
"""The answer of one guest agent command that waits AGENT_TIMEOUT seconds
|
||||
at most: libvirt's own calls for it wait for a hung agent indefinitely,
|
||||
|
|
@ -1618,10 +1623,7 @@ class wvmInstance(wvmConnect):
|
|||
accepts it only without memory, which keeps the whole state anyway).
|
||||
free_percent, free_min_gib: the free space each pool keeps (see
|
||||
_check_snapshot_space)."""
|
||||
if not SNAPSHOT_NAME.fullmatch(name):
|
||||
raise util.OperationError(
|
||||
"Snapshot names are 1-64 letters, digits, '.', '_' or '-' and do not start with '.'"
|
||||
)
|
||||
check_snapshot_name(name)
|
||||
if quiesce:
|
||||
if memory:
|
||||
raise util.OperationError("A snapshot with memory is not quiesced; it keeps the whole guest state")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue