This is an automated email from the ASF dual-hosted git repository. DaanHoogland pushed a commit to branch ghi10752-configCleanup in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit b71bb2a0c5f2b979b383cf186388d9afd03f23d8 Author: Daan Hoogland <[email protected]> AuthorDate: Sat Aug 15 08:57:35 2026 +0200 move account and domain related configuration items from deprecated Config enum to services --- .../java/com/cloud/user/ResourceLimitService.java | 44 +++++++++ .../main/java/com/cloud/configuration/Config.java | 103 --------------------- .../resourcelimit/ResourceLimitManagerImpl.java | 65 ++++++++----- 3 files changed, 87 insertions(+), 125 deletions(-) diff --git a/api/src/main/java/com/cloud/user/ResourceLimitService.java b/api/src/main/java/com/cloud/user/ResourceLimitService.java index 89128f87829..ad3d304571c 100644 --- a/api/src/main/java/com/cloud/user/ResourceLimitService.java +++ b/api/src/main/java/com/cloud/user/ResourceLimitService.java @@ -58,6 +58,50 @@ public interface ResourceLimitService { static final ConfigKey<Long> DefaultMaxProjectGpus = new ConfigKey<>("Project Defaults",Long.class,"max.project.gpus","20", "The default maximum number of GPU devices that can be used for a project", false); + static final ConfigKey<Long> DefaultMaxAccountUserVms = new ConfigKey<>("Account Defaults", Long.class, "max.account.user.vms", "20", + "The default maximum number of user VMs that can be deployed for an account", false); + static final ConfigKey<Long> DefaultMaxAccountPublicIPs = new ConfigKey<>("Account Defaults", Long.class, "max.account.public.ips", "20", + "The default maximum number of public IPs that can be consumed by an account", false); + static final ConfigKey<Long> DefaultMaxAccountTemplates = new ConfigKey<>("Account Defaults", Long.class, "max.account.templates", "20", + "The default maximum number of Templates that can be deployed for an account", false); + static final ConfigKey<Long> DefaultMaxAccountSnapshots = new ConfigKey<>("Account Defaults", Long.class, "max.account.snapshots", "20", + "The default maximum number of snapshots that can be created for an account", false); + static final ConfigKey<Long> DefaultMaxAccountVolumes = new ConfigKey<>("Account Defaults", Long.class, "max.account.volumes", "20", + "The default maximum number of volumes that can be created for an account", false); + static final ConfigKey<Long> DefaultMaxAccountNetworks = new ConfigKey<>("Account Defaults", Long.class, "max.account.networks", "20", + "The default maximum number of networks that can be created for an account", false); + static final ConfigKey<Long> DefaultMaxAccountVpcs = new ConfigKey<>("Account Defaults", Long.class, "max.account.vpcs", "20", + "The default maximum number of vpcs that can be created for an account", false); + static final ConfigKey<Long> DefaultMaxAccountCpus = new ConfigKey<>("Account Defaults", Long.class, "max.account.cpus", "40", + "The default maximum number of cpu cores that can be used for an account", false); + static final ConfigKey<Long> DefaultMaxAccountMemory = new ConfigKey<>("Account Defaults", Long.class, "max.account.memory", "40960", + "The default maximum memory (in MB) that can be used for an account", false); + static final ConfigKey<Long> DefaultMaxAccountPrimaryStorage = new ConfigKey<>("Account Defaults", Long.class, "max.account.primary.storage", "200", + "The default maximum primary storage space (in GiB) that can be used for an account", false); + + static final ConfigKey<Long> DefaultMaxDomainUserVms = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.user.vms", "40", + "The default maximum number of user Instances that can be deployed for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainPublicIPs = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.public.ips", "40", + "The default maximum number of public IPs that can be consumed by a domain", false); + static final ConfigKey<Long> DefaultMaxDomainTemplates = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.templates", "40", + "The default maximum number of Templates that can be deployed for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainSnapshots = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.snapshots", "40", + "The default maximum number of Snapshots that can be created for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainVolumes = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.volumes", "40", + "The default maximum number of Volumes that can be created for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainNetworks = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.networks", "40", + "The default maximum number of Networks that can be created for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainVpcs = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.vpcs", "40", + "The default maximum number of VPCs that can be created for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainCpus = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.cpus", "80", + "The default maximum number of CPU cores that can be used for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainMemory = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.memory", "81920", + "The default maximum memory (in MB) that can be used for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainPrimaryStorage = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.primary.storage", "400", + "The default maximum primary storage space (in GiB) that can be used for a domain", false); + static final ConfigKey<Long> DefaultMaxDomainSecondaryStorage = new ConfigKey<>("Domain Defaults", Long.class, "max.domain.secondary.storage", "800", + "The default maximum secondary storage space (in GiB) that can be used for a domain", false); + static final List<ResourceType> HostTagsSupportingTypes = List.of(ResourceType.user_vm, ResourceType.cpu, ResourceType.memory, ResourceType.gpu); static final List<ResourceType> StorageTagsSupportingTypes = List.of(ResourceType.volume, ResourceType.primary_storage); diff --git a/server/src/main/java/com/cloud/configuration/Config.java b/server/src/main/java/com/cloud/configuration/Config.java index 08ffca8e9ed..0b0d388a11d 100644 --- a/server/src/main/java/com/cloud/configuration/Config.java +++ b/server/src/main/java/com/cloud/configuration/Config.java @@ -814,96 +814,6 @@ public enum Config { DefaultPageSize("Advanced", ManagementServer.class, Long.class, "default.page.size", "500", "Default page size for API list* commands", null), - // Account Default Limits - DefaultMaxAccountUserVms( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.user.vms", - "20", - "The default maximum number of user VMs that can be deployed for an account", - null), - DefaultMaxAccountPublicIPs( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.public.ips", - "20", - "The default maximum number of public IPs that can be consumed by an account", - null), - DefaultMaxAccountTemplates( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.templates", - "20", - "The default maximum number of Templates that can be deployed for an account", - null), - DefaultMaxAccountSnapshots( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.snapshots", - "20", - "The default maximum number of snapshots that can be created for an account", - null), - DefaultMaxAccountVolumes( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.volumes", - "20", - "The default maximum number of volumes that can be created for an account", - null), - DefaultMaxAccountNetworks( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.networks", - "20", - "The default maximum number of networks that can be created for an account", - null), - DefaultMaxAccountVpcs( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.vpcs", - "20", - "The default maximum number of vpcs that can be created for an account", - null), - DefaultMaxAccountCpus( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.cpus", - "40", - "The default maximum number of cpu cores that can be used for an account", - null), - DefaultMaxAccountMemory( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.memory", - "40960", - "The default maximum memory (in MB) that can be used for an account", - null), - DefaultMaxAccountPrimaryStorage( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.primary.storage", - "200", - "The default maximum primary storage space (in GiB) that can be used for an account", - null), - DefaultMaxAccountProjects( - "Account Defaults", - ManagementServer.class, - Long.class, - "max.account.projects", - "10", - "The default maximum number of projects that can be created for an account", - null), - //disabling lb as cluster sync does not work with distributed cluster SubDomainNetworkAccess( "Advanced", @@ -941,19 +851,6 @@ public enum Config { "Percentage (as a value between 0 and 1) of connected agents after which agent load balancing will start happening", null), - DefaultMaxDomainUserVms("Domain Defaults", ManagementServer.class, Long.class, "max.domain.user.vms", "40", "The default maximum number of user Instances that can be deployed for a domain", null), - DefaultMaxDomainPublicIPs("Domain Defaults", ManagementServer.class, Long.class, "max.domain.public.ips", "40", "The default maximum number of public IPs that can be consumed by a domain", null), - DefaultMaxDomainTemplates("Domain Defaults", ManagementServer.class, Long.class, "max.domain.templates", "40", "The default maximum number of Templates that can be deployed for a domain", null), - DefaultMaxDomainSnapshots("Domain Defaults", ManagementServer.class, Long.class, "max.domain.snapshots", "40", "The default maximum number of Snapshots that can be created for a domain", null), - DefaultMaxDomainVolumes("Domain Defaults", ManagementServer.class, Long.class, "max.domain.volumes", "40", "The default maximum number of Volumes that can be created for a domain", null), - DefaultMaxDomainNetworks("Domain Defaults", ManagementServer.class, Long.class, "max.domain.networks", "40", "The default maximum number of Networks that can be created for a domain", null), - DefaultMaxDomainVpcs("Domain Defaults", ManagementServer.class, Long.class, "max.domain.vpcs", "40", "The default maximum number of VPCs that can be created for a domain", null), - DefaultMaxDomainCpus("Domain Defaults", ManagementServer.class, Long.class, "max.domain.cpus", "80", "The default maximum number of CPU cores that can be used for a domain", null), - DefaultMaxDomainMemory("Domain Defaults", ManagementServer.class, Long.class, "max.domain.memory", "81920", "The default maximum memory (in MB) that can be used for a domain", null), - DefaultMaxDomainPrimaryStorage("Domain Defaults", ManagementServer.class, Long.class, "max.domain.primary.storage", "400", "The default maximum primary storage space (in GiB) that can be used for a domain", null), - DefaultMaxDomainSecondaryStorage("Domain Defaults", ManagementServer.class, Long.class, "max.domain.secondary.storage", "800", "The default maximum secondary storage space (in GiB) that can be used for a domain", null), - DefaultMaxDomainProjects("Domain Defaults",ManagementServer.class,Long.class,"max.domain.projects","50","The default maximum number of projects that can be created for a domain",null), - DefaultMaxProjectUserVms( "Project Defaults", ManagementServer.class, diff --git a/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java b/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java index bc3abd30d88..d92f4fc06d8 100644 --- a/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java +++ b/server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java @@ -311,17 +311,17 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim projectResourceLimitMap.put(Resource.ResourceType.bucket.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxProjectBuckets.key()))); projectResourceLimitMap.put(Resource.ResourceType.object_storage.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxProjectObjectStorage.key()))); - accountResourceLimitMap.put(Resource.ResourceType.public_ip.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPublicIPs.key()))); - accountResourceLimitMap.put(Resource.ResourceType.snapshot.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountSnapshots.key()))); - accountResourceLimitMap.put(Resource.ResourceType.template.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountTemplates.key()))); - accountResourceLimitMap.put(Resource.ResourceType.user_vm.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountUserVms.key()))); - accountResourceLimitMap.put(Resource.ResourceType.volume.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVolumes.key()))); - accountResourceLimitMap.put(Resource.ResourceType.network.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountNetworks.key()))); - accountResourceLimitMap.put(Resource.ResourceType.vpc.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVpcs.key()))); - accountResourceLimitMap.put(Resource.ResourceType.cpu.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountCpus.key()))); - accountResourceLimitMap.put(Resource.ResourceType.memory.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountMemory.key()))); + accountResourceLimitMap.put(Resource.ResourceType.public_ip.name(), DefaultMaxAccountPublicIPs.value()); + accountResourceLimitMap.put(Resource.ResourceType.snapshot.name(), DefaultMaxAccountSnapshots.value()); + accountResourceLimitMap.put(Resource.ResourceType.template.name(), DefaultMaxAccountTemplates.value()); + accountResourceLimitMap.put(Resource.ResourceType.user_vm.name(), DefaultMaxAccountUserVms.value()); + accountResourceLimitMap.put(Resource.ResourceType.volume.name(), DefaultMaxAccountVolumes.value()); + accountResourceLimitMap.put(Resource.ResourceType.network.name(), DefaultMaxAccountNetworks.value()); + accountResourceLimitMap.put(Resource.ResourceType.vpc.name(), DefaultMaxAccountVpcs.value()); + accountResourceLimitMap.put(Resource.ResourceType.cpu.name(), DefaultMaxAccountCpus.value()); + accountResourceLimitMap.put(Resource.ResourceType.memory.name(), DefaultMaxAccountMemory.value()); accountResourceLimitMap.put(Resource.ResourceType.gpu.name(), DefaultMaxAccountGpus.value()); - accountResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPrimaryStorage.key()))); + accountResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), DefaultMaxAccountPrimaryStorage.value()); accountResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), MaxAccountSecondaryStorage.value()); accountResourceLimitMap.put(Resource.ResourceType.project.name(), DefaultMaxAccountProjects.value()); accountResourceLimitMap.put(Resource.ResourceType.backup.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxAccountBackups.key()))); @@ -329,17 +329,17 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim accountResourceLimitMap.put(Resource.ResourceType.bucket.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxAccountBuckets.key()))); accountResourceLimitMap.put(Resource.ResourceType.object_storage.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxAccountObjectStorage.key()))); - domainResourceLimitMap.put(Resource.ResourceType.public_ip.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPublicIPs.key()))); - domainResourceLimitMap.put(Resource.ResourceType.snapshot.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSnapshots.key()))); - domainResourceLimitMap.put(Resource.ResourceType.template.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainTemplates.key()))); - domainResourceLimitMap.put(Resource.ResourceType.user_vm.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainUserVms.key()))); - domainResourceLimitMap.put(Resource.ResourceType.volume.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVolumes.key()))); - domainResourceLimitMap.put(Resource.ResourceType.network.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainNetworks.key()))); - domainResourceLimitMap.put(Resource.ResourceType.vpc.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVpcs.key()))); - domainResourceLimitMap.put(Resource.ResourceType.cpu.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainCpus.key()))); - domainResourceLimitMap.put(Resource.ResourceType.memory.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainMemory.key()))); - domainResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPrimaryStorage.key()))); - domainResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSecondaryStorage.key()))); + domainResourceLimitMap.put(Resource.ResourceType.public_ip.name(), DefaultMaxDomainPublicIPs.value()); + domainResourceLimitMap.put(Resource.ResourceType.snapshot.name(), DefaultMaxDomainSnapshots.value()); + domainResourceLimitMap.put(Resource.ResourceType.template.name(), DefaultMaxDomainTemplates.value()); + domainResourceLimitMap.put(Resource.ResourceType.user_vm.name(), DefaultMaxDomainUserVms.value()); + domainResourceLimitMap.put(Resource.ResourceType.volume.name(), DefaultMaxDomainVolumes.value()); + domainResourceLimitMap.put(Resource.ResourceType.network.name(), DefaultMaxDomainNetworks.value()); + domainResourceLimitMap.put(Resource.ResourceType.vpc.name(), DefaultMaxDomainVpcs.value()); + domainResourceLimitMap.put(Resource.ResourceType.cpu.name(), DefaultMaxDomainCpus.value()); + domainResourceLimitMap.put(Resource.ResourceType.memory.name(), DefaultMaxDomainMemory.value()); + domainResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), DefaultMaxDomainPrimaryStorage.value()); + domainResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), DefaultMaxDomainSecondaryStorage.value()); domainResourceLimitMap.put(Resource.ResourceType.project.name(), DefaultMaxDomainProjects.value()); domainResourceLimitMap.put(Resource.ResourceType.gpu.name(), DefaultMaxDomainGpus.value()); domainResourceLimitMap.put(Resource.ResourceType.backup.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxDomainBackups.key()))); @@ -2259,7 +2259,28 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim DefaultMaxDomainProjects, DefaultMaxAccountGpus, DefaultMaxDomainGpus, - DefaultMaxProjectGpus + DefaultMaxProjectGpus, + DefaultMaxAccountUserVms, + DefaultMaxAccountPublicIPs, + DefaultMaxAccountTemplates, + DefaultMaxAccountSnapshots, + DefaultMaxAccountVolumes, + DefaultMaxAccountNetworks, + DefaultMaxAccountVpcs, + DefaultMaxAccountCpus, + DefaultMaxAccountMemory, + DefaultMaxAccountPrimaryStorage, + DefaultMaxDomainUserVms, + DefaultMaxDomainPublicIPs, + DefaultMaxDomainTemplates, + DefaultMaxDomainSnapshots, + DefaultMaxDomainVolumes, + DefaultMaxDomainNetworks, + DefaultMaxDomainVpcs, + DefaultMaxDomainCpus, + DefaultMaxDomainMemory, + DefaultMaxDomainPrimaryStorage, + DefaultMaxDomainSecondaryStorage }; }
