summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openecomp/sparky/search
diff options
context:
space:
mode:
authorArul.Nambi <arul.nambi@amdocs.com>2017-09-26 14:00:57 -0400
committerArul.Nambi <arul.nambi@amdocs.com>2017-09-26 14:01:41 -0400
commitc593dfe4c59d37d5d4ea14e3ac31da3318029562 (patch)
tree76cc5a494f02e14b809caad9c050fbfd6cd61a51 /src/main/java/org/openecomp/sparky/search
parent6777c6092050a0271c5d7de9c239cf1580d41fa8 (diff)
Renaming openecomp to onap
Issue-ID: AAI-208 Change-Id: I2bd02287bed376111156aca0100e2b7b74e368e3 Signed-off-by: Arul.Nambi <arul.nambi@amdocs.com>
Diffstat (limited to 'src/main/java/org/openecomp/sparky/search')
-rw-r--r--src/main/java/org/openecomp/sparky/search/EntityTypeSummary.java51
-rw-r--r--src/main/java/org/openecomp/sparky/search/EntityTypeSummaryBucket.java44
-rw-r--r--src/main/java/org/openecomp/sparky/search/SearchEntityProperties.java47
-rw-r--r--src/main/java/org/openecomp/sparky/search/Suggestion.java57
-rw-r--r--src/main/java/org/openecomp/sparky/search/SuggestionList.java70
-rw-r--r--src/main/java/org/openecomp/sparky/search/VnfSearchQueryBuilder.java198
-rw-r--r--src/main/java/org/openecomp/sparky/search/VnfSearchService.java346
-rw-r--r--src/main/java/org/openecomp/sparky/search/config/SuggestionConfig.java141
8 files changed, 0 insertions, 954 deletions
diff --git a/src/main/java/org/openecomp/sparky/search/EntityTypeSummary.java b/src/main/java/org/openecomp/sparky/search/EntityTypeSummary.java
deleted file mode 100644
index d6d79fe..0000000
--- a/src/main/java/org/openecomp/sparky/search/EntityTypeSummary.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class EntityTypeSummary {
- private int totalChartHits;
- private List<EntityTypeSummaryBucket> buckets = new ArrayList<>();
-
- public int getTotalChartHits() {
- return totalChartHits;
- }
-
- public List<EntityTypeSummaryBucket> getBuckets() {
- return buckets;
- }
-
- public void setTotalChartHits(int totalChartHits) {
- this.totalChartHits = totalChartHits;
- }
-
- public void setBuckets(List<EntityTypeSummaryBucket> buckets) {
- this.buckets = buckets;
- }
-
- public void addBucket(EntityTypeSummaryBucket bucket) {
- this.buckets.add(bucket);
- }
-}
diff --git a/src/main/java/org/openecomp/sparky/search/EntityTypeSummaryBucket.java b/src/main/java/org/openecomp/sparky/search/EntityTypeSummaryBucket.java
deleted file mode 100644
index c64589d..0000000
--- a/src/main/java/org/openecomp/sparky/search/EntityTypeSummaryBucket.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-public class EntityTypeSummaryBucket {
- private int count;
- private String key;
-
- public int getCount() {
- return count;
- }
-
- public String getKey() {
- return key;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
diff --git a/src/main/java/org/openecomp/sparky/search/SearchEntityProperties.java b/src/main/java/org/openecomp/sparky/search/SearchEntityProperties.java
deleted file mode 100644
index ab62555..0000000
--- a/src/main/java/org/openecomp/sparky/search/SearchEntityProperties.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class SearchEntityProperties {
- private String type;
- private Map<String, String> fields = new HashMap<>();
-
- public String getType() {
- return type;
- }
-
- public Map<String, String> getFields() {
- return fields;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public void setFields(Map<String, String> field) {
- this.fields = field;
- }
-}
diff --git a/src/main/java/org/openecomp/sparky/search/Suggestion.java b/src/main/java/org/openecomp/sparky/search/Suggestion.java
deleted file mode 100644
index 8a11862..0000000
--- a/src/main/java/org/openecomp/sparky/search/Suggestion.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-public class Suggestion {
- private String entityType;
- private String searchTags;
- private SearchEntityProperties properties;
-
- public Suggestion(SearchEntityProperties properties) {
- this.properties = properties;
- }
-
- public String getEntityType() {
- return entityType;
- }
-
- public String getSearchTags() {
- return searchTags;
- }
-
- public SearchEntityProperties getProperties() {
- return properties;
- }
-
- public void setEntityType(String entityType) {
- this.entityType = entityType;
- }
-
- public void setSearchTags(String searchTags) {
- this.searchTags = searchTags;
- }
-
- public void setProperties(SearchEntityProperties properties) {
- this.properties = properties;
- }
-}
diff --git a/src/main/java/org/openecomp/sparky/search/SuggestionList.java b/src/main/java/org/openecomp/sparky/search/SuggestionList.java
deleted file mode 100644
index 69ef70b..0000000
--- a/src/main/java/org/openecomp/sparky/search/SuggestionList.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-import java.util.LinkedList;
-import java.util.List;
-
-public class SuggestionList {
- // TODO: verify which data type these fields should be
- private Long processingTimeInMs;
- private Long totalFound;
- private Long numReturned;
- private List<Suggestion> suggestions = new LinkedList<>();
-
- public void addSuggestion(Suggestion suggestion) {
- suggestions.add(suggestion);
- }
-
- public List<Suggestion> getSuggestions() {
- return suggestions;
- }
-
- public void setSuggestions(List<Suggestion> suggestions) {
- this.suggestions = suggestions;
- }
-
- public Long getProcessingTimeInMs() {
- return processingTimeInMs;
- }
-
- public Long getTotalFound() {
- return totalFound;
- }
-
- public Long getNumReturned() {
- return numReturned;
- }
-
- public void setProcessingTimeInMs(Long processingTimeInMs) {
- this.processingTimeInMs = processingTimeInMs;
- }
-
- public void setTotalFound(Long totalFound) {
- this.totalFound = totalFound;
- }
-
- public void setNumReturned(Long numReturned) {
- this.numReturned = numReturned;
- }
-} \ No newline at end of file
diff --git a/src/main/java/org/openecomp/sparky/search/VnfSearchQueryBuilder.java b/src/main/java/org/openecomp/sparky/search/VnfSearchQueryBuilder.java
deleted file mode 100644
index f82272b..0000000
--- a/src/main/java/org/openecomp/sparky/search/VnfSearchQueryBuilder.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-import java.util.Date;
-import java.util.Map;
-
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-
-/**
- * Build a JSON payload to send to elastic search to get vnf search data.
- */
-
-public class VnfSearchQueryBuilder {
-
- /**
- * Creates the suggestions query.
- *
- * @param maxResults maximum number of suggestions to fetch
- * @param queryStr query string
- * @return the json object
- */
-
- /*
- * { "vnfs" : { "text" : "VNFs", "completion" : { "field" : "entity_suggest", "size": 1 } } }
- */
- public static JsonObject createSuggestionsQuery(String maxResults, String queryStr) {
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
-
- JsonObjectBuilder completionBlob = Json.createObjectBuilder();
- completionBlob.add("field", "entity_suggest");
- completionBlob.add("size", maxResults);
-
- JsonObjectBuilder jsonAllBuilder = Json.createObjectBuilder();
- jsonAllBuilder.add("text", queryStr);
- jsonAllBuilder.add("completion", completionBlob);
-
- jsonBuilder.add("vnfs", jsonAllBuilder.build());
- return jsonBuilder.build();
- }
-
- public static JsonObject getTermBlob(String key, String value) {
- JsonObjectBuilder termBlobBuilder = Json.createObjectBuilder();
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder().add(key, value);
- return termBlobBuilder.add("term", jsonBuilder.build()).build();
- }
-
- public static void getSummaryAggsBlob(JsonObjectBuilder aggsBlobBuilder, String aggsKey,
- int resultSize) {
- JsonObjectBuilder fieldBuilder =
- Json.createObjectBuilder().add("field", aggsKey).add("size", resultSize);
- JsonObject aggsFieldBlob = fieldBuilder.build();
- JsonObjectBuilder defaultBlobBuilder = Json.createObjectBuilder().add("terms", aggsFieldBlob);
- JsonObject defaultBlob = defaultBlobBuilder.build();
- aggsBlobBuilder.add("default", defaultBlob);
- }
-
- public static void buildSingleTermCountQuery(JsonObjectBuilder jsonBuilder, String key,
- String value) {
- jsonBuilder.add("query", getTermBlob(key, value));
- }
-
- public static void buildSingleTermSummaryQuery(JsonObjectBuilder jsonBuilder, String key,
- String value, String groupByKey) {
- JsonObjectBuilder queryBlobBuilder = Json.createObjectBuilder();
- JsonObjectBuilder aggsBlobBuilder = Json.createObjectBuilder();
-
- queryBlobBuilder.add("constant_score",
- Json.createObjectBuilder().add("filter", getTermBlob(key, value)));
-
- getSummaryAggsBlob(aggsBlobBuilder, groupByKey, 0);
-
- jsonBuilder.add("query", queryBlobBuilder.build());
- jsonBuilder.add("aggs", aggsBlobBuilder.build());
- }
-
- public static void buildMultiTermSummaryQuery(JsonObjectBuilder jsonBuilder,
- Map<String, String> attributes, String groupByKey) {
- JsonObjectBuilder queryBlobBuilder = Json.createObjectBuilder();
- JsonObjectBuilder aggsBlobBuilder = Json.createObjectBuilder();
- JsonArrayBuilder mustBlobBuilder = Json.createArrayBuilder();
- for (String key : attributes.keySet()) {
- mustBlobBuilder.add(getTermBlob(key, attributes.get(key)));
- }
- JsonArray mustBlob = mustBlobBuilder.build();
-
- queryBlobBuilder.add("constant_score", Json.createObjectBuilder().add("filter",
- Json.createObjectBuilder().add("bool", Json.createObjectBuilder().add("must", mustBlob))));
-
- getSummaryAggsBlob(aggsBlobBuilder, groupByKey, 0);
-
- jsonBuilder.add("query", queryBlobBuilder.build());
- jsonBuilder.add("aggs", aggsBlobBuilder.build());
- }
-
- public static void buildZeroTermSummaryQuery(JsonObjectBuilder jsonBuilder, String groupByKey) {
- JsonObjectBuilder aggsBlobBuilder = Json.createObjectBuilder();
-
- getSummaryAggsBlob(aggsBlobBuilder, groupByKey, 0);
-
- jsonBuilder.add("aggs", aggsBlobBuilder.build());
- }
-
- public static void buildMultiTermCountQuery(JsonObjectBuilder jsonBuilder,
- Map<String, String> attributes) {
- JsonArrayBuilder mustBlobBuilder = Json.createArrayBuilder();
- for (String key : attributes.keySet()) {
- mustBlobBuilder.add(getTermBlob(key, attributes.get(key)));
- }
- jsonBuilder.add("query", Json.createObjectBuilder().add("bool",
- Json.createObjectBuilder().add("must", mustBlobBuilder)));
- }
-
-
-
- public static JsonObject createSummaryByEntityTypeQuery(Map<String, String> attributes,
- String groupByKey) {
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
- jsonBuilder.add("size", "0"); // avoid source data
- if (attributes.size() == 0) {
- buildZeroTermSummaryQuery(jsonBuilder, groupByKey);
- } else if (attributes.size() == 1) {
- Map.Entry<String, String> entry = attributes.entrySet().iterator().next();
- buildSingleTermSummaryQuery(jsonBuilder, entry.getKey(), entry.getValue(), groupByKey);
- } else {
- buildMultiTermSummaryQuery(jsonBuilder, attributes, groupByKey);
- }
- return jsonBuilder.build();
- }
-
- public static JsonObject createEntityCountsQuery(Map<String, String> attributes) {
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
- if (attributes.size() == 1) {
- Map.Entry<String, String> entry = attributes.entrySet().iterator().next();
- buildSingleTermCountQuery(jsonBuilder, entry.getKey(), entry.getValue());
- } else {
- buildMultiTermCountQuery(jsonBuilder, attributes);
- }
- return jsonBuilder.build();
- }
-
- public static JsonArray getSortCriteria(String sortFieldName, String sortOrder) {
- JsonArrayBuilder jsonBuilder = Json.createArrayBuilder();
- jsonBuilder.add(Json.createObjectBuilder().add(sortFieldName,
- Json.createObjectBuilder().add("order", sortOrder)));
-
- return jsonBuilder.build();
- }
-
-
- /**
- * The main method.
- *
- * @param args the arguments
- */
- public static void main(String[] args) {
- Date start = new Date(System.currentTimeMillis() - Integer.MAX_VALUE);
- Date end = new Date();
- String timezone = "-05:00";
- // JsonObject arr = createDateHistogramQuery(start, end, timezone);
-
- // System.out.println(arr.toString());
-
-
- // JsonObject table = createTableQuery(start, end, timezone, 0, 25);
- // JsonObject aggre = createAuditQuery(start, end, timezone, "entityType", null, null);
-
- // System.out.println(arr.toString());
- // System.out.println(table.toString());
- // System.out.println(aggre.toString());
-
-
- }
-}
diff --git a/src/main/java/org/openecomp/sparky/search/VnfSearchService.java b/src/main/java/org/openecomp/sparky/search/VnfSearchService.java
deleted file mode 100644
index c09f2c1..0000000
--- a/src/main/java/org/openecomp/sparky/search/VnfSearchService.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.MediaType;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.openecomp.cl.api.Logger;
-import org.openecomp.cl.eelf.LoggerFactory;
-import org.openecomp.sparky.dal.elasticsearch.HashQueryResponse;
-import org.openecomp.sparky.dal.elasticsearch.SearchAdapter;
-import org.openecomp.sparky.dal.elasticsearch.config.ElasticSearchConfig;
-import org.openecomp.sparky.dal.rest.OperationResult;
-import org.openecomp.sparky.logging.AaiUiMsgs;
-import org.openecomp.sparky.suggestivesearch.SuggestionEntity;
-import org.openecomp.sparky.util.NodeUtils;
-import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants;
-import org.openecomp.sparky.viewandinspect.entity.QuerySearchEntity;
-
-
-/**
- * From the given HTTP request, create vnf-search query for document store, and process document
- * store response.
- */
-
-public class VnfSearchService {
-
- private static final String APP_JSON = MediaType.APPLICATION_JSON;
-
- private static ElasticSearchConfig esConfig = null;
-
- private static final Logger LOG = LoggerFactory.getInstance().getLogger(VnfSearchService.class);
-
- private static SearchAdapter search = null;
- private static final String ES_SUGGEST_API = TierSupportUiConstants.ES_SUGGEST_API;
- private static final String ES_COUNT_API = TierSupportUiConstants.ES_COUNT_API;
- private static final String ES_SEARCH_API = TierSupportUiConstants.ES_SEARCH_API;
-
- private static final String ENTITY_TYPE = "generic-vnf";
-
- /**
- * Get Full URL for search using elastic search configuration.
- *
- * @param api the api
- * @return the full url
- */
- private static String getFullUrl(String indexName, String api) {
-
- final String host = esConfig.getIpAddress();
- final String port = esConfig.getHttpPort();
- return String.format("http://%s:%s/%s/%s", host, port, indexName, api);
- }
-
- /**
- * Process operation result.
- *
- * @param api the api
- * @param response the response
- * @param opResult the op result
- * @throws IOException Signals that an I/O exception has occurred.
- */
- private static void buildVnfQuerySearchResponse(String apiKey, HttpServletResponse response,
- OperationResult opResult) throws IOException {
- int resonseCode = opResult.getResultCode();
- String result = opResult.getResult();
-
- if (resonseCode > 300) {
- setServletResponse(true, resonseCode, response, result);
- return;
- }
-
- if (result != null) {
- JSONObject finalOutputToFe = new JSONObject();
- JSONObject responseJson = new JSONObject(result);
-
- if (apiKey.equalsIgnoreCase(ES_SUGGEST_API)) { // process suggestion results
- try {
- String suggestionsKey = "vnfs";
- int total = 0;
- JSONArray suggestionsArray = new JSONArray();
- JSONArray suggestions = responseJson.getJSONArray(suggestionsKey);
- if (suggestions.length() > 0) {
- suggestionsArray = suggestions.getJSONObject(0).getJSONArray("options");
- for (int i = 0; i < suggestionsArray.length(); i++) {
- suggestionsArray.getJSONObject(i).remove("score"); // FE doesn't like this noise: 'score'
- }
-
- total = suggestionsArray.length();
- }
- finalOutputToFe.put("totalFound", total);
- finalOutputToFe.put("suggestions", suggestionsArray);
- } catch (Exception e) {
- LOG.error(AaiUiMsgs.ERROR_GENERIC,
- "Error parsing response from suggestions index. Response: " + result);
- }
- } else if (apiKey.equalsIgnoreCase(ES_COUNT_API)) {
- try {
- String shardsKey = "_shards";
- responseJson.remove(shardsKey);
- finalOutputToFe = responseJson;
- } catch (Exception e) {
- LOG.error(AaiUiMsgs.ERROR_GENERIC,
- "Error fetching total count response from aggregation index. Response: " + result);
- }
- } else if (apiKey.equalsIgnoreCase(ES_SEARCH_API)) {
- try {
- JSONArray bucketsArray = (responseJson.getJSONObject("aggregations")
- .getJSONObject("default").getJSONArray("buckets"));
- int count = 0;
- for (int i=0; i< bucketsArray.length(); i++) {
- count += bucketsArray.getJSONObject(i).getInt("doc_count");
- }
- JSONObject content = new JSONObject();
- content.put("totalChartHits", count);
- content.put("buckets", bucketsArray);
- finalOutputToFe.put("groupby_aggregation", content);
- } catch (Exception e) {
- LOG.error(AaiUiMsgs.ERROR_GENERIC,
- "Error fetching group-by query response from aggregation index. Response: " + result);
- }
- }
-
- setServletResponse(false, resonseCode, response, finalOutputToFe.toString());
- }
- }
-
- /**
- * Sets the servlet response.
- *
- * @param isError the is error
- * @param responseCode the response code
- * @param response the response
- * @param postPayload the post payload
- * @throws IOException Signals that an I/O exception has occurred.
- */
- public static void setServletResponse(boolean isError, int responseCode,
- HttpServletResponse response, String postPayload) throws IOException {
-
- if (isError) {
- LOG.error(AaiUiMsgs.ERROR_PARSING_JSON_PAYLOAD_VERBOSE, postPayload);
- }
-
- response.setStatus(responseCode);
-
- if (postPayload != null) {
- response.setContentType(APP_JSON);
- PrintWriter out = response.getWriter();
- out.println(postPayload);
- out.close();
- }
- }
-
- /**
- * Instantiates a new vnf search service.
- */
- public VnfSearchService() {
- try {
- if (esConfig == null) {
- esConfig = ElasticSearchConfig.getConfig();
- }
-
- if (search == null) {
- search = new SearchAdapter();
- }
- } catch (Exception exc) {
- LOG.error(AaiUiMsgs.CONFIGURATION_ERROR, "Search");
- }
- }
-
-
- /**
- * Gets the suggestions results.
- *
- * @param response the response
- * @param maxResults maximum number of suggestions
- * @param queryStr query string
- * @return the suggestions results
- * @throws IOException Signals that an I/O exception has occurred.
- */
- public List<SuggestionEntity> getSuggestionsResults(QuerySearchEntity querySearchEntity, int resultCountLimit) throws IOException {
- List<SuggestionEntity> returnList = new ArrayList<SuggestionEntity>();
-
- /* Create suggestions query */
- JsonObject vnfSearch = VnfSearchQueryBuilder.createSuggestionsQuery(String.valueOf(resultCountLimit), querySearchEntity.getQueryStr());
-
- /* Parse suggestions response */
- OperationResult opResult = search.doPost(getFullUrl(esConfig.getAutosuggestIndexname(), ES_SUGGEST_API), vnfSearch.toString(), APP_JSON);
-
- String result = opResult.getResult();
-
- if (!opResult.wasSuccessful()) {
- LOG.error(AaiUiMsgs.ERROR_PARSING_JSON_PAYLOAD_VERBOSE, result);
- return returnList;
- }
-
- JSONObject responseJson = new JSONObject(result);
- String suggestionsKey = "vnfs";
- JSONArray suggestionsArray = new JSONArray();
- JSONArray suggestions = responseJson.getJSONArray(suggestionsKey);
- if (suggestions.length() > 0) {
- suggestionsArray = suggestions.getJSONObject(0).getJSONArray("options");
- for (int i = 0; i < suggestionsArray.length(); i++) {
- JSONObject querySuggestion = suggestionsArray.getJSONObject(i);
- if (querySuggestion != null) {
- SuggestionEntity responseSuggestion = new SuggestionEntity();
- responseSuggestion.setText(querySuggestion.getString("text"));
- responseSuggestion.setRoute("vnfSearch"); // TODO -> Read route from suggestive-search.properties instead of hard coding
- responseSuggestion.setHashId(NodeUtils.generateUniqueShaDigest(querySuggestion.getString("text")));
- returnList.add(responseSuggestion);
- }
- }
- }
- return returnList;
- }
-
-
- /**
- * This method sets server response if lookup in ES has 0 count
- * TODO: Change the response code to appropriate when FE-BE contract is finalized
- * @param response
- */
- public void setZeroCountResponse(HttpServletResponse response) throws IOException {
- JSONObject payload = new JSONObject();
- payload.put("count", 0);
- setServletResponse(false, 200, response, payload.toString() );
- }
-
- /**
- * This method sets server response if lookup in ES for an aggregation has 0 results
- * TODO: Change the response code to appropriate when FE-BE contract is finalized
- * @param response
- */
- public void setEmptyAggResponse(HttpServletResponse response) throws IOException {
- JSONObject aggPayload = new JSONObject();
- aggPayload.put("totalChartHits", 0);
- aggPayload.put("buckets", new JSONArray());
- JSONObject payload = new JSONObject();
- payload.append("groupby_aggregation", aggPayload);
- setServletResponse(false, 200, response, payload.toString() );
- }
-
- public HashQueryResponse getJSONPayloadFromHash(String hashId) {
-
- HashQueryResponse hashQueryResponse = new HashQueryResponse();
- JsonObjectBuilder hashSearch = Json.createObjectBuilder();
- VnfSearchQueryBuilder.buildSingleTermCountQuery(hashSearch, "_id", hashId);
- String hashSearchQuery = hashSearch.build().toString();
- OperationResult opResult = search.doPost(
- getFullUrl(esConfig.getAutosuggestIndexname(), ES_SEARCH_API),
- hashSearchQuery, APP_JSON);
- hashQueryResponse.setOpResult(opResult);
-
- if(opResult != null && opResult.wasSuccessful()){
- String result = opResult.getResult();
- if (result != null) {
- JSONObject responseJson = new JSONObject(result);
- JSONArray hits = responseJson.getJSONObject("hits").getJSONArray("hits");
- if(hits != null && hits.length() > 0){
- hashQueryResponse.setJsonPayload (hits.getJSONObject(0).getJSONObject("_source")
- .getJSONObject("entity_suggest").toString());
- }
- }
- }
- return hashQueryResponse;
- }
-
- public void getEntityCountResults(HttpServletResponse response, Map<String, String> attributes)
- throws IOException {
- // Create entity counts query
- JsonObject vnfSearch = VnfSearchQueryBuilder.createEntityCountsQuery(attributes);
-
- // Parse response for entity counts query
- OperationResult opResult = search.doPost(
- getFullUrl(TierSupportUiConstants.getAggregationIndexName(ENTITY_TYPE), ES_COUNT_API),
- vnfSearch.toString(), APP_JSON);
- buildVnfQuerySearchResponse(ES_COUNT_API, response, opResult);
- }
-
- public void getSummaryByEntityType(HttpServletResponse response, Map<String, String> attributes,
- String groupByKey) throws IOException {
- // Create query for summary by entity type
- JsonObject vnfSearch =
- VnfSearchQueryBuilder.createSummaryByEntityTypeQuery(attributes, groupByKey);
-
- // Parse response for summary by entity type query
- OperationResult opResult = search.doPost(
- getFullUrl(TierSupportUiConstants.getAggregationIndexName(ENTITY_TYPE), ES_SEARCH_API),
- vnfSearch.toString(), APP_JSON);
- buildVnfQuerySearchResponse(ES_SEARCH_API, response, opResult);
- }
-
- public SearchAdapter getSearch() {
- return search;
- }
-
- public void setSearch(SearchAdapter search) {
- VnfSearchService.search = search;
- }
-
- public static ElasticSearchConfig getEsConfig() {
- return esConfig;
- }
-
- public static void setEsConfig(ElasticSearchConfig esConfig) {
- VnfSearchService.esConfig = esConfig;
- }
-
- public static void main(String agrs[]) {
- VnfSearchService vnfs = new VnfSearchService();
- Date start = new Date();
- Date end = start;
- }
-
-}
diff --git a/src/main/java/org/openecomp/sparky/search/config/SuggestionConfig.java b/src/main/java/org/openecomp/sparky/search/config/SuggestionConfig.java
deleted file mode 100644
index 441f445..0000000
--- a/src/main/java/org/openecomp/sparky/search/config/SuggestionConfig.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.sparky.search.config;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.openecomp.sparky.util.ConfigHelper;
-import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants;
-
-public class SuggestionConfig {
- public static final String CONFIG_FILE =
- TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION + "suggestive-search.properties";
-
- private static SuggestionConfig config;
- private static final String INDEX_SEARCH_MAPPER_DEFAULT = "elasticsearch.autosuggestIndexname:SearchServiceWrapper,elasticsearch.indexName:VnfSearchService";
-
- private Map<String, String> searchIndexToSearchService;
-
- private static final String CALLED_PAIRING_KEY_DEFAULT = "volume-group-id,volume-group-name,physical-location-id,data-center-code,complex-name,tenant-id,tenant-name,vserver-id,vserver-name,vserver-name2,hostname,pserver-name2,pserver-id,global-customer-id,subscriber-name,service-instance-id,service-instance-name,link-name,vpn-id,vpn-name,vpe-id,vnf-id,vnf-name,vnf-name2,vnfc-name,network-id,network-name,network-policy-id,vf-module-id,vf-module-name,vnf-id2,pnf-name,circuit-id";
- private static final String CALLED_PAIRING_VALUE_DEFAULT = "called";
- private static final String AT_PAIRING_KEY_DEFAULT = "street1,street2,postal-code,ipv4-oam-address,network-policy-fqdn";
- private static final String AT_PAIRING_VALUE_DEFAULT = "at";
- private static final String DEFAULT_PAIRING_DEFAULT_VALUE = "with";
- private String conjunctionForAt;
- Map<String, String> pairingList;
- private Collection<String> stopWords;
- private String defaultPairingValue;
-
-
- private SuggestionConfig() {}
-
- /**
- * Returns initialized instance as per singleton pattern.
- *
- * @return initialized SuggestionConfig instance
- */
- public static SuggestionConfig getConfig() {
- if (config == null) {
- config = new SuggestionConfig();
- config.initializeConfigProperties();
- }
- return config;
- }
-
- public void initializeConfigProperties() {
-
- Properties props = ConfigHelper.loadConfigFromExplicitPath(CONFIG_FILE);
- Properties suggestionProps = ConfigHelper.getConfigWithPrefix("suggestion", props);
-
- String indexSearchMapper = suggestionProps.getProperty("routing", INDEX_SEARCH_MAPPER_DEFAULT);
- String[] indexesToSearchClassesArray = indexSearchMapper.split(",");
- searchIndexToSearchService = new HashMap<String, String>();
- for (String pair : indexesToSearchClassesArray) {
- String[] subPair = pair.split(":");
- searchIndexToSearchService.put(subPair[0], subPair[1]);
- }
-
- defaultPairingValue=suggestionProps.getProperty("pairing.default.value", DEFAULT_PAIRING_DEFAULT_VALUE);
- String calledValue = suggestionProps.getProperty("pairing.called.value", CALLED_PAIRING_VALUE_DEFAULT);
- String[] calledPairingArray = suggestionProps.getProperty("pairing.called.key", CALLED_PAIRING_KEY_DEFAULT).split(",");
- pairingList = new HashMap<String, String>();
- for(String calledField: calledPairingArray){
- pairingList.put(calledField, calledValue);
- }
-
- this.conjunctionForAt = suggestionProps.getProperty("pairing.at.value", AT_PAIRING_VALUE_DEFAULT);
- String[] atPairingArray = suggestionProps.getProperty("pairing.at.key", AT_PAIRING_KEY_DEFAULT).split(",");
- for(String atField: atPairingArray){
- pairingList.put(atField, conjunctionForAt);
- }
-
- stopWords = Arrays.asList(suggestionProps.getProperty("stopwords", "").split(","));
-
- }
-
- public void setSearchIndexToSearchService(Map<String, String> searchIndexToSearchService) {
- this.searchIndexToSearchService = searchIndexToSearchService;
- }
-
- public Map<String, String> getSearchIndexToSearchService() {
- return searchIndexToSearchService;
- }
-
- public Collection<String> getStopWords() {
- return stopWords;
- }
-
- public void setStopWords(Collection<String> stopWords) {
- this.stopWords = stopWords;
- }
-
- public Map<String, String> getPairingList() {
- return pairingList;
- }
-
- public void setPairingList(Map<String, String> pairingList) {
- this.pairingList = pairingList;
- }
-
- public String getDefaultPairingValue() {
- return defaultPairingValue;
- }
-
- public void setDefaultPairingValue(String defaultPairingValue) {
- this.defaultPairingValue = defaultPairingValue;
- }
-
- public String getConjunctionForAt() {
- return conjunctionForAt;
- }
-
- public void setConjunctionForAt(String conjunctionForAt) {
- this.conjunctionForAt = conjunctionForAt;
- }
-
-
-}