private Volume orchestrateMigrateVolume(VolumeVO volume, StoragePool destPool, boolean liveMigrateVolume, DiskOfferingVO newDiskOffering) {
Volume newVol = null;
try {
if (liveMigrateVolume) {
newVol = liveMigrateVolume(volume, destPool);
} else {
newVol = _volumeMgr.migrateVolume(volume, destPool);
}
if (newDiskOffering != null) {
_volsDao.updateDiskOffering(newVol.getId(), newDiskOffering.getId());
}
} catch (StorageUnavailableException e) {
s_logger.debug("Failed to migrate volume", e);
throw new CloudRuntimeException(e.getMessage());
} catch (Exception e) {
s_logger.debug("Failed to migrate volume", e);
throw new CloudRuntimeException(e.getMessage());
}
return newVol;
}