Add size validations for volume clones
Adds the same validations as a volume add or resize to volume clones, to ensure there is enough free space for them.
This commit is contained in:
@ -5972,7 +5972,11 @@ class API_Storage_Ceph_Volume_Element_Clone(Resource):
|
||||
"name": "new_volume",
|
||||
"required": True,
|
||||
"helptext": "A new volume name must be specified.",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "force",
|
||||
"required": False,
|
||||
},
|
||||
]
|
||||
)
|
||||
@Authenticator
|
||||
@ -5988,6 +5992,12 @@ class API_Storage_Ceph_Volume_Element_Clone(Resource):
|
||||
type: string
|
||||
required: true
|
||||
description: The name of the new cloned volume
|
||||
- in: query
|
||||
name: force
|
||||
type: boolean
|
||||
required: false
|
||||
default: flase
|
||||
description: Force action if clone volume size would violate 80% full soft cap on the pool
|
||||
responses:
|
||||
200:
|
||||
description: OK
|
||||
@ -6006,7 +6016,7 @@ class API_Storage_Ceph_Volume_Element_Clone(Resource):
|
||||
id: Message
|
||||
"""
|
||||
return api_helper.ceph_volume_clone(
|
||||
pool, reqargs.get("new_volume", None), volume
|
||||
pool, reqargs.get("new_volume", None), volume, reqargs.get("force", None)
|
||||
)
|
||||
|
||||
|
||||
|
@ -1887,11 +1887,13 @@ def ceph_volume_add(zkhandler, pool, name, size, force_flag):
|
||||
|
||||
|
||||
@ZKConnection(config)
|
||||
def ceph_volume_clone(zkhandler, pool, name, source_volume):
|
||||
def ceph_volume_clone(zkhandler, pool, name, source_volume, force_flag):
|
||||
"""
|
||||
Clone a Ceph RBD volume to a new volume on the PVC Ceph storage cluster.
|
||||
"""
|
||||
retflag, retdata = pvc_ceph.clone_volume(zkhandler, pool, source_volume, name)
|
||||
retflag, retdata = pvc_ceph.clone_volume(
|
||||
zkhandler, pool, source_volume, name, force_flag=force_flag
|
||||
)
|
||||
|
||||
if retflag:
|
||||
retcode = 200
|
||||
|
Reference in New Issue
Block a user