When creating a bootable volume from image, we check if the volume
can fit the image which includes several checks like size, min_disk,
virtual_size etc of image should be <= volume size.
We do check the virtual_size but however that check comes at a very
later stage in the cinder-volume process which makes the check
asynchronous.
In a case where nova requests cinder to create a bootable volume
from image, it gets an OK status from cinder-api and then fails
later at the cinder-volume layer but nova isn't aware about the
failure and times out waiting for a reply from cinder.
To avoid the above scenario, we are adding a virtual_size check at
the API layer to fail fast if the volume size doesn't satisfy the
contraints to store the image.
Closes-Bug: #1980268
Change-Id: Ia5950c2dc6186b721c9c9cfc4629d72e3b731889