mirror of https://github.com/apache/cloudstack.git
Merge pull request #830 from sureshanaparti/CLOUDSTACK-8858
CLOUDSTACK-8858: listVolumes API fails for a particular domain with NPE.CLOUDSTACK-8858: listVolumes API fails for a particular domain with NPE. Summary: listVolumes API fails when volume associated vm instance has NULL or invalid state. Fix the code to guard this situation since this should not block volume listing. * pr/830: CLOUDSTACK-8858: listVolumes API fails for a particular domain with NPE. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
commit
f280bbe9e4
|
|
@ -81,14 +81,18 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
|
|||
volResponse.setZoneId(volume.getDataCenterUuid());
|
||||
volResponse.setZoneName(volume.getDataCenterName());
|
||||
|
||||
volResponse.setVolumeType(volume.getVolumeType().toString());
|
||||
if (volume.getVolumeType() != null) {
|
||||
volResponse.setVolumeType(volume.getVolumeType().toString());
|
||||
}
|
||||
volResponse.setDeviceId(volume.getDeviceId());
|
||||
|
||||
long instanceId = volume.getVmId();
|
||||
if (instanceId > 0 && volume.getState() != Volume.State.Destroy) {
|
||||
volResponse.setVirtualMachineId(volume.getVmUuid());
|
||||
volResponse.setVirtualMachineName(volume.getVmName());
|
||||
volResponse.setVirtualMachineState(volume.getVmState().toString());
|
||||
if (volume.getVmState() != null) {
|
||||
volResponse.setVirtualMachineState(volume.getVmState().toString());
|
||||
}
|
||||
if (volume.getVmDisplayName() != null) {
|
||||
volResponse.setVirtualMachineDisplayName(volume.getVmDisplayName());
|
||||
} else {
|
||||
|
|
@ -96,7 +100,9 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
|
|||
}
|
||||
}
|
||||
|
||||
volResponse.setProvisioningType(volume.getProvisioningType().toString());
|
||||
if (volume.getProvisioningType() != null) {
|
||||
volResponse.setProvisioningType(volume.getProvisioningType().toString());
|
||||
}
|
||||
|
||||
// Show the virtual size of the volume
|
||||
volResponse.setSize(volume.getSize());
|
||||
|
|
@ -105,7 +111,9 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
|
|||
volResponse.setMaxIops(volume.getMaxIops());
|
||||
|
||||
volResponse.setCreated(volume.getCreated());
|
||||
volResponse.setState(volume.getState().toString());
|
||||
if (volume.getState() != null) {
|
||||
volResponse.setState(volume.getState().toString());
|
||||
}
|
||||
if (volume.getState() == Volume.State.UploadOp) {
|
||||
// com.cloud.storage.VolumeHostVO volumeHostRef =
|
||||
// ApiDBUtils.findVolumeHostRef(volume.getId(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue