diff --git a/framework/config/src/main/java/org/apache/cloudstack/framework/config/dao/ConfigurationDaoImpl.java b/framework/config/src/main/java/org/apache/cloudstack/framework/config/dao/ConfigurationDaoImpl.java index 5b941f8fccc6..7668c82f4124 100644 --- a/framework/config/src/main/java/org/apache/cloudstack/framework/config/dao/ConfigurationDaoImpl.java +++ b/framework/config/src/main/java/org/apache/cloudstack/framework/config/dao/ConfigurationDaoImpl.java @@ -174,7 +174,17 @@ public boolean update(String name, String category, String value) { @Override public String getValue(String name) { ConfigurationVO config = findByName(name); - return (config == null) ? null : config.getValue(); + if (config == null) { + return null; + } + try { + return config.getValue(); + } catch (CloudRuntimeException ex) { + logger.error("Unable to get global configuration {}: {}. " + + "We expect the value of setting to be encrypted in the database with the Management Server's key, " + + "but we were unable to decrypt it using this key", name, ex.getMessage()); + throw ex; + } } @Override diff --git a/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java b/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java index 650c078a370e..0c54726d63b4 100644 --- a/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java +++ b/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java @@ -286,11 +286,7 @@ protected String getConfigStringValueInternal(Ternary getConfigCacheKey(String key, ConfigKey.Scope scope, Long scopeId) { diff --git a/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java b/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java index d12a41864b05..e1a33b7042eb 100644 --- a/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java +++ b/framework/config/src/main/java/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java @@ -155,7 +155,7 @@ public void setName(String name) { @Override public String getValue() { - if(isEncrypted()) { + if (isEncrypted()) { return DBEncryptionUtil.decrypt(value); } else { return value; diff --git a/framework/config/src/test/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImplTest.java b/framework/config/src/test/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImplTest.java index f4012b43fa8d..b8584c14ce81 100644 --- a/framework/config/src/test/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImplTest.java +++ b/framework/config/src/test/java/org/apache/cloudstack/framework/config/impl/ConfigDepotImplTest.java @@ -77,9 +77,7 @@ public void testIsNewConfig() { } private void runTestGetConfigStringValue(String key, String value) { - ConfigurationVO configurationVO = Mockito.mock(ConfigurationVO.class); - Mockito.when(configurationVO.getValue()).thenReturn(value); - Mockito.when(_configDao.findById(key)).thenReturn(configurationVO); + Mockito.when(_configDao.getValue(key)).thenReturn(value); String result = configDepotImpl.getConfigStringValue(key, ConfigKey.Scope.Global, null); Assert.assertEquals(value, result); } @@ -106,7 +104,7 @@ private void runTestGetConfigStringValueExpiry(long wait, int configDBRetrieval) } String result = configDepotImpl.getConfigStringValue(key, ConfigKey.Scope.Global, null); Assert.assertEquals(value, result); - Mockito.verify(_configDao, Mockito.times(configDBRetrieval)).findById(key); + Mockito.verify(_configDao, Mockito.times(configDBRetrieval)).getValue(key); } @Test