Skip to content

Commit 7d102b0

Browse files
Daan Hooglandclaude
andauthored
use ConfigKeys for account, domain, project and SSO settings
Part of the split of #13884 (phase out the Config enum, #10752). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 1a6e967 commit 7d102b0

4 files changed

Lines changed: 60 additions & 56 deletions

File tree

‎server/src/main/java/com/cloud/projects/ProjectManagerImpl.java‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,13 @@
5353
import org.apache.cloudstack.utils.mailing.SMTPMailProperties;
5454
import org.apache.cloudstack.utils.mailing.SMTPMailSender;
5555
import org.apache.cloudstack.webhook.WebhookHelper;
56-
import org.apache.commons.lang3.BooleanUtils;
5756
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
5857
import org.springframework.stereotype.Component;
5958

6059
import com.cloud.api.ApiDBUtils;
6160
import com.cloud.api.query.dao.ProjectAccountJoinDao;
6261
import com.cloud.api.query.dao.ProjectInvitationJoinDao;
6362
import com.cloud.api.query.dao.ProjectJoinDao;
64-
import com.cloud.configuration.Config;
6563
import com.cloud.configuration.ConfigurationManager;
6664
import com.cloud.configuration.Resource.ResourceType;
6765
import com.cloud.domain.DomainVO;
@@ -187,12 +185,10 @@ protected List<? extends ControlledEntity> listWebhooksForProject(Project projec
187185
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
188186

189187
Map<String, String> configs = _configDao.getConfiguration(params);
190-
_invitationRequired = BooleanUtils.toBoolean(configs.get(Config.ProjectInviteRequired.key()));
191-
192-
String value = configs.get(Config.ProjectInvitationExpirationTime.key());
193-
_invitationTimeOut = Long.parseLong(value != null ? value : "86400") * 1000;
194-
_allowUserToCreateProject = BooleanUtils.toBoolean(configs.get(Config.AllowUserToCreateProject.key()));
195-
senderAddress = configs.get("project.email.sender");
188+
_invitationRequired = ProjectInviteRequired.value();
189+
_invitationTimeOut = ProjectInvitationExpirationTime.value() * 1000;
190+
_allowUserToCreateProject = AllowUserToCreateProject.value();
191+
senderAddress = ProjectEmailSender.value();
196192

197193
String namespace = "project.smtp";
198194

‎server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java‎

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@
7272
import com.cloud.api.query.vo.UserVmJoinVO;
7373
import com.cloud.cluster.ManagementServerHostVO;
7474
import com.cloud.cluster.dao.ManagementServerHostDao;
75-
import com.cloud.configuration.Config;
7675
import com.cloud.configuration.Resource;
7776
import com.cloud.configuration.Resource.ResourceOwnerType;
7877
import com.cloud.configuration.Resource.ResourceType;
@@ -295,58 +294,58 @@ public boolean configure(final String name, final Map<String, Object> params) th
295294
}
296295

297296
try {
298-
projectResourceLimitMap.put(Resource.ResourceType.public_ip.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectPublicIPs.key())));
299-
projectResourceLimitMap.put(Resource.ResourceType.snapshot.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectSnapshots.key())));
300-
projectResourceLimitMap.put(Resource.ResourceType.template.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectTemplates.key())));
301-
projectResourceLimitMap.put(Resource.ResourceType.user_vm.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectUserVms.key())));
302-
projectResourceLimitMap.put(Resource.ResourceType.volume.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectVolumes.key())));
303-
projectResourceLimitMap.put(Resource.ResourceType.network.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectNetworks.key())));
304-
projectResourceLimitMap.put(Resource.ResourceType.vpc.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectVpcs.key())));
305-
projectResourceLimitMap.put(Resource.ResourceType.cpu.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectCpus.key())));
306-
projectResourceLimitMap.put(Resource.ResourceType.memory.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectMemory.key())));
297+
projectResourceLimitMap.put(Resource.ResourceType.public_ip.name(), DefaultMaxProjectPublicIPs.value());
298+
projectResourceLimitMap.put(Resource.ResourceType.snapshot.name(), DefaultMaxProjectSnapshots.value());
299+
projectResourceLimitMap.put(Resource.ResourceType.template.name(), DefaultMaxProjectTemplates.value());
300+
projectResourceLimitMap.put(Resource.ResourceType.user_vm.name(), DefaultMaxProjectUserVms.value());
301+
projectResourceLimitMap.put(Resource.ResourceType.volume.name(), DefaultMaxProjectVolumes.value());
302+
projectResourceLimitMap.put(Resource.ResourceType.network.name(), DefaultMaxProjectNetworks.value());
303+
projectResourceLimitMap.put(Resource.ResourceType.vpc.name(), DefaultMaxProjectVpcs.value());
304+
projectResourceLimitMap.put(Resource.ResourceType.cpu.name(), DefaultMaxProjectCpus.value());
305+
projectResourceLimitMap.put(Resource.ResourceType.memory.name(), DefaultMaxProjectMemory.value());
307306
projectResourceLimitMap.put(Resource.ResourceType.gpu.name(), DefaultMaxProjectGpus.value());
308-
projectResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxProjectPrimaryStorage.key())));
307+
projectResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), DefaultMaxProjectPrimaryStorage.value());
309308
projectResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), MaxProjectSecondaryStorage.value());
310-
projectResourceLimitMap.put(Resource.ResourceType.backup.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxProjectBackups.key())));
311-
projectResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxProjectBackupStorage.key())));
312-
projectResourceLimitMap.put(Resource.ResourceType.bucket.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxProjectBuckets.key())));
313-
projectResourceLimitMap.put(Resource.ResourceType.object_storage.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxProjectObjectStorage.key())));
314-
315-
accountResourceLimitMap.put(Resource.ResourceType.public_ip.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPublicIPs.key())));
316-
accountResourceLimitMap.put(Resource.ResourceType.snapshot.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountSnapshots.key())));
317-
accountResourceLimitMap.put(Resource.ResourceType.template.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountTemplates.key())));
318-
accountResourceLimitMap.put(Resource.ResourceType.user_vm.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountUserVms.key())));
319-
accountResourceLimitMap.put(Resource.ResourceType.volume.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVolumes.key())));
320-
accountResourceLimitMap.put(Resource.ResourceType.network.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountNetworks.key())));
321-
accountResourceLimitMap.put(Resource.ResourceType.vpc.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountVpcs.key())));
322-
accountResourceLimitMap.put(Resource.ResourceType.cpu.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountCpus.key())));
323-
accountResourceLimitMap.put(Resource.ResourceType.memory.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountMemory.key())));
309+
projectResourceLimitMap.put(Resource.ResourceType.backup.name(), BackupManager.DefaultMaxProjectBackups.value());
310+
projectResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), BackupManager.DefaultMaxProjectBackupStorage.value());
311+
projectResourceLimitMap.put(Resource.ResourceType.bucket.name(), BucketApiService.DefaultMaxProjectBuckets.value());
312+
projectResourceLimitMap.put(Resource.ResourceType.object_storage.name(), BucketApiService.DefaultMaxProjectObjectStorage.value());
313+
314+
accountResourceLimitMap.put(Resource.ResourceType.public_ip.name(), DefaultMaxAccountPublicIPs.value());
315+
accountResourceLimitMap.put(Resource.ResourceType.snapshot.name(), DefaultMaxAccountSnapshots.value());
316+
accountResourceLimitMap.put(Resource.ResourceType.template.name(), DefaultMaxAccountTemplates.value());
317+
accountResourceLimitMap.put(Resource.ResourceType.user_vm.name(), DefaultMaxAccountUserVms.value());
318+
accountResourceLimitMap.put(Resource.ResourceType.volume.name(), DefaultMaxAccountVolumes.value());
319+
accountResourceLimitMap.put(Resource.ResourceType.network.name(), DefaultMaxAccountNetworks.value());
320+
accountResourceLimitMap.put(Resource.ResourceType.vpc.name(), DefaultMaxAccountVpcs.value());
321+
accountResourceLimitMap.put(Resource.ResourceType.cpu.name(), DefaultMaxAccountCpus.value());
322+
accountResourceLimitMap.put(Resource.ResourceType.memory.name(), DefaultMaxAccountMemory.value());
324323
accountResourceLimitMap.put(Resource.ResourceType.gpu.name(), DefaultMaxAccountGpus.value());
325-
accountResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxAccountPrimaryStorage.key())));
324+
accountResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), DefaultMaxAccountPrimaryStorage.value());
326325
accountResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), MaxAccountSecondaryStorage.value());
327326
accountResourceLimitMap.put(Resource.ResourceType.project.name(), DefaultMaxAccountProjects.value());
328-
accountResourceLimitMap.put(Resource.ResourceType.backup.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxAccountBackups.key())));
329-
accountResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxAccountBackupStorage.key())));
330-
accountResourceLimitMap.put(Resource.ResourceType.bucket.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxAccountBuckets.key())));
331-
accountResourceLimitMap.put(Resource.ResourceType.object_storage.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxAccountObjectStorage.key())));
332-
333-
domainResourceLimitMap.put(Resource.ResourceType.public_ip.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPublicIPs.key())));
334-
domainResourceLimitMap.put(Resource.ResourceType.snapshot.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSnapshots.key())));
335-
domainResourceLimitMap.put(Resource.ResourceType.template.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainTemplates.key())));
336-
domainResourceLimitMap.put(Resource.ResourceType.user_vm.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainUserVms.key())));
337-
domainResourceLimitMap.put(Resource.ResourceType.volume.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVolumes.key())));
338-
domainResourceLimitMap.put(Resource.ResourceType.network.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainNetworks.key())));
339-
domainResourceLimitMap.put(Resource.ResourceType.vpc.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainVpcs.key())));
340-
domainResourceLimitMap.put(Resource.ResourceType.cpu.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainCpus.key())));
341-
domainResourceLimitMap.put(Resource.ResourceType.memory.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainMemory.key())));
342-
domainResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainPrimaryStorage.key())));
343-
domainResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), Long.parseLong(_configDao.getValue(Config.DefaultMaxDomainSecondaryStorage.key())));
327+
accountResourceLimitMap.put(Resource.ResourceType.backup.name(), BackupManager.DefaultMaxAccountBackups.value());
328+
accountResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), BackupManager.DefaultMaxAccountBackupStorage.value());
329+
accountResourceLimitMap.put(Resource.ResourceType.bucket.name(), BucketApiService.DefaultMaxAccountBuckets.value());
330+
accountResourceLimitMap.put(Resource.ResourceType.object_storage.name(), BucketApiService.DefaultMaxAccountObjectStorage.value());
331+
332+
domainResourceLimitMap.put(Resource.ResourceType.public_ip.name(), DefaultMaxDomainPublicIPs.value());
333+
domainResourceLimitMap.put(Resource.ResourceType.snapshot.name(), DefaultMaxDomainSnapshots.value());
334+
domainResourceLimitMap.put(Resource.ResourceType.template.name(), DefaultMaxDomainTemplates.value());
335+
domainResourceLimitMap.put(Resource.ResourceType.user_vm.name(), DefaultMaxDomainUserVms.value());
336+
domainResourceLimitMap.put(Resource.ResourceType.volume.name(), DefaultMaxDomainVolumes.value());
337+
domainResourceLimitMap.put(Resource.ResourceType.network.name(), DefaultMaxDomainNetworks.value());
338+
domainResourceLimitMap.put(Resource.ResourceType.vpc.name(), DefaultMaxDomainVpcs.value());
339+
domainResourceLimitMap.put(Resource.ResourceType.cpu.name(), DefaultMaxDomainCpus.value());
340+
domainResourceLimitMap.put(Resource.ResourceType.memory.name(), DefaultMaxDomainMemory.value());
341+
domainResourceLimitMap.put(Resource.ResourceType.primary_storage.name(), DefaultMaxDomainPrimaryStorage.value());
342+
domainResourceLimitMap.put(Resource.ResourceType.secondary_storage.name(), DefaultMaxDomainSecondaryStorage.value());
344343
domainResourceLimitMap.put(Resource.ResourceType.project.name(), DefaultMaxDomainProjects.value());
345344
domainResourceLimitMap.put(Resource.ResourceType.gpu.name(), DefaultMaxDomainGpus.value());
346-
domainResourceLimitMap.put(Resource.ResourceType.backup.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxDomainBackups.key())));
347-
domainResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), Long.parseLong(_configDao.getValue(BackupManager.DefaultMaxDomainBackupStorage.key())));
348-
domainResourceLimitMap.put(Resource.ResourceType.bucket.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxDomainBuckets.key())));
349-
domainResourceLimitMap.put(Resource.ResourceType.object_storage.name(), Long.parseLong(_configDao.getValue(BucketApiService.DefaultMaxDomainObjectStorage.key())));
345+
domainResourceLimitMap.put(Resource.ResourceType.backup.name(), BackupManager.DefaultMaxDomainBackups.value());
346+
domainResourceLimitMap.put(Resource.ResourceType.backup_storage.name(), BackupManager.DefaultMaxDomainBackupStorage.value());
347+
domainResourceLimitMap.put(Resource.ResourceType.bucket.name(), BucketApiService.DefaultMaxDomainBuckets.value());
348+
domainResourceLimitMap.put(Resource.ResourceType.object_storage.name(), BucketApiService.DefaultMaxDomainObjectStorage.value());
350349
} catch (NumberFormatException e) {
351350
logger.error("NumberFormatException during configuration", e);
352351
throw new ConfigurationException("Configuration failed due to NumberFormatException, see log for the stacktrace");

‎server/src/main/java/com/cloud/server/ConfigurationServerImpl.java‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
import com.cloud.storage.dao.DiskOfferingDao;
9595
import com.cloud.test.IPRangeConfig;
9696
import com.cloud.user.Account;
97+
import com.cloud.user.AccountManager;
9798
import com.cloud.user.AccountVO;
9899
import com.cloud.user.User;
99100
import com.cloud.user.dao.AccountDao;
@@ -820,7 +821,15 @@ public void doInTransactionWithoutResult(TransactionStatus status) {
820821

821822
private void updateSSOKey() {
822823
try {
823-
_configDao.update(Config.SSOKey.key(), Config.SSOKey.getCategory(), getPrivateKey());
824+
String key = getPrivateKey();
825+
ConfigurationVO configInDB = _configDao.findByName(AccountManager.SSOKey.key());
826+
if (configInDB == null) {
827+
ConfigurationVO configVO = new ConfigurationVO(AccountManager.class.getSimpleName(), AccountManager.SSOKey);
828+
configVO.setValue(key);
829+
_configDao.persist(configVO);
830+
} else {
831+
_configDao.update(AccountManager.SSOKey.key(), AccountManager.SSOKey.category(), key);
832+
}
824833
} catch (NoSuchAlgorithmException ex) {
825834
logger.error("error generating sso key", ex);
826835
}

‎server/src/main/java/com/cloud/user/AccountManagerImpl.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3184,7 +3184,7 @@ private UserAccount getUserAccount(String username, String password, Long domain
31843184
}
31853185

31863186
private UserAccount getUserAccountForSSO(String username, Long domainId, Map<String, Object[]> requestParameters) {
3187-
String key = _configDao.getValue("security.singlesignon.key");
3187+
String key = SSOKey.value();
31883188
if (key == null) {
31893189
// the SSO key is gone, don't authenticate
31903190
return null;

0 commit comments

Comments
 (0)