mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-10 20:26:48 +00:00
fix(instances): a clone takes a free name the form offers
A user who is not a superuser chooses the clone's name from the free names the clone form lists, or gets the first one with automatic names, but the server took any posted name. It now refuses a name outside the list, and with automatic names it takes the first free one whatever is posted. A superuser still names a clone freely. The panel checks VM names on every compute, but a job held a name only on its compute, so two clones from VMs on two hosts could take the same free name at once; a name claim now holds the name everywhere. A clone job whose name a VM found on a host took while it was queued stops before it copies anything.
This commit is contained in:
parent
cd2dd517b7
commit
13d3a16ea5
5 changed files with 72 additions and 11 deletions
|
|
@ -48,8 +48,9 @@ def volume_key(compute_id, pool, name):
|
|||
return f"volume:{compute_id}:{pool}/{name}"
|
||||
|
||||
|
||||
def name_key(compute_id, name):
|
||||
return f"name:{compute_id}:{name}"
|
||||
def name_key(name):
|
||||
"""A VM name is the panel's on every compute (the name checks are global)."""
|
||||
return f"name:{name}"
|
||||
|
||||
|
||||
def quota_key(user_id):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue