2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017-2018 Amdocs
7 * ===================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
21 package org.onap.aai.modelloader.config;
23 import org.eclipse.jetty.util.security.Password;
24 import org.openecomp.sdc.api.consumer.IConfiguration;
26 import java.util.ArrayList;
27 import java.util.List;
28 import java.util.Properties;
30 public class ModelLoaderConfig implements IConfiguration {
32 // Configuration file structure
33 public static final String PREFIX_MODEL_LOADER_CONFIG = "ml";
34 public static final String PREFIX_DISTRIBUTION_CLIENT =
35 PREFIX_MODEL_LOADER_CONFIG + ".distribution.";
36 public static final String PREFIX_AAI = PREFIX_MODEL_LOADER_CONFIG + ".aai.";
37 public static final String PREFIX_DEBUG = PREFIX_MODEL_LOADER_CONFIG + ".debug.";
39 // Configuration file properties
40 protected static final String PROP_ML_DISTRIBUTION_ACTIVE_SERVER_TLS_AUTH =
41 PREFIX_DISTRIBUTION_CLIENT + "ACTIVE_SERVER_TLS_AUTH";
42 protected static final String PROP_ML_DISTRIBUTION_ASDC_ADDRESS = PREFIX_DISTRIBUTION_CLIENT
44 protected static final String PROP_ML_DISTRIBUTION_CONSUMER_GROUP = PREFIX_DISTRIBUTION_CLIENT
46 protected static final String PROP_ML_DISTRIBUTION_CONSUMER_ID = PREFIX_DISTRIBUTION_CLIENT
48 protected static final String PROP_ML_DISTRIBUTION_ENVIRONMENT_NAME = PREFIX_DISTRIBUTION_CLIENT
50 protected static final String PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD = PREFIX_DISTRIBUTION_CLIENT
51 + "KEYSTORE_PASSWORD";
52 protected static final String PROP_ML_DISTRIBUTION_KEYSTORE_FILE = PREFIX_DISTRIBUTION_CLIENT
54 protected static final String PROP_ML_DISTRIBUTION_PASSWORD = PREFIX_DISTRIBUTION_CLIENT
56 protected static final String PROP_ML_DISTRIBUTION_POLLING_INTERVAL = PREFIX_DISTRIBUTION_CLIENT
58 protected static final String PROP_ML_DISTRIBUTION_POLLING_TIMEOUT = PREFIX_DISTRIBUTION_CLIENT
60 protected static final String PROP_ML_DISTRIBUTION_USER = PREFIX_DISTRIBUTION_CLIENT + "USER";
61 protected static final String PROP_ML_DISTRIBUTION_ARTIFACT_TYPES = PREFIX_DISTRIBUTION_CLIENT
63 protected static final String PROP_ML_DISTRIBUTION_HTTPS_WITH_DMAAP =
64 PREFIX_DISTRIBUTION_CLIENT + "USE_HTTPS_WITH_DMAAP";
66 protected static final String PROP_AAI_BASE_URL = PREFIX_AAI + "BASE_URL";
67 protected static final String PROP_AAI_KEYSTORE_FILE = PREFIX_AAI + "KEYSTORE_FILE";
68 protected static final String PROP_AAI_KEYSTORE_PASSWORD = PREFIX_AAI + "KEYSTORE_PASSWORD";
69 protected static final String PROP_AAI_MODEL_RESOURCE_URL = PREFIX_AAI + "MODEL_URL";
70 protected static final String PROP_AAI_NAMED_QUERY_RESOURCE_URL = PREFIX_AAI + "NAMED_QUERY_URL";
71 protected static final String PROP_AAI_VNF_IMAGE_RESOURCE_URL = PREFIX_AAI + "VNF_IMAGE_URL";
72 protected static final String PROP_AAI_AUTHENTICATION_USER = PREFIX_AAI + "AUTH_USER";
73 protected static final String PROP_AAI_AUTHENTICATION_PASSWORD = PREFIX_AAI + "AUTH_PASSWORD";
75 protected static final String PROP_DEBUG_INGEST_SIMULATOR = PREFIX_DEBUG + "INGEST_SIMULATOR";
77 private Properties modelLoaderProperties = null;
79 private String certLocation = ".";
81 private List<String> artifactTypes = null;
84 * This is the class constructor.
86 * @param modelLoaderProperties properties needed to be configured for the model loader
87 * @param certLocation location of the certificate
89 public ModelLoaderConfig(Properties modelLoaderProperties, String certLocation) {
90 this.modelLoaderProperties = modelLoaderProperties;
91 this.certLocation = certLocation;
93 // Get list of artifacts
94 artifactTypes = new ArrayList<String>();
95 if (modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ARTIFACT_TYPES) != null) {
96 String[] artTypeList = modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ARTIFACT_TYPES)
98 for (String artType : artTypeList) {
99 artifactTypes.add(artType);
105 public boolean activateServerTLSAuth() {
106 String value = modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ACTIVE_SERVER_TLS_AUTH);
107 return value == null ? false : Boolean.parseBoolean(value);
111 public String getAsdcAddress() {
112 return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ASDC_ADDRESS);
116 public String getConsumerGroup() {
117 return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_CONSUMER_GROUP);
121 public String getConsumerID() {
122 return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_CONSUMER_ID);
126 public String getEnvironmentName() {
127 return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ENVIRONMENT_NAME);
131 public String getKeyStorePassword() {
133 .deobfuscate(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD));
137 public String getKeyStorePath() {
138 return certLocation + modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_KEYSTORE_FILE);
142 public String getPassword() {
143 return Password.deobfuscate(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_PASSWORD));
147 public int getPollingInterval() {
149 .parseInt(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_POLLING_INTERVAL));
153 public int getPollingTimeout() {
155 .parseInt(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_POLLING_TIMEOUT));
159 public List<String> getRelevantArtifactTypes() {
160 return artifactTypes;
164 public String getUser() {
165 return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_USER);
169 public boolean isFilterInEmptyResources() {
174 public Boolean isUseHttpsWithDmaap() {
175 String useHTTPS = modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_HTTPS_WITH_DMAAP);
176 return useHTTPS == null ? false : Boolean.valueOf(useHTTPS);
179 public String getAaiKeyStorePath() {
180 return certLocation + "/" + modelLoaderProperties.getProperty(PROP_AAI_KEYSTORE_FILE);
183 public String getAaiKeyStorePassword() {
184 return Password.deobfuscate(modelLoaderProperties.getProperty(PROP_AAI_KEYSTORE_PASSWORD));
187 public String getAaiBaseUrl() {
188 return modelLoaderProperties.getProperty(PROP_AAI_BASE_URL);
191 public String getAaiModelUrl(String version) {
192 return modelLoaderProperties.getProperty(PROP_AAI_MODEL_RESOURCE_URL).replace("v*", version);
195 public String getAaiNamedQueryUrl(String version) {
196 return modelLoaderProperties.getProperty(PROP_AAI_NAMED_QUERY_RESOURCE_URL).replace("v*", version);
199 public String getAaiVnfImageUrl() {
200 return modelLoaderProperties.getProperty(PROP_AAI_VNF_IMAGE_RESOURCE_URL);
203 public String getAaiAuthenticationUser() {
204 return modelLoaderProperties.getProperty(PROP_AAI_AUTHENTICATION_USER);
208 * @return password for AAI authentication that has been reverse-engineered
209 * from its obfuscated form.
211 public String getAaiAuthenticationPassword() {
212 String password = Password
213 .deobfuscate(modelLoaderProperties.getProperty(PROP_AAI_AUTHENTICATION_PASSWORD));
215 if ((password != null) && (password.equals(""))) {
223 * @return a boolean value indicating whether the simulator is enabled.
225 public boolean getIngestSimulatorEnabled() {
226 String propValue = modelLoaderProperties.getProperty(PROP_DEBUG_INGEST_SIMULATOR);
228 if (propValue == null) {
232 if (propValue.compareToIgnoreCase("enabled") == 0) {