Skip to content

Commit 70dc94b

Browse files
committed
Add cpuspeed to listServiceOfferings API and persist OVF configurations with index on its name
1 parent c323e5e commit 70dc94b

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

api/src/main/java/org/apache/cloudstack/api/command/user/offering/ListServiceOfferingsCmd.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ public class ListServiceOfferingsCmd extends BaseListDomainResourcesCmd {
7777
since = "4.15")
7878
private Integer memory;
7979

80+
@Parameter(name = ApiConstants.CPU_SPEED,
81+
type = CommandType.INTEGER,
82+
description = "the CPU speed that listed offerings must support",
83+
since = "4.15")
84+
private Integer cpuSpeed;
85+
8086
/////////////////////////////////////////////////////
8187
/////////////////// Accessors ///////////////////////
8288
/////////////////////////////////////////////////////
@@ -113,6 +119,10 @@ public Integer getMemory() {
113119
return memory;
114120
}
115121

122+
public Integer getCpuSpeed() {
123+
return cpuSpeed;
124+
}
125+
116126
/////////////////////////////////////////////////////
117127
/////////////// API Implementation///////////////////
118128
/////////////////////////////////////////////////////

engine/storage/src/main/java/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ private void persistOVFHardwareSectionAsTemplateDetails(OVFVirtualHardwareSectio
391391
if (CollectionUtils.isNotEmpty(ovfHardwareSection.getConfigurations())) {
392392
for (OVFConfigurationTO configuration : ovfHardwareSection.getConfigurations()) {
393393
String key = configuration.getId();
394-
String propKey = ImageStore.OVF_HARDWARE_CONFIGURATION_PREFIX + key;
394+
String propKey = ImageStore.OVF_HARDWARE_CONFIGURATION_PREFIX + configuration.getIndex() + "-" + key;
395395
persistTemplateDetailGsonEncoded(templateId, propKey, configuration);
396396
}
397397
}

server/src/main/java/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2859,6 +2859,7 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
28592859
Long zoneId = cmd.getZoneId();
28602860
Integer cpuNumber = cmd.getCpuNumber();
28612861
Integer memory = cmd.getMemory();
2862+
Integer cpuSpeed = cmd.getCpuSpeed();
28622863

28632864
SearchCriteria<ServiceOfferingJoinVO> sc = _srvOfferingJoinDao.createSearchCriteria();
28642865
if (!_accountMgr.isRootAdmin(caller.getId()) && isSystem) {
@@ -2981,6 +2982,13 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
29812982
sc.addAnd("memoryConstraints", SearchCriteria.Op.SC, memSearchCriteria);
29822983
}
29832984

2985+
if (cpuSpeed != null) {
2986+
SearchCriteria<ServiceOfferingJoinVO> cpuSpeedSearchCriteria = _srvOfferingJoinDao.createSearchCriteria();
2987+
cpuSpeedSearchCriteria.addOr("speed", Op.NULL);
2988+
cpuSpeedSearchCriteria.addOr("speed", Op.GTEQ, cpuSpeed);
2989+
sc.addAnd("cpuspeedconstraints", SearchCriteria.Op.SC, cpuSpeedSearchCriteria);
2990+
}
2991+
29842992
Pair<List<ServiceOfferingJoinVO>, Integer> result = _srvOfferingJoinDao.searchAndCount(sc, searchFilter);
29852993

29862994
//Couldn't figure out a smart way to filter offerings based on tags in sql so doing it in Java.

0 commit comments

Comments
 (0)