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.
This commit is contained in:
Wido den Hollander 2014-07-22 22:28:34 +02:00
parent 2c0765195a
commit 173909e99d
1 changed files with 8 additions and 4 deletions

View File

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