Repository: cloudstack
Updated Branches:
  refs/heads/master 2c0765195 -> 173909e99


CLOUDSTACK-6181: Allow RBD volumes to be resized

We don't need an external script to investigate the format of the RBD volume,
we only have to ask Libvirt to resize the volume and that will ask librbd to
do so.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/173909e9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/173909e9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/173909e9

Branch: refs/heads/master
Commit: 173909e99d85cfcc85b017bc426950f9f16fddf0
Parents: 2c07651
Author: Wido den Hollander <[email protected]>
Authored: Tue Jul 22 22:28:34 2014 +0200
Committer: Wido den Hollander <[email protected]>
Committed: Tue Jul 22 22:28:34 2014 +0200

----------------------------------------------------------------------
 .../kvm/resource/LibvirtComputingResource.java          | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/173909e9/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 627c1fd..5eb988f 100755
--- 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -1860,10 +1860,14 @@ public class LibvirtComputingResource extends 
ServerResourceBase implements Serv
             String path = vol.getPath();
             String type = getResizeScriptType(pool, vol);
 
-            if (type == null) {
-                return new ResizeVolumeAnswer(cmd, false, "Unsupported volume 
format: pool type '" + pool.getType() + "' and volume format '" + 
vol.getFormat() + "'");
-            } else if (type.equals("QCOW2") && shrinkOk) {
-                return new ResizeVolumeAnswer(cmd, false, "Unable to shrink 
volumes of type " + type);
+            if (pool.getType() != StoragePoolType.RBD) {
+                if (type == null) {
+                    return new ResizeVolumeAnswer(cmd, false, "Unsupported 
volume format: pool type '" + pool.getType() + "' and volume format '" + 
vol.getFormat() + "'");
+                } else if (type.equals("QCOW2") && shrinkOk) {
+                    return new ResizeVolumeAnswer(cmd, false, "Unable to 
shrink volumes of type " + type);
+                }
+            } else {
+                s_logger.debug("Volume " + path + " is on a RBD storage pool. 
No need to query for additional information.");
             }
 
             s_logger.debug("Resizing volume: " + path + "," + currentSize + 
"," + newSize + "," + type + "," + vmInstanceName + "," + shrinkOk);

Reply via email to