mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
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 <abhishek.mrt22@gmail.com>
This commit is contained in:
parent
d68b098a43
commit
8e31d1e650
@ -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);
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user