rafaelweingartner commented on a change in pull request #2231:
[CLOUDSTACK-10039] Adding IOPS/GB offering
URL: https://github.com/apache/cloudstack/pull/2231#discussion_r170310467
##########
File path:
server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
##########
@@ -2566,6 +2567,61 @@ protected DiskOfferingVO createDiskOffering(final Long
userId, final Long domain
isCustomized = true;
}
+ if (minIopsPerGb != null || maxIopsPerGb != null) {
+
+ if (!isCustomized) {
+ throw new InvalidParameterValueException("Cannot set Min/Max
IOPS/GB for a fixed size disk offering");
+ }
+
+ if ((isCustomizedIops != null && isCustomizedIops) || minIops !=
null || maxIops != null) {
+ throw new InvalidParameterValueException("Cannot set Min/Max
IOPS/GB with either " +
+ "custom IOPS or fixed IOPS");
+ }
+
+ if (minIopsPerGb != null && maxIopsPerGb != null) {
+ if (minIopsPerGb <= 0 || maxIopsPerGb <= 0) {
+ throw new InvalidParameterValueException("Min/Max IOPS/GB
value must be greater than 0");
+ }
+
+ if (minIopsPerGb > maxIopsPerGb){
+ throw new InvalidParameterValueException("Min IOPS/GB must
be greater than max IOPS/GB");
+ }
+ }
+
+ //if either one of them is set but the other is not
+ if ((minIopsPerGb != null && maxIopsPerGb == null) ||
(minIopsPerGb == null && maxIopsPerGb != null)) {
+ throw new InvalidParameterValueException("Both min IOPS/GB and
max IOPS/GB must be specified");
+ }
+ }
+
+ if (highestMinIops != null && highestMaxIops != null) {
Review comment:
This whole validation block can also be extracted to a method, documented
and unit tested.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services