2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017 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 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 package org.onap.aai.sparky.dal.elasticsearch;
25 import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig;
26 import org.onap.aai.sparky.dal.rest.HttpMethod;
27 import org.onap.aai.sparky.dal.rest.OperationResult;
28 import org.onap.aai.sparky.dal.rest.RestDataProvider;
29 import org.onap.aai.sparky.dal.rest.RestfulDataAccessor;
32 * The Class ElasticSearchAdapter.
36 public class ElasticSearchAdapter implements ElasticSearchDataProvider {
38 private static final String BULK_IMPORT_INDEX_TEMPLATE =
39 "{\"index\":{\"_index\":\"%s\",\"_type\":\"%s\",\"_id\":\"%s\", \"_version\":\"%s\"}}\n";
41 private final RestDataProvider restDataProvider;
42 private final ElasticSearchConfig esConfig;
45 * Instantiates a new elastic search adapter.
47 * @param provider the provider
49 public ElasticSearchAdapter(RestDataProvider provider, ElasticSearchConfig esConfig) {
50 this.restDataProvider = provider;
51 this.esConfig = esConfig;
55 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doGet(java.lang.String, java.lang.String)
58 public OperationResult doGet(String url, String acceptContentType) {
59 return restDataProvider.doGet(url, acceptContentType);
63 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doDelete(java.lang.String, java.lang.String)
66 public OperationResult doDelete(String url, String acceptContentType) {
67 return restDataProvider.doDelete(url, acceptContentType);
71 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doPost(java.lang.String, java.lang.String, java.lang.String)
74 public OperationResult doPost(String url, String jsonPayload, String acceptContentType) {
75 return restDataProvider.doPost(url, jsonPayload, acceptContentType);
79 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doPut(java.lang.String, java.lang.String, java.lang.String)
82 public OperationResult doPut(String url, String jsonPayload, String acceptContentType) {
83 return restDataProvider.doPut(url, jsonPayload, acceptContentType);
87 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doPatch(java.lang.String, java.lang.String, java.lang.String)
90 public OperationResult doPatch(String url, String jsonPayload, String acceptContentType) {
91 return restDataProvider.doPatch(url, jsonPayload, acceptContentType);
95 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doHead(java.lang.String, java.lang.String)
98 public OperationResult doHead(String url, String acceptContentType) {
99 return restDataProvider.doHead(url, acceptContentType);
103 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#clearCache()
106 public void clearCache() {
107 restDataProvider.clearCache();
111 * @see org.onap.aai.sparky.dal.elasticsearch.ElasticSearchDataProvider#doBulkOperation(java.lang.String, java.lang.String)
114 public OperationResult doBulkOperation(String url, String payload) {
116 return doRestfulOperation(HttpMethod.PUT, url, payload,
117 RestfulDataAccessor.APPLICATION_X_WWW_FORM_URL_ENCODED,
118 RestfulDataAccessor.APPLICATION_JSON);
122 * @see org.onap.aai.sparky.dal.elasticsearch.ElasticSearchDataProvider#shutdown()
125 public void shutdown() {
126 restDataProvider.shutdown();
130 * @see org.onap.aai.sparky.dal.rest.RestDataProvider#doRestfulOperation(org.onap.aai.sparky.dal.rest.HttpMethod, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
133 public OperationResult doRestfulOperation(HttpMethod method, String url, String payload,
134 String payloadType, String acceptContentType) {
135 return restDataProvider.doRestfulOperation(method, url, payload, payloadType,
140 * @see org.onap.aai.sparky.dal.elasticsearch.ElasticSearchDataProvider#buildBulkImportOperationRequest(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
143 public String buildBulkImportOperationRequest(String index, String type, String id,
144 String version, String payload) {
146 StringBuilder requestPayload = new StringBuilder(128);
148 requestPayload.append(String.format(BULK_IMPORT_INDEX_TEMPLATE, index, type, id, version));
149 requestPayload.append(payload).append("\n");
151 return requestPayload.toString();
156 public OperationResult retrieveEntityById(String entityId) throws Exception {
158 String url = esConfig.getElasticFullUrl("/" +entityId);
159 return doGet( url, "application/json");