Allow storing db.user and db.pass in environment variables 97/101097/4
authorDominik Mizyn <d.mizyn@samsung.com>
Tue, 4 Feb 2020 10:24:32 +0000 (11:24 +0100)
committerPatrick Brady <patrick.brady@att.com>
Fri, 28 Feb 2020 18:41:41 +0000 (18:41 +0000)
This patch allows to store and get db.user and db.pass from
environment variables. This is needed if we want to send those
variables by helm secrets.

Change-Id: I166dbee857c95256fa5253379205c81414771c53
Issue-ID: OOM-2275
Signed-off-by: Dominik Mizyn <d.mizyn@samsung.com>
appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/src/main/java/org/onap/appc/dao/util/DBUtils.java

index c29ce02..98fc915 100644 (file)
@@ -25,6 +25,7 @@ package org.onap.appc.dao.util;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
+import java.util.Properties;
 import org.onap.appc.configuration.Configuration;
 import org.onap.appc.configuration.ConfigurationFactory;
 import java.sql.*;
@@ -60,11 +61,20 @@ public class DBUtils {
     public static Connection getConnection(String schema) throws SQLException {
         DriverManager.registerDriver(new org.mariadb.jdbc.Driver());
         String dbURL = configuration.getProperty(String.format("org.onap.appc.db.url.%s", schema), "");
-        String userName = configuration.getProperty(String.format("org.onap.appc.db.user.%s", schema), "");
-        String password = configuration.getProperty(String.format("org.onap.appc.db.pass.%s", schema), "");
+        String userName = getValue(configuration.getProperty(String.format("org.onap.appc.db.user.%s", schema), ""));
+        String password = getValue(configuration.getProperty(String.format("org.onap.appc.db.pass.%s", schema), ""));
         return DriverManager.getConnection(dbURL, userName, password);
     }
 
+    private static String getValue(final String value) {
+        if (value != null && value.matches("[$][{].*[}]$")) {
+            String envVariable = System.getenv(value.substring(2, value.length() - 1));
+            return envVariable == null ? "" : envVariable;
+        } else {
+            return value;
+        }
+    }
+
     public static boolean clearResources(ResultSet resultSet, PreparedStatement ptmt, Connection connection) {
         boolean clearFlag = false;
         try {