Merge "Modelloader: base image update"
[aai/model-loader.git] / src / main / java / org / onap / aai / modelloader / config / ModelLoaderConfig.java
index 77693bc..b01086c 100644 (file)
 
 package org.onap.aai.modelloader.config;
 
-import java.io.File;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
+
 import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jetty.util.security.Password;
 import org.onap.sdc.api.consumer.IConfiguration;
-import org.springframework.core.env.Environment;
-
 /**
  * Properties for the Model Loader
  *
@@ -42,16 +40,11 @@ public class ModelLoaderConfig implements IConfiguration {
     // Configuration file structure
     public static final String PREFIX_MODEL_LOADER_CONFIG = "ml";
     public static final String PREFIX_DISTRIBUTION_CLIENT = PREFIX_MODEL_LOADER_CONFIG + ".distribution.";
-    public static final String PREFIX_AAI = PREFIX_MODEL_LOADER_CONFIG + ".aai.";
-    public static final String PREFIX_BABEL = PREFIX_MODEL_LOADER_CONFIG + ".babel.";
     public static final String PREFIX_DEBUG = PREFIX_MODEL_LOADER_CONFIG + ".debug.";
 
     private static final String SUFFIX_KEYSTORE_FILE = "KEYSTORE_FILE";
     private static final String SUFFIX_KEYSTORE_PASS = "KEYSTORE_PASSWORD";
 
-    private static final String SUFFIX_TRUSTSTORE_FILE = "TRUSTSTORE_FILE";
-    private static final String SUFFIX_TRUSTSTORE_PASS = "TRUSTSTORE_PASSWORD";
-
     // Configuration file properties
     protected static final String PROP_ML_DISTRIBUTION_ACTIVE_SERVER_TLS_AUTH =
             PREFIX_DISTRIBUTION_CLIENT + "ACTIVE_SERVER_TLS_AUTH";
@@ -77,27 +70,12 @@ public class ModelLoaderConfig implements IConfiguration {
     protected static final String PROP_ML_DISTRIBUTION_HTTP_PROXY_PORT = PREFIX_DISTRIBUTION_CLIENT + "HTTP_PROXY_PORT";
     protected static final String PROP_ML_DISTRIBUTION_HTTPS_PROXY_HOST = PREFIX_DISTRIBUTION_CLIENT + "HTTPS_PROXY_HOST";
     protected static final String PROP_ML_DISTRIBUTION_HTTPS_PROXY_PORT = PREFIX_DISTRIBUTION_CLIENT + "HTTPS_PROXY_PORT";
-    protected static final String PROP_AAI_BASE_URL = PREFIX_AAI + "BASE_URL";
-    protected static final String PROP_AAI_KEYSTORE_FILE = PREFIX_AAI + SUFFIX_KEYSTORE_FILE;
-    protected static final String PROP_AAI_KEYSTORE_PASSWORD = PREFIX_AAI + SUFFIX_KEYSTORE_PASS;
-    protected static final String PROP_AAI_MODEL_RESOURCE_URL = PREFIX_AAI + "MODEL_URL";
-    protected static final String PROP_AAI_NAMED_QUERY_RESOURCE_URL = PREFIX_AAI + "NAMED_QUERY_URL";
-    protected static final String PROP_AAI_VNF_IMAGE_RESOURCE_URL = PREFIX_AAI + "VNF_IMAGE_URL";
-    protected static final String PROP_AAI_AUTHENTICATION_USER = PREFIX_AAI + "AUTH_USER";
-    protected static final String PROP_AAI_AUTHENTICATION_PASSWORD = PREFIX_AAI + "AUTH_PASSWORD";
-    protected static final String PROP_AAI_USE_GIZMO = PREFIX_AAI + "USE_GIZMO";
-    protected static final String PROP_AAI_USE_HTTPS = PREFIX_AAI + "USE_HTTPS";
-    protected static final String PROP_BABEL_BASE_URL = PREFIX_BABEL + "BASE_URL";
-    protected static final String PROP_BABEL_KEYSTORE_FILE = PREFIX_BABEL + SUFFIX_KEYSTORE_FILE;
-    protected static final String PROP_BABEL_KEYSTORE_PASSWORD = PREFIX_BABEL + SUFFIX_KEYSTORE_PASS;
-    protected static final String PROP_BABEL_TRUSTSTORE_FILE = PREFIX_BABEL + SUFFIX_TRUSTSTORE_FILE;
-    protected static final String PROP_BABEL_TRUSTSTORE_PASSWORD = PREFIX_BABEL + SUFFIX_TRUSTSTORE_PASS;
-    protected static final String PROP_BABEL_GENERATE_RESOURCE_URL = PREFIX_BABEL + "GENERATE_ARTIFACTS_URL";
-    protected static final String PROP_BABEL_USE_HTTPS = PREFIX_BABEL + "USE_HTTPS";
+    protected static final String PROP_ML_DISTRIBUTION_SASL_JAAS_CONFIG = PREFIX_DISTRIBUTION_CLIENT + "SASL_JAAS_CONFIG";
+    protected static final String PROP_ML_DISTRIBUTION_SASL_MECHANISM = PREFIX_DISTRIBUTION_CLIENT + "SASL_MECHANISM";
+    protected static final String PROP_ML_DISTRIBUTION_SECURITY_PROTOCOL = PREFIX_DISTRIBUTION_CLIENT + "SECURITY_PROTOCOL";
     protected static final String PROP_DEBUG_INGEST_SIMULATOR = PREFIX_DEBUG + "INGEST_SIMULATOR";
     protected static final String FILESEP =
             (System.getProperty("file.separator") == null) ? "/" : System.getProperty("file.separator");
-
     private static String configHome;
     private Properties modelLoaderProperties = null;
     private String certLocation = ".";
@@ -231,68 +209,6 @@ public class ModelLoaderConfig implements IConfiguration {
         return getIntegerPropertyOrZero(PROP_ML_DISTRIBUTION_HTTPS_PROXY_PORT);
     }
 
-    public String getAaiKeyStorePath() {
-        return certLocation + File.separator + modelLoaderProperties.getProperty(PROP_AAI_KEYSTORE_FILE);
-    }
-
-    public String getBabelKeyStorePath() {
-        String filename = get(PROP_BABEL_KEYSTORE_FILE);
-        if (filename == null) {
-            return null;
-        } else {
-            return certLocation + File.separator + filename;
-        }
-    }
-
-    public String getAaiKeyStorePassword() {
-        return getDeobfuscatedValue(get(PROP_AAI_KEYSTORE_PASSWORD));
-    }
-
-    public String getBabelKeyStorePassword() {
-        return getDeobfuscatedValue(get(PROP_BABEL_KEYSTORE_PASSWORD));
-    }
-
-    public String getBabelTrustStorePath() {
-        String filename = get(PROP_BABEL_TRUSTSTORE_FILE);
-        if (filename == null) {
-            return null;
-        } else {
-            return certLocation + File.separator + filename;
-        }
-    }
-
-    public String getBabelTrustStorePassword() {
-        return getDeobfuscatedValue(get(PROP_BABEL_TRUSTSTORE_PASSWORD));
-    }
-
-    public String getAaiBaseUrl() {
-        return get(PROP_AAI_BASE_URL);
-    }
-
-    public String getBabelBaseUrl() {
-        return get(PROP_BABEL_BASE_URL);
-    }
-
-    public String getBabelGenerateArtifactsUrl() {
-        return get(PROP_BABEL_GENERATE_RESOURCE_URL);
-    }
-
-    public String getAaiModelUrl(String version) {
-        setModelVersion(version);
-        return updatePropertyOXMVersion(PROP_AAI_MODEL_RESOURCE_URL, version);
-    }
-
-    public String getAaiNamedQueryUrl(String version) {
-        return updatePropertyOXMVersion(PROP_AAI_NAMED_QUERY_RESOURCE_URL, version);
-    }
-
-    public String getAaiVnfImageUrl() {
-        return updatePropertyOXMVersion(PROP_AAI_VNF_IMAGE_RESOURCE_URL, getModelVersion());
-    }
-
-    public String getAaiAuthenticationUser() {
-        return get(PROP_AAI_AUTHENTICATION_USER);
-    }
 
     public String getModelVersion() {
         return modelVersion;
@@ -302,34 +218,6 @@ public class ModelLoaderConfig implements IConfiguration {
         this.modelVersion = modelVersion;
     }
 
-    public boolean useGizmo() {
-        String useGizmo = get(PROP_AAI_USE_GIZMO);
-        return useGizmo != null && useGizmo.equalsIgnoreCase("true");
-    }
-
-    public boolean useHttpsWithAAI() {
-        String useHttps = get(PROP_AAI_USE_HTTPS);
-        return useHttps != null && useHttps.equalsIgnoreCase("true");
-    }
-
-    public boolean useHttpsWithBabel() {
-        String useHttps = get(PROP_BABEL_USE_HTTPS);
-        return useHttps != null && useHttps.equalsIgnoreCase("true");
-    }
-
-    /**
-     * @return password for AAI authentication that has been reverse-engineered from its obfuscated form.
-     */
-    public String getAaiAuthenticationPassword() {
-        String password = getDeobfuscatedValue(get(PROP_AAI_AUTHENTICATION_PASSWORD));
-
-        if (password != null && password.isEmpty()) {
-            password = null;
-        }
-
-        return password;
-    }
-
     /**
      * @return a boolean value indicating whether the simulator is enabled.
      */
