problem
When creating a volume on an explicitly selected primary storage pool, CloudStack attempts the volume creation without first validating the pool's available over-provisioned capacity.
If the selected pool does not have sufficient capacity, the request should be rejected before attempting volume creation.
versions
The versions of ACS, hypervisors, storage, network etc..
Checked on 4.23
The steps to reproduce the bug
- Configure a primary storage pool and set its storage over-provisioning factor.
- Create or use a disk offering whose required capacity exceeds the pool's available capacity after applying the configured over-provisioning factor.
- Create a volume and explicitly select that primary storage pool.
- Observe that volume creation is attempted without validating the pool's available capacity.
Expected result:
CloudStack validates the requested volume size against the pool's allocated capacity, physical capacity, configured storage over-provisioning factor. It rejects the request when the selected pool does not have enough allocatable capacity.
Actual result:
CloudStack attempts to create the volume on the explicitly selected pool without validating whether the pool has enough allocatable capacity.
What to do about it?
Before creating a volume on an explicitly selected primary storage pool, validate that the pool has sufficient allocatable capacity for the requested volume size.
The validation should account for the pool's existing allocated capacity, physical capacity, configured storage over-provisioning factor where supported. Reject the volume creation request with an appropriate error when sufficient capacity is unavailable.
problem
When creating a volume on an explicitly selected primary storage pool, CloudStack attempts the volume creation without first validating the pool's available over-provisioned capacity.
If the selected pool does not have sufficient capacity, the request should be rejected before attempting volume creation.
versions
The versions of ACS, hypervisors, storage, network etc..
Checked on 4.23
The steps to reproduce the bug
Expected result:
CloudStack validates the requested volume size against the pool's allocated capacity, physical capacity, configured storage over-provisioning factor. It rejects the request when the selected pool does not have enough allocatable capacity.
Actual result:
CloudStack attempts to create the volume on the explicitly selected pool without validating whether the pool has enough allocatable capacity.
What to do about it?
Before creating a volume on an explicitly selected primary storage pool, validate that the pool has sufficient allocatable capacity for the requested volume size.
The validation should account for the pool's existing allocated capacity, physical capacity, configured storage over-provisioning factor where supported. Reject the volume creation request with an appropriate error when sufficient capacity is unavailable.