From 9b66866dc2085486f465159cbd446ac03e266a2c Mon Sep 17 00:00:00 2001 From: Mike Tutkowski Date: Thu, 6 Mar 2014 00:29:10 -0700 Subject: [PATCH] CLOUDSTACK-6170 --- .../admin/offering/CreateDiskOfferingCmd.java | 6 +-- .../api/response/DiskOfferingResponse.java | 12 +++++ .../api/response/ServiceOfferingResponse.java | 48 +++++++++++++++++++ .../query/dao/DiskOfferingJoinDaoImpl.java | 1 + .../query/dao/ServiceOfferingJoinDaoImpl.java | 4 ++ .../api/query/vo/DiskOfferingJoinVO.java | 7 ++- .../api/query/vo/ServiceOfferingJoinVO.java | 28 +++++++++++ setup/db/db/schema-430to440.sql | 5 ++ ui/scripts/configuration.js | 40 ++++++++++++++++ 9 files changed, 146 insertions(+), 5 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java b/api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java index 84c2c25d9fa..67c97923c06 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java @@ -93,9 +93,9 @@ public class CreateDiskOfferingCmd extends BaseCmd { private Long maxIops; @Parameter(name = ApiConstants.HYPERVISOR_SNAPSHOT_RESERVE, - type = CommandType.INTEGER, - required = false, - description = "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)") + type = CommandType.INTEGER, + required = false, + description = "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)") private Integer hypervisorSnapshotReserve; ///////////////////////////////////////////////////// diff --git a/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java b/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java index ebc22428326..0894eeced3a 100644 --- a/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java +++ b/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java @@ -73,6 +73,10 @@ public class DiskOfferingResponse extends BaseResponse { @Param(description = "the max iops of the disk offering") private Long maxIops; + @SerializedName(ApiConstants.HYPERVISOR_SNAPSHOT_RESERVE) + @Param(description = "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)") + private Integer hypervisorSnapshotReserve; + @SerializedName(ApiConstants.TAGS) @Param(description = "the tags for the disk offering") private String tags; @@ -210,6 +214,14 @@ public class DiskOfferingResponse extends BaseResponse { this.maxIops = maxIops; } + public Integer getHypervisorSnapshotReserve() { + return hypervisorSnapshotReserve; + } + + public void setHypervisorSnapshotReserve(Integer hypervisorSnapshotReserve) { + this.hypervisorSnapshotReserve = hypervisorSnapshotReserve; + } + public String getCacheMode() { return cacheMode; } diff --git a/api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java b/api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java index 526e52b71a5..d371f9a9253 100644 --- a/api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java +++ b/api/src/org/apache/cloudstack/api/response/ServiceOfferingResponse.java @@ -106,6 +106,22 @@ public class ServiceOfferingResponse extends BaseResponse { @Param(description = "data transfer rate in megabits per second allowed.") private Integer networkRate; + @SerializedName("iscustomizediops") + @Param(description = "true if disk offering uses custom iops, false otherwise") + private Boolean customizedIops; + + @SerializedName(ApiConstants.MIN_IOPS) + @Param(description = "the min iops of the disk offering") + private Long minIops; + + @SerializedName(ApiConstants.MAX_IOPS) + @Param(description = "the max iops of the disk offering") + private Long maxIops; + + @SerializedName(ApiConstants.HYPERVISOR_SNAPSHOT_RESERVE) + @Param(description = "Hypervisor snapshot reserve space as a percent of a volume (for managed storage using Xen or VMware)") + private Integer hypervisorSnapshotReserve; + @SerializedName("diskBytesReadRate") @Param(description = "bytes read rate of the service offering") private Long bytesReadRate; @@ -293,6 +309,38 @@ public class ServiceOfferingResponse extends BaseResponse { this.isVolatile = isVolatile; } + public Boolean isCustomizedIops() { + return customizedIops; + } + + public void setCustomizedIops(Boolean customizedIops) { + this.customizedIops = customizedIops; + } + + public Long getMinIops() { + return minIops; + } + + public void setMinIops(Long minIops) { + this.minIops = minIops; + } + + public Long getMaxIops() { + return maxIops; + } + + public void setMaxIops(Long maxIops) { + this.maxIops = maxIops; + } + + public Integer getHypervisorSnapshotReserve() { + return hypervisorSnapshotReserve; + } + + public void setHypervisorSnapshotReserve(Integer hypervisorSnapshotReserve) { + this.hypervisorSnapshotReserve = hypervisorSnapshotReserve; + } + public void setBytesReadRate(Long bytesReadRate) { this.bytesReadRate = bytesReadRate; } diff --git a/server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java index d15371215c5..bf28c03e46f 100644 --- a/server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java @@ -71,6 +71,7 @@ public class DiskOfferingJoinDaoImpl extends GenericDaoBase 0) + return args; + else + return "N/A"; + } + }, + maxiops: { + label: 'label.disk.iops.max', + converter: function(args) { + if (args > 0) + return args; + else + return "N/A"; + } + }, + hypervisorsnapshotreserve: { + label: 'label.hypervisor.snapshot.reserve', + converter: function(args) { + if (args > 0) + return args; + else + return "N/A"; + } + }, diskBytesReadRate: { label: 'label.disk.bytes.read.rate' }, @@ -1783,6 +1814,15 @@ return "N/A"; } }, + hypervisorsnapshotreserve: { + label: 'label.hypervisor.snapshot.reserve', + converter: function(args) { + if (args > 0) + return args; + else + return "N/A"; + } + }, diskBytesReadRate: { label: 'label.disk.bytes.write.rate' },