Implement support for v10 model entities.
[aai/model-loader.git] / src / main / java / org / openecomp / modelloader / config / ModelLoaderConfig.java
1 /**\r
2  * ============LICENSE_START=======================================================\r
3  * Model Loader\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
19  *\r
20  * ECOMP and OpenECOMP are trademarks\r
21  * and service marks of AT&T Intellectual Property.\r
22  */\r
23 package org.openecomp.modelloader.config;\r
24 \r
25 import org.eclipse.jetty.util.security.Password;\r
26 import org.openecomp.sdc.api.consumer.IConfiguration;\r
27 \r
28 import java.util.ArrayList;\r
29 import java.util.List;\r
30 import java.util.Properties;\r
31 \r
32 public class ModelLoaderConfig implements IConfiguration {\r
33         \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
40 \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
45       + "ASDC_ADDRESS";\r
46   protected static final String PROP_ML_DISTRIBUTION_CONSUMER_GROUP = PREFIX_DISTRIBUTION_CLIENT\r
47       + "CONSUMER_GROUP";\r
48   protected static final String PROP_ML_DISTRIBUTION_CONSUMER_ID = PREFIX_DISTRIBUTION_CLIENT\r
49       + "CONSUMER_ID";\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
55       + "KEYSTORE_FILE";\r
56   protected static final String PROP_ML_DISTRIBUTION_PASSWORD = PREFIX_DISTRIBUTION_CLIENT\r
57       + "PASSWORD";\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
64       + "ARTIFACT_TYPES";\r
65 \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
74 \r
75   protected static final String PROP_DEBUG_INGEST_SIMULATOR = PREFIX_DEBUG + "INGEST_SIMULATOR";\r
76 \r
77   private Properties modelLoaderProperties = null;\r
78 \r
79   private String certLocation = ".";\r
80 \r
81   private List<String> artifactTypes = null;\r
82 \r
83   /**\r
84    * This is the class constructor.\r
85    * \r
86    * @param modelLoaderProperties properties needed to be configured for the model loader\r
87    * @param certLocation location of the certificate\r
88    */\r
89   public ModelLoaderConfig(Properties modelLoaderProperties, String certLocation) {\r
90     this.modelLoaderProperties = modelLoaderProperties;\r
91     this.certLocation = certLocation;\r
92 \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
97           .split(",");\r
98       for (String artType : artTypeList) {\r
99         artifactTypes.add(artType);\r
100       }\r
101     }\r
102   }\r
103 \r
104   @Override\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
108   }\r
109 \r
110   @Override\r
111   public String getAsdcAddress() {\r
112     return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ASDC_ADDRESS);\r
113   }\r
114 \r
115   @Override\r
116   public String getConsumerGroup() {\r
117     return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_CONSUMER_GROUP);\r
118   }\r
119 \r
120   @Override\r
121   public String getConsumerID() {\r
122     return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_CONSUMER_ID);\r
123   }\r
124 \r
125   @Override\r
126   public String getEnvironmentName() {\r
127     return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_ENVIRONMENT_NAME);\r
128   }\r
129 \r
130   @Override\r
131   public String getKeyStorePassword() {\r
132     return Password\r
133         .deobfuscate(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD));\r
134   }\r
135 \r
136   @Override\r
137   public String getKeyStorePath() {\r
138     return certLocation + modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_KEYSTORE_FILE);\r
139   }\r
140 \r
141   @Override\r
142   public String getPassword() {\r
143     return Password.deobfuscate(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_PASSWORD));\r
144   }\r
145 \r
146   @Override\r
147   public int getPollingInterval() {\r
148     return Integer\r
149         .parseInt(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_POLLING_INTERVAL));\r
150   }\r
151 \r
152   @Override\r
153   public int getPollingTimeout() {\r
154     return Integer\r
155         .parseInt(modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_POLLING_TIMEOUT));\r
156   }\r
157 \r
158   @Override\r
159   public List<String> getRelevantArtifactTypes() {\r
160     return artifactTypes;\r
161   }\r
162 \r
163   @Override\r
164   public String getUser() {\r
165     return modelLoaderProperties.getProperty(PROP_ML_DISTRIBUTION_USER);\r
166   }\r
167 \r
168   public String getAaiKeyStorePath() {\r
169     return certLocation + "/" + modelLoaderProperties.getProperty(PROP_AAI_KEYSTORE_FILE);\r
170   }\r
171 \r
172   public String getAaiKeyStorePassword() {\r
173     return Password.deobfuscate(modelLoaderProperties.getProperty(PROP_AAI_KEYSTORE_PASSWORD));\r
174   }\r
175 \r
176   public String getAaiBaseUrl() {\r
177     return modelLoaderProperties.getProperty(PROP_AAI_BASE_URL);\r
178   }\r
179 \r
180   public String getAaiModelUrl() {\r
181     return modelLoaderProperties.getProperty(PROP_AAI_MODEL_RESOURCE_URL);\r
182   }\r
183 \r
184   public String getAaiNamedQueryUrl() {\r
185     return modelLoaderProperties.getProperty(PROP_AAI_NAMED_QUERY_RESOURCE_URL);\r
186   }\r
187 \r
188   public String getAaiVnfImageUrl() {\r
189     return modelLoaderProperties.getProperty(PROP_AAI_VNF_IMAGE_RESOURCE_URL);\r
190   }\r
191 \r
192   public String getAaiAuthenticationUser() {\r
193     return modelLoaderProperties.getProperty(PROP_AAI_AUTHENTICATION_USER);\r
194   }\r
195 \r
196   /**\r
197    * @return password for AAI authentication that has been reverse-engineered\r
198    *         from its obfuscated form.\r
199    */\r
200   public String getAaiAuthenticationPassword() {\r
201     String password = Password\r
202         .deobfuscate(modelLoaderProperties.getProperty(PROP_AAI_AUTHENTICATION_PASSWORD));\r
203 \r
204     if ((password != null) && (password.equals(""))) {\r
205       return null;\r
206     }\r
207 \r
208     return password;\r
209   }\r
210 \r
211   /**\r
212    * @return a boolean value indicating whether the simulator is enabled.\r
213    */\r
214   public boolean getIngestSimulatorEnabled() {\r
215     String propValue = modelLoaderProperties.getProperty(PROP_DEBUG_INGEST_SIMULATOR);\r
216 \r
217     if (propValue == null) {\r
218       return false;\r
219     }\r
220 \r
221     if (propValue.compareToIgnoreCase("enabled") == 0) {\r
222       return true;\r
223     }\r
224 \r
225     return false;\r
226   }\r
227 \r
228   public boolean isFilterInEmptyResources() {\r
229           return false;\r
230   }\r
231 \r
232 }\r