Skip to content

Commit 7068a6e

Browse files
Fix root disk resize validation - don't lookup with disk offering id of the root disk in service offering view (apache#9428) (apache#489)
Issue: During root disk resize, the root disk size details are checked in a different service offering (looks up with disk offering id of the root disk in service offering view which is getting wrong service offering).
1 parent a05a3f9 commit 7068a6e

File tree

2 files changed

+3
-11
lines changed

2 files changed

+3
-11
lines changed

server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,6 @@
122122
import com.cloud.agent.api.to.DataTO;
123123
import com.cloud.agent.api.to.DiskTO;
124124
import com.cloud.api.ApiDBUtils;
125-
import com.cloud.api.query.dao.ServiceOfferingJoinDao;
126-
import com.cloud.api.query.vo.ServiceOfferingJoinVO;
127125
import com.cloud.configuration.Config;
128126
import com.cloud.configuration.ConfigurationManager;
129127
import com.cloud.configuration.Resource.ResourceType;
@@ -265,8 +263,6 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
265263
@Inject
266264
private ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
267265
@Inject
268-
private ServiceOfferingJoinDao serviceOfferingJoinDao;
269-
@Inject
270266
private UserVmDao _userVmDao;
271267
@Inject
272268
private UserVmDetailsDao userVmDetailsDao;
@@ -1333,8 +1329,7 @@ protected boolean isNotPossibleToResize(VolumeVO volume, DiskOfferingVO diskOffe
13331329
boolean isNotIso = format != null && format != ImageFormat.ISO;
13341330
boolean isRoot = Volume.Type.ROOT.equals(volume.getVolumeType());
13351331

1336-
ServiceOfferingJoinVO serviceOfferingView = serviceOfferingJoinDao.findById(diskOffering.getId());
1337-
boolean isOfferingEnforcingRootDiskSize = serviceOfferingView != null && serviceOfferingView.getRootDiskSize() > 0;
1332+
boolean isOfferingEnforcingRootDiskSize = diskOffering.isComputeOnly() && diskOffering.getDiskSize() > 0;
13381333

13391334
return isOfferingEnforcingRootDiskSize && isRoot && isNotIso;
13401335
}

server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@
8585
import org.springframework.test.util.ReflectionTestUtils;
8686

8787
import com.cloud.api.query.dao.ServiceOfferingJoinDao;
88-
import com.cloud.api.query.vo.ServiceOfferingJoinVO;
8988
import com.cloud.configuration.Resource;
9089
import com.cloud.configuration.Resource.ResourceType;
9190
import com.cloud.dc.DataCenterVO;
@@ -1318,10 +1317,8 @@ private void prepareAndRunTestOfIsNotPossibleToResize(Type volumeType, Long root
13181317

13191318
when(volume.getTemplateId()).thenReturn(1l);
13201319
DiskOfferingVO diskOffering = Mockito.mock(DiskOfferingVO.class);
1321-
1322-
ServiceOfferingJoinVO serviceOfferingJoinVO = Mockito.mock(ServiceOfferingJoinVO.class);
1323-
when(serviceOfferingJoinVO.getRootDiskSize()).thenReturn(rootDisk);
1324-
when(serviceOfferingJoinDao.findById(Mockito.anyLong())).thenReturn(serviceOfferingJoinVO);
1320+
when(diskOffering.isComputeOnly()).thenReturn(true);
1321+
when(diskOffering.getDiskSize()).thenReturn(rootDisk);
13251322

13261323
VMTemplateVO template = Mockito.mock(VMTemplateVO.class);
13271324
when(template.getFormat()).thenReturn(imageFormat);

0 commit comments

Comments
 (0)