Skip to content

Commit ebaf064

Browse files
Fix root disk resize (don't allow) when service offering has root disk size, only allow through service offering change (#9428)
1 parent 0fae0c0 commit ebaf064

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
@@ -126,8 +126,6 @@
126126
import com.cloud.agent.api.to.DataTO;
127127
import com.cloud.agent.api.to.DiskTO;
128128
import com.cloud.api.ApiDBUtils;
129-
import com.cloud.api.query.dao.ServiceOfferingJoinDao;
130-
import com.cloud.api.query.vo.ServiceOfferingJoinVO;
131129
import com.cloud.configuration.Config;
132130
import com.cloud.configuration.ConfigurationManager;
133131
import com.cloud.configuration.Resource.ResourceType;
@@ -275,8 +273,6 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
275273
@Inject
276274
private ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
277275
@Inject
278-
private ServiceOfferingJoinDao serviceOfferingJoinDao;
279-
@Inject
280276
private UserVmDao _userVmDao;
281277
@Inject
282278
private UserVmDetailsDao userVmDetailsDao;
@@ -1399,8 +1395,7 @@ protected boolean isNotPossibleToResize(VolumeVO volume, DiskOfferingVO diskOffe
13991395
boolean isNotIso = format != null && format != ImageFormat.ISO;
14001396
boolean isRoot = Volume.Type.ROOT.equals(volume.getVolumeType());
14011397

1402-
ServiceOfferingJoinVO serviceOfferingView = serviceOfferingJoinDao.findById(diskOffering.getId());
1403-
boolean isOfferingEnforcingRootDiskSize = serviceOfferingView != null && serviceOfferingView.getRootDiskSize() > 0;
1398+
boolean isOfferingEnforcingRootDiskSize = diskOffering.isComputeOnly() && diskOffering.getDiskSize() > 0;
14041399

14051400
return isOfferingEnforcingRootDiskSize && isRoot && isNotIso;
14061401
}

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

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

8686
import com.cloud.api.query.dao.ServiceOfferingJoinDao;
87-
import com.cloud.api.query.vo.ServiceOfferingJoinVO;
8887
import com.cloud.configuration.Resource;
8988
import com.cloud.configuration.Resource.ResourceType;
9089
import com.cloud.dc.DataCenterVO;
@@ -1365,10 +1364,8 @@ private void prepareAndRunTestOfIsNotPossibleToResize(Type volumeType, Long root
13651364

13661365
when(volume.getTemplateId()).thenReturn(1l);
13671366
DiskOfferingVO diskOffering = Mockito.mock(DiskOfferingVO.class);
1368-
1369-
ServiceOfferingJoinVO serviceOfferingJoinVO = Mockito.mock(ServiceOfferingJoinVO.class);
1370-
when(serviceOfferingJoinVO.getRootDiskSize()).thenReturn(rootDisk);
1371-
when(serviceOfferingJoinDao.findById(anyLong())).thenReturn(serviceOfferingJoinVO);
1367+
when(diskOffering.isComputeOnly()).thenReturn(true);
1368+
when(diskOffering.getDiskSize()).thenReturn(rootDisk);
13721369

13731370
VMTemplateVO template = Mockito.mock(VMTemplateVO.class);
13741371
when(template.getFormat()).thenReturn(imageFormat);

0 commit comments

Comments
 (0)