@@ -338,23 +226,6 @@ public class ModelLoaderConfig implements IConfiguration {
         return propValue != null && "enabled".equalsIgnoreCase(propValue);
     }
 
-    /**
-     * Read the value of the property and replace any wildcard OXM version "v*" with the supplied default OXM version
-     *
-     * @param propertyName
-     *            the name of the property storing the OXM version (possibly containing v*)
-     * @param version
-     *            the default OXM version
-     * @return the String value of the defined property (with any wildcard OXM version defaulted)
-     */
-    private String updatePropertyOXMVersion(String propertyName, String version) {
-        String value = get(propertyName);
-        if (version != null && value != null) {
-            value = value.replace("v*", version);
-        }
-        return value;
-    }
-
     /**
      * @return a boolean value indicating whether model loader is connected to ASDC.
      */
@@ -401,4 +272,35 @@ public class ModelLoaderConfig implements IConfiguration {
         }
     }
 
+    @Override
+    public String getKafkaSaslJaasConfig() {
+        String saslJaasConfFromEnv = System.getenv("SASL_JAAS_CONFIG");
+        if(saslJaasConfFromEnv != null) {
+            return saslJaasConfFromEnv;
+        }
+        if(get(PROP_ML_DISTRIBUTION_SASL_JAAS_CONFIG) != null) {
+            return get(PROP_ML_DISTRIBUTION_SASL_JAAS_CONFIG);
+        }
+        return null;
+    }
+
+    @Override
+    public String getKafkaSaslMechanism() {
+        if(get(PROP_ML_DISTRIBUTION_SASL_MECHANISM) != null) {
+            return get(PROP_ML_DISTRIBUTION_SASL_MECHANISM);
+        }
+        return System.getenv().getOrDefault("SASL_MECHANISM", "SCRAM-SHA-512");
+    }
+
+    /**
+     * One of PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
+     */
+    @Override
+    public String getKafkaSecurityProtocolConfig() {
+        if(get(PROP_ML_DISTRIBUTION_SECURITY_PROTOCOL) != null) {
+            return get(PROP_ML_DISTRIBUTION_SECURITY_PROTOCOL);
+        }
+        return System.getenv().getOrDefault("SECURITY_PROTOCOL", "SASL_PLAINTEXT");
+    }
+
 }