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;
