2 * ============LICENSE_START===================================================
3 * SPARKY (AAI UI service)
4 * ============================================================================
5 * Copyright © 2017 AT&T Intellectual Property.
6 * Copyright © 2017 Amdocs
8 * ============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=====================================================
22 * ECOMP and OpenECOMP are trademarks
23 * and service marks of AT&T Intellectual Property.
26 package org.openecomp.sparky.dal.elasticsearch;
28 import org.openecomp.sparky.dal.elasticsearch.config.ElasticSearchConfig;
29 import org.openecomp.sparky.dal.rest.HttpMethod;
30 import org.openecomp.sparky.dal.rest.OperationResult;
31 import org.openecomp.sparky.dal.rest.RestDataProvider;
32 import org.openecomp.sparky.dal.rest.RestfulDataAccessor;
35 * The Class ElasticSearchAdapter.
39 public class ElasticSearchAdapter implements ElasticSearchDataProvider {
41 private static final String BULK_IMPORT_INDEX_TEMPLATE =
42 "{\"index\":{\"_index\":\"%s\",\"_type\":\"%s\",\"_id\":\"%s\", \"_version\":\"%s\"}}\n";
44 private final RestDataProvider restDataProvider;
45 private final ElasticSearchConfig esConfig;
48 * Instantiates a new elastic search adapter.
50 * @param provider the provider
52 public ElasticSearchAdapter(RestDataProvider provider, ElasticSearchConfig esConfig) {
53 this.restDataProvider = provider;
54 this.esConfig = esConfig;
58 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doGet(java.lang.String, java.lang.String)
61 public OperationResult doGet(String url, String acceptContentType) {
62 return restDataProvider.doGet(url, acceptContentType);
66 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doDelete(java.lang.String, java.lang.String)
69 public OperationResult doDelete(String url, String acceptContentType) {
70 return restDataProvider.doDelete(url, acceptContentType);
74 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doPost(java.lang.String, java.lang.String, java.lang.String)
77 public OperationResult doPost(String url, String jsonPayload, String acceptContentType) {
78 return restDataProvider.doPost(url, jsonPayload, acceptContentType);
82 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doPut(java.lang.String, java.lang.String, java.lang.String)
85 public OperationResult doPut(String url, String jsonPayload, String acceptContentType) {
86 return restDataProvider.doPut(url, jsonPayload, acceptContentType);
90 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doPatch(java.lang.String, java.lang.String, java.lang.String)
93 public OperationResult doPatch(String url, String jsonPayload, String acceptContentType) {
94 return restDataProvider.doPatch(url, jsonPayload, acceptContentType);
98 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doHead(java.lang.String, java.lang.String)
101 public OperationResult doHead(String url, String acceptContentType) {
102 return restDataProvider.doHead(url, acceptContentType);
106 * @see org.openecomp.sparky.dal.rest.RestDataProvider#clearCache()
109 public void clearCache() {
110 restDataProvider.clearCache();
114 * @see org.openecomp.sparky.dal.elasticsearch.ElasticSearchDataProvider#doBulkOperation(java.lang.String, java.lang.String)
117 public OperationResult doBulkOperation(String url, String payload) {
119 return doRestfulOperation(HttpMethod.PUT, url, payload,
120 RestfulDataAccessor.APPLICATION_X_WWW_FORM_URL_ENCODED,
121 RestfulDataAccessor.APPLICATION_JSON);
125 * @see org.openecomp.sparky.dal.elasticsearch.ElasticSearchDataProvider#shutdown()
128 public void shutdown() {
129 restDataProvider.shutdown();
133 * @see org.openecomp.sparky.dal.rest.RestDataProvider#doRestfulOperation(org.openecomp.sparky.dal.rest.HttpMethod, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
136 public OperationResult doRestfulOperation(HttpMethod method, String url, String payload,
137 String payloadType, String acceptContentType) {
138 return restDataProvider.doRestfulOperation(method, url, payload, payloadType,
143 * @see org.openecomp.sparky.dal.elasticsearch.ElasticSearchDataProvider#buildBulkImportOperationRequest(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
146 public String buildBulkImportOperationRequest(String index, String type, String id,
147 String version, String payload) {
149 StringBuilder requestPayload = new StringBuilder(128);
151 requestPayload.append(String.format(BULK_IMPORT_INDEX_TEMPLATE, index, type, id, version));
152 requestPayload.append(payload).append("\n");
154 return requestPayload.toString();
159 public OperationResult retrieveEntityById(String entityId) throws Exception {
161 String url = esConfig.getElasticFullUrl("/" +entityId);
162 return doGet( url, "application/json");