Skip to content

Commit 1460196

Browse files
Centralize loading of db.properties to one place
There is now a method DbProperites.getDbProperties() that will load the db.properties in one place and do the proper decryption of values if needed
1 parent 27294a3 commit 1460196

15 files changed

Lines changed: 234 additions & 410 deletions

File tree

awsapi/src/com/cloud/bridge/persist/dao/BaseDao.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,11 @@
1616
// under the License.
1717
package com.cloud.bridge.persist.dao;
1818

19-
import java.io.File;
20-
import java.io.FileInputStream;
21-
import java.io.FileNotFoundException;
22-
import java.io.IOException;
2319
import java.util.Properties;
2420

2521
import org.apache.log4j.Logger;
26-
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
27-
import org.jasypt.properties.EncryptableProperties;
2822

29-
import com.cloud.bridge.util.ConfigurationHelper;
30-
import com.cloud.bridge.util.EncryptionSecretKeyCheckerUtil;
23+
import com.cloud.utils.db.DbProperties;
3124

3225

3326

@@ -43,24 +36,9 @@ public class BaseDao {
4336

4437
static{
4538
logger.info("Initializing DB props");
46-
File propertiesFile = ConfigurationHelper.findConfigurationFile("db.properties");
47-
Properties EC2Prop = null;
48-
49-
if (null != propertiesFile) {
50-
if(EncryptionSecretKeyCheckerUtil.useEncryption()){
51-
StandardPBEStringEncryptor encryptor = EncryptionSecretKeyCheckerUtil.getEncryptor();
52-
EC2Prop = new EncryptableProperties(encryptor);
53-
} else {
54-
EC2Prop = new Properties();
55-
}
39+
Properties EC2Prop = DbProperties.getDbProperties();
5640

57-
try {
58-
EC2Prop.load( new FileInputStream( propertiesFile ));
59-
} catch (FileNotFoundException e) {
60-
logger.warn("Unable to open properties file: " + propertiesFile.getAbsolutePath(), e);
61-
} catch (IOException e) {
62-
logger.warn("Unable to read properties file: " + propertiesFile.getAbsolutePath(), e);
63-
}
41+
if (EC2Prop.size() > 0) {
6442
dbHost = EC2Prop.getProperty( "db.cloud.host" );
6543
awsapi_dbName = EC2Prop.getProperty( "db.awsapi.name" );
6644
cloud_dbName = EC2Prop.getProperty( "db.cloud.name" );

awsapi/src/com/cloud/bridge/util/EncryptionSecretKeyCheckerUtil.java

Lines changed: 0 additions & 138 deletions
This file was deleted.

core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@
2525
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
2626
http://www.springframework.org/schema/context
2727
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
28-
>
28+
>
2929

3030
<bean class="org.apache.cloudstack.spring.lifecycle.CloudStackLog4jSetup" />
31+
<bean class="com.cloud.utils.crypt.EncryptionSecretKeyChecker" />
3132

3233
</beans>

engine/schema/src/com/cloud/upgrade/DatabaseCreator.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@
1818
*/
1919
package com.cloud.upgrade;
2020

21-
import java.io.*;
21+
import java.io.File;
22+
import java.io.FileInputStream;
23+
import java.io.FileNotFoundException;
24+
import java.io.FileReader;
25+
import java.io.IOException;
26+
import java.io.Reader;
2227
import java.sql.Connection;
2328
import java.sql.DriverManager;
2429
import java.sql.SQLException;
@@ -33,7 +38,6 @@
3338
import com.cloud.utils.component.ComponentContext;
3439
import com.cloud.utils.component.SystemIntegrityChecker;
3540
import com.cloud.utils.db.ScriptRunner;
36-
import com.cloud.utils.db.Transaction;
3741
import com.cloud.utils.db.TransactionLegacy;
3842

3943
// Creates the CloudStack Database by using the 4.0 schema and apply
@@ -171,10 +175,6 @@ public static void main(String[] args) {
171175
System.exit(1);
172176
}
173177

174-
try {
175-
TransactionLegacy.initDataSource(dbPropsFile);
176-
} catch (NullPointerException e) {
177-
}
178178
initDB(dbPropsFile, rootPassword, databases, dryRun);
179179

180180
// Process sql files

engine/schema/src/com/cloud/upgrade/dao/Upgrade307to410.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,16 @@
1818
package com.cloud.upgrade.dao;
1919

2020
import java.io.File;
21-
import java.io.FileInputStream;
22-
import java.io.IOException;
2321
import java.sql.Connection;
2422
import java.sql.PreparedStatement;
2523
import java.sql.SQLException;
2624
import java.util.Properties;
2725

28-
import com.cloud.utils.PropertiesUtil;
29-
import com.cloud.utils.crypt.EncryptionSecretKeyChecker;
3026
import org.apache.log4j.Logger;
3127

28+
import com.cloud.utils.db.DbProperties;
3229
import com.cloud.utils.exception.CloudRuntimeException;
3330
import com.cloud.utils.script.Script;
34-
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
35-
import org.jasypt.properties.EncryptableProperties;
3631

3732
public class Upgrade307to410 implements DbUpgrade {
3833
final static Logger s_logger = Logger.getLogger(Upgrade307to410.class);
@@ -68,23 +63,7 @@ public void performDataMigration(Connection conn) {
6863
}
6964

7065
private void updateRegionEntries(Connection conn) {
71-
File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
72-
final Properties dbProps;
73-
if (EncryptionSecretKeyChecker.useEncryption()) {
74-
StandardPBEStringEncryptor encryptor = EncryptionSecretKeyChecker.getEncryptor();
75-
dbProps = new EncryptableProperties(encryptor);
76-
} else {
77-
dbProps = new Properties();
78-
}
79-
try {
80-
dbProps.load(new FileInputStream(dbPropsFile));
81-
} catch (IOException e) {
82-
s_logger.fatal("Unable to load db properties file, pl. check the classpath and file path configuration", e);
83-
return;
84-
} catch (NullPointerException e) {
85-
s_logger.fatal("Unable to locate db properties file within classpath or absolute path: db.properties");
86-
return;
87-
}
66+
final Properties dbProps = DbProperties.getDbProperties();
8867
int region_id = 1;
8968
String regionId = dbProps.getProperty("region.id");
9069
if(regionId != null){

engine/schema/src/com/cloud/upgrade/dao/Upgrade40to41.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@
1919

2020
import com.cloud.utils.PropertiesUtil;
2121
import com.cloud.utils.crypt.EncryptionSecretKeyChecker;
22+
import com.cloud.utils.db.DbProperties;
2223
import com.cloud.utils.db.Transaction;
2324
import com.cloud.utils.exception.CloudRuntimeException;
2425
import com.cloud.utils.script.Script;
26+
2527
import org.apache.log4j.Logger;
2628
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
2729
import org.jasypt.properties.EncryptableProperties;
@@ -81,23 +83,7 @@ public File[] getCleanupScripts() {
8183
}
8284

8385
private void updateRegionEntries(Connection conn) {
84-
File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
85-
final Properties dbProps;
86-
if (EncryptionSecretKeyChecker.useEncryption()) {
87-
StandardPBEStringEncryptor encryptor = EncryptionSecretKeyChecker.getEncryptor();
88-
dbProps = new EncryptableProperties(encryptor);
89-
} else {
90-
dbProps = new Properties();
91-
}
92-
try {
93-
dbProps.load(new FileInputStream(dbPropsFile));
94-
} catch (IOException e) {
95-
s_logger.fatal("Unable to load db properties file, pl. check the classpath and file path configuration", e);
96-
return;
97-
} catch (NullPointerException e) {
98-
s_logger.fatal("Unable to locate db properties file within classpath or absolute path: db.properties");
99-
return;
100-
}
86+
final Properties dbProps = DbProperties.getDbProperties();
10187
int region_id = 1;
10288
String regionId = dbProps.getProperty("region.id");
10389
if(regionId != null){

framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import com.cloud.utils.concurrency.NamedThreadFactory;
6060
import com.cloud.utils.db.ConnectionConcierge;
6161
import com.cloud.utils.db.DB;
62+
import com.cloud.utils.db.DbProperties;
6263
import com.cloud.utils.db.Transaction;
6364
import com.cloud.utils.db.TransactionCallback;
6465
import com.cloud.utils.db.TransactionLegacy;
@@ -1029,15 +1030,7 @@ public boolean configure(String name, Map<String, Object> params) throws Configu
10291030
s_logger.info("Start configuring cluster manager : " + name);
10301031
}
10311032

1032-
File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
1033-
Properties dbProps = new Properties();
1034-
try {
1035-
PropertiesUtil.loadFromFile(dbProps, dbPropsFile);
1036-
} catch (FileNotFoundException e) {
1037-
throw new ConfigurationException("Unable to find db.properties");
1038-
} catch (IOException e) {
1039-
throw new ConfigurationException("Unable to load db.properties content");
1040-
}
1033+
Properties dbProps = DbProperties.getDbProperties();
10411034
_clusterNodeIP = dbProps.getProperty("cluster.node.IP");
10421035
if (_clusterNodeIP == null) {
10431036
_clusterNodeIP = "127.0.0.1";

framework/cluster/src/com/cloud/cluster/ClusterServiceServletAdapter.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,20 @@
1616
// under the License.
1717
package com.cloud.cluster;
1818

19-
import java.io.File;
20-
import java.io.FileNotFoundException;
21-
import java.io.IOException;
2219
import java.rmi.RemoteException;
2320
import java.util.Map;
2421
import java.util.Properties;
2522

2623
import javax.inject.Inject;
2724
import javax.naming.ConfigurationException;
2825

29-
import org.apache.log4j.Logger;
30-
3126
import org.apache.cloudstack.framework.config.ConfigDepot;
27+
import org.apache.log4j.Logger;
3228

3329
import com.cloud.cluster.dao.ManagementServerHostDao;
3430
import com.cloud.utils.NumbersUtil;
35-
import com.cloud.utils.PropertiesUtil;
3631
import com.cloud.utils.component.AdapterBase;
32+
import com.cloud.utils.db.DbProperties;
3733

3834
public class ClusterServiceServletAdapter extends AdapterBase implements ClusterServiceAdapter {
3935

@@ -122,15 +118,7 @@ private void init() throws ConfigurationException {
122118
if (_mshostDao != null)
123119
return;
124120

125-
File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
126-
Properties dbProps = new Properties();
127-
try {
128-
PropertiesUtil.loadFromFile(dbProps, dbPropsFile);
129-
} catch (FileNotFoundException e) {
130-
throw new ConfigurationException("Unable to find db.properties");
131-
} catch (IOException e) {
132-
throw new ConfigurationException("Unable to load db.properties content");
133-
}
121+
Properties dbProps = DbProperties.getDbProperties();
134122

135123
_clusterServicePort = NumbersUtil.parseInt(dbProps.getProperty("cluster.servlet.port"), DEFAULT_SERVICE_PORT);
136124
if (s_logger.isInfoEnabled())

0 commit comments

Comments
 (0)