Skip to content

Commit 151519a

Browse files
sureshanapartidhslove
authored andcommitted
Fix root disk resize (don't allow) when service offering has root disk size, only allow through service offering change (apache#9428)
1 parent f1eb58a commit 151519a

2 files changed

Lines changed: 3 additions & 11 deletions

File tree

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;
@@ -274,8 +272,6 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
274272
@Inject
275273
private ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
276274
@Inject
277-
private ServiceOfferingJoinDao serviceOfferingJoinDao;
278-
@Inject
279275
private UserVmDao _userVmDao;
280276
@Inject
281277
private UserVmDetailsDao userVmDetailsDao;
@@ -1382,8 +1378,7 @@ protected boolean isNotPossibleToResize(VolumeVO volume, DiskOfferingVO diskOffe
13821378
boolean isNotIso = format != null && format != ImageFormat.ISO;
13831379
boolean isRoot = Volume.Type.ROOT.equals(volume.getVolumeType());
13841380

1385-
ServiceOfferingJoinVO serviceOfferingView = serviceOfferingJoinDao.findById(diskOffering.getId());
1386-
boolean isOfferingEnforcingRootDiskSize = serviceOfferingView != null && serviceOfferingView.getRootDiskSize() > 0;
1381+
boolean isOfferingEnforcingRootDiskSize = diskOffering.isComputeOnly() && diskOffering.getDiskSize() > 0;
13871382

13881383
return isOfferingEnforcingRootDiskSize && isRoot && isNotIso;
13891384
}

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;
@@ -1366,10 +1365,8 @@ private void prepareAndRunTestOfIsNotPossibleToResize(Type volumeType, Long root
13661365

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

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

0 commit comments

Comments
 (0)