This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.15 by this push:
new 8e31d1e api: fix disk/service offering keys (#4946)
8e31d1e is described below
commit 8e31d1e650bd9e92d8f79d639f2dafdb894ac3e6
Author: Abhishek Kumar <[email protected]>
AuthorDate: Tue Apr 27 21:54:24 2021 +0530
api: fix disk/service offering keys (#4946)
Volume can either have an associated disk offering (for DATA disks & ROOT
disks for VMs created from ISO) or a compute/service offering (for ROOT disks
of VMs created from templates).
This fix simplifies and fixes check to return the appropriate response keys
in these cases.
Signed-off-by: Abhishek Kumar <[email protected]>
---
server/src/main/java/com/cloud/api/ApiDBUtils.java | 8 ++++++--
.../java/com/cloud/api/query/dao/VolumeJoinDaoImpl.java | 16 +---------------
2 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/server/src/main/java/com/cloud/api/ApiDBUtils.java
b/server/src/main/java/com/cloud/api/ApiDBUtils.java
index d744592..5ee39cf 100644
--- a/server/src/main/java/com/cloud/api/ApiDBUtils.java
+++ b/server/src/main/java/com/cloud/api/ApiDBUtils.java
@@ -27,8 +27,6 @@ import java.util.Set;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import com.cloud.vm.NicVO;
-import com.cloud.vm.dao.NicDao;
import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RoleService;
import org.apache.cloudstack.affinity.AffinityGroup;
@@ -318,6 +316,7 @@ import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.InstanceGroup;
import com.cloud.vm.InstanceGroupVO;
import com.cloud.vm.NicProfile;
+import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO;
@@ -327,6 +326,7 @@ import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.VmStats;
import com.cloud.vm.dao.ConsoleProxyDao;
import com.cloud.vm.dao.DomainRouterDao;
+import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.NicSecondaryIpVO;
import com.cloud.vm.dao.UserVmDao;
@@ -1117,6 +1117,10 @@ public class ApiDBUtils {
return
s_serviceOfferingDao.findByIdIncludingRemoved(serviceOfferingId);
}
+ public static ServiceOffering findServiceOfferingByUuid(String
serviceOfferingUuid) {
+ return
s_serviceOfferingDao.findByUuidIncludingRemoved(serviceOfferingUuid);
+ }
+
public static ServiceOfferingDetailsVO findServiceOfferingDetail(long
serviceOfferingId, String key) {
return s_serviceOfferingDetailsDao.findDetail(serviceOfferingId, key);
}
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 2ee0ca1..6cbc834 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
@@ -176,22 +176,8 @@ public class VolumeJoinDaoImpl extends
GenericDaoBaseWithTagInformation<VolumeJo
// populate owner.
ApiResponseHelper.populateOwner(volResponse, volume);
- // DiskOfferingVO diskOffering =
- // ApiDBUtils.findDiskOfferingById(volume.getDiskOfferingId());
if (volume.getDiskOfferingId() > 0) {
- boolean isServiceOffering = false;
- if (volume.getVolumeType().equals(Volume.Type.ROOT)) {
- isServiceOffering = true;
- } else {
- // can't rely on the fact that the volume is the datadisk as
it might have been created as a root, and
- // then detached later
- long offeringId = volume.getDiskOfferingId();
- if (ApiDBUtils.findDiskOfferingById(offeringId) == null) {
- isServiceOffering = true;
- }
- }
-
- if (isServiceOffering) {
+ if
(ApiDBUtils.findServiceOfferingByUuid(volume.getDiskOfferingUuid()) != null) {
volResponse.setServiceOfferingId(volume.getDiskOfferingUuid());
volResponse.setServiceOfferingName(volume.getDiskOfferingName());
volResponse.setServiceOfferingDisplayText(volume.getDiskOfferingDisplayText());