From 562aa0425b63958fb30b437fdd615b5e23d1d0d0 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 29 Nov 2013 10:54:28 +0100 Subject: [PATCH] CLOUDSTACK-5299: set hypervisor_type of volumes from image format if not set. (cherry picked from commit 221aea573008a0b13d115f4949ea3eed2d574ac0) Conflicts: server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java --- server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java index 63e0effb4c0..3320376156f 100644 --- a/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java @@ -171,8 +171,12 @@ public class VolumeJoinDaoImpl extends GenericDaoBase implem // return hypervisor and storage pool info for ROOT and Resource domain only if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN || caller.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) { - if (volume.getState() != Volume.State.UploadOp && volume.getHypervisorType() != null) { - volResponse.setHypervisor(volume.getHypervisorType().toString()); + if (volume.getState() != Volume.State.UploadOp) { + if (volume.getHypervisorType() != null) { + volResponse.setHypervisor(volume.getHypervisorType().toString()); + } else { + volResponse.setHypervisor(ApiDBUtils.getHypervisorTypeFromFormat(volume.getFormat()).toString()); + } } Long poolId = volume.getPoolId(); String poolName = (poolId == null) ? "none" : volume.getPoolName();