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
         };
     }
 

Reply via email to