This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch 22.0.1-fixes
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit f3331344566bfa21c0f135bb0bb6f1784182f336
Author: Fabricio Duarte <[email protected]>
AuthorDate: Tue Mar 17 19:28:16 2026 -0300

    Address merge issues
---
 .../java/com/cloud/user/ResourceLimitService.java  |  1 -
 .../java/com/cloud/network/vpc/VpcManagerImpl.java |  3 -
 .../com/cloud/projects/ProjectManagerImpl.java     |  3 -
 .../resourcelimit/ResourceLimitManagerImpl.java    | 14 ---
 .../com/cloud/storage/VolumeApiServiceImpl.java    |  4 -
 .../cloud/template/HypervisorTemplateAdapter.java  | 99 ----------------------
 .../com/cloud/template/TemplateAdapterBase.java    |  2 +-
 .../com/cloud/network/vpc/VpcManagerImplTest.java  |  6 --
 .../ResourceLimitManagerImplTest.java              | 18 ----
 .../cloud/vpc/MockResourceLimitManagerImpl.java    |  5 --
 10 files changed, 1 insertion(+), 154 deletions(-)

diff --git a/api/src/main/java/com/cloud/user/ResourceLimitService.java 
b/api/src/main/java/com/cloud/user/ResourceLimitService.java
index 7d066276ae3..2cc0bb5ad73 100644
--- a/api/src/main/java/com/cloud/user/ResourceLimitService.java
+++ b/api/src/main/java/com/cloud/user/ResourceLimitService.java
@@ -290,7 +290,6 @@ public interface ResourceLimitService {
     void incrementVmMemoryResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long memory);
     void decrementVmMemoryResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long memory);
 
-    void checkVmGpuResourceLimit(Account owner, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu) 
throws ResourceAllocationException;
     void incrementVmGpuResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu);
     void decrementVmGpuResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu);
 
diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java 
b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
index 336772e7480..d798afc644a 100644
--- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
@@ -1222,9 +1222,6 @@ public class VpcManagerImpl extends ManagerBase 
implements VpcManager, VpcProvis
         // Verify that caller can perform actions in behalf of vpc owner
         _accountMgr.checkAccess(caller, null, false, owner);
 
-        // check resource limit
-        _resourceLimitMgr.checkResourceLimit(owner, ResourceType.vpc);
-
         // Validate zone
         final DataCenter zone = _dcDao.findById(zoneId);
         if (zone == null) {
diff --git a/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java 
b/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java
index 43efccd04f9..c3fa2fab02e 100644
--- a/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java
+++ b/server/src/main/java/com/cloud/projects/ProjectManagerImpl.java
@@ -721,9 +721,6 @@ public class ProjectManagerImpl extends ManagerBase 
implements ProjectManager, C
                         }
 
                         try (CheckedReservation checkedReservation = new 
CheckedReservation(futureOwnerAccount, ResourceType.project, null, null, 1L, 
reservationDao, _resourceLimitMgr)) {
-
-                        
_resourceLimitMgr.checkResourceLimit(_accountMgr.getAccount(futureOwnerAccount.getId()),
 ResourceType.project);
-
                         //unset the role for the old owner
                         ProjectAccountVO currentOwner = 
_projectAccountDao.findByProjectIdAccountId(projectId, 
currentOwnerAccount.getId());
                         currentOwner.setAccountRole(Role.Regular);
diff --git 
a/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java 
b/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
index 28c09c582d7..37976523a34 100644
--- a/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
+++ b/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
@@ -2202,20 +2202,6 @@ public class ResourceLimitManagerImpl extends 
ManagerBase implements ResourceLim
         }
     }
 
-    @Override
-    public void checkVmGpuResourceLimit(Account owner, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu) 
throws ResourceAllocationException {
-        List<String> tags = 
getResourceLimitHostTagsForResourceCountOperation(display, serviceOffering, 
template);
-        if (CollectionUtils.isEmpty(tags)) {
-            return;
-        }
-        if (gpu == null) {
-            gpu = serviceOffering.getGpuCount() != null ? 
Long.valueOf(serviceOffering.getGpuCount()) : 0L;
-        }
-        for (String tag : tags) {
-            checkResourceLimitWithTag(owner, ResourceType.gpu, tag, gpu);
-        }
-    }
-
     @Override
     public void incrementVmGpuResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu) {
         List<String> tags = 
getResourceLimitHostTagsForResourceCountOperation(display, serviceOffering, 
template);
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java 
b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 5861f7ced43..3bd9cdd1265 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -110,7 +110,6 @@ import 
org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
 import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
 import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
 import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
 import org.apache.cloudstack.utils.jsinterpreter.TagAsRuleHelper;
@@ -552,9 +551,6 @@ public class VolumeApiServiceImpl extends ManagerBase 
implements VolumeApiServic
                     Account account = _accountDao.findById(accountId);
                     Domain domain = domainDao.findById(account.getDomainId());
 
-                    // one of the two following might have to be removed
-                    
command.setDefaultMaxSecondaryStorageInGB(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null));
-                    
command.setDefaultMaxSecondaryStorageInGB(ByteScaleUtils.bytesToGibibytes(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null)));
                     
command.setDefaultMaxSecondaryStorageInBytes(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null));
                     command.setAccountId(accountId);
                     Gson gson = new GsonBuilder().create();
diff --git 
a/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java 
b/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java
index 2599d64f82f..8c06f39bef9 100644
--- a/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java
@@ -39,9 +39,7 @@ import 
org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd;
 import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.direct.download.DirectDownloadManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
 import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService;
@@ -57,18 +55,15 @@ import 
org.apache.cloudstack.storage.command.TemplateOrVolumePostUploadCommand;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
-import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
 import org.apache.cloudstack.utils.security.DigestHelper;
 import org.apache.commons.collections.CollectionUtils;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
 import com.cloud.alert.AlertManager;
-import com.cloud.configuration.Config;
 import com.cloud.configuration.Resource.ResourceType;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.domain.Domain;
 import com.cloud.deployasis.dao.TemplateDeployAsIsDetailsDao;
 import com.cloud.event.EventTypes;
 import com.cloud.event.UsageEventUtils;
@@ -76,7 +71,6 @@ import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.host.HostVO;
 import com.cloud.hypervisor.Hypervisor;
-import com.cloud.org.Grouping;
 import com.cloud.resource.ResourceManager;
 import com.cloud.storage.ScopeType;
 import com.cloud.storage.Storage.ImageFormat;
@@ -300,44 +294,6 @@ public class HypervisorTemplateAdapter extends 
TemplateAdapterBase {
         }
     }
 
-    protected boolean isZoneAndImageStoreAvailable(DataStore imageStore, Long 
zoneId, Set<Long> zoneSet, boolean isTemplatePrivate) {
-        if (zoneId == null) {
-            logger.warn(String.format("Zone ID is null, cannot allocate 
ISO/template in image store [%s].", imageStore));
-            return false;
-        }
-
-        DataCenterVO zone = _dcDao.findById(zoneId);
-        if (zone == null) {
-            logger.warn("Unable to find zone by id [{}], so skip downloading 
template to its image store [{}].", zoneId, imageStore);
-            return false;
-        }
-
-        if (Grouping.AllocationState.Disabled == zone.getAllocationState()) {
-            logger.info("Zone [{}] is disabled. Skip downloading template to 
its image store [{}].", zone, imageStore);
-            return false;
-        }
-
-        if (!_statsCollector.imageStoreHasEnoughCapacity(imageStore)) {
-            logger.info("Image store doesn't have enough capacity. Skip 
downloading template to this image store [{}].", imageStore);
-            return false;
-        }
-
-        if (zoneSet == null) {
-            logger.info(String.format("Zone set is null; therefore, the 
ISO/template should be allocated in every secondary storage of zone [%s].", 
zone));
-            return true;
-        }
-
-        if (isTemplatePrivate && zoneSet.contains(zoneId)) {
-            logger.info(String.format("The template is private and it is 
already allocated in a secondary storage in zone [%s]; therefore, image store 
[%s] will be skipped.",
-                    zone, imageStore));
-            return false;
-        }
-
-        logger.info(String.format("Private template will be allocated in image 
store [%s] in zone [%s].", imageStore, zone));
-        zoneSet.add(zoneId);
-        return true;
-    }
-
     @Override
     public List<TemplateOrVolumePostUploadCommand> 
createTemplateForPostUpload(final TemplateProfile profile) {
         // persist entry in vm_template, vm_template_details and 
template_zone_ref tables, not that entry at template_store_ref is not created 
here, and created in createTemplateAsync.
@@ -391,61 +347,6 @@ public class HypervisorTemplateAdapter extends 
TemplateAdapterBase {
         });
     }
 
-    /**
-     * If the template/ISO is marked as private, then it is allocated to a 
random secondary storage; otherwise, allocates to every storage pool in every 
zone given by the
-     * {@link TemplateProfile#getZoneIdList()}.
-     */
-    protected void postUploadAllocation(List<DataStore> imageStores, 
VMTemplateVO template, List<TemplateOrVolumePostUploadCommand> payloads) {
-        Set<Long> zoneSet = new HashSet<>();
-        Collections.shuffle(imageStores);
-        for (DataStore imageStore : imageStores) {
-            Long zoneId_is = imageStore.getScope().getScopeId();
-
-            if (!isZoneAndImageStoreAvailable(imageStore, zoneId_is, zoneSet, 
isPrivateTemplate(template))) {
-                continue;
-            }
-
-            TemplateInfo tmpl = imageFactory.getTemplate(template.getId(), 
imageStore);
-
-            // persist template_store_ref entry
-            DataObject templateOnStore = imageStore.create(tmpl);
-
-            // update template_store_ref and template state
-            EndPoint ep = _epSelector.select(templateOnStore);
-            if (ep == null) {
-                String errMsg = String.format("There is no secondary storage 
VM for downloading template to image store %s", imageStore);
-                logger.warn(errMsg);
-                throw new CloudRuntimeException(errMsg);
-            }
-
-            TemplateOrVolumePostUploadCommand payload = new 
TemplateOrVolumePostUploadCommand(template.getId(), template.getUuid(), 
tmpl.getInstallPath(), tmpl
-                    .getChecksum(), tmpl.getType().toString(), 
template.getUniqueName(), template.getFormat().toString(), 
templateOnStore.getDataStore().getUri(),
-                    templateOnStore.getDataStore().getRole().toString());
-            //using the existing max template size configuration
-            
payload.setMaxUploadSize(_configDao.getValue(Config.MaxTemplateAndIsoSize.key()));
-
-            Long accountId = template.getAccountId();
-            Account account = _accountDao.findById(accountId);
-            Domain domain = _domainDao.findById(account.getDomainId());
-
-            
payload.setDefaultMaxSecondaryStorageInGB(ByteScaleUtils.bytesToGibibytes(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null)));
-            payload.setAccountId(accountId);
-            payload.setRemoteEndPoint(ep.getPublicAddr());
-            payload.setRequiresHvm(template.requiresHvm());
-            payload.setDescription(template.getDisplayText());
-            payloads.add(payload);
-        }
-    }
-
-    protected boolean isPrivateTemplate(VMTemplateVO template){
-
-        // if public OR featured OR system template
-        if(template.isPublicTemplate() || template.isFeatured() || 
template.getTemplateType() == TemplateType.SYSTEM)
-            return false;
-        else
-            return true;
-    }
-
     private class CreateTemplateContext<T> extends AsyncRpcContext<T> {
         final TemplateInfo template;
 
diff --git a/server/src/main/java/com/cloud/template/TemplateAdapterBase.java 
b/server/src/main/java/com/cloud/template/TemplateAdapterBase.java
index d650ef98db7..5f04f582a1d 100644
--- a/server/src/main/java/com/cloud/template/TemplateAdapterBase.java
+++ b/server/src/main/java/com/cloud/template/TemplateAdapterBase.java
@@ -244,7 +244,7 @@ public abstract class TemplateAdapterBase extends 
AdapterBase implements Templat
             Account account = _accountDao.findById(accountId);
             Domain domain = _domainDao.findById(account.getDomainId());
 
-            
payload.setDefaultMaxSecondaryStorageInGB(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null));
+            
payload.setDefaultMaxSecondaryStorageInBytes(_resourceLimitMgr.findCorrectResourceLimitForAccountAndDomain(account,
 domain, ResourceType.secondary_storage, null));
             payload.setAccountId(accountId);
             payload.setRemoteEndPoint(ep.getPublicAddr());
             payload.setRequiresHvm(template.requiresHvm());
diff --git a/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java 
b/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
index cd07cdbe2e1..3f7ee3e0bc0 100644
--- a/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
+++ b/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
@@ -23,7 +23,6 @@ import com.cloud.agent.api.routing.UpdateNetworkCommand;
 import com.cloud.agent.api.to.IpAddressTO;
 import com.cloud.agent.manager.Commands;
 import com.cloud.alert.AlertManager;
-import com.cloud.configuration.Resource;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.DataCenterDao;
@@ -492,7 +491,6 @@ public class VpcManagerImplTest {
     public void testCreateVpcDnsOfferingServiceFailure() {
         mockVpcDnsResources(false, false);
         try {
-            doNothing().when(resourceLimitService).checkResourceLimit(account, 
Resource.ResourceType.vpc);
             manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, 
vpcName, ip4Cidr, vpcDomain,
                     ip4Dns[0], null, null, null, true, 1500, null, null, null, 
false);
         } catch (ResourceAllocationException e) {
@@ -504,7 +502,6 @@ public class VpcManagerImplTest {
     public void testCreateVpcDnsIpv6OfferingFailure() {
         mockVpcDnsResources(true, false);
         try {
-            doNothing().when(resourceLimitService).checkResourceLimit(account, 
Resource.ResourceType.vpc);
             manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, 
vpcName, ip4Cidr, vpcDomain,
                     ip4Dns[0], ip4Dns[1], ip6Dns[0], null, true, 1500, null, 
null, null, false);
         } catch (ResourceAllocationException e) {
@@ -519,7 +516,6 @@ public class VpcManagerImplTest {
         Mockito.when(vpcDao.persist(any(), anyMap())).thenReturn(vpc);
         Mockito.when(vpc.getUuid()).thenReturn("uuid");
         try (MockedConstruction<CheckedReservation> mockCheckedReservation = 
Mockito.mockConstruction(CheckedReservation.class)) {
-            doNothing().when(resourceLimitService).checkResourceLimit(account, 
Resource.ResourceType.vpc);
             manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, 
vpcName, ip4Cidr, vpcDomain,
                     ip4Dns[0], ip4Dns[1], null, null, true, 1500, null, null, 
null, false);
         } catch (ResourceAllocationException e) {
@@ -536,7 +532,6 @@ public class VpcManagerImplTest {
         doReturn(true).when(routedIpv4Manager).isRoutedVpc(any());
         doNothing().when(routedIpv4Manager).getOrCreateIpv4SubnetForVpc(any(), 
anyString());
         try (MockedConstruction<CheckedReservation> mockCheckedReservation = 
Mockito.mockConstruction(CheckedReservation.class)) {
-            doNothing().when(resourceLimitService).checkResourceLimit(account, 
Resource.ResourceType.vpc);
             manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, 
vpcName, ip4Cidr, vpcDomain,
                     ip4Dns[0], ip4Dns[1], null, null, true, 1500, null, null, 
null, false);
         } catch (ResourceAllocationException e) {
@@ -559,7 +554,6 @@ public class VpcManagerImplTest {
         
doReturn(ipv4GuestSubnetNetworkMap).when(routedIpv4Manager).getOrCreateIpv4SubnetForVpc(any(),
 anyInt());
         List<Long> bgpPeerIds = Arrays.asList(11L, 12L);
         try (MockedConstruction<CheckedReservation> mockCheckedReservation = 
Mockito.mockConstruction(CheckedReservation.class)) {
-            doNothing().when(resourceLimitService).checkResourceLimit(account, 
Resource.ResourceType.vpc);
             manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, 
vpcName, null, vpcDomain,
                     ip4Dns[0], ip4Dns[1], null, null, true, 1500, 24, null, 
bgpPeerIds, false);
         } catch (ResourceAllocationException e) {
diff --git 
a/server/src/test/java/com/cloud/resourcelimit/ResourceLimitManagerImplTest.java
 
b/server/src/test/java/com/cloud/resourcelimit/ResourceLimitManagerImplTest.java
index 5c393a9d8e5..30813f0c6c2 100644
--- 
a/server/src/test/java/com/cloud/resourcelimit/ResourceLimitManagerImplTest.java
+++ 
b/server/src/test/java/com/cloud/resourcelimit/ResourceLimitManagerImplTest.java
@@ -296,24 +296,6 @@ public class ResourceLimitManagerImplTest {
         }
     }
 
-    @Test
-    public void testCheckVmGpuResourceLimit() {
-        ServiceOffering serviceOffering = Mockito.mock(ServiceOffering.class);
-        VirtualMachineTemplate template = 
Mockito.mock(VirtualMachineTemplate.class);
-        Mockito.when(serviceOffering.getHostTag()).thenReturn(hostTags.get(0));
-        Mockito.when(template.getTemplateTag()).thenReturn(hostTags.get(0));
-        Account account = Mockito.mock(Account.class);
-        long gpuCount = 2L;
-        try {
-            
Mockito.doNothing().when(resourceLimitManager).checkResourceLimitWithTag(Mockito.any(),
 Mockito.any(), Mockito.any(), Mockito.any());
-            resourceLimitManager.checkVmGpuResourceLimit(account, true, 
serviceOffering, template, gpuCount);
-            Mockito.verify(resourceLimitManager, 
Mockito.times(1)).checkResourceLimitWithTag(account, Resource.ResourceType.gpu, 
null, gpuCount);
-            Mockito.verify(resourceLimitManager, 
Mockito.times(1)).checkResourceLimitWithTag(account, Resource.ResourceType.gpu, 
hostTags.get(0), gpuCount);
-        } catch (ResourceAllocationException e) {
-            Assert.fail("Exception encountered: " + e.getMessage());
-        }
-    }
-
     @Test
     public void testCheckVolumeResourceLimit() {
         List<Reserver> reservations = new ArrayList<>();
diff --git 
a/server/src/test/java/com/cloud/vpc/MockResourceLimitManagerImpl.java 
b/server/src/test/java/com/cloud/vpc/MockResourceLimitManagerImpl.java
index 7659c931af5..9e0997df08c 100644
--- a/server/src/test/java/com/cloud/vpc/MockResourceLimitManagerImpl.java
+++ b/server/src/test/java/com/cloud/vpc/MockResourceLimitManagerImpl.java
@@ -383,11 +383,6 @@ public class MockResourceLimitManagerImpl extends 
ManagerBase implements Resourc
 
     }
 
-    @Override
-    public void checkVmGpuResourceLimit(Account owner, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu) 
throws ResourceAllocationException {
-
-    }
-
     @Override
     public void incrementVmGpuResourceCount(long accountId, Boolean display, 
ServiceOffering serviceOffering, VirtualMachineTemplate template, Long gpu) {
 

Reply via email to