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);
