3939import org .apache .pinot .thirdeye .datasource .pinot .resultset .ThirdEyeResultSetGroup ;
4040import org .apache .pinot .thirdeye .detection .ConfigUtils ;
4141import org .apache .pinot .thirdeye .util .ThirdEyeUtils ;
42+ import org .apache .pinot .thirdeye .util .CustomConfigReader ;
4243import org .apache .tomcat .jdbc .pool .DataSource ;
4344import org .joda .time .DateTime ;
4445import org .joda .time .DateTimeZone ;
@@ -85,22 +86,22 @@ public class SqlResponseCacheLoader extends CacheLoader<SqlQuery, ThirdEyeResult
8586 DataSource h2DataSource ;
8687
8788 public SqlResponseCacheLoader (Map <String , Object > properties ) throws Exception {
88-
89+ CustomConfigReader ccr = new CustomConfigReader ();
8990 // Init Presto datasources
9091 if (properties .containsKey (PRESTO )) {
9192 List <Map <String , Object >> prestoMapList = ConfigUtils .getList (properties .get (PRESTO ));
9293 for (Map <String , Object > objMap : prestoMapList ) {
9394 Map <String , String > dbNameToURLMap = (Map )objMap .get (DB );
94- String prestoUser = ( String )objMap .get (USER );
95- String prestoPassword = getPassword (objMap );
95+ String prestoUser = ccr . readEnv (( String )objMap .get (USER ) );
96+ String prestoPassword = ccr . readEnv ( getPassword (objMap ) );
9697
9798 for (Map .Entry <String , String > entry : dbNameToURLMap .entrySet ()) {
9899 DataSource dataSource = new DataSource ();
99100 dataSource .setInitialSize (INIT_CONNECTIONS );
100101 dataSource .setMaxActive (MAX_CONNECTIONS );
101102 dataSource .setUsername (prestoUser );
102103 dataSource .setPassword (prestoPassword );
103- dataSource .setUrl (entry .getValue ());
104+ dataSource .setUrl (ccr . readEnv ( entry .getValue () ));
104105
105106 // Timeout before an abandoned(in use) connection can be removed.
106107 dataSource .setRemoveAbandonedTimeout (ABANDONED_TIMEOUT );
@@ -117,16 +118,16 @@ public SqlResponseCacheLoader(Map<String, Object> properties) throws Exception {
117118 List <Map <String , Object >> mysqlMapList = ConfigUtils .getList (properties .get (MYSQL ));
118119 for (Map <String , Object > objMap : mysqlMapList ) {
119120 Map <String , String > dbNameToURLMap = (Map )objMap .get (DB );
120- String mysqlUser = ( String )objMap .get (USER );
121- String mysqlPassword = getPassword (objMap );
121+ String mysqlUser = ccr . readEnv (( String )objMap .get (USER ) );
122+ String mysqlPassword = ccr . readEnv ( getPassword (objMap ) );
122123
123124 for (Map .Entry <String , String > entry : dbNameToURLMap .entrySet ()) {
124125 DataSource dataSource = new DataSource ();
125126 dataSource .setInitialSize (INIT_CONNECTIONS );
126127 dataSource .setMaxActive (MAX_CONNECTIONS );
127128 dataSource .setUsername (mysqlUser );
128129 dataSource .setPassword (mysqlPassword );
129- dataSource .setUrl (entry .getValue ());
130+ dataSource .setUrl (ccr . readEnv ( entry .getValue () ));
130131
131132 // Timeout before an abandoned(in use) connection can be removed.
132133 dataSource .setRemoveAbandonedTimeout (ABANDONED_TIMEOUT );
@@ -143,9 +144,9 @@ public SqlResponseCacheLoader(Map<String, Object> properties) throws Exception {
143144 List <Map <String , Object >> verticaMapList = ConfigUtils .getList (properties .get (VERTICA ));
144145 for (Map <String , Object > objMap : verticaMapList ) {
145146 Map <String , String > dbNameToURLMap = (Map )objMap .get (DB );
146- String verticaUser = ( String )objMap .get (USER );
147- String verticaPassword = getPassword (objMap );
148- String verticaDriver = ( String )objMap .get (DRIVER );
147+ String verticaUser = ccr . readEnv (( String )objMap .get (USER ) );
148+ String verticaPassword = ccr . readEnv ( getPassword (objMap ) );
149+ String verticaDriver = ccr . readEnv (( String )objMap .get (DRIVER ) );
149150
150151 for (Map .Entry <String , String > entry : dbNameToURLMap .entrySet ()) {
151152 DataSource dataSource = new DataSource ();
@@ -154,7 +155,7 @@ public SqlResponseCacheLoader(Map<String, Object> properties) throws Exception {
154155 dataSource .setUsername (verticaUser );
155156 dataSource .setPassword (verticaPassword );
156157 dataSource .setDriverClassName (verticaDriver );
157- dataSource .setUrl (entry .getValue ());
158+ dataSource .setUrl (ccr . readEnv ( entry .getValue () ));
158159
159160 // Timeout before an abandoned(in use) connection can be removed.
160161 dataSource .setRemoveAbandonedTimeout (ABANDONED_TIMEOUT );
@@ -170,16 +171,16 @@ public SqlResponseCacheLoader(Map<String, Object> properties) throws Exception {
170171 if (properties .containsKey (BIGQUERY )) {
171172 List <Map <String , Object >> bigQueryMapList = ConfigUtils .getList (properties .get (BIGQUERY ));
172173 for (Map <String , Object > objMap : bigQueryMapList ) {
173- System .out .println (bigQueryMapList .toString ());
174+ // System.out.println(bigQueryMapList.toString()); Looks like this might leak credentials. Removing this
174175 Map <String , String > dbNameToURLMap = (Map )objMap .get (DB );
175- String bigQueryDriver = ( String )objMap .get (DRIVER );
176+ String bigQueryDriver = ccr . readEnv (( String )objMap .get (DRIVER ) );
176177
177178 for (Map .Entry <String , String > entry : dbNameToURLMap .entrySet ()) {
178179 DataSource dataSource = new DataSource ();
179180 dataSource .setInitialSize (INIT_CONNECTIONS );
180181 dataSource .setMaxActive (MAX_CONNECTIONS );
181182 dataSource .setDriverClassName (bigQueryDriver );
182- dataSource .setUrl (entry .getValue ());
183+ dataSource .setUrl (ccr . readEnv ( entry .getValue () ));
183184
184185 // Timeout before an abandoned(in use) connection can be removed.
185186 dataSource .setRemoveAbandonedTimeout (ABANDONED_TIMEOUT );
@@ -198,9 +199,9 @@ public SqlResponseCacheLoader(Map<String, Object> properties) throws Exception {
198199
199200 h2DataSource .setInitialSize (INIT_CONNECTIONS );
200201 h2DataSource .setMaxActive (MAX_CONNECTIONS );
201- String h2User = ( String ) objMap .get (USER );
202- String h2Password = getPassword (objMap );
203- h2Url = ( String ) objMap .get (DB );
202+ String h2User = ccr . readEnv (( String ) objMap .get (USER ) );
203+ String h2Password = ccr . readEnv ( getPassword (objMap ) );
204+ h2Url = ccr . readEnv (( String ) objMap .get (DB ) );
204205 h2DataSource .setUsername (h2User );
205206 h2DataSource .setPassword (h2Password );
206207 h2DataSource .setUrl (h2Url );
0 commit comments