diff --git a/api/src/main/java/org/apache/cloudstack/api/response/VolumeResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/VolumeResponse.java index 031d9315cd08..a0d49010097f 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/VolumeResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/VolumeResponse.java @@ -117,6 +117,10 @@ public class VolumeResponse extends BaseResponseWithTagInformation implements Co @Param(description = "Max IOPS of the disk volume") private Long maxIops; + @SerializedName("iscustomizediops") + @Param(description = "True if the volume's disk offering uses custom IOPS, false otherwise") + private Boolean customizedIops; + @SerializedName(ApiConstants.CREATED) @Param(description = "The date the disk volume was created") private Date created; @@ -410,6 +414,10 @@ public void setMaxIops(Long maxIops) { this.maxIops = maxIops; } + public void setCustomizedIops(Boolean customizedIops) { + this.customizedIops = customizedIops; + } + public void setCreated(Date created) { this.created = created; } @@ -712,6 +720,10 @@ public Long getMaxIops() { return maxIops; } + public Boolean isCustomizedIops() { + return customizedIops; + } + public Date getCreated() { return created; } diff --git a/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java index e82ec525f01b..42b12475bd9d 100644 --- a/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java @@ -220,6 +220,12 @@ public VolumeResponse newVolumeResponse(ResponseView view, VolumeJoinVO volume) volResponse.setDiskOfferingName(volume.getDiskOfferingName()); volResponse.setDiskOfferingDisplayText(volume.getDiskOfferingDisplayText()); } + DiskOffering diskOffering = computeOnlyDiskOffering != null + ? computeOnlyDiskOffering + : ApiDBUtils.findDiskOfferingById(volume.getDiskOfferingId()); + if (diskOffering != null) { + volResponse.setCustomizedIops(diskOffering.isCustomizedIops()); + } if (view == ResponseView.Full) { volResponse.setStorageType(volume.isUseLocalStorage() ? ServiceOffering.StorageType.local.toString() : ServiceOffering.StorageType.shared.toString()); diff --git a/ui/src/views/storage/ResizeVolume.vue b/ui/src/views/storage/ResizeVolume.vue index 6698bdb72411..372b8d462d73 100644 --- a/ui/src/views/storage/ResizeVolume.vue +++ b/ui/src/views/storage/ResizeVolume.vue @@ -65,7 +65,7 @@