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

shwstppr pushed a commit to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 425c4e33120fbde8f0d3c890ac50d79d0b5f9c18
Merge: 2d4b7ba3578 750290b8aed
Author: Abhishek Kumar <[email protected]>
AuthorDate: Wed Jan 7 13:10:41 2026 +0530

    Merge remote-tracking branch 'apache/4.20' into 4.22

 .../storage/template/HttpTemplateDownloader.java   |  2 +-
 .../main/java/com/cloud/storage/dao/VolumeDao.java |  2 +
 .../java/com/cloud/storage/dao/VolumeDaoImpl.java  | 14 ++++++
 .../java/com/cloud/upgrade/DatabaseCreator.java    |  2 +-
 .../main/java/com/cloud/vm/dao/VMInstanceDao.java  |  4 ++
 .../java/com/cloud/vm/dao/VMInstanceDaoImpl.java   | 37 +++++++++++++++
 .../configuration/ConfigurationManagerImpl.java    | 15 ++++--
 .../main/java/com/cloud/hypervisor/KVMGuru.java    |  3 +-
 .../java/com/cloud/user/DomainManagerImpl.java     | 25 ++++++++--
 .../java/com/cloud/hypervisor/KVMGuruTest.java     |  4 +-
 .../hypervisor/vmware/mo/VirtualMachineMO.java     | 54 +++++++++++++---------
 11 files changed, 128 insertions(+), 34 deletions(-)

diff --cc engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
index 0f47c9e7155,4936af3caab..44c0be1cb59
--- a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
+++ b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDao.java
@@@ -163,5 -163,5 +163,7 @@@ public interface VolumeDao extends Gene
  
      VolumeVO findOneByIScsiName(String iScsiName);
  
+     int getVolumeCountByOfferingId(long diskOfferingId);
++
 +    VolumeVO findByLastIdAndState(long lastVolumeId, Volume.State...states);
  }
diff --cc engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
index 6814636bc66,5ef64b04664..2e263caeea3
--- a/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/storage/dao/VolumeDaoImpl.java
@@@ -914,11 -916,11 +920,19 @@@ public class VolumeDaoImpl extends Gene
          return findOneIncludingRemovedBy(sc);
      }
  
+     @Override
+     public int getVolumeCountByOfferingId(long diskOfferingId) {
+         SearchCriteria<Integer> sc = CountByOfferingId.create();
+         sc.setParameters("diskOfferingId", diskOfferingId);
+         List<Integer> results = customSearch(sc, null);
+         return results.get(0);
+     }
++
 +    @Override
 +    public VolumeVO findByLastIdAndState(long lastVolumeId, State ...states) {
 +        QueryBuilder<VolumeVO> sc = QueryBuilder.create(VolumeVO.class);
 +        sc.and(sc.entity().getLastId(), SearchCriteria.Op.EQ,  lastVolumeId);
 +        sc.and(sc.entity().getState(), SearchCriteria.Op.IN,  (Object[]) 
states);
 +        return sc.find();
 +    }
  }
diff --cc engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDao.java
index f722b4c54e4,56e16ddd871..23541c2431e
--- a/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDao.java
+++ b/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDao.java
@@@ -187,5 -187,7 +187,9 @@@ public interface VMInstanceDao extends 
  
      Map<String, Long> getNameIdMapForVmIds(Collection<Long> ids);
  
+     int getVmCountByOfferingId(Long serviceOfferingId);
+ 
+     int getVmCountByOfferingNotInDomain(Long serviceOfferingId, List<Long> 
domainIds);
++
 +    List<VMInstanceVO> listByIdsIncludingRemoved(List<Long> ids);
  }
diff --cc engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java
index b277de9330f,518bc3cf497..703fabd2cab
--- a/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/vm/dao/VMInstanceDaoImpl.java
@@@ -1247,13 -1239,26 +1261,36 @@@ public class VMInstanceDaoImpl extends 
                  .collect(Collectors.toMap(VMInstanceVO::getInstanceName, 
VMInstanceVO::getId));
      }
  
