@@ -4349,22 +4349,20 @@ protected List<String> getResourceLimitStorageTags(long diskOfferingId) {
43494349 return resourceLimitService.getResourceLimitStorageTags(diskOfferingVO);
43504350 }
43514351
4352- private List<CheckedReservation> reserveStorageResourcesForVm(Account owner, Long diskOfferingId, Long diskSize, List<VmDiskInfo> dataDiskInfoList, Long rootDiskOfferingId, ServiceOfferingVO offering, Long rootDiskSize) throws ResourceAllocationException {
4353- List <CheckedReservation> checkedReservations = new ArrayList<>();
4354-
4352+ private void reserveStorageResourcesForVm(List<Reserver> checkedReservations, Account owner, Long diskOfferingId, Long diskSize, List<VmDiskInfo> dataDiskInfoList, Long rootDiskOfferingId, ServiceOfferingVO offering, Long rootDiskSize) throws ResourceAllocationException {
43554353 List<String> rootResourceLimitStorageTags = getResourceLimitStorageTags(rootDiskOfferingId != null ? rootDiskOfferingId : offering.getDiskOfferingId());
43564354 CheckedReservation rootVolumeReservation = new CheckedReservation(owner, ResourceType.volume, rootResourceLimitStorageTags, 1L, reservationDao, resourceLimitService);
43574355 checkedReservations.add(rootVolumeReservation);
43584356 CheckedReservation rootPrimaryStorageReservation = new CheckedReservation(owner, ResourceType.primary_storage, rootResourceLimitStorageTags, rootDiskSize, reservationDao, resourceLimitService);
43594357 checkedReservations.add(rootPrimaryStorageReservation);
43604358
43614359 if (diskOfferingId != null) {
4362- List<String> additionalResourceLimitStorageTags = diskOfferingId != null ? getResourceLimitStorageTags(diskOfferingId) : null ;
4360+ List<String> additionalResourceLimitStorageTags = getResourceLimitStorageTags(diskOfferingId);
43634361 DiskOfferingVO diskOffering = _diskOfferingDao.findById(diskOfferingId);
43644362 Long size = verifyAndGetDiskSize(diskOffering, diskSize);
4365- CheckedReservation additionalVolumeReservation = diskOfferingId != null ? new CheckedReservation(owner, ResourceType.volume, additionalResourceLimitStorageTags, 1L, reservationDao, resourceLimitService) : null ;
4363+ CheckedReservation additionalVolumeReservation = new CheckedReservation(owner, ResourceType.volume, additionalResourceLimitStorageTags, 1L, reservationDao, resourceLimitService);
43664364 checkedReservations.add(additionalVolumeReservation);
4367- CheckedReservation additionalPrimaryStorageReservation = diskOfferingId != null ? new CheckedReservation(owner, ResourceType.primary_storage, additionalResourceLimitStorageTags, size, reservationDao, resourceLimitService) : null ;
4365+ CheckedReservation additionalPrimaryStorageReservation = new CheckedReservation(owner, ResourceType.primary_storage, additionalResourceLimitStorageTags, size, reservationDao, resourceLimitService);
43684366 checkedReservations.add(additionalPrimaryStorageReservation);
43694367
43704368 }
@@ -4380,7 +4378,6 @@ private List<CheckedReservation> reserveStorageResourcesForVm(Account owner, Lon
43804378 checkedReservations.add(additionalPrimaryStorageReservation);
43814379 }
43824380 }
4383- return checkedReservations;
43844381 }
43854382
43864383 private UserVm getUncheckedUserVmResource(DataCenter zone, String hostName, String displayName, Account owner,
@@ -4392,10 +4389,10 @@ private UserVm getUncheckedUserVmResource(DataCenter zone, String hostName, Stri
43924389 Map<String, String> userVmOVFPropertiesMap, boolean dynamicScalingEnabled, String vmType, VMTemplateVO template,
43934390 HypervisorType hypervisorType, long accountId, ServiceOfferingVO offering, boolean isIso,
43944391 Long rootDiskOfferingId, long volumesSize, Volume volume, Snapshot snapshot) throws ResourceAllocationException {
4395- List<CheckedReservation > checkedReservations = new ArrayList<>();
4392+ List<Reserver > checkedReservations = new ArrayList<>();
43964393
43974394 try {
4398- checkedReservations = reserveStorageResourcesForVm(owner, diskOfferingId, diskSize, dataDiskInfoList, rootDiskOfferingId, offering, volumesSize);
4395+ reserveStorageResourcesForVm(checkedReservations, owner, diskOfferingId, diskSize, dataDiskInfoList, rootDiskOfferingId, offering, volumesSize);
43994396
44004397 // verify security group ids
44014398 if (securityGroupIdList != null) {
@@ -4686,14 +4683,7 @@ private UserVm getUncheckedUserVmResource(DataCenter zone, String hostName, Stri
46864683 logger.error("error during resource reservation and allocation", e);
46874684 throw new CloudRuntimeException(e);
46884685 } finally {
4689- for (CheckedReservation checkedReservation : checkedReservations) {
4690- try {
4691- checkedReservation.close();
4692- } catch (Exception e) {
4693- logger.error("error during resource reservation and allocation", e);
4694- throw new CloudRuntimeException(e);
4695- }
4696- }
4686+ ReservationHelper.closeAll(checkedReservations);
46974687 }
46984688 }
46994689
0 commit comments