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());

Reply via email to