Skip to content

Commit 2c6698a

Browse files
Allow only resize to higher disk size from UI
1 parent f1a650b commit 2c6698a

File tree

5 files changed

+37
-17
lines changed

5 files changed

+37
-17
lines changed

engine/schema/src/main/java/com/cloud/service/dao/ServiceOfferingDao.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,6 @@ List<ServiceOfferingVO> createSystemServiceOfferings(String name, String uniqueN
5353
ServiceOfferingVO findDefaultSystemOffering(String offeringName, Boolean useLocalStorage);
5454

5555
List<ServiceOfferingVO> listPublicByCpuAndMemory(Integer cpus, Integer memory);
56+
57+
ServiceOfferingVO findServiceOfferingByComputeOnlyDiskOffering(long diskOfferingId);
5658
}

engine/schema/src/main/java/com/cloud/service/dao/ServiceOfferingDaoImpl.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
5656
protected final SearchBuilder<ServiceOfferingVO> UniqueNameSearch;
5757
protected final SearchBuilder<ServiceOfferingVO> ServiceOfferingsByKeywordSearch;
5858
protected final SearchBuilder<ServiceOfferingVO> PublicCpuRamSearch;
59+
protected final SearchBuilder<ServiceOfferingVO> SearchComputeOfferingByComputeOnlyDiskOffering;
5960

6061
public ServiceOfferingDaoImpl() {
6162
super();
@@ -75,6 +76,10 @@ public ServiceOfferingDaoImpl() {
7576
PublicCpuRamSearch.and("ram", PublicCpuRamSearch.entity().getRamSize(), SearchCriteria.Op.EQ);
7677
PublicCpuRamSearch.and("system_use", PublicCpuRamSearch.entity().isSystemUse(), SearchCriteria.Op.EQ);
7778
PublicCpuRamSearch.done();
79+
80+
SearchComputeOfferingByComputeOnlyDiskOffering = createSearchBuilder();
81+
SearchComputeOfferingByComputeOnlyDiskOffering.and("disk_offering_id", SearchComputeOfferingByComputeOnlyDiskOffering.entity().getDiskOfferingId(), SearchCriteria.Op.EQ);
82+
SearchComputeOfferingByComputeOnlyDiskOffering.done();
7883
}
7984

8085
@Override
@@ -277,4 +282,15 @@ public List<ServiceOfferingVO> listPublicByCpuAndMemory(Integer cpus, Integer me
277282
sc.setParameters("system_use", false);
278283
return listBy(sc);
279284
}
285+
286+
@Override
287+
public ServiceOfferingVO findServiceOfferingByComputeOnlyDiskOffering(long diskOfferingId) {
288+
SearchCriteria<ServiceOfferingVO> sc = SearchComputeOfferingByComputeOnlyDiskOffering.create();
289+
sc.setParameters("disk_offering_id", diskOfferingId);
290+
List<ServiceOfferingVO> vos = listBy(sc);
291+
if (vos.size() == 0) {
292+
return null;
293+
}
294+
return vos.get(0);
295+
}
280296
}

server/src/main/java/com/cloud/api/ApiDBUtils.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,6 +1043,14 @@ public static String findClusterDetails(long clusterId, String name) {
10431043
return null;
10441044
}
10451045

1046+
public static DiskOfferingVO findComputeOnlyDiskOfferingById(Long diskOfferingId) {
1047+
DiskOfferingVO off = s_diskOfferingDao.findByIdIncludingRemoved(diskOfferingId);
1048+
if (off.isComputeOnly()) {
1049+
return off;
1050+
}
1051+
return null;
1052+
}
1053+
10461054
public static DiskOfferingVO findDiskOfferingById(Long diskOfferingId) {
10471055
DiskOfferingVO off = s_diskOfferingDao.findByIdIncludingRemoved(diskOfferingId);
10481056
if (!off.isComputeOnly()) {
@@ -1051,6 +1059,10 @@ public static DiskOfferingVO findDiskOfferingById(Long diskOfferingId) {
10511059
return null;
10521060
}
10531061

1062+
public static ServiceOfferingVO findServiceOfferingByComputeOnlyDiskOffering(Long diskOfferingId) {
1063+
ServiceOfferingVO off = s_serviceOfferingDao.findServiceOfferingByComputeOnlyDiskOffering(diskOfferingId);
1064+
return off;
1065+
}
10541066
public static DomainVO findDomainById(Long domainId) {
10551067
return s_domainDao.findByIdIncludingRemoved(domainId);
10561068
}

server/src/main/java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import javax.inject.Inject;
2323

24+
import com.cloud.offering.DiskOffering;
2425
import org.apache.cloudstack.annotation.AnnotationService;
2526
import org.apache.cloudstack.annotation.dao.AnnotationDao;
2627
import org.apache.cloudstack.api.ResponseObject.ResponseView;
@@ -178,10 +179,12 @@ public VolumeResponse newVolumeResponse(ResponseView view, VolumeJoinVO volume)
178179
ApiResponseHelper.populateOwner(volResponse, volume);
179180

180181
if (volume.getDiskOfferingId() > 0) {
181-
if (ApiDBUtils.findServiceOfferingByUuid(volume.getDiskOfferingUuid()) != null) {
182-
volResponse.setServiceOfferingId(volume.getDiskOfferingUuid());
183-
volResponse.setServiceOfferingName(volume.getDiskOfferingName());
184-
volResponse.setServiceOfferingDisplayText(volume.getDiskOfferingDisplayText());
182+
DiskOffering computeOnlyDiskOffering = ApiDBUtils.findComputeOnlyDiskOfferingById(volume.getDiskOfferingId());
183+
if (computeOnlyDiskOffering != null) {
184+
ServiceOffering serviceOffering = ApiDBUtils.findServiceOfferingByComputeOnlyDiskOffering(volume.getDiskOfferingId());
185+
volResponse.setServiceOfferingId(String.valueOf(serviceOffering.getId()));
186+
volResponse.setServiceOfferingName(serviceOffering.getName());
187+
volResponse.setServiceOfferingDisplayText(serviceOffering.getDisplayText());
185188
} else {
186189
volResponse.setDiskOfferingId(volume.getDiskOfferingUuid());
187190
volResponse.setDiskOfferingName(volume.getDiskOfferingName());

ui/src/views/compute/ScaleVM.vue

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,6 @@
5757
></a-checkbox>
5858
</a-form-item>
5959

60-
<a-form-item :label="$t('label.shrinkok')">
61-
<a-checkbox
62-
:checked="shrinkOk"
63-
v-decorator="['shrinkOk']"
64-
@change="handleShrinkOkCheckChange"
65-
></a-checkbox>
66-
</a-form-item>
67-
6860
<div :span="24" class="action-button">
6961
<a-button @click="closeAction">{{ this.$t('label.cancel') }}</a-button>
7062
<a-button :loading="loading" ref="submit" type="primary" @click="handleSubmit">{{ this.$t('label.ok') }}</a-button>
@@ -96,7 +88,6 @@ export default {
9688
offerings: [],
9789
selectedOffering: {},
9890
autoMigrate: true,
99-
shrinkOk: false,
10091
total: 0,
10192
params: { id: this.resource.id },
10293
loading: false,
@@ -169,14 +160,10 @@ export default {
169160
this.params.serviceofferingid = id
170161
this.selectedOffering = this.offeringsMap[id]
171162
this.params.automigrate = this.autoMigrate
172-
this.params.shrinkok = this.shrinkOk
173163
},
174164
handleAutoMigrateCheckChange (e) {
175165
this.autoMigrate = e.target.checked
176166
},
177-
handleShrinkOkCheckChange (e) {
178-
this.shrinkOk = e.target.checked
179-
},
180167
updateFieldValue (name, value) {
181168
this.params[name] = value
182169
},

0 commit comments

Comments
 (0)