http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java index cf50a87..1d069d3 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java @@ -21,12 +21,14 @@ package org.apache.ambari.logsearch.manager; import java.io.File; import java.io.IOException; +import java.text.ParseException; import java.util.Date; import java.util.Scanner; import org.apache.ambari.logsearch.common.MessageEnums; import org.apache.ambari.logsearch.dao.SolrDaoBase; import org.apache.ambari.logsearch.query.QueryGeneration; +import org.apache.ambari.logsearch.util.DateUtil; import org.apache.ambari.logsearch.util.JSONUtil; import org.apache.ambari.logsearch.util.RESTErrorUtil; import org.apache.ambari.logsearch.util.SolrUtil; @@ -60,7 +62,7 @@ public class MgrBase { JSONUtil jsonUtil; @Autowired - QueryGeneration queryGenrator; + QueryGeneration queryGenerator; @Autowired StringUtil stringUtil; @@ -68,16 +70,35 @@ public class MgrBase { @Autowired RESTErrorUtil restErrorUtil; + @Autowired + DateUtil dateUtil; + JsonSerializer<Date> jsonDateSerialiazer = null; JsonDeserializer<Date> jsonDateDeserialiazer = null; + public enum LOG_TYPE { + SERVICE { + @Override + public String getLabel() { + return "Service"; + } + }, + AUDIT { + @Override + public String getLabel() { + return "Audit"; + } + }; + public abstract String getLabel(); + } + public MgrBase() { jsonDateSerialiazer = new JsonSerializer<Date>() { @Override public JsonElement serialize(Date paramT, - java.lang.reflect.Type paramType, - JsonSerializationContext paramJsonSerializationContext) { + java.lang.reflect.Type paramType, + JsonSerializationContext paramJsonSerializationContext) { return paramT == null ? null : new JsonPrimitive(paramT.getTime()); } @@ -86,38 +107,33 @@ public class MgrBase { jsonDateDeserialiazer = new JsonDeserializer<Date>() { @Override - public Date deserialize(JsonElement json, - java.lang.reflect.Type typeOfT, - JsonDeserializationContext context) throws JsonParseException { + public Date deserialize(JsonElement json, java.lang.reflect.Type typeOfT, + JsonDeserializationContext context) throws JsonParseException { return json == null ? null : new Date(json.getAsLong()); } }; } - public String convertObjToString(Object obj) throws IOException { + public String convertObjToString(Object obj) { if (obj == null) { return ""; } - /*ObjectMapper mapper = new ObjectMapper(); - ObjectWriter w = mapper.writerWithDefaultPrettyPrinter(); - return mapper.writeValueAsString(obj);*/ Gson gson = new GsonBuilder() - .registerTypeAdapter(Date.class, jsonDateSerialiazer) - .registerTypeAdapter(Date.class, jsonDateDeserialiazer).create(); + .registerTypeAdapter(Date.class, jsonDateSerialiazer) + .registerTypeAdapter(Date.class, jsonDateDeserialiazer).create(); return gson.toJson(obj); } - public String getHadoopServiceConfigJSON() { StringBuilder result = new StringBuilder(""); // Get file from resources folder ClassLoader classLoader = getClass().getClassLoader(); - File file = new File(classLoader - .getResource("HadoopServiceConfig.json").getFile()); + File file = new File(classLoader.getResource("HadoopServiceConfig.json") + .getFile()); try (Scanner scanner = new Scanner(file)) { @@ -131,37 +147,67 @@ public class MgrBase { } catch (IOException e) { logger.error("Unable to read HadoopServiceConfig.json", e); throw restErrorUtil.createRESTException(e.getMessage(), - MessageEnums.ERROR_SYSTEM); + MessageEnums.ERROR_SYSTEM); } String hadoopServiceConfig = result.toString(); - if (jsonUtil.isJSONValid(hadoopServiceConfig)) + if (jsonUtil.isJSONValid(hadoopServiceConfig)) { return hadoopServiceConfig; + } throw restErrorUtil.createRESTException("Improper JSON", - MessageEnums.ERROR_SYSTEM); + MessageEnums.ERROR_SYSTEM); } - public VSolrLogList getLogAsPaginationProvided(SolrQuery solrQuery, SolrDaoBase solrDaoBase) { + public VSolrLogList getLogAsPaginationProvided(SolrQuery solrQuery, + SolrDaoBase solrDaoBase) { try { QueryResponse response = solrDaoBase.process(solrQuery); + VSolrLogList collection = new VSolrLogList(); SolrDocumentList docList = response.getResults(); - VSolrLogList collection = new VSolrLogList(docList); - collection.setStartIndex((int) docList.getStart()); - collection.setTotalCount(docList.getNumFound()); - Integer rowNumber = solrQuery.getRows(); - if (rowNumber == null) { - logger.error("No RowNumber was set in solrQuery"); - return new VSolrLogList(); + if (docList != null && !docList.isEmpty()) { + collection.setSolrDocuments(docList); + collection.setStartIndex((int) docList.getStart()); + collection.setTotalCount(docList.getNumFound()); + Integer rowNumber = solrQuery.getRows(); + if (rowNumber == null) { + logger.error("No RowNumber was set in solrQuery"); + return new VSolrLogList(); + } + collection.setPageSize(rowNumber); } - collection.setPageSize(rowNumber); return collection; } catch (SolrException | SolrServerException | IOException e) { logger.error("Error during solrQuery=" + solrQuery, e); - throw restErrorUtil.createRESTException(e.getMessage(), - MessageEnums.ERROR_SYSTEM); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + } + + } + + protected String getUnit(String unit) { + if (stringUtil.isEmpty(unit)) { + unit = "+1HOUR"; } + return unit; + } + protected String getFrom(String from) { + if (stringUtil.isEmpty(from)) { + Date date = dateUtil.getTodayFromDate(); + try { + from = dateUtil.convertGivenDateFormatToSolrDateFormat(date); + } catch (ParseException e) { + from = "NOW"; + } + } + return from; } + protected String getTo(String to) { + if (stringUtil.isEmpty(to)) { + to = "NOW"; + } + return to; + } }
http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicMgr.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicMgr.java index 0a4328b..0dccb74 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicMgr.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicMgr.java @@ -19,22 +19,17 @@ package org.apache.ambari.logsearch.manager; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.apache.ambari.logsearch.common.MessageEnums; import org.apache.ambari.logsearch.view.VNameValue; import org.apache.ambari.logsearch.view.VNameValueList; import org.apache.ambari.logsearch.web.security.LogsearchSimpleAuthenticationProvider; -import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class PublicMgr extends MgrBase { - private static Logger logger = Logger.getLogger(PublicMgr.class); - @Autowired LogsearchSimpleAuthenticationProvider simpleAuthenticationProvider; @@ -46,10 +41,6 @@ public class PublicMgr extends MgrBase { nameValue.setValue("" + simpleAuthenticationProvider.isEnable()); nameValues.add(nameValue); nameValueList.setVNameValues(nameValues); - try { - return convertObjToString(nameValueList); - } catch (IOException e) { - throw restErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM); - } + return convertObjToString(nameValueList); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java index d76a3e7..a60402e 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java @@ -32,7 +32,7 @@ import org.apache.ambari.logsearch.common.MessageEnums; import org.apache.ambari.logsearch.common.SearchCriteria; import org.apache.ambari.logsearch.dao.UserConfigSolrDao; import org.apache.ambari.logsearch.query.QueryGeneration; -import org.apache.ambari.logsearch.util.ConfigUtil; +import org.apache.ambari.logsearch.util.PropertiesUtil; import org.apache.ambari.logsearch.util.RESTErrorUtil; import org.apache.ambari.logsearch.util.SolrUtil; import org.apache.ambari.logsearch.util.StringUtil; @@ -58,6 +58,8 @@ import com.google.gson.JsonParseException; @Component public class UserConfigMgr extends MgrBase { + private static final String DEFAULT_LEVELS = "FATAL,ERROR,WARN,INFO,DEBUG,TRACE"; + static Logger logger = Logger.getLogger(UserConfigMgr.class); @Autowired @@ -80,34 +82,35 @@ public class UserConfigMgr extends MgrBase { SolrInputDocument solrInputDoc = new SolrInputDocument(); if (!isValid(vHistory)) { throw restErrorUtil.createRESTException("No FilterName Specified", - MessageEnums.INVALID_INPUT_DATA); + MessageEnums.INVALID_INPUT_DATA); } if (isNotUnique(vHistory) && !vHistory.isOverwrite()) { throw restErrorUtil.createRESTException( - "Name '" + vHistory.getFilterName() + "' already exists", - MessageEnums.INVALID_INPUT_DATA); + "Name '" + vHistory.getFilterName() + "' already exists", + MessageEnums.INVALID_INPUT_DATA); } solrInputDoc.addField(LogSearchConstants.ID, vHistory.getId()); - solrInputDoc.addField(LogSearchConstants.USER_NAME, - vHistory.getUserName()); + solrInputDoc.addField(LogSearchConstants.USER_NAME, vHistory.getUserName()); solrInputDoc.addField(LogSearchConstants.VALUES, vHistory.getValues()); solrInputDoc.addField(LogSearchConstants.FILTER_NAME, - vHistory.getFilterName()); - solrInputDoc.addField(LogSearchConstants.ROW_TYPE, - vHistory.getRowType()); + vHistory.getFilterName()); + solrInputDoc.addField(LogSearchConstants.ROW_TYPE, vHistory.getRowType()); List<String> shareNameList = vHistory.getShareNameList(); - if (shareNameList != null && !shareNameList.isEmpty()) + if (shareNameList != null && !shareNameList.isEmpty()){ solrInputDoc.addField(LogSearchConstants.SHARE_NAME_LIST, shareNameList); + } + solrInputDoc.addField(LogSearchConstants.COMPOSITE_KEY, + vHistory.getFilterName() + "-" + vHistory.getUserName()); try { userConfigSolrDao.addDocs(solrInputDoc); return convertObjToString(solrInputDoc); } catch (SolrException | SolrServerException | IOException e) { - logger.error(e); - throw restErrorUtil.createRESTException(e.getMessage(), - MessageEnums.ERROR_SYSTEM); + logger.error("Error saving user config. solrDoc=" + solrInputDoc, e); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -118,16 +121,17 @@ public class UserConfigMgr extends MgrBase { if (filterName != null && rowType != null) { SolrQuery solrQuery = new SolrQuery(); filterName = solrUtil.makeSearcableString(filterName); - solrQuery.setQuery(LogSearchConstants.COMPOSITE_KEY + ":" - + filterName + "-" + rowType); + solrQuery.setQuery(LogSearchConstants.COMPOSITE_KEY + ":" + filterName + + "-" + rowType); queryGenerator.setRowCount(solrQuery, 0); try { - Long numFound = userConfigSolrDao.process(solrQuery) - .getResults().getNumFound(); - if (numFound > 0) + Long numFound = userConfigSolrDao.process(solrQuery).getResults() + .getNumFound(); + if (numFound > 0) { return true; + } } catch (SolrException | SolrServerException | IOException e) { - logger.error(e); + logger.error("Error while checking if userConfig is unique.", e); } } return false; @@ -136,18 +140,18 @@ public class UserConfigMgr extends MgrBase { private boolean isValid(VUserConfig vHistory) { return !stringUtil.isEmpty(vHistory.getFilterName()) - && !stringUtil.isEmpty(vHistory.getRowType()) - && !stringUtil.isEmpty(vHistory.getUserName()) - && !stringUtil.isEmpty(vHistory.getValues()); + && !stringUtil.isEmpty(vHistory.getRowType()) + && !stringUtil.isEmpty(vHistory.getUserName()) + && !stringUtil.isEmpty(vHistory.getValues()); } public void deleteUserConfig(String id) { try { userConfigSolrDao.removeDoc("id:" + id); } catch (SolrException | SolrServerException | IOException e) { - logger.error(e); - throw restErrorUtil.createRESTException(e.getMessage(), - MessageEnums.ERROR_SYSTEM); + logger.error("Deleting userCounfig. id=" + id, e); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -158,24 +162,21 @@ public class UserConfigMgr extends MgrBase { VUserConfigList userConfigList = new VUserConfigList(); String rowType = (String) searchCriteria - .getParamValue(LogSearchConstants.ROW_TYPE); + .getParamValue(LogSearchConstants.ROW_TYPE); if (stringUtil.isEmpty(rowType)) { - throw restErrorUtil.createRESTException( - "row type was not specified", - MessageEnums.INVALID_INPUT_DATA); + throw restErrorUtil.createRESTException("row type was not specified", + MessageEnums.INVALID_INPUT_DATA); } String userName = (String) searchCriteria - .getParamValue(LogSearchConstants.USER_NAME); + .getParamValue(LogSearchConstants.USER_NAME); if (stringUtil.isEmpty(userName)) { - throw restErrorUtil.createRESTException( - "user name was not specified", - MessageEnums.INVALID_INPUT_DATA); + throw restErrorUtil.createRESTException("user name was not specified", + MessageEnums.INVALID_INPUT_DATA); } String filterName = (String) searchCriteria - .getParamValue(LogSearchConstants.FILTER_NAME); - filterName = stringUtil.isEmpty(filterName) ? "*" : "*" + filterName - + "*"; + .getParamValue(LogSearchConstants.FILTER_NAME); + filterName = stringUtil.isEmpty(filterName) ? "*" : "*" + filterName + "*"; try { @@ -183,19 +184,20 @@ public class UserConfigMgr extends MgrBase { queryGenerator.setMainQuery(userConfigQuery, null); queryGenerator.setPagination(userConfigQuery, searchCriteria); queryGenerator.setSingleIncludeFilter(userConfigQuery, - LogSearchConstants.ROW_TYPE, rowType); + LogSearchConstants.ROW_TYPE, rowType); queryGenerator.setSingleORFilter(userConfigQuery, - LogSearchConstants.USER_NAME, userName, - LogSearchConstants.SHARE_NAME_LIST, userName); + LogSearchConstants.USER_NAME, userName, + LogSearchConstants.SHARE_NAME_LIST, userName); queryGenerator.setSingleIncludeFilter(userConfigQuery, - LogSearchConstants.FILTER_NAME, filterName); + LogSearchConstants.FILTER_NAME, filterName); if (stringUtil.isEmpty(searchCriteria.getSortBy()) - || searchCriteria.getSortBy().equals("historyName")) - searchCriteria - .setSortBy(LogSearchConstants.FILTER_NAME); - if (stringUtil.isEmpty(searchCriteria.getSortType())) + || searchCriteria.getSortBy().equals("historyName")) { + searchCriteria.setSortBy(LogSearchConstants.FILTER_NAME); + } + if (stringUtil.isEmpty(searchCriteria.getSortType())) { searchCriteria.setSortType("" + SolrQuery.ORDER.asc); + } queryGenerator.setSingleSortOrder(userConfigQuery, searchCriteria); solrList = userConfigSolrDao.process(userConfigQuery).getResults(); @@ -205,21 +207,19 @@ public class UserConfigMgr extends MgrBase { for (SolrDocument solrDoc : solrList) { VUserConfig userConfig = new VUserConfig(); userConfig.setFilterName("" - + solrDoc.get(LogSearchConstants.FILTER_NAME)); + + solrDoc.get(LogSearchConstants.FILTER_NAME)); userConfig.setId("" + solrDoc.get(LogSearchConstants.ID)); userConfig.setValues("" + solrDoc.get(LogSearchConstants.VALUES)); - userConfig.setRowType("" - + solrDoc.get(LogSearchConstants.ROW_TYPE)); + userConfig.setRowType("" + solrDoc.get(LogSearchConstants.ROW_TYPE)); try { List<String> shareNameList = (List<String>) solrDoc - .get(LogSearchConstants.SHARE_NAME_LIST); + .get(LogSearchConstants.SHARE_NAME_LIST); userConfig.setShareNameList(shareNameList); } catch (Exception e) { // do nothing } - userConfig.setUserName("" - + solrDoc.get(LogSearchConstants.USER_NAME)); + userConfig.setUserName("" + solrDoc.get(LogSearchConstants.USER_NAME)); configList.add(userConfig); } @@ -231,17 +231,17 @@ public class UserConfigMgr extends MgrBase { userConfigList.setPageSize((int) searchCriteria.getMaxRows()); userConfigList.setTotalCount((long) solrList.getNumFound()); - userConfigList - .setResultSize((int) (configList.size() - searchCriteria + userConfigList.setResultSize((int) (configList.size() - searchCriteria .getStartIndex())); } catch (SolrException | SolrServerException | IOException e) { // do nothing + logger.error(e); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } - try { - return convertObjToString(userConfigList); - } catch (IOException e) { - return ""; - } + + return convertObjToString(userConfigList); + } public String updateUserConfig(VUserConfig vuserConfig) { @@ -270,35 +270,49 @@ public class UserConfigMgr extends MgrBase { if (documentList != null && documentList.size() > 0) { SolrDocument configDoc = documentList.get(0); String configJson = jsonUtil.objToJson(configDoc); - HashMap<String, Object> configMap = (HashMap<String, Object>) jsonUtil.jsonToMapObject(configJson); + HashMap<String, Object> configMap = (HashMap<String, Object>) jsonUtil + .jsonToMapObject(configJson); String json = (String) configMap.get(LogSearchConstants.VALUES); - logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(json, VLogfeederFilterWrapper.class); + logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj( + json, VLogfeederFilterWrapper.class); logfeederFilterWrapper.setId("" + configDoc.get(LogSearchConstants.ID)); } else { + String logfeederDefaultLevels = PropertiesUtil + .getProperty("logfeeder.include.default.level", DEFAULT_LEVELS); + JSONArray levelJsonArray = new JSONArray(); + try { + String levelArray[] = logfeederDefaultLevels.split(","); + for (String level : levelArray) { + levelJsonArray.put(level.toUpperCase()); + } + } catch (Exception e) { + logger.error("Error spliting logfeederDefaultLevels=" + + logfeederDefaultLevels, e); + throw restErrorUtil.createRESTException(e.getMessage(), + MessageEnums.ERROR_SYSTEM); + } String hadoopServiceString = getHadoopServiceConfigJSON(); + String key = null; + JSONArray componentArray = null; try { - JSONObject componentList = new JSONObject(); JSONObject jsonValue = new JSONObject(); - JSONObject hadoopServiceJsonObject = new JSONObject(hadoopServiceString) - .getJSONObject("service"); - Iterator<String> hadoopSerivceKeys = hadoopServiceJsonObject - .keys(); + JSONObject hadoopServiceJsonObject = new JSONObject( + hadoopServiceString).getJSONObject("service"); + Iterator<String> hadoopSerivceKeys = hadoopServiceJsonObject.keys(); while (hadoopSerivceKeys.hasNext()) { - String key = hadoopSerivceKeys.next(); - JSONArray componentArray = hadoopServiceJsonObject - .getJSONObject(key).getJSONArray("components"); + key = hadoopSerivceKeys.next(); + componentArray = hadoopServiceJsonObject.getJSONObject(key) + .getJSONArray("components"); for (int i = 0; i < componentArray.length(); i++) { - JSONObject compJsonObject = (JSONObject) componentArray - .get(i); - String componentName = compJsonObject - .getString("name"); + JSONObject compJsonObject = (JSONObject) componentArray.get(i); + String componentName = compJsonObject.getString("name"); JSONObject innerContent = new JSONObject(); innerContent.put("label", componentName); innerContent.put("hosts", new JSONArray()); - innerContent.put("defaultLevels", new JSONArray()); + innerContent.put("defaultLevels", levelJsonArray); componentList.put(componentName, innerContent); } } @@ -306,14 +320,16 @@ public class UserConfigMgr extends MgrBase { return saveUserFiter(jsonValue.toString()); } catch (JsonParseException | JSONException je) { - logger.error(je); + logger.error("Error parsing JSON. key=" + key + ", componentArray=" + + componentArray, je); logfeederFilterWrapper = new VLogfeederFilterWrapper(); } } return convertObjToString(logfeederFilterWrapper); } catch (SolrException | SolrServerException | IOException e) { logger.error(e); - throw restErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } } @@ -324,11 +340,12 @@ public class UserConfigMgr extends MgrBase { * @return */ public String saveUserFiter(String json) { - VLogfeederFilterWrapper logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(json, - VLogfeederFilterWrapper.class); + VLogfeederFilterWrapper logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil + .jsonToObj(json, VLogfeederFilterWrapper.class); if (logfeederFilterWrapper == null) { logger.error("filter json is not a valid :" + json); - throw restErrorUtil.createRESTException("Invalid filter json", MessageEnums.ERROR_SYSTEM); + throw restErrorUtil.createRESTException("Invalid filter json", + MessageEnums.ERROR_SYSTEM); } String id = logfeederFilterWrapper.getId(); if (!stringUtil.isEmpty(id)) { @@ -336,17 +353,20 @@ public class UserConfigMgr extends MgrBase { } String filterName = LogSearchConstants.LOGFEEDER_FILTER_NAME; json = jsonUtil.objToJson(logfeederFilterWrapper); - SolrInputDocument conifgDocument = new SolrInputDocument(); - conifgDocument.addField(LogSearchConstants.ID, new Date().getTime()); - conifgDocument.addField(LogSearchConstants.ROW_TYPE, filterName); - conifgDocument.addField(LogSearchConstants.VALUES, json); - conifgDocument.addField(LogSearchConstants.USER_NAME, filterName); - conifgDocument.addField(LogSearchConstants.FILTER_NAME, filterName); + SolrInputDocument configDocument = new SolrInputDocument(); + configDocument.addField(LogSearchConstants.ID, new Date().getTime()); + configDocument.addField(LogSearchConstants.ROW_TYPE, filterName); + configDocument.addField(LogSearchConstants.VALUES, json); + configDocument.addField(LogSearchConstants.USER_NAME, filterName); + configDocument.addField(LogSearchConstants.FILTER_NAME, filterName); + configDocument.addField(LogSearchConstants.COMPOSITE_KEY, filterName + "-" + + filterName); try { - userConfigSolrDao.addDocs(conifgDocument); + userConfigSolrDao.addDocs(configDocument); } catch (SolrException | SolrServerException | IOException e) { - logger.error(e); - throw restErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM); + logger.error("Saving UserConfig. config=" + configDocument, e); + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } return getUserFilter(); } @@ -356,27 +376,25 @@ public class UserConfigMgr extends MgrBase { try { SolrQuery userListQuery = new SolrQuery(); queryGenerator.setMainQuery(userListQuery, null); - queryGenerator.setFacetField(userListQuery, - LogSearchConstants.USER_NAME); - QueryResponse queryResponse = userConfigSolrDao - .process(userListQuery); - if (queryResponse == null) + queryGenerator.setFacetField(userListQuery, LogSearchConstants.USER_NAME); + QueryResponse queryResponse = userConfigSolrDao.process(userListQuery); + if (queryResponse == null) { return convertObjToString(userList); + } List<Count> counList = queryResponse.getFacetField( - LogSearchConstants.USER_NAME).getValues(); + LogSearchConstants.USER_NAME).getValues(); for (Count cnt : counList) { String userName = cnt.getName(); userList.add(userName); } } catch (SolrException | SolrServerException | IOException e) { + logger.warn("Error getting all users.", e); // do nothing + throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR + .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } + return convertObjToString(userList); - try { - return convertObjToString(userList); - } catch (IOException e) { - return ""; - } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java index 38a31fb..2f47ec5 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java @@ -27,94 +27,67 @@ import java.util.regex.Pattern; import org.apache.ambari.logsearch.common.LogSearchConstants; import org.apache.ambari.logsearch.common.SearchCriteria; -import org.apache.ambari.logsearch.util.BizUtil; +import org.apache.ambari.logsearch.manager.MgrBase.LOG_TYPE; import org.apache.ambari.logsearch.util.ConfigUtil; -import org.apache.ambari.logsearch.util.DateUtil; -import org.apache.ambari.logsearch.util.JSONUtil; import org.apache.ambari.logsearch.util.PropertiesUtil; -import org.apache.ambari.logsearch.util.RESTErrorUtil; -import org.apache.ambari.logsearch.util.SolrUtil; -import org.apache.ambari.logsearch.util.StringUtil; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrQuery; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class QueryGeneration extends QueryGenerationBase { - static Logger logger = Logger.getLogger(QueryGeneration.class); - - @Autowired - SolrUtil solrUtil; - - @Autowired - RESTErrorUtil restErrorUtil; - - @Autowired - BizUtil bizUtil; - - @Autowired - DateUtil dateUtil; - - @Autowired - StringUtil stringUtil; - - @Autowired - JSONUtil jsonUtil; - - public SolrQuery commonFilterQuery(SearchCriteria searchCriteria) { + private static Logger logger = Logger.getLogger(QueryGeneration.class); + public SolrQuery commonServiceFilterQuery(SearchCriteria searchCriteria) { + LOG_TYPE logType = LOG_TYPE.SERVICE; SolrQuery solrQuery = new SolrQuery(); - - String jsonHCNames = (String) searchCriteria - .getParamValue("treeParams"); + String treeParams = (String) searchCriteria.getParamValue("treeParams"); String givenQuery = (String) searchCriteria.getParamValue("q"); String level = (String) searchCriteria.getParamValue("level"); - String startTime = (String) searchCriteria.getParamValue("from"); String endTime = (String) searchCriteria.getParamValue("to"); String iMessage = (String) searchCriteria.getParamValue("iMessage"); String eMessage = (String) searchCriteria.getParamValue("eMessage"); String gEmessage = (String) searchCriteria.getParamValue("gEMessage"); - String selectedComp = (String) searchCriteria - .getParamValue("selectComp"); + String selectedComp = (String) searchCriteria.getParamValue("selectComp"); String bundleId = (String) searchCriteria - .getParamValue(LogSearchConstants.BUNDLE_ID); + .getParamValue(LogSearchConstants.BUNDLE_ID); String globalExcludeComp = (String) searchCriteria - .getParamValue("gMustNot"); + .getParamValue("gMustNot"); String unselectedComp = (String) searchCriteria - .getParamValue("unselectComp"); + .getParamValue("unselectComp"); String urlHostName = (String) searchCriteria.getParamValue("host_name"); - String urlComponents = (String) searchCriteria.getParamValue("components_name"); - + String urlComponentName = (String) searchCriteria + .getParamValue("component_name"); + String file_name = (String) searchCriteria.getParamValue("file_name"); String advQuery = (String) searchCriteria.getParamValue("advanceSearch"); + // build advance query if (!stringUtil.isEmpty(advQuery)) { String advQueryParameters[] = advQuery.split(Pattern.quote("}{")); SolrQuery advSolrQuery = new SolrQuery(); - for (String queryParam : advQueryParameters) { String params[] = queryParam.split(Pattern.quote("=")); - advSolrQuery.setParam(params[0], params[1]); + if (params != null && params.length > 1) + advSolrQuery.setParam(params[0], params[1]); } - // Building and adding levels to filters setFilterClauseWithFieldName(advSolrQuery, level, - LogSearchConstants.SOLR_LEVEL, "", "OR"); + LogSearchConstants.SOLR_LEVEL, "", CONDITION.OR); // Adding Logtime to filters - setSingleRangeFilter(advSolrQuery, LogSearchConstants.LOGTIME, - startTime, endTime); + setSingleRangeFilter(advSolrQuery, LogSearchConstants.LOGTIME, startTime, + endTime); // Building and adding exlcude components to filters setFilterClauseWithFieldName(advSolrQuery, unselectedComp, - LogSearchConstants.SOLR_COMPONENT, - LogSearchConstants.MINUS_OPERATOR, "AND"); + LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.MINUS_OPERATOR, + CONDITION.AND); // Building and adding exlcude components to filters setFilterClauseWithFieldName(advSolrQuery, selectedComp, - LogSearchConstants.SOLR_COMPONENT, - LogSearchConstants.NO_OPERATOR, "OR"); + LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.NO_OPERATOR, + CONDITION.OR); // Set Pagination setPagination(advSolrQuery, searchCriteria); @@ -126,52 +99,67 @@ public class QueryGeneration extends QueryGenerationBase { // Adding Logtime to filters setSingleRangeFilter(solrQuery, LogSearchConstants.LOGTIME, startTime, - endTime); + endTime); + + // String mainFilterQuery = buildQueryFromJSONCompHost(jsonHCNames, + // selectedComp); - String mainFilterQuery = buildQueryFromJSONCompHost(jsonHCNames, selectedComp); + // if (mainFilterQuery != null && !mainFilterQuery.equals("")) + // solrQuery.addFilterQuery(mainFilterQuery); - if (mainFilterQuery != null && !mainFilterQuery.equals("")) - solrQuery.addFilterQuery(mainFilterQuery); + // add component filter + addFilter(solrQuery, selectedComp, LogSearchConstants.SOLR_COMPONENT, + CONDITION.OR); + + // add treeParams filter + // hosts comma separated list + addFilterQueryFromArray(solrQuery, treeParams, + LogSearchConstants.SOLR_HOST, CONDITION.OR); // Building and adding levels to filters - setFilterClauseWithFieldName(solrQuery, level, LogSearchConstants.SOLR_LEVEL, "", "OR"); + setFilterClauseWithFieldName(solrQuery, level, + LogSearchConstants.SOLR_LEVEL, LogSearchConstants.NO_OPERATOR, + CONDITION.OR); // Building and adding include string to filters - setFilterClauseForSolrSearchableString(solrQuery, iMessage, "OR", "", - LogSearchConstants.SOLR_LOG_MESSAGE); + setFilterClauseForSolrSearchableString(solrQuery, iMessage, CONDITION.OR, + LogSearchConstants.NO_OPERATOR, LogSearchConstants.SOLR_KEY_LOG_MESSAGE); // Building and adding global exclude string to filters - setFilterClauseForSolrSearchableString(solrQuery, gEmessage, "AND", - LogSearchConstants.MINUS_OPERATOR, - LogSearchConstants.SOLR_LOG_MESSAGE); + setFilterClauseForSolrSearchableString(solrQuery, gEmessage, CONDITION.AND, + LogSearchConstants.MINUS_OPERATOR, LogSearchConstants.SOLR_KEY_LOG_MESSAGE); // Building and adding exclude string to filter - setFilterClauseForSolrSearchableString(solrQuery, eMessage, "AND", - LogSearchConstants.MINUS_OPERATOR, - LogSearchConstants.SOLR_LOG_MESSAGE); + setFilterClauseForSolrSearchableString(solrQuery, eMessage, CONDITION.AND, + LogSearchConstants.MINUS_OPERATOR, LogSearchConstants.SOLR_KEY_LOG_MESSAGE); // Building and adding logfile to filters applyLogFileFilter(solrQuery, searchCriteria); // Building and adding exclude components to filters setFilterClauseWithFieldName(solrQuery, globalExcludeComp, - LogSearchConstants.SOLR_COMPONENT, - LogSearchConstants.MINUS_OPERATOR, "AND"); + LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.MINUS_OPERATOR, + CONDITION.AND); // Building and adding exlcude components to filters setFilterClauseWithFieldName(solrQuery, unselectedComp, - LogSearchConstants.SOLR_COMPONENT, - LogSearchConstants.MINUS_OPERATOR, "AND"); - - //Building and addding host names given url - setFilterClauseWithFieldName(solrQuery, urlHostName, - LogSearchConstants.SOLR_HOST, - "", "OR"); - - //Building and addding component names given url - setFilterClauseWithFieldName(solrQuery, urlComponents, - LogSearchConstants.SOLR_COMPONENT, - "", "OR"); + LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.MINUS_OPERATOR, + CONDITION.AND); + + // Building and adding host names given url + // setFilterClauseWithFieldName(solrQuery, urlHostName, + // LogSearchConstants.SOLR_HOST, + // "", "OR"); + urlHostName = solrUtil.escapeQueryChars(urlHostName); + setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_HOST, urlHostName); + // + // //Building and addding component names given url + // setFilterClauseWithFieldName(solrQuery, urlComponents, + // LogSearchConstants.SOLR_COMPONENT, + // "", "OR"); + urlComponentName = solrUtil.escapeQueryChars(urlComponentName); + setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_COMPONENT, + urlComponentName); // Set Pagination setPagination(solrQuery, searchCriteria); @@ -182,156 +170,161 @@ public class QueryGeneration extends QueryGenerationBase { // Set Bundle Id setSingleIncludeFilter(solrQuery, LogSearchConstants.BUNDLE_ID, bundleId); + // Set filename + file_name = solrUtil.escapeQueryChars(file_name); + setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_PATH, file_name); + // include query this.setUserSpecificFilter(searchCriteria, solrQuery, - LogSearchConstants.INCLUDE_QUERY, - LogSearchConstants.INCLUDE_QUERY); - + LogSearchConstants.INCLUDE_QUERY, LogSearchConstants.INCLUDE_QUERY, + logType); + // exclude query this.setUserSpecificFilter(searchCriteria, solrQuery, - LogSearchConstants.EXCLUDE_QUERY, - LogSearchConstants.EXCLUDE_QUERY); + LogSearchConstants.EXCLUDE_QUERY, LogSearchConstants.EXCLUDE_QUERY, + logType); return solrQuery; } public void applyLogFileFilter(SolrQuery solrQuery, - SearchCriteria searchCriteria) { - String hostLogFile = (String) searchCriteria - .getParamValue("hostLogFile"); - String compLogFile = (String) searchCriteria - .getParamValue("compLogFile"); + SearchCriteria searchCriteria) { + String hostLogFile = (String) searchCriteria.getParamValue("hostLogFile"); + String compLogFile = (String) searchCriteria.getParamValue("compLogFile"); String givenQuery = (String) searchCriteria.getParamValue("q"); String logfileQuery = ""; - if (hostLogFile != null && !hostLogFile.equals("") - && compLogFile != null && !compLogFile.equals("")) { - logfileQuery = "host:" + hostLogFile + " AND type:" + compLogFile; - if (givenQuery != null && !givenQuery.equals("")) - logfileQuery = "(" + givenQuery + ") AND (" + logfileQuery - + ")"; - solrQuery.addFilterQuery(logfileQuery); + if (!stringUtil.isEmpty(hostLogFile) && !stringUtil.isEmpty(compLogFile)) { + logfileQuery = LogSearchConstants.SOLR_HOST + ":" + hostLogFile + " " + + CONDITION.AND + " " + LogSearchConstants.SOLR_COMPONENT + ":" + + compLogFile; + if (!stringUtil.isEmpty(givenQuery)) { + logfileQuery = "(" + givenQuery + ") " + CONDITION.AND + " (" + + logfileQuery + ")"; + } + if (!stringUtil.isEmpty(logfileQuery)) { + solrQuery.addFilterQuery(logfileQuery); + } } } public void setUserSpecificFilter(SearchCriteria searchCriteria, - SolrQuery solrQuery, String paramName, String operation) { - + SolrQuery solrQuery, String paramName, String operation, LOG_TYPE logType) { String queryString = (String) searchCriteria.getParamValue(paramName); String columnQuery = (String) searchCriteria - .getParamValue(LogSearchConstants.COLUMN_QUERY); - if (!stringUtil.isEmpty(queryString) && "[]".equals(queryString)) + .getParamValue(LogSearchConstants.COLUMN_QUERY); + if (stringUtil.isEmpty(queryString)) { queryString = null; + } + // if (!stringUtil.isEmpty(queryString) && "[]".equals(queryString)) { + // queryString = null; + // } if (!stringUtil.isEmpty(columnQuery) && stringUtil.isEmpty(queryString) - && !paramName.equals(LogSearchConstants.EXCLUDE_QUERY)) + && !paramName.equals(LogSearchConstants.EXCLUDE_QUERY)) { queryString = columnQuery; + } List<String> conditionQuries = new ArrayList<String>(); List<String> referalConditionQuries = new ArrayList<String>(); List<String> elments = new ArrayList<String>(); - if (!stringUtil.isEmpty(queryString)) { - List<HashMap<String, Object>> queryList = jsonUtil + // convert json to list of hashmap + List<HashMap<String, Object>> queryList = jsonUtil .jsonToMapObjectList(queryString); - if (!stringUtil.isEmpty(columnQuery) - && !columnQuery.equals(queryString) && !paramName.equals(LogSearchConstants.EXCLUDE_QUERY)) { + // null and size check + if (queryList != null && queryList.size() > 0) { + if (!stringUtil.isEmpty(columnQuery) && !columnQuery.equals(queryString) + && !paramName.equals(LogSearchConstants.EXCLUDE_QUERY)) { List<HashMap<String, Object>> columnQueryList = jsonUtil - .jsonToMapObjectList(columnQuery); - queryList.addAll(columnQueryList); + .jsonToMapObjectList(columnQuery); + if (columnQueryList != null && columnQueryList.size() > 0) { + queryList.addAll(columnQueryList); + } } - for (HashMap<String, Object> columnListMap : queryList) { String orQuery = ""; - String field = ""; - for (String key : columnListMap.keySet()) { - String originalKey = getOriginalKey(key); - String value = getOriginalValue(originalKey, "" - + columnListMap.get(key)); - orQuery = originalKey + ":" - + putWildCardByType(value, originalKey); - - boolean isSame = false; - for (String temp : elments) { - if (key.equals(temp)) - isSame = true; - } - if (isSame - && !operation - .equals(LogSearchConstants.EXCLUDE_QUERY)) { - for (String tempCondition : conditionQuries) { - if (tempCondition.contains(originalKey)) { - String newCondtion = tempCondition + " OR " - + orQuery; - referalConditionQuries.remove(tempCondition); - referalConditionQuries.add(newCondtion); + StringBuilder field = new StringBuilder(); + if (columnListMap != null) { + for (String key : columnListMap.keySet()) { + if (!stringUtil.isEmpty(key)) { + String originalKey = getOriginalKey(key, logType); + String value = getOriginalValue(originalKey, + "" + columnListMap.get(key)); + orQuery = putWildCardByType(value, originalKey, logType); + boolean isSame = false; + if (elments.contains(key)) { + isSame = true; + } + if (isSame && !operation.equals(LogSearchConstants.EXCLUDE_QUERY)) { + for (String tempCondition : conditionQuries) { + if (tempCondition.contains(originalKey)) { + String newCondtion = tempCondition + " " + + CONDITION.OR.name() + " " + orQuery; + referalConditionQuries.remove(tempCondition); + referalConditionQuries.add(newCondtion); + } + } + conditionQuries.removeAll(conditionQuries); + conditionQuries.addAll(referalConditionQuries); + } else { + conditionQuries.add(orQuery.toString()); + referalConditionQuries.add(orQuery.toString()); } + field.append(key); + elments.add(field.toString()); } - conditionQuries.removeAll(conditionQuries); - conditionQuries.addAll(referalConditionQuries); - } else { - conditionQuries.add(orQuery); - referalConditionQuries.add(orQuery); } - - field = key; - elments.add(field); } - } } - if (!referalConditionQuries.isEmpty()) { + if (!referalConditionQuries.isEmpty() && !stringUtil.isEmpty(operation)) { if (operation.equals(LogSearchConstants.INCLUDE_QUERY) - || operation.equals(LogSearchConstants.COLUMN_QUERY)) { - for (String filter : referalConditionQuries) - solrQuery.addFilterQuery(filter); + || operation.equals(LogSearchConstants.COLUMN_QUERY)) { + for (String filter : referalConditionQuries) { + if (!stringUtil.isEmpty(filter)) { + solrQuery.addFilterQuery(filter); + } + } } else if (operation.equals(LogSearchConstants.EXCLUDE_QUERY)) { - for (String filter : referalConditionQuries) { - filter = "-" + filter; - solrQuery.addFilterQuery(filter); + if (!stringUtil.isEmpty(filter)) { + filter = LogSearchConstants.MINUS_OPERATOR + filter; + solrQuery.addFilterQuery(filter); + } } } } } public SolrQuery commonAuditFilterQuery(SearchCriteria searchCriteria) { - + LOG_TYPE logType = LOG_TYPE.AUDIT; SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); - String startTime = (String) searchCriteria.getParamValue("startTime"); String endTime = (String) searchCriteria.getParamValue("endTime"); String selectedComp = (String) searchCriteria - .getParamValue("includeString"); - + .getParamValue("includeString"); this.setFilterClauseWithFieldName(solrQuery, selectedComp, - LogSearchConstants.AUDIT_COMPONENT, - LogSearchConstants.NO_OPERATOR, "OR"); - + LogSearchConstants.AUDIT_COMPONENT, LogSearchConstants.NO_OPERATOR, + CONDITION.OR); String globalExcludeComp = (String) searchCriteria - .getParamValue("gMustNot"); - + .getParamValue("gMustNot"); this.setUserSpecificFilter(searchCriteria, solrQuery, - LogSearchConstants.INCLUDE_QUERY, - LogSearchConstants.INCLUDE_QUERY); - + LogSearchConstants.INCLUDE_QUERY, LogSearchConstants.INCLUDE_QUERY, + logType); this.setUserSpecificFilter(searchCriteria, solrQuery, - LogSearchConstants.EXCLUDE_QUERY, - LogSearchConstants.EXCLUDE_QUERY); - + LogSearchConstants.EXCLUDE_QUERY, LogSearchConstants.EXCLUDE_QUERY, + logType); String unselectedComp = (String) searchCriteria - .getParamValue("unselectComp"); - + .getParamValue("unselectComp"); this.setFilterClauseWithFieldName(solrQuery, globalExcludeComp, - LogSearchConstants.AUDIT_COMPONENT, - LogSearchConstants.MINUS_OPERATOR, "AND"); - + LogSearchConstants.AUDIT_COMPONENT, LogSearchConstants.MINUS_OPERATOR, + CONDITION.AND); // Building and adding exlcude components to filters this.setFilterClauseWithFieldName(solrQuery, unselectedComp, - LogSearchConstants.AUDIT_COMPONENT, - LogSearchConstants.MINUS_OPERATOR, "AND"); - + LogSearchConstants.AUDIT_COMPONENT, LogSearchConstants.MINUS_OPERATOR, + CONDITION.AND); // Adding Logtime to filters this.setSingleRangeFilter(solrQuery, LogSearchConstants.AUDIT_EVTTIME, - startTime, endTime); - + startTime, endTime); this.setPagination(solrQuery, searchCriteria); try { - if (searchCriteria.getSortBy().isEmpty()) { + if (searchCriteria.getSortBy() == null + || searchCriteria.getSortBy().isEmpty()) { searchCriteria.setSortBy(LogSearchConstants.AUDIT_EVTTIME); searchCriteria.setSortType(SolrQuery.ORDER.desc.toString()); } @@ -339,52 +332,40 @@ public class QueryGeneration extends QueryGenerationBase { searchCriteria.setSortBy(LogSearchConstants.AUDIT_EVTTIME); searchCriteria.setSortType(SolrQuery.ORDER.desc.toString()); } - this.setSortOrderDefaultServiceLog(solrQuery, searchCriteria); return solrQuery; } - private String putWildCardByType(String str, String key) { - - String auditSuffix = PropertiesUtil - .getProperty("auditlog.solr.core.logs"); - String serviceLogs = PropertiesUtil.getProperty("solr.core.logs"); - - String type = ConfigUtil.schemaFieldsName.get(key + auditSuffix); - if (type == null) + private String putWildCardByType(String str, String key, LOG_TYPE logType) { + String type; + switch (logType) { + case AUDIT: + String auditSuffix = PropertiesUtil + .getProperty("auditlog.solr.core.logs"); + type = ConfigUtil.schemaFieldsName.get(key + auditSuffix); + break; + case SERVICE: + String serviceLogs = PropertiesUtil.getProperty("solr.core.logs"); type = ConfigUtil.schemaFieldsName.get(key + serviceLogs); - if (type == null) - return "*" + str + "*"; - if ("text_std_token_lower_case".equalsIgnoreCase(type)) - return giveSplittedStringQuery(str); - if ("key_lower_case".equalsIgnoreCase(type) - || "string".equalsIgnoreCase(type)) - //return solrUtil.makeSolrSearchString(str); - return solrUtil.makeSolrSearchStringWithoutAsterisk(str); - if ("ip_address".equalsIgnoreCase(type)) - return str; - return putEscapeCharacterForNumber(str); - } - - private String giveSplittedStringQuery(String str) { - try { - String splittedString[] = str - .split("/|-|@|&|^|%|$|#|!|~|:|;|\\*|\\+"); - String newStr = "("; - int cnt = 0; - for (String normalString : splittedString) { - cnt++; - if (!normalString.isEmpty()) { - newStr += "*" + normalString + "*"; - } - if (!normalString.isEmpty() && cnt < splittedString.length) - newStr += " AND "; - } - newStr += ")"; - return newStr; - } catch (Exception e) { - return "*" + str + "*"; + break; + default: + // set as null + type = null; + } + if (key.equalsIgnoreCase(LogSearchConstants.SOLR_LOG_MESSAGE)) { + return solrUtil.escapeForLogMessage(key, str); } + if (type == null) { + return key + ":" + "*" + str + "*"; + } else if ("text_std_token_lower_case".equalsIgnoreCase(type)) { + return key + ":" + solrUtil.escapeForStandardTokenizer(str); + } else if ("key_lower_case".equalsIgnoreCase(type) + || "string".equalsIgnoreCase(type)) { + return key + ":" + solrUtil.makeSolrSearchStringWithoutAsterisk(str); + } else if ("ip_address".equalsIgnoreCase(type)) { + return key + ":" + str; + } + return key + ":" + putEscapeCharacterForNumber(str); } private String putEscapeCharacterForNumber(String str) { @@ -403,40 +384,56 @@ public class QueryGeneration extends QueryGenerationBase { private String getOriginalValue(String name, String value) { String solrValue = PropertiesUtil.getProperty(name); - + if (stringUtil.isEmpty(solrValue)) { + return value; + } try { - String propertyFieldMappings[] = solrValue.split(","); - HashMap<String, String> propertyFieldValue = new HashMap<String, String>(); - for (String temp : propertyFieldMappings) { - String arrayValue[] = temp.split(":"); - propertyFieldValue.put(arrayValue[0].toLowerCase(Locale.ENGLISH), - arrayValue[1].toLowerCase(Locale.ENGLISH)); + String propertyFieldMappings[] = solrValue + .split(LogSearchConstants.LIST_SEPARATOR); + if (propertyFieldMappings != null && propertyFieldMappings.length > 0) { + HashMap<String, String> propertyFieldValue = new HashMap<String, String>(); + for (String temp : propertyFieldMappings) { + if (!stringUtil.isEmpty(temp)) { + String arrayValue[] = temp.split(":"); + if (arrayValue.length > 1) { + propertyFieldValue.put(arrayValue[0].toLowerCase(Locale.ENGLISH), + arrayValue[1].toLowerCase(Locale.ENGLISH)); + } else { + logger.warn("array length is less than required length 1"); + } + } + } + String originalValue = propertyFieldValue.get(value + .toLowerCase(Locale.ENGLISH)); + if (!stringUtil.isEmpty(originalValue)) { + return originalValue; + } } - String originalValue = propertyFieldValue.get(value.toLowerCase(Locale.ENGLISH)); - if (originalValue != null && !originalValue.isEmpty()) - return originalValue; - } catch (Exception e) { // do nothing } return value; - } - private String getOriginalKey(String key) { - String originalServiceKey = ConfigUtil.serviceLogsColumnMapping.get(key - + LogSearchConstants.UI_SUFFIX); - String originalAuditKey = ConfigUtil.auditLogsColumnMapping.get(key - + LogSearchConstants.UI_SUFFIX); - if (originalAuditKey != null && originalServiceKey == null) { - return originalAuditKey; - } - if (originalServiceKey != null && originalAuditKey == null) { - return originalServiceKey; + private String getOriginalKey(String key, LOG_TYPE logType) { + String originalKey; + switch (logType) { + case AUDIT: + originalKey = ConfigUtil.auditLogsColumnMapping.get(key + + LogSearchConstants.UI_SUFFIX); + break; + case SERVICE: + originalKey = ConfigUtil.serviceLogsColumnMapping.get(key + + LogSearchConstants.UI_SUFFIX); + break; + default: + originalKey = null; + // set as null } - if (originalAuditKey != null && originalServiceKey != null) { - return originalServiceKey; + if (stringUtil.isEmpty(originalKey)) { + // return default values + return key; } - return key; + return originalKey; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java index e357d02..cc61127 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java @@ -31,11 +31,10 @@ import org.apache.ambari.logsearch.util.StringUtil; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrQuery.ORDER; -import org.codehaus.jettison.json.JSONArray; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; +import com.google.gson.Gson; + public abstract class QueryGenerationBase extends QueryBase { static Logger logger = Logger.getLogger(QueryGenerationBase.class); @@ -49,76 +48,92 @@ public abstract class QueryGenerationBase extends QueryBase { @Autowired JSONUtil jsonUtil; + public static enum CONDITION { + OR, AND + } + // SetMethods to apply to the query public void setFilterClauseForSolrSearchableString(SolrQuery solrQuery, - String commaSepratedString, String booleanOperator, String opr, - String messageField) { - String operator = opr; + String commaSepratedString, CONDITION condition, String operator, + String messageField) { String filterQuery = ""; - if (commaSepratedString != null && !commaSepratedString.isEmpty()) { - - String queryMsg = ""; - operator = operator == null ? "" : operator; + if (!stringUtil.isEmpty(commaSepratedString)) { + StringBuilder queryMsg = new StringBuilder(); + operator = (operator == null ? LogSearchConstants.NO_OPERATOR : operator); String[] msgList = commaSepratedString - .split(LogSearchConstants.I_E_SEPRATOR); + .split(LogSearchConstants.I_E_SEPRATOR); int count = 0; for (String temp : msgList) { count += 1; - - queryMsg = queryMsg + " " + operator + messageField + ":" - + solrUtil.makeSolrSearchString(temp); - if (msgList.length > count) - queryMsg = queryMsg + " " + booleanOperator + " "; + if (LogSearchConstants.SOLR_LOG_MESSAGE.equalsIgnoreCase(messageField)) { + queryMsg.append(" " + operator + + solrUtil.escapeForLogMessage(messageField, temp)); + } else { + temp = solrUtil.escapeForStandardTokenizer(temp); + if(temp.startsWith("\"") && temp.endsWith("\"")){ + temp = temp.substring(1); + temp = temp.substring(0, temp.length()-1); + } + temp = "*" + temp + "*"; + queryMsg.append(" " + operator + messageField + ":" + + temp); + } + if (msgList.length > count){ + queryMsg.append(" " + condition.name() + " "); + } } - filterQuery = queryMsg; + filterQuery = queryMsg.toString(); solrQuery.addFilterQuery(filterQuery); logger.debug("Filter added :- " + filterQuery); } } public void setFilterClauseWithFieldName(SolrQuery solrQuery, - String commaSepratedString, String field, String operator, - String condition) { - if (commaSepratedString != null && !commaSepratedString.isEmpty()) { - String[] arrayOfSepratedString = commaSepratedString.split(","); - String filterQuery; - if ("OR".equals(condition)) - filterQuery = solrUtil.orList(operator + field, - arrayOfSepratedString, ""); - else - filterQuery = solrUtil.andList(operator + field, - arrayOfSepratedString, ""); - solrQuery.addFilterQuery(filterQuery); - logger.debug("Filter added :- " + filterQuery); + String commaSepratedString, String field, String operator, + CONDITION condition) { + if (!stringUtil.isEmpty(commaSepratedString)) { + String[] arrayOfSepratedString = commaSepratedString.split(LogSearchConstants.LIST_SEPARATOR); + String filterQuery = null; + if (CONDITION.OR.equals(condition)) { + filterQuery = solrUtil.orList(operator + field, arrayOfSepratedString,""); + } else if (CONDITION.AND.equals(condition)) { + filterQuery = solrUtil.andList(operator + field, arrayOfSepratedString,""); + }else{ + logger.warn("Not a valid condition :" + condition.name()); + } + //add + if(!stringUtil.isEmpty(filterQuery)){ + solrQuery.addFilterQuery(filterQuery); + logger.debug("Filter added :- " + filterQuery); + } + } } public void setSortOrderDefaultServiceLog(SolrQuery solrQuery, - SearchCriteria searchCriteria) { + SearchCriteria searchCriteria) { List<SolrQuery.SortClause> defaultSort = new ArrayList<SolrQuery.SortClause>(); if (searchCriteria.getSortBy() != null - && (!searchCriteria.getSortBy().isEmpty())) { + && (!searchCriteria.getSortBy().isEmpty())) { ORDER order = SolrQuery.ORDER.asc; if (searchCriteria.getSortType() != null - && (!searchCriteria.getSortType().isEmpty()) - && !searchCriteria.getSortType().equalsIgnoreCase( - order.toString())) { + && (!searchCriteria.getSortType().isEmpty()) + && !searchCriteria.getSortType().equalsIgnoreCase(order.toString())) { order = SolrQuery.ORDER.desc; } - SolrQuery.SortClause logtimeSortClause = SolrQuery.SortClause - .create(searchCriteria.getSortBy(), order); + SolrQuery.SortClause logtimeSortClause = SolrQuery.SortClause.create( + searchCriteria.getSortBy(), order); defaultSort.add(logtimeSortClause); } else { // by default sorting by logtime and sequence number in // Descending order - SolrQuery.SortClause logtimeSortClause = SolrQuery.SortClause - .create(LogSearchConstants.LOGTIME, SolrQuery.ORDER.desc); - + SolrQuery.SortClause logtimeSortClause = SolrQuery.SortClause.create( + LogSearchConstants.LOGTIME, SolrQuery.ORDER.desc); defaultSort.add(logtimeSortClause); } SolrQuery.SortClause sequenceNumberSortClause = SolrQuery.SortClause - .create(LogSearchConstants.SEQUNCE_ID, SolrQuery.ORDER.desc); + .create(LogSearchConstants.SEQUNCE_ID, SolrQuery.ORDER.desc); defaultSort.add(sequenceNumberSortClause); solrQuery.setSorts(defaultSort); logger.debug("Sort Order :-" + defaultSort); @@ -157,20 +172,28 @@ public abstract class QueryGenerationBase extends QueryBase { // Example of list can be [logtime desc,seq_num desc] @SuppressWarnings("unchecked") public void setMultipleSortOrder(SolrQuery solrQuery, - SearchCriteria searchCriteria) { + SearchCriteria searchCriteria) { List<SolrQuery.SortClause> sort = new ArrayList<SolrQuery.SortClause>(); - List<String> sortList = (List<String>) searchCriteria - .getParamValue("sort"); - for (String sortOrder : sortList) { - String sortByAndOrder[] = sortOrder.split(" "); - ORDER order = sortByAndOrder[1].contains("asc") ? SolrQuery.ORDER.asc - : SolrQuery.ORDER.desc; - SolrQuery.SortClause sortOrder2 = SolrQuery.SortClause.create( - sortByAndOrder[0], order); - sort.add(sortOrder2); - logger.debug("Sort Order :-" + sort); + List<String> sortList = (List<String>) searchCriteria.getParamValue("sort"); + if (sortList != null) { + for (String sortOrder : sortList) { + if (!stringUtil.isEmpty(sortOrder)) { + String sortByAndOrder[] = sortOrder.split(" "); + if (sortByAndOrder.length > 1) { + ORDER order = sortByAndOrder[1].contains("asc") ? SolrQuery.ORDER.asc + : SolrQuery.ORDER.desc; + SolrQuery.SortClause solrSortClause = SolrQuery.SortClause.create( + sortByAndOrder[0], order); + sort.add(solrSortClause); + logger.debug("Sort Order :-" + sort); + } else { + // log warn + logger.warn("Not a valid sort Clause " + sortOrder); + } + } + } + solrQuery.setSorts(sort); } - solrQuery.setSorts(sort); } public void setSingleIncludeFilter(SolrQuery solrQuery, String filterType, @@ -184,25 +207,26 @@ public abstract class QueryGenerationBase extends QueryBase { } public void setSingleExcludeFilter(SolrQuery solrQuery, String filterType, - String filterValue) { - if (filterType != null && !filterType.isEmpty() && filterValue != null - && !filterValue.isEmpty()) { - String filterQuery = "-" - + buildFilterQuery(filterType, filterValue); + String filterValue) { + if (!stringUtil.isEmpty(filterValue) && !stringUtil.isEmpty(filterType)) { + String filterQuery = LogSearchConstants.MINUS_OPERATOR + + buildFilterQuery(filterType, filterValue); solrQuery.addFilterQuery(filterQuery); logger.debug("Filter added :- " + filterQuery); } } public void setSingleRangeFilter(SolrQuery solrQuery, String filterType, - String filterFromValue, String filterToValue) { - if (filterType != null && !filterType.isEmpty() - && filterFromValue != null && !filterFromValue.isEmpty() - && filterToValue != null && !filterToValue.isEmpty()) { + String filterFromValue, String filterToValue) { + if (!stringUtil.isEmpty(filterToValue) + && !stringUtil.isEmpty(filterType) + && !stringUtil.isEmpty(filterFromValue)) { String filterQuery = buildInclusiveRangeFilterQuery(filterType, - filterFromValue, filterToValue); - solrQuery.addFilterQuery(filterQuery); - logger.debug("Filter added :- " + filterQuery); + filterFromValue, filterToValue); + if (!stringUtil.isEmpty(filterQuery)) { + solrQuery.addFilterQuery(filterQuery); + logger.debug("Filter added :- " + filterQuery); + } } } @@ -227,8 +251,10 @@ public abstract class QueryGenerationBase extends QueryBase { + " to " + maxRows.intValue()); } - public void setSingleORFilter(SolrQuery solrQuery, String filterName1, String value1, String filterName2, String value2) { - String filterQuery = filterName1 + ":" + value1 + " OR " + filterName2 + ":" + value2; + public void setSingleORFilter(SolrQuery solrQuery, String filterName1, + String value1, String filterName2, String value2) { + String filterQuery = filterName1 + ":" + value1 + " " + CONDITION.OR.name() + + " " + filterName2 + ":" + value2; solrQuery.setFilterQueries(filterQuery); } @@ -255,68 +281,66 @@ public abstract class QueryGenerationBase extends QueryBase { return filterQuery; } - public String buildQueryFromJSONCompHost(String jsonHCNames, - String selectedComponent) { - String queryHostComponent = ""; - // Building and adding exclude string to filters - String selectedCompQuery = ""; - - if (selectedComponent != null && !selectedComponent.equals("")) { - String[] selectedComponents = selectedComponent.split(","); - selectedCompQuery = solrUtil.orList(LogSearchConstants.SOLR_COMPONENT, selectedComponents); - - } - - // Building Query of Host and Components from given json - if (jsonHCNames != null && !jsonHCNames.equals("") - && !jsonHCNames.equals("[]")) { - - try { - JSONArray jarray = new JSONArray(jsonHCNames); - int flagHost = 0; - int flagComp; - int count; - for (int i = 0; i < jarray.length(); i++) { - if (flagHost == 1) - queryHostComponent = queryHostComponent + " OR "; - JSONObject jsonObject = jarray.getJSONObject(i); - String host = jsonObject.getString("h"); - queryHostComponent = queryHostComponent + "( host:" + host; - List<String> components = JSONUtil.JSONToList(jsonObject - .getJSONArray("c")); - if (components.isEmpty()) - queryHostComponent = queryHostComponent + " AND "; - - flagComp = 0; - count = 0; - for (String comp : components) { - if (flagComp == 0) - queryHostComponent = queryHostComponent + " ( "; - count += 1; - queryHostComponent = queryHostComponent + " " - + " type:" + comp; - if (components.size() <= count) - queryHostComponent = queryHostComponent + " ) "; - else - queryHostComponent = queryHostComponent + " OR "; - flagComp = 1; - } - queryHostComponent = queryHostComponent + " ) "; - flagHost = 1; - } - } catch (JSONException e) { - logger.error(e); - } - } - if (selectedCompQuery != null && !selectedCompQuery.equals("")) { - if (queryHostComponent == null || queryHostComponent.equals("")) - queryHostComponent = selectedCompQuery; - else - queryHostComponent = queryHostComponent + " OR " - + selectedCompQuery; - } - return queryHostComponent; - } +// public String buildQueryFromJSONCompHost(String jsonHCNames, +// String selectedComponent) { +// String queryHostComponent = ""; +// // Building and adding exclude string to filters +// String selectedCompQuery = ""; +// if (!stringUtil.isEmpty(selectedComponent)) { +// String[] selectedComponents = selectedComponent +// .split(LogSearchConstants.LIST_SEPARATOR); +// selectedCompQuery = solrUtil.orList(LogSearchConstants.SOLR_COMPONENT, +// selectedComponents); +// } +// +// // Building Query of Host and Components from given json +// if (jsonHCNames != null && !jsonHCNames.equals("") +// && !jsonHCNames.equals("[]")) { +// +// try { +// JSONArray jarray = new JSONArray(jsonHCNames); +// int flagHost = 0; +// int flagComp; +// int count; +// for (int i = 0; i < jarray.length(); i++) { +// if (flagHost == 1) +// queryHostComponent = queryHostComponent + " OR "; +// JSONObject jsonObject = jarray.getJSONObject(i); +// String host = jsonObject.getString("h"); +// queryHostComponent = queryHostComponent + "( host:" + host; +// List<String> components = JSONUtil.JSONToList(jsonObject +// .getJSONArray("c")); +// if (!components.isEmpty()) +// queryHostComponent = queryHostComponent + " AND "; +// +// flagComp = 0; +// count = 0; +// for (String comp : components) { +// if (flagComp == 0) +// queryHostComponent = queryHostComponent + " ( "; +// count += 1; +// queryHostComponent = queryHostComponent + " " + " type:" + comp; +// if (components.size() <= count) +// queryHostComponent = queryHostComponent + " ) "; +// else +// queryHostComponent = queryHostComponent + " OR "; +// flagComp = 1; +// } +// queryHostComponent = queryHostComponent + " ) "; +// flagHost = 1; +// } +// } catch (JSONException e) { +// logger.error(e); +// } +// } +// if (selectedCompQuery != null && !selectedCompQuery.equals("")) { +// if (queryHostComponent == null || queryHostComponent.equals("")) +// queryHostComponent = selectedCompQuery; +// else +// queryHostComponent = queryHostComponent + " OR " + selectedCompQuery; +// } +// return queryHostComponent; +// } // JSON BuildMethods @@ -386,4 +410,60 @@ public abstract class QueryGenerationBase extends QueryBase { logger.info("Build JSONQuery is :- " + jsonQuery); return jsonQuery; } + + public String buildListQuery(String paramValue, String solrFieldName, + CONDITION condition) { + if (!stringUtil.isEmpty(paramValue)) { + String[] values = paramValue.split(LogSearchConstants.LIST_SEPARATOR); + switch (condition) { + case OR: + return solrUtil.orList(solrFieldName, values,"*"); + case AND: + return solrUtil.andList(solrFieldName, values, ""); + default: + logger.error("Invalid condition " + condition.name()); + } + } + return ""; + } + + + public void addFilterQueryFromArray(SolrQuery solrQuery, String jsonArrStr, + String solrFieldName, CONDITION condition) { + if (!stringUtil.isEmpty(jsonArrStr) && condition != null && solrQuery!=null) { + Gson gson = new Gson(); + String[] arr = null; + try { + arr = gson.fromJson(jsonArrStr, String[].class); + } catch (Exception exception) { + logger.error("Invaild json array:" + jsonArrStr); + return; + } + String query;; + switch (condition) { + case OR: + query = solrUtil.orList(solrFieldName, arr,""); + break; + case AND: + query = solrUtil.andList(solrFieldName, arr, ""); + break; + default: + query=null; + logger.error("Invalid condition :" + condition.name()); + } + if (!stringUtil.isEmpty(query)) { + solrQuery.addFilterQuery(query); + } + } + } + + public void addFilter(SolrQuery solrQuery, String paramValue, + String solrFieldName, CONDITION condition) { + String filterQuery = buildListQuery(paramValue, solrFieldName, condition); + if (!stringUtil.isEmpty(filterQuery)) { + if (solrQuery != null) { + solrQuery.addFilterQuery(filterQuery); + } + } + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/AuditREST.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/AuditREST.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/AuditREST.java index 6e47d34..92bfb01 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/AuditREST.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/AuditREST.java @@ -28,8 +28,6 @@ import javax.ws.rs.core.Response; import org.apache.ambari.logsearch.common.SearchCriteria; import org.apache.ambari.logsearch.manager.AuditMgr; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/DashboardREST.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/DashboardREST.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/DashboardREST.java index 5f56ccb..1e107ed 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/DashboardREST.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/DashboardREST.java @@ -114,7 +114,7 @@ public class DashboardREST { searchCriteria .addParam("startDate", request.getParameter("start_time")); searchCriteria.addParam("endDate", request.getParameter("end_time")); - return logMgr.getComponenetsCount(searchCriteria); + return logMgr.getComponentsCount(searchCriteria); } @GET @@ -188,7 +188,6 @@ public class DashboardREST { searchCriteria.addParam("hostLogFile", request.getParameter("host")); searchCriteria.addParam("compLogFile", request.getParameter("component")); - searchCriteria.addParam("unit", request.getParameter("unit")); searchCriteria.addParam("format", request.getParameter("format")); searchCriteria.addParam("utcOffset", request.getParameter("utcOffset")); return logMgr.exportToTextFile(searchCriteria); @@ -250,14 +249,6 @@ public class DashboardREST { } @GET - @Path("/getCurrentPageOfKeywordSearch") - @Produces({"application/json"}) - public String getCurrentPageOfKeywordSearch(@Context HttpServletRequest request) { - String requestDate = (String) request.getParameter("requestDate"); - return logMgr.getCurrentPageOfKeywordSearch(requestDate); - } - - @GET @Path("/getAnyGraphData") @Produces({"application/json"}) public String getAnyGraphData(@Context HttpServletRequest request) { @@ -290,17 +281,6 @@ public class DashboardREST { } @GET - @Path("/getSuggestoins") - @Produces({"application/json"}) - public String getSuggestions(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.addParam("fieldName", request.getParameter("fieldName")); - searchCriteria.addParam("valueToSuggest", - request.getParameter("valueToSuggest")); - return logMgr.getSuggestions(searchCriteria); - } - - @GET @Path("/getHadoopServiceConfigJSON") @Produces({"application/json"}) public String getHadoopServiceConfigJSON() { http://git-wip-us.apache.org/repos/asf/ambari/blob/888faf26/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java index c459ab7..40b215c 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java @@ -33,8 +33,6 @@ import org.apache.ambari.logsearch.common.LogSearchConstants; import org.apache.ambari.logsearch.common.SearchCriteria; import org.apache.ambari.logsearch.manager.UserConfigMgr; import org.apache.ambari.logsearch.util.RESTErrorUtil; -import org.apache.ambari.logsearch.view.VLogfeederFilter; -import org.apache.ambari.logsearch.view.VLogfeederFilterWrapper; import org.apache.ambari.logsearch.view.VUserConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope;
