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