You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by nv...@apache.org on 2021/07/26 11:38:08 UTC

[cloudstack] branch 4.15 updated: Fix of shrinking volumes with QCOW2 format (#5225)

This is an automated email from the ASF dual-hosted git repository.

nvazquez pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.15 by this push:
     new 446337b  Fix of shrinking volumes with QCOW2 format (#5225)
446337b is described below

commit 446337b4cccf4ef871426a432e2dbcd4c15678c1
Author: slavkap <51...@users.noreply.github.com>
AuthorDate: Mon Jul 26 14:37:47 2021 +0300

    Fix of shrinking volumes with QCOW2 format (#5225)
    
    * Fix of shrinking volumes with QCOW2 format
    
    If the volumes are with QCOW2 format the shrinking will be handled on
    the agents side. There are cases in some storage plugins where the
    volumes' format is kept in the DB in QCOW2 but the actual format is raw.
    Till the current implementation this was limiting the plugins to shrink
    the volumes. Now this will be handled by the storage plugins
    
    * Addressed @nvazquez suggested change
    
    Will log the exception instead the exception message
---
 .../src/main/java/com/cloud/storage/VolumeApiServiceImpl.java  | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index ccb91f1..9791267 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -1063,14 +1063,6 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
              * This will be checked again at the hypervisor level where we can see
              * the actual disk size.
              */
-            if (currentSize > newSize) {
-                VolumeVO vol = _volsDao.findById(cmd.getEntityId());
-                if (vol != null && ImageFormat.QCOW2.equals(vol.getFormat()) && !Volume.State.Allocated.equals(volume.getState())) {
-                    String message = "Unable to shrink volumes of type QCOW2";
-                    s_logger.warn(message);
-                    throw new InvalidParameterValueException(message);
-                }
-            }
             if (currentSize > newSize && !shrinkOk) {
                 throw new InvalidParameterValueException("Going from existing size of " + currentSize + " to size of " + newSize + " would shrink the volume."
                         + "Need to sign off by supplying the shrinkok parameter with value of true.");
@@ -1323,7 +1315,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
             return volume;
 
         } catch (Exception e) {
-            throw new CloudRuntimeException("Exception caught during resize volume operation of volume UUID: " + volume.getUuid(), e);
+            throw new CloudRuntimeException(String.format("Failed to resize volume operation of volume UUID: [%s] due to - %s", volume.getUuid(), e.getMessage()), e);
         }
     }