This is an automated email from the ASF dual-hosted git repository. nvazquez pushed a change to branch nsx-integration in repository https://gitbox.apache.org/repos/asf/cloudstack.git
from e6cddc549ca Merge branch 'main' into nsx-integration add 4a0ca2071d3 An ICMP ACL rule should not be able to have code and type null (#8464) add a31449b1049 Allow altering only either CPU or memory during VM live scale (#8234) add 17516fd9890 test: skip check for volume stats history on xenserver (#8661) add f86c62e49a5 UI: load domain lists only if listDomains API is available (#8660) add 6f3e4e63022 fix_filter_and_pagination (#8306) add a0e592e945e prevent nic removal on out of bounds router stop (#8371) add 6af1c25f520 Merge remote-tracking branch 'apache/4.19' add 592038a3042 api,server,ui: granular resource limit management (#8362) add 4c36d561438 Merge branch 'main' into nsx-integration No new revisions were added by this update. Summary of changes: .github/workflows/ci.yml | 3 +- api/src/main/java/com/cloud/capacity/Capacity.java | 9 + .../java/com/cloud/configuration/Resource.java | 1 + .../java/com/cloud/server/ManagementService.java | 3 +- api/src/main/java/com/cloud/storage/Volume.java | 2 + .../java/com/cloud/user/ResourceLimitService.java | 76 +- api/src/main/java/com/cloud/vm/NicProfile.java | 2 +- .../org/apache/cloudstack/api/ApiConstants.java | 7 +- .../api/command/admin/domain/ListDomainsCmd.java | 30 +- .../command/admin/resource/ListCapacityCmd.java | 7 + .../storage/FindStoragePoolsForMigrationCmd.java | 5 +- .../api/command/user/account/ListAccountsCmd.java | 23 +- .../user/offering/ListDiskOfferingsCmd.java | 23 +- .../user/offering/ListServiceOfferingsCmd.java | 18 +- .../user/resource/ListResourceLimitsCmd.java | 14 +- .../user/resource/UpdateResourceCountCmd.java | 10 +- .../user/resource/UpdateResourceLimitCmd.java | 9 +- .../command/user/template/UpdateTemplateCmd.java | 8 +- .../cloudstack/api/response/AccountResponse.java | 9 + .../cloudstack/api/response/CapacityResponse.java | 11 +- .../api/response/DiskOfferingResponse.java | 8 + .../cloudstack/api/response/DomainResponse.java | 10 + .../cloudstack/api/response/ProjectResponse.java | 9 + .../api/response/ResourceCountResponse.java | 16 +- .../response/ResourceLimitAndCountResponse.java | 4 + .../api/response/ResourceLimitResponse.java | 13 +- .../TaggedResourceLimitAndCountResponse.java | 86 ++ .../cloudstack/user/ResourceReservation.java | 5 +- .../command/admin/domain/ListDomainsCmdTest.java | 77 ++ .../resource/ListCapacityCmdTest.java} | 16 +- .../command/user/account/ListAccountsCmdTest.java | 76 ++ .../ListDiskOfferingsCmdTest.java} | 21 +- .../ListServiceOfferingsCmdTest.java} | 22 +- .../ListResourceLimitsCmdTest.java} | 21 +- .../UpdateResourceCountCmdTest.java} | 21 +- .../UpdateResourceLimitCmdTest.java} | 21 +- .../template/UpdateTemplateCmdTest.java} | 31 +- .../main/java/com/cloud/serializer/GsonHelper.java | 2 + .../java/com/cloud/vm/VirtualMachineManager.java | 2 + .../api/storage/StoragePoolAllocator.java | 3 + .../java/com/cloud/storage/StorageManager.java | 7 + .../com/cloud/vm/VirtualMachineManagerImpl.java | 65 +- .../engine/orchestration/NetworkOrchestrator.java | 11 +- .../engine/orchestration/VolumeOrchestrator.java | 17 +- .../cloud/vm/VirtualMachineManagerImplTest.java | 83 +- .../main/java/com/cloud/capacity/CapacityVO.java | 12 + .../java/com/cloud/capacity/dao/CapacityDao.java | 5 +- .../com/cloud/capacity/dao/CapacityDaoImpl.java | 68 +- .../com/cloud/configuration/ResourceCountVO.java | 23 +- .../com/cloud/configuration/ResourceLimitVO.java | 18 +- .../cloud/configuration/dao/ResourceCountDao.java | 20 +- .../configuration/dao/ResourceCountDaoImpl.java | 103 +- .../cloud/configuration/dao/ResourceLimitDao.java | 4 +- .../configuration/dao/ResourceLimitDaoImpl.java | 61 +- .../src/main/java/com/cloud/host/HostVO.java | 39 +- .../src/main/java/com/cloud/host/dao/HostDao.java | 2 +- .../main/java/com/cloud/host/dao/HostDaoImpl.java | 6 +- .../com/cloud/service/dao/ServiceOfferingDao.java | 2 + .../cloud/service/dao/ServiceOfferingDaoImpl.java | 18 + .../com/cloud/storage/dao/DiskOfferingDao.java | 1 + .../com/cloud/storage/dao/DiskOfferingDaoImpl.java | 18 + .../com/cloud/storage/dao/StoragePoolTagsDao.java | 1 + .../cloud/storage/dao/StoragePoolTagsDaoImpl.java | 18 +- .../java/com/cloud/storage/dao/VMTemplateDao.java | 3 + .../com/cloud/storage/dao/VMTemplateDaoImpl.java | 10 + .../main/java/com/cloud/storage/dao/VolumeDao.java | 3 + .../java/com/cloud/storage/dao/VolumeDaoImpl.java | 24 + .../schema/src/main/java/com/cloud/vm/NicVO.java | 13 +- .../cloudstack/reservation/ReservationVO.java | 28 +- .../cloudstack/reservation/dao/ReservationDao.java | 7 +- .../reservation/dao/ReservationDaoImpl.java | 40 +- .../storage/datastore/db/PrimaryDataStoreDao.java | 8 +- .../datastore/db/PrimaryDataStoreDaoImpl.java | 28 +- .../resources/META-INF/db/schema-41900to42000.sql | 10 + .../META-INF/db/views/cloud.account_view.sql | 164 +++ .../META-INF/db/views/cloud.domain_view.sql | 134 +++ .../src/test/java/com/cloud/host/HostVOTest.java | 210 ++-- .../allocator/AbstractStoragePoolAllocator.java | 34 +- .../ClusterScopeStoragePoolAllocator.java | 2 +- .../GarbageCollectingStoragePoolAllocator.java | 2 +- .../allocator/LocalStoragePoolAllocator.java | 4 +- .../allocator/ZoneWideStoragePoolAllocator.java | 2 +- .../AbstractStoragePoolAllocatorTest.java | 2 +- .../storage/volume/VolumeServiceImpl.java | 6 +- .../manager/allocator/impl/RandomAllocator.java | 48 +- .../allocator/impl/RandomAllocatorTest.java | 80 ++ .../cloud/agent/manager/MockStorageManager.java | 3 + .../agent/manager/MockStorageManagerImpl.java | 30 + .../cloud/agent/manager/SimulatorManagerImpl.java | 3 + .../cloudstack/metrics/PrometheusExporterImpl.java | 26 +- .../allocator/RandomStoragePoolAllocator.java | 2 +- server/src/main/java/com/cloud/api/ApiDBUtils.java | 43 +- .../main/java/com/cloud/api/ApiResponseHelper.java | 28 +- .../java/com/cloud/api/query/QueryManagerImpl.java | 74 +- .../com/cloud/api/query/ViewResponseHelper.java | 8 +- .../com/cloud/api/query/dao/UserVmJoinDao.java | 5 +- .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 27 + .../deploy/DeploymentPlanningManagerImpl.java | 8 +- .../com/cloud/network/guru/ControlNetworkGuru.java | 13 +- .../cloud/network/guru/PodBasedNetworkGuru.java | 2 +- .../router/VirtualNetworkApplianceManager.java | 99 +- .../router/VirtualNetworkApplianceManagerImpl.java | 82 +- .../cloud/network/vpc/NetworkACLServiceImpl.java | 35 +- .../cloud/resourcelimit/CheckedReservation.java | 94 +- .../resourcelimit/ResourceLimitManagerImpl.java | 1025 +++++++++++++++---- .../com/cloud/server/ManagementServerImpl.java | 334 ++++--- .../java/com/cloud/storage/StorageManagerImpl.java | 145 ++- .../com/cloud/storage/VolumeApiServiceImpl.java | 66 +- .../storage/snapshot/SnapshotManagerImpl.java | 4 +- .../cloud/template/HypervisorTemplateAdapter.java | 3 +- .../com/cloud/template/TemplateManagerImpl.java | 6 + .../java/com/cloud/user/DomainManagerImpl.java | 48 +- .../main/java/com/cloud/vm/UserVmManagerImpl.java | 261 +++-- .../cloudstack/vm/UnmanagedVMsManagerImpl.java | 72 +- .../java/com/cloud/api/ApiResponseHelperTest.java | 29 + .../com/cloud/api/query/QueryManagerImplTest.java | 54 + .../network/vpc/NetworkACLServiceImplTest.java | 98 +- .../resourcelimit/CheckedReservationTest.java | 66 +- .../ResourceLimitManagerImplTest.java | 1051 +++++++++++++++++++- .../com/cloud/storage/StorageManagerImplTest.java | 271 ++++- .../cloud/storage/VolumeApiServiceImplTest.java | 13 +- .../AccountManagerImplVolumeDeleteEventTest.java | 2 - .../java/com/cloud/vm/UserVmManagerImplTest.java | 232 ++++- .../cloud/vpc/MockResourceLimitManagerImpl.java | 165 ++- .../cloudstack/vm/UnmanagedVMsManagerImplTest.java | 183 ++-- .../component/test_resource_limit_tags.py | 648 ++++++++++++ test/integration/smoke/test_metrics_api.py | 2 +- ui/public/locales/en.json | 12 +- ui/src/components/view/ResourceCountUsage.vue | 140 ++- ui/src/components/view/ResourceLimitTab.vue | 94 +- ui/src/components/view/TreeView.vue | 6 +- ui/src/config/section/image.js | 2 +- ui/src/utils/plugins.js | 30 +- ui/src/views/compute/DeployVM.vue | 32 +- ui/src/views/image/RegisterOrUploadTemplate.vue | 9 + ui/src/views/image/UpdateTemplate.vue | 14 + ui/src/views/infra/Resources.vue | 93 +- ui/src/views/network/CreateIsolatedNetworkForm.vue | 6 +- ui/src/views/storage/CreateVolume.vue | 11 +- 139 files changed, 6655 insertions(+), 1352 deletions(-) create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/TaggedResourceLimitAndCountResponse.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmdTest.java copy api/src/test/java/org/apache/cloudstack/api/command/{user/snapshot/DeleteSnapshotCmdTest.java => admin/resource/ListCapacityCmdTest.java} (69%) create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmdTest.java copy api/src/test/java/org/apache/cloudstack/api/command/user/{iso/RegisterIsoCmdTest.java => offering/ListDiskOfferingsCmdTest.java} (68%) copy api/src/test/java/org/apache/cloudstack/api/command/user/{project/CreateProjectCmdTest.java => offering/ListServiceOfferingsCmdTest.java} (69%) copy api/src/test/java/org/apache/cloudstack/api/command/user/{iso/RegisterIsoCmdTest.java => resource/ListResourceLimitsCmdTest.java} (70%) copy api/src/test/java/org/apache/cloudstack/api/command/user/{iso/RegisterIsoCmdTest.java => resource/UpdateResourceCountCmdTest.java} (70%) copy api/src/test/java/org/apache/cloudstack/api/command/user/{iso/RegisterIsoCmdTest.java => resource/UpdateResourceLimitCmdTest.java} (70%) copy api/src/test/java/org/apache/cloudstack/api/command/{admin/offering/CreateServiceOfferingCmdTest.java => user/template/UpdateTemplateCmdTest.java} (53%) create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.account_view.sql create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.domain_view.sql create mode 100644 plugins/host-allocators/random/src/test/java/com/cloud/agent/manager/allocator/impl/RandomAllocatorTest.java create mode 100644 test/integration/component/test_resource_limit_tags.py