+     @Override
+     public int getVmCountByOfferingId(Long serviceOfferingId) {
+         if (serviceOfferingId == null) {
+             return 0;
+         }
+         SearchCriteria<Integer> sc = CountByOfferingId.create();
+         sc.setParameters("serviceOfferingId", serviceOfferingId);
+         List<Integer> count = customSearch(sc, null);
+         return count.get(0);
+     }
+ 
+     @Override
+     public int getVmCountByOfferingNotInDomain(Long serviceOfferingId, 
List<Long> domainIds) {
+         if (serviceOfferingId == null || CollectionUtils.isEmpty(domainIds)) {
+             return 0;
+         }
+         SearchCriteria<Integer> sc = CountUserVmNotInDomain.create();
+         sc.setParameters("serviceOfferingId", serviceOfferingId);
+         sc.setParameters("domainIdsNotIn", domainIds.toArray());
+         List<Integer> count = customSearch(sc, null);
+         return count.get(0);
+     }
++
 +    @Override
 +    public List<VMInstanceVO> listByIdsIncludingRemoved(List<Long> ids) {
 +        SearchBuilder<VMInstanceVO> idsSearch = createSearchBuilder();
 +        idsSearch.and("ids", idsSearch.entity().getId(), 
SearchCriteria.Op.IN);
 +        idsSearch.done();
 +        SearchCriteria<VMInstanceVO> sc = idsSearch.create();
 +        sc.setParameters("ids", ids.toArray());
 +        return listIncludingRemovedBy(sc);
 +    }
  }
diff --cc 
server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index fd68770e89f,62b3c23d27e..705e7dea158
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@@ -49,10 -50,9 +49,6 @@@ import java.util.stream.Collectors
  import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
- import com.cloud.consoleproxy.ConsoleProxyManager;
- import com.cloud.network.router.VirtualNetworkApplianceManager;
- import com.cloud.storage.secondary.SecondaryStorageVmManager;
- import com.cloud.vm.VirtualMachineManager;
 -import com.cloud.exception.UnsupportedServiceException;
 -import com.cloud.network.as.AutoScaleManager;
 -import com.cloud.user.AccountManagerImpl;
  import org.apache.cloudstack.acl.RoleType;
  import org.apache.cloudstack.acl.SecurityChecker;
  import org.apache.cloudstack.affinity.AffinityGroup;
@@@ -154,6 -154,6 +150,7 @@@ import com.cloud.api.query.vo.NetworkOf
  import com.cloud.capacity.CapacityManager;
  import com.cloud.capacity.dao.CapacityDao;
  import com.cloud.configuration.Resource.ResourceType;
++import com.cloud.consoleproxy.ConsoleProxyManager;
  import com.cloud.dc.AccountVlanMapVO;
  import com.cloud.dc.ClusterDetailsDao;
  import com.cloud.dc.ClusterDetailsVO;
@@@ -204,9 -204,7 +201,10 @@@ import com.cloud.exception.InvalidParam
  import com.cloud.exception.PermissionDeniedException;
  import com.cloud.exception.ResourceAllocationException;
  import com.cloud.exception.ResourceUnavailableException;
++import com.cloud.exception.UnsupportedServiceException;
  import com.cloud.gpu.GPU;
 +import com.cloud.gpu.VgpuProfileVO;
 +import com.cloud.gpu.dao.VgpuProfileDao;
  import com.cloud.host.HostTagVO;
  import com.cloud.host.HostVO;
  import com.cloud.host.dao.HostDao;
@@@ -244,9 -239,7 +242,10 @@@ import com.cloud.network.dao.PhysicalNe
  import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
  import com.cloud.network.dao.PhysicalNetworkVO;
  import com.cloud.network.dao.UserIpv6AddressDao;
 +import com.cloud.network.element.NetrisProviderVO;
  import com.cloud.network.element.NsxProviderVO;
 +import com.cloud.network.netris.NetrisService;
++import com.cloud.network.router.VirtualNetworkApplianceManager;
  import com.cloud.network.rules.LoadBalancerContainer.Scheme;
  import com.cloud.network.vpc.VpcManager;
  import com.cloud.offering.DiskOffering;
@@@ -281,6 -275,6 +280,7 @@@ import com.cloud.storage.dao.DiskOfferi
  import com.cloud.storage.dao.StoragePoolTagsDao;
  import com.cloud.storage.dao.VMTemplateZoneDao;
  import com.cloud.storage.dao.VolumeDao;
++import com.cloud.storage.secondary.SecondaryStorageVmManager;
  import com.cloud.test.IPRangeConfig;
  import com.cloud.user.Account;
  import com.cloud.user.AccountDetailVO;
@@@ -314,9 -305,10 +314,10 @@@ import com.cloud.utils.exception.CloudR
  import com.cloud.utils.net.NetUtils;
  import com.cloud.vm.NicIpAlias;
  import com.cloud.vm.VirtualMachine;
 -import com.cloud.vm.dao.NicDao;
++import com.cloud.vm.VirtualMachineManager;
 +import com.cloud.vm.VmDetailConstants;
  import com.cloud.vm.dao.NicIpAliasDao;
  import com.cloud.vm.dao.NicIpAliasVO;
 -import com.cloud.vm.dao.NicSecondaryIpDao;
  import com.cloud.vm.dao.VMInstanceDao;
  import com.google.common.base.Enums;
  import com.google.common.base.MoreObjects;

Reply via email to