http://git-wip-us.apache.org/repos/asf/ambari/blob/c7f1e707/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java index 287ff6c..85b5fda 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java @@ -19,324 +19,405 @@ package org.apache.ambari.logsearch.graph; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; -import org.apache.ambari.logsearch.common.LogSearchConstants; -import org.apache.ambari.logsearch.common.MessageEnums; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import org.apache.ambari.logsearch.model.response.BarGraphData; import org.apache.ambari.logsearch.model.response.BarGraphDataListResponse; +import org.apache.ambari.logsearch.model.response.CountData; +import org.apache.ambari.logsearch.model.response.CountDataListResponse; +import org.apache.ambari.logsearch.model.response.GraphData; +import org.apache.ambari.logsearch.model.response.GraphDataListResponse; import org.apache.ambari.logsearch.model.response.NameValueData; -import org.apache.ambari.logsearch.query.model.SearchCriteria; -import org.apache.ambari.logsearch.dao.SolrDaoBase; -import org.apache.ambari.logsearch.query.QueryGeneration; -import org.apache.ambari.logsearch.util.RESTErrorUtil; -import org.apache.ambari.logsearch.util.SolrUtil; +import org.apache.ambari.logsearch.model.response.NameValueDataListResponse; +import org.apache.ambari.logsearch.model.response.NodeData; +import org.apache.ambari.logsearch.model.response.NodeListResponse; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; -import org.apache.log4j.Logger; -import org.apache.solr.client.solrj.SolrQuery; -import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.FacetField; import org.apache.solr.client.solrj.response.FacetField.Count; +import org.apache.solr.client.solrj.response.PivotField; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.client.solrj.response.RangeFacet; -import org.apache.solr.common.SolrException; -import org.apache.solr.common.util.SimpleOrderedMap; -import org.springframework.stereotype.Component; +import org.apache.solr.common.util.NamedList; -import javax.inject.Inject; +import javax.inject.Named; -@Component -public class GraphDataGenerator extends GraphDataGeneratorBase { +@Named +public class GraphDataGenerator { - private static final Logger logger = Logger.getLogger(GraphDataGenerator.class); + public BarGraphDataListResponse generateBarGraphDataResponseWithRanges(QueryResponse response, String typeField, boolean typeUppercase) { + BarGraphDataListResponse dataList = new BarGraphDataListResponse(); + if (response == null) { + return dataList; + } + NamedList<List<PivotField>> facetPivotResponse = response.getFacetPivot(); + if (response.getFacetPivot() == null) { + return dataList; + } + List<PivotField> pivotFields = facetPivotResponse.get(typeField); + for (int pivotIndex = 0; pivotIndex < pivotFields.size(); pivotIndex++) { + PivotField pivotField = facetPivotResponse.get(typeField).get(pivotIndex); + List<NameValueData> nameValues = generateNameValueDataList(pivotField.getFacetRanges()); + BarGraphData barGraphData = new BarGraphData(); + barGraphData.setDataCount(nameValues); + String typeValue = typeUppercase ? StringUtils.upperCase(pivotField.getValue().toString()) : pivotField.getValue().toString(); + barGraphData.setName(typeValue); + dataList.getGraphData().add(barGraphData); + } + return dataList; + } - @Inject - private QueryGeneration queryGenerator; + public BarGraphDataListResponse generateSecondLevelBarGraphDataResponse(QueryResponse response, int val) { + BarGraphDataListResponse barGraphDataListResponse = new BarGraphDataListResponse(); + NamedList<List<PivotField>> pivotFieldNameList = response.getFacetPivot(); + if (pivotFieldNameList == null) { + return barGraphDataListResponse; + } + List<PivotField> pivotFields = pivotFieldNameList.getVal(val); + List<BarGraphData> barGraphDataList = new ArrayList<>(); + for (PivotField pivotField : pivotFields) { + BarGraphData barGraphData = new BarGraphData(); + barGraphData.setName(String.valueOf(pivotField.getValue())); + List<PivotField> secondLevelPivotFields = pivotField.getPivot(); + List<NameValueData> nameValueDataList = new ArrayList<>(); + for (PivotField sPivotField : secondLevelPivotFields) { + NameValueData nvD = new NameValueData(); + nvD.setName(String.valueOf(sPivotField.getValue())); + nvD.setValue(String.valueOf(sPivotField.getCount())); + nameValueDataList.add(nvD); + } + barGraphData.setDataCount(nameValueDataList); + barGraphDataList.add(barGraphData); + } + barGraphDataListResponse.setGraphData(barGraphDataList); + return barGraphDataListResponse; + } - public BarGraphDataListResponse getAnyGraphData(SearchCriteria searchCriteria, SolrDaoBase solrDaoBase, SolrQuery solrQuery) { - // X axis credentials - String xAxisField = (String) searchCriteria.getParamValue("xAxis"); - String stackField = (String) searchCriteria.getParamValue("stackBy"); - String from = (String) searchCriteria.getParamValue("from"); - String to = (String) searchCriteria.getParamValue("to"); - String unit = (String) searchCriteria.getParamValue("unit"); - String typeXAxis = solrDaoBase.schemaFieldNameMap.get(xAxisField); - typeXAxis = (StringUtils.isBlank(typeXAxis)) ? "string" : typeXAxis; + public BarGraphDataListResponse generateBarGraphFromFieldFacet(QueryResponse response, String facetField) { + BarGraphDataListResponse dataList = new BarGraphDataListResponse(); + Collection<BarGraphData> vaDatas = new ArrayList<>(); + dataList.setGraphData(vaDatas); + if (response == null) { + return dataList; + } + FacetField facetFieldObj = response.getFacetField(facetField); + if (facetFieldObj == null) { + return dataList; + } + + List<Count> counts = facetFieldObj.getValues(); + if (counts == null) { + return dataList; + } + for (Count cnt : counts) { + List<NameValueData> valueList = new ArrayList<>(); + BarGraphData vBarGraphData = new BarGraphData(); + vaDatas.add(vBarGraphData); + NameValueData vNameValue = new NameValueData(); + vNameValue.setName(cnt.getName()); + vBarGraphData.setName(cnt.getName().toUpperCase()); + vNameValue.setValue("" + cnt.getCount()); + valueList.add(vNameValue); + vBarGraphData.setDataCount(valueList); + } + return dataList; + } + + public List<NameValueData> generateNameValueDataList(List<RangeFacet> rangeFacet) { + List<NameValueData> nameValues = new ArrayList<>(); + if (rangeFacet == null) { + return nameValues; + } + RangeFacet range = rangeFacet.get(0); - // Y axis credentials - String yAxisField = (String) searchCriteria.getParamValue("yAxis"); - // add updated typeXAxis as a type parameter - searchCriteria.addParam("type", typeXAxis); - String fieldTime = (String) searchCriteria.getParamValue("fieldTime"); - // decide graph type based on user request parameter - GraphType garphType = getGraphType(searchCriteria); - switch (garphType) { - case NORMAL_GRAPH: - return normalGraph(xAxisField, yAxisField, from, to, solrDaoBase, typeXAxis, fieldTime, solrQuery); - case RANGE_NON_STACK_GRAPH: - return rangeNonStackGraph(xAxisField, yAxisField, from, to, unit, solrDaoBase, typeXAxis, fieldTime, solrQuery); - case NON_RANGE_STACK_GRAPH: - return nonRangeStackGraph(xAxisField, yAxisField, stackField, from, to, solrDaoBase, typeXAxis, fieldTime, solrQuery); - case RANGE_STACK_GRAPH: - return rangeStackGraph(xAxisField, stackField, from, to, unit, solrDaoBase, solrQuery); - default: - logger.warn("Invalid graph type :" + garphType.name()); - return null; + if (range == null) { + return nameValues; + } + List<RangeFacet.Count> listCount = range.getCounts(); + for (RangeFacet.Count cnt : listCount) { + NameValueData nameValue = new NameValueData(); + nameValue.setName(String.valueOf(cnt.getValue())); + nameValue.setValue(String.valueOf(cnt.getCount())); + nameValues.add(nameValue); } + return nameValues; } - private GraphType getGraphType(SearchCriteria searchCriteria) { - // default graph type is unknown - GraphType graphType = GraphType.UNKNOWN; - // X axis credentials - String xAxisField = (String) searchCriteria.getParamValue("xAxis"); - String stackField = (String) searchCriteria.getParamValue("stackBy"); - String from = (String) searchCriteria.getParamValue("from"); - String to = (String) searchCriteria.getParamValue("to"); - String xType = (String) searchCriteria.getParamValue("type"); - if (xType != null) { - // Y axis credentials - String yAxisField = (String) searchCriteria.getParamValue("yAxis"); - if (StringUtils.isBlank(xAxisField) || StringUtils.isBlank(yAxisField)) { - graphType = GraphType.UNKNOWN; - } else if (StringUtils.isBlank(stackField) && !StringUtils.isBlank(to) && !StringUtils.isBlank(from) - && !(xType.contains("date") || xType.contains("time"))) { - graphType = GraphType.NORMAL_GRAPH; - } else if (StringUtils.isBlank(stackField) && !StringUtils.isBlank(to) && !StringUtils.isBlank(from) - && (xType.contains("date") || xType.contains("time"))) { - graphType = GraphType.RANGE_NON_STACK_GRAPH; - } else if (!StringUtils.isBlank(stackField) && !StringUtils.isBlank(to) && !StringUtils.isBlank(from) - && !(xType.contains("date") || xType.contains("time"))) { - graphType = GraphType.NON_RANGE_STACK_GRAPH; - } else if (!StringUtils.isBlank(stackField) && !StringUtils.isBlank(to) && !StringUtils.isBlank(from) - && (xType.contains("date") || xType.contains("time"))) { - graphType = GraphType.RANGE_STACK_GRAPH; + public List<Count> generateCount(QueryResponse response) { + List<Count> counts = new ArrayList<>(); + List<FacetField> facetFields = null; + FacetField facetField = null; + if (response == null) { + return counts; + } + + facetFields = response.getFacetFields(); + if (facetFields == null) { + return counts; + } + if (!facetFields.isEmpty()) { + facetField = facetFields.get(0); + } + if (facetField != null) { + counts = facetField.getValues(); + } + return counts; + } + + public BarGraphDataListResponse getGraphDataWithDefaults(QueryResponse queryResponse, String field, String[] defaults) { + BarGraphDataListResponse response = new BarGraphDataListResponse(); + BarGraphData barGraphData = new BarGraphData(); + List<NameValueData> nameValues = generateLevelCountData(queryResponse, defaults); + barGraphData.setName(field); + barGraphData.setDataCount(nameValues); + response.setGraphData(Lists.newArrayList(barGraphData)); + return response; + } + + public NameValueDataListResponse getNameValueDataListResponseWithDefaults(QueryResponse response, String[] defaults) { + NameValueDataListResponse result = new NameValueDataListResponse(); + result.setvNameValues(generateLevelCountData(response, defaults)); + return result; + } + + public NodeListResponse generateServiceNodeTreeFromFacetResponse(QueryResponse queryResponse, + String firstHierarchy, String secondHierarchy, + String firstType, String secondType) { + NodeListResponse response = new NodeListResponse(); + if (queryResponse == null) { + return response; + } + NamedList<List<PivotField>> namedPivotFieldList = queryResponse.getFacetPivot(); + List<PivotField> firstLevelPivots = namedPivotFieldList.get(firstHierarchy); + List<PivotField> secondLevelPivots = namedPivotFieldList.get(secondHierarchy); + if (!CollectionUtils.isNotEmpty(firstLevelPivots) || !CollectionUtils.isNotEmpty(secondLevelPivots)) { + return response; + } + List<NodeData> nodeDataList = buidTreeData(firstLevelPivots, secondLevelPivots, firstType, secondType); + response.setvNodeList(nodeDataList); + return response; + } + + public NodeListResponse generateOneLevelServiceNodeTree(QueryResponse queryResponse, String componentLevelHirachy) { + NodeListResponse response = new NodeListResponse(); + List<NodeData> datatList = new ArrayList<>(); + List<List<PivotField>> listPivotField = new ArrayList<>(); + NamedList<List<PivotField>> namedList = queryResponse.getFacetPivot(); + if (namedList != null) { + listPivotField = namedList.getAll(componentLevelHirachy); + } + List<PivotField> secondHirarchicalPivotFields = null; + if (listPivotField == null || listPivotField.isEmpty()) { + return response; + } else { + secondHirarchicalPivotFields = listPivotField.get(0); + } + for (PivotField singlePivotField : secondHirarchicalPivotFields) { + if (singlePivotField != null) { + NodeData comp = new NodeData(); + comp.setName("" + singlePivotField.getValue()); + List<PivotField> levelList = singlePivotField.getPivot(); + List<NameValueData> levelCountList = new ArrayList<>(); + comp.setLogLevelCount(levelCountList); + if (levelList != null) { + for (PivotField levelPivot : levelList) { + NameValueData level = new NameValueData(); + level.setName(("" + levelPivot.getValue()).toUpperCase()); + level.setValue("" + levelPivot.getCount()); + levelCountList.add(level); + } + } + datatList.add(comp); } } - return graphType; + response.setvNodeList(datatList); + return response; } - @SuppressWarnings("unchecked") - private BarGraphDataListResponse normalGraph(String xAxisField, String yAxisField, String from, String to, SolrDaoBase solrDaoBase, - String typeXAxis, String fieldTime, SolrQuery solrQuery) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - Collection<BarGraphData> vBarGraphDatas = new ArrayList<BarGraphData>(); - BarGraphData vBarGraphData = new BarGraphData(); - Collection<NameValueData> vNameValues = new ArrayList<NameValueData>(); - SolrUtil.setMainQuery(solrQuery, null); - queryGenerator.setSingleIncludeFilter(solrQuery, fieldTime, "[" + from + " TO " + to + "]"); - if (typeXAxis.contains("string") || typeXAxis.contains("key_lower_case") || typeXAxis.contains("text")) { - SolrUtil.setFacetField(solrQuery, xAxisField); - try { - QueryResponse response = solrDaoBase.process(solrQuery); - if (response != null && response.getResults() != null) { - long count = response.getResults().getNumFound(); - if (count > 0) { - FacetField facetField = response.getFacetField(xAxisField); - if (facetField != null) { - List<Count> countValues = facetField.getValues(); - if (countValues != null) { - for (Count countValue : countValues) { - if (countValue != null) { - NameValueData vNameValue = new NameValueData(); - vNameValue.setName(countValue.getName()); - vNameValue.setValue("" + countValue.getCount()); - vNameValues.add(vNameValue); - } - } + private List<NodeData> buidTreeData(List<PivotField> firstHirarchicalPivotFields, + List<PivotField> secondHirarchicalPivotFields, + String firstPriority, String secondPriority) { + List<NodeData> extensionTree = new ArrayList<>(); + if (firstHirarchicalPivotFields != null) { + for (PivotField pivotHost : firstHirarchicalPivotFields) { + if (pivotHost != null) { + NodeData hostNode = new NodeData(); + String name = (pivotHost.getValue() == null ? "" : "" + pivotHost.getValue()); + String value = "" + pivotHost.getCount(); + if (!StringUtils.isBlank(name)) { + hostNode.setName(name); + } + if (!StringUtils.isBlank(value)) { + hostNode.setValue(value); + } + if (!StringUtils.isBlank(firstPriority)) { + hostNode.setType(firstPriority); + } + + hostNode.setParent(true); + hostNode.setRoot(true); + PivotField hostPivot = null; + for (PivotField searchHost : secondHirarchicalPivotFields) { + if (!StringUtils.isBlank(hostNode.getName()) + && hostNode.getName().equals(searchHost.getValue())) { + hostPivot = searchHost; + break; + } + } + List<PivotField> pivotLevelHost = hostPivot == null? null : hostPivot.getPivot(); + if (pivotLevelHost != null) { + Collection<NameValueData> logLevelCount = new ArrayList<>(); + for (PivotField pivotLevel : pivotLevelHost) { + if (pivotLevel != null) { + NameValueData vnameValue = new NameValueData(); + String levelName = (pivotLevel.getValue() == null ? "" : "" + pivotLevel.getValue()); + vnameValue.setName(levelName.toUpperCase()); + vnameValue.setValue("" + pivotLevel.getCount()); + logLevelCount.add(vnameValue); } - vBarGraphData.setName(xAxisField); - vBarGraphDatas.add(vBarGraphData); - dataList.setGraphData(vBarGraphDatas); } + hostNode.setLogLevelCount(logLevelCount); } - } - if (xAxisField.equalsIgnoreCase(LogSearchConstants.SOLR_LEVEL)) { - Collection<NameValueData> sortedVNameValues = new ArrayList<NameValueData>(); - for (String level : LogSearchConstants.SUPPORTED_LOG_LEVEL) { - NameValueData value = new NameValueData(); - value.setName(level); - String val = "0"; - for (NameValueData valueLevel : vNameValues) { - if (valueLevel.getName().equalsIgnoreCase(level)) { - val = valueLevel.getValue(); - break; + List<PivotField> pivotComponents = pivotHost.getPivot(); + if (pivotComponents != null) { + Collection<NodeData> componentNodes = new ArrayList<>(); + for (PivotField pivotComp : pivotComponents) { + if (pivotComp != null) { + NodeData compNode = new NodeData(); + String compName = (pivotComp.getValue() == null ? "" : "" + pivotComp.getValue()); + compNode.setName(compName); + if (!StringUtils.isBlank(secondPriority)) { + compNode.setType(secondPriority); + } + compNode.setValue("" + pivotComp.getCount()); + compNode.setParent(false); + compNode.setRoot(false); + List<PivotField> pivotLevels = pivotComp.getPivot(); + if (pivotLevels != null) { + Collection<NameValueData> logLevelCount = new ArrayList<>(); + for (PivotField pivotLevel : pivotLevels) { + if (pivotLevel != null) { + NameValueData vnameValue = new NameValueData(); + String compLevel = pivotLevel.getValue() == null ? "" : "" + pivotLevel.getValue(); + vnameValue.setName((compLevel).toUpperCase()); + + vnameValue.setValue("" + pivotLevel.getCount()); + logLevelCount.add(vnameValue); + } + } + compNode.setLogLevelCount(logLevelCount); + } + componentNodes.add(compNode); } } - value.setValue(val); - sortedVNameValues.add(value); + hostNode.setChilds(componentNodes); } - vBarGraphData.setDataCount(sortedVNameValues); - } else { - vBarGraphData.setDataCount(vNameValues); - } - return dataList; - } catch (SolrException | SolrServerException | IOException e) { - String query = solrQuery != null ? solrQuery.toQueryString() : ""; - logger.error("Got exception for solr query :" + query, e.getCause()); - } - } else { - SolrUtil.setRowCount(solrQuery, 0); - String yAxis = yAxisField.contains("count") ? "sum" : yAxisField; - String jsonQuery = queryGenerator.buildJSONFacetAggregatedFuncitonQuery(yAxis, xAxisField); - SolrUtil.setJSONFacet(solrQuery, jsonQuery); - try { - QueryResponse response = solrDaoBase.process(solrQuery); - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); - if (jsonFacetResponse.toString().equals("{count=0}")) { - return dataList; + extensionTree.add(hostNode); } - NameValueData value = new NameValueData(); - String sum = (String) jsonFacetResponse.getVal(1); - value.setName(xAxisField); - value.setValue(sum != null ? sum.substring(0, sum.indexOf(".")) : ""); - vNameValues.add(value); - vBarGraphData.setDataCount(vNameValues); - vBarGraphData.setName(xAxisField); - vBarGraphDatas.add(vBarGraphData); - dataList.setGraphData(vBarGraphDatas); - return dataList; - } catch (SolrException | SolrServerException | IOException e) { - String query = solrQuery != null ? solrQuery.toQueryString() : ""; - logger.error("Got exception for solr query :" + query, e.getCause()); } } - return null; + + return extensionTree; } - @SuppressWarnings("unchecked") - private BarGraphDataListResponse nonRangeStackGraph(String xAxisField, String yAxisField, String stackField, String from, String to, - SolrDaoBase solrDaoBase, String typeXAxis, String fieldTime, SolrQuery solrQuery) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - Collection<BarGraphData> vGraphData = new ArrayList<BarGraphData>(); - String mainQuery = queryGenerator.buildInclusiveRangeFilterQuery(fieldTime, from, to); - SolrUtil.setMainQuery(solrQuery, mainQuery); - SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); - String jsonQuery = ""; - if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { - String function = (yAxisField.contains("count")) ? "sum" : yAxisField; - jsonQuery = queryGenerator.buidlJSONFacetRangeQueryForNumber(stackField, xAxisField, function); - } else { - jsonQuery = queryGenerator.buildJsonFacetTermsRangeQuery(stackField, xAxisField); - } - try { - SolrUtil.setJSONFacet(solrQuery, jsonQuery); - dataList.setGraphData(vGraphData); - QueryResponse response = solrDaoBase.process(solrQuery); - if (response == null) { - response = new QueryResponse(); - } - Long count = response.getResults().getNumFound(); - if (count <= 0) { - return dataList; - } - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); - if (jsonFacetResponse == null || jsonFacetResponse.toString().equals("{count=0}")) { - return dataList; - } - extractNonRangeStackValuesFromBucket(jsonFacetResponse, stackField, vGraphData, typeXAxis); - if (LogSearchConstants.SOLR_LEVEL.equalsIgnoreCase(stackField) && LogSearchConstants.SOLR_LEVEL.equalsIgnoreCase(xAxisField)) { - Collection<BarGraphData> levelVGraphData = dataList.getGraphData(); - for (BarGraphData graphData : levelVGraphData) { - Collection<NameValueData> valueList = graphData.getDataCount(); - Collection<NameValueData> valueListSorted = new ArrayList<NameValueData>(); - for (String level : LogSearchConstants.SUPPORTED_LOG_LEVEL) { - String val = "0"; - for (NameValueData value : valueList) { - if (value.getName().equalsIgnoreCase(level)) { - val = value.getValue(); - break; - } - } - NameValueData v1 = new NameValueData(); - v1.setName(level.toUpperCase()); - v1.setValue(val); - valueListSorted.add(v1); - } - graphData.setDataCount(valueListSorted); - } + private List<NameValueData> generateLevelCountData(QueryResponse queryResponse, String[] defaults) { + List<NameValueData> nameValues = Lists.newLinkedList(); + Map<String, NameValueData> linkedMap = Maps.newLinkedHashMap(); + List<Count> counts = generateCount(queryResponse); + if (!CollectionUtils.isNotEmpty(counts)) { + return nameValues; + } + for (String defaultValue : defaults) { + NameValueData nameValue = new NameValueData(); + nameValue.setName(defaultValue); + nameValue.setValue("0"); + linkedMap.put(defaultValue, nameValue); + } + for (Count count : counts) { + if (!linkedMap.containsKey(count.getName())) { + NameValueData nameValue = new NameValueData(); + String name = count.getName().toUpperCase(); + nameValue.setName(name); + nameValue.setValue(String.valueOf(count.getCount())); + linkedMap.put(name, nameValue); } - return dataList; - } catch (SolrException | IOException | SolrServerException e) { - String query = solrQuery != null ? solrQuery.toQueryString() : ""; - logger.error("Got exception for solr query :" + query, e.getCause()); - throw RESTErrorUtil.createRESTException(MessageEnums.DATA_NOT_FOUND.getMessage().getMessage(), MessageEnums.DATA_NOT_FOUND); } + + for (Map.Entry<String, NameValueData> nameValueDataEntry : linkedMap.entrySet()) { + nameValues.add(nameValueDataEntry.getValue()); + } + return nameValues; } - @SuppressWarnings("unchecked") - private BarGraphDataListResponse rangeNonStackGraph(String xAxisField, String yAxisField, String from, String to, String unit, - SolrDaoBase solrDaoBase, String typeXAxis, String fieldTime, SolrQuery solrQuery) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - Collection<BarGraphData> vBarGraphDatas = new ArrayList<BarGraphData>(); - BarGraphData vBarGraphData = new BarGraphData(); - Collection<NameValueData> vNameValues = new ArrayList<NameValueData>(); - SolrUtil.setMainQuery(solrQuery, null); - if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) { - queryGenerator.setSingleRangeFilter(solrQuery, fieldTime, from, to); - return normalGraph(xAxisField, yAxisField, from, to, solrDaoBase, typeXAxis, fieldTime, solrQuery); - } else { - try { - SolrUtil.setFacetRange(solrQuery, xAxisField, from, to, unit); - QueryResponse response = solrDaoBase.process(solrQuery); - if (response != null) { - Long count = response.getResults().getNumFound(); - if (count > 0) { - @SuppressWarnings("rawtypes") - List<RangeFacet> rangeFacet = response.getFacetRanges(); - if (rangeFacet != null && rangeFacet.size() > 0) { - List<RangeFacet.Count> listCount = rangeFacet.get(0).getCounts(); - if (listCount != null) { - for (RangeFacet.Count cnt : listCount) { - NameValueData vNameValue = new NameValueData(); - vNameValue.setName(cnt.getValue()); - vNameValue.setValue("" + cnt.getCount()); - vNameValues.add(vNameValue); - } - vBarGraphData.setDataCount(vNameValues); - vBarGraphDatas.add(vBarGraphData); - vBarGraphData.setName(xAxisField); - dataList.setGraphData(vBarGraphDatas); - } - } - } - } - return dataList; - } catch (SolrException | SolrServerException | IOException e) { - logger.error("Got exception for solr query :" + solrQuery, e.getCause()); + public CountDataListResponse generateCountResponseByField(QueryResponse response, String field) { + CountDataListResponse collection = new CountDataListResponse(); + List<CountData> vCounts = new ArrayList<>(); + if (response == null) { + return collection; + } + FacetField facetFields = response.getFacetField(field); + if (facetFields == null) { + return collection; + } + List<Count> fieldList = facetFields.getValues(); + + if (fieldList == null) { + return collection; + } + + for (Count cnt : fieldList) { + if (cnt != null) { + CountData vCount = new CountData(); + vCount.setName(cnt.getName()); + vCount.setCount(cnt.getCount()); + vCounts.add(vCount); } } - return null; + collection.setvCounts(vCounts); + return collection; } - @SuppressWarnings("unchecked") - private BarGraphDataListResponse rangeStackGraph(String xAxisField, String stackField, String from, String to, String unit, - SolrDaoBase solrDaoBase, SolrQuery solrQuery) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - List<BarGraphData> histogramData = new ArrayList<BarGraphData>(); - SolrUtil.setMainQuery(solrQuery, null); - SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); - String jsonHistogramQuery = - queryGenerator.buildJSONFacetTermTimeRangeQuery(stackField, xAxisField, from, to, unit).replace("\\", ""); - try { - solrQuery.set("json.facet", jsonHistogramQuery); - SolrUtil.setRowCount(solrQuery, 0); - QueryResponse response = solrDaoBase.process(solrQuery); - if (response != null) { - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); - if (jsonFacetResponse == null || jsonFacetResponse.toString().equals("{count=0}")) { - return dataList; + public GraphDataListResponse generateSimpleGraphResponse(QueryResponse response, String hierarchy) { + GraphDataListResponse graphInfo = new GraphDataListResponse(); + if (response == null) { + return graphInfo; + } + List<List<PivotField>> hirarchicalPivotField = new ArrayList<List<PivotField>>(); + List<GraphData> dataList = new ArrayList<>(); + NamedList<List<PivotField>> namedList = response.getFacetPivot(); + if (namedList != null) { + hirarchicalPivotField = namedList.getAll(hierarchy); + } + if (!hirarchicalPivotField.isEmpty()) { + dataList = buidGraphData(hirarchicalPivotField.get(0)); + } + if (!dataList.isEmpty()) { + graphInfo.setGraphData(dataList); + } + + return graphInfo; + } + + private List<GraphData> buidGraphData(List<PivotField> pivotFields) { + List<GraphData> logList = new ArrayList<>(); + if (pivotFields != null) { + for (PivotField pivotField : pivotFields) { + if (pivotField != null) { + GraphData logLevel = new GraphData(); + logLevel.setName("" + pivotField.getValue()); + logLevel.setCount(Long.valueOf(pivotField.getCount())); + if (pivotField.getPivot() != null) { + logLevel.setDataList(buidGraphData(pivotField.getPivot())); + } + logList.add(logLevel); } - extractRangeStackValuesFromBucket(jsonFacetResponse, "x", "y", histogramData); - dataList.setGraphData(histogramData); } - return dataList; - } catch (SolrException | IOException | SolrServerException e) { - logger.error("Got exception for solr query :" + solrQuery, e.getCause()); } - return null; + return logList; } }
http://git-wip-us.apache.org/repos/asf/ambari/blob/c7f1e707/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java deleted file mode 100644 index c57e0e9..0000000 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.ambari.logsearch.graph; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; - -import org.apache.ambari.logsearch.manager.ManagerBase; -import org.apache.ambari.logsearch.model.response.BarGraphData; -import org.apache.ambari.logsearch.model.response.NameValueData; -import org.apache.ambari.logsearch.util.DateUtil; -import org.apache.commons.lang.StringUtils; -import org.apache.solr.common.util.NamedList; -import org.apache.solr.common.util.SimpleOrderedMap; - -class GraphDataGeneratorBase { - - private static final String BUCKETS = "buckets"; - - private static enum DataType { - LONG("long"), - DOUBLE("double"), - FLOAT("long"), - INT("long"); - - private String type; - - DataType(String type) { - this.type = type; - } - - String getType() { - return type; - } - } - - protected static enum GraphType { - UNKNOWN, - NORMAL_GRAPH, - RANGE_NON_STACK_GRAPH, - NON_RANGE_STACK_GRAPH, - RANGE_STACK_GRAPH; - } - - @SuppressWarnings("unchecked") - protected void extractRangeStackValuesFromBucket(SimpleOrderedMap<Object> jsonFacetResponse, String outerField, - String innerField, List<BarGraphData> histogramData) { - if (jsonFacetResponse != null) { - NamedList<Object> stack = (NamedList<Object>) jsonFacetResponse.get(outerField); - if (stack != null) { - ArrayList<Object> stackBuckets = (ArrayList<Object>) stack.get(BUCKETS); - if (stackBuckets != null) { - for (Object stackBucket : stackBuckets) { - BarGraphData vBarGraphData = new BarGraphData(); - SimpleOrderedMap<Object> level = (SimpleOrderedMap<Object>) stackBucket; - if (level != null) { - String name = level.getVal(0) != null ? level.getVal(0).toString().toUpperCase() : ""; - vBarGraphData.setName(name); - Collection<NameValueData> vNameValues = new ArrayList<NameValueData>(); - NamedList<Object> innerFiledValue = (NamedList<Object>) level.get(innerField); - if (innerFiledValue != null) { - ArrayList<Object> levelBuckets = (ArrayList<Object>) innerFiledValue.get(BUCKETS); - if (levelBuckets != null) { - for (Object levelBucket : levelBuckets) { - SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) levelBucket; - if (countValue != null) { - String innerName = DateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0)); - String innerValue = countValue.getVal(1) != null ? countValue.getVal(1).toString() : ""; - NameValueData vNameValue = new NameValueData(); - vNameValue.setName(innerName); - vNameValue.setValue(innerValue); - vNameValues.add(vNameValue); - } - } - } - } - vBarGraphData.setDataCount(vNameValues); - } - histogramData.add(vBarGraphData); - } - } - } - } - } - - @SuppressWarnings("unchecked") - protected boolean extractNonRangeStackValuesFromBucket(SimpleOrderedMap<Object> jsonFacetResponse, String level, - Collection<BarGraphData> vGraphDatas, String typeXAxis) { - boolean zeroFlag = true; - if (jsonFacetResponse == null || jsonFacetResponse.get(level) == null - || jsonFacetResponse.get(level).toString().equals("{count=0}")) { - return false; - } - NamedList<Object> levelList = (NamedList<Object>) jsonFacetResponse.get(level); - if (levelList != null) { - ArrayList<Object> bucketList = (ArrayList<Object>) levelList.get(BUCKETS); - if (bucketList != null) { - for (int index = 0; index < bucketList.size(); index++) { - SimpleOrderedMap<Object> valueCount = (SimpleOrderedMap<Object>) bucketList.get(index); - if (valueCount != null && valueCount.size() > 2) { - BarGraphData vGraphData = new BarGraphData(); - Collection<NameValueData> levelCounts = new ArrayList<NameValueData>(); - String name = valueCount.getVal(0) != null ? valueCount.getVal(0).toString().trim() : ""; - if (isTypeNumber(typeXAxis)) { - NameValueData nameValue = new NameValueData(); - Double sumValue = (Double) valueCount.getVal(2); - String value = "0";// default is zero - if (sumValue != null) { - value = "" + sumValue.longValue(); - } - nameValue.setName(name); - nameValue.setValue(value); - levelCounts.add(nameValue); - } else { - SimpleOrderedMap<Object> valueCountMap = (SimpleOrderedMap<Object>) valueCount.getVal(2); - if (valueCountMap != null) { - ArrayList<Object> buckets = (ArrayList<Object>) valueCountMap.get(BUCKETS); - if (buckets != null) { - for (int innerIndex = 0; innerIndex < buckets.size(); innerIndex++) { - SimpleOrderedMap<Object> innerValueCount = (SimpleOrderedMap<Object>) buckets.get(innerIndex); - if (innerValueCount != null) { - String innerName = innerValueCount.getVal(0) != null ? innerValueCount.getVal(0).toString().trim() : ""; - String innerValue = innerValueCount.getVal(1) != null ? innerValueCount.getVal(1).toString().trim() : ""; - NameValueData nameValue = new NameValueData(); - nameValue.setValue(innerValue); - nameValue.setName(innerName); - levelCounts.add(nameValue); - } - } - } - } - } - vGraphData.setName(name); - vGraphData.setDataCount(levelCounts); - vGraphDatas.add(vGraphData); - } - } - } - } - return zeroFlag; - } - - protected boolean isTypeNumber(String typeXAxis) { - if (StringUtils.isBlank(typeXAxis)) { - return false; - } else { - return typeXAxis.contains(DataType.LONG.getType()) || typeXAxis.contains(DataType.INT.getType()) - || typeXAxis.contains(DataType.FLOAT.getType()) || typeXAxis.contains(DataType.DOUBLE.getType()); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c7f1e707/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditLogsManager.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditLogsManager.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditLogsManager.java index 52482c2..aded1d4 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditLogsManager.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditLogsManager.java @@ -20,398 +20,148 @@ package org.apache.ambari.logsearch.manager; import javax.inject.Inject; +import javax.inject.Named; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.text.ParseException; +import java.io.StringWriter; import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; -import org.apache.ambari.logsearch.common.LogSearchConstants; -import org.apache.ambari.logsearch.common.ManageStartEndTime; +import freemarker.template.Configuration; +import freemarker.template.Template; +import freemarker.template.TemplateException; import org.apache.ambari.logsearch.common.MessageEnums; -import org.apache.ambari.logsearch.conf.SolrAuditLogPropsConfig; import org.apache.ambari.logsearch.dao.AuditSolrDao; import org.apache.ambari.logsearch.graph.GraphDataGenerator; +import org.apache.ambari.logsearch.model.request.impl.AuditBarGraphRequest; +import org.apache.ambari.logsearch.model.request.impl.AuditComponentRequest; +import org.apache.ambari.logsearch.model.request.impl.AuditLogRequest; +import org.apache.ambari.logsearch.model.request.impl.AuditServiceLoadRequest; +import org.apache.ambari.logsearch.model.request.impl.FieldAuditLogRequest; +import org.apache.ambari.logsearch.model.request.impl.UserExportRequest; import org.apache.ambari.logsearch.model.response.AuditLogResponse; -import org.apache.ambari.logsearch.model.response.BarGraphData; import org.apache.ambari.logsearch.model.response.BarGraphDataListResponse; import org.apache.ambari.logsearch.model.response.GroupListResponse; import org.apache.ambari.logsearch.model.response.LogData; -import org.apache.ambari.logsearch.model.response.LogSearchResponse; -import org.apache.ambari.logsearch.model.response.NameValueData; -import org.apache.ambari.logsearch.model.response.NameValueDataListResponse; -import org.apache.ambari.logsearch.query.model.AnyGraphSearchCriteria; -import org.apache.ambari.logsearch.query.model.AuditBarGraphSearchCriteria; -import org.apache.ambari.logsearch.query.model.CommonSearchCriteria; -import org.apache.ambari.logsearch.query.model.FieldAuditBarGraphSearchCriteria; -import org.apache.ambari.logsearch.query.model.FieldAuditLogSearchCriteria; -import org.apache.ambari.logsearch.query.model.UserExportSearchCriteria; +import org.apache.ambari.logsearch.solr.SolrConstants; import org.apache.ambari.logsearch.solr.model.SolrAuditLogData; import org.apache.ambari.logsearch.solr.model.SolrComponentTypeLogData; -import org.apache.ambari.logsearch.util.BizUtil; -import org.apache.ambari.logsearch.util.DateUtil; +import org.apache.ambari.logsearch.util.DownloadUtil; import org.apache.ambari.logsearch.util.RESTErrorUtil; -import org.apache.ambari.logsearch.util.SolrUtil; -import org.apache.ambari.logsearch.view.VResponse; -import org.apache.ambari.logsearch.query.model.AuditLogSearchCriteria; +import org.apache.ambari.logsearch.common.VResponse; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrQuery; -import org.apache.solr.client.solrj.SolrServerException; -import org.apache.solr.client.solrj.response.FacetField; import org.apache.solr.client.solrj.response.FacetField.Count; import org.apache.solr.client.solrj.response.QueryResponse; -import org.apache.solr.client.solrj.response.RangeFacet; -import org.apache.solr.common.SolrException; -import org.apache.solr.common.util.NamedList; -import org.apache.solr.common.util.SimpleOrderedMap; -import org.springframework.stereotype.Component; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.solr.core.query.SimpleFacetQuery; +import org.springframework.data.solr.core.query.SimpleQuery; -@Component +import static org.apache.ambari.logsearch.solr.SolrConstants.AuditLogConstants.AUDIT_COMPONENT; + +@Named public class AuditLogsManager extends ManagerBase<SolrAuditLogData, AuditLogResponse> { private static final Logger logger = Logger.getLogger(AuditLogsManager.class); + private static final String AUDIT_LOG_TEMPLATE = "audit_log_txt.ftl"; + @Inject private AuditSolrDao auditSolrDao; @Inject private GraphDataGenerator graphDataGenerator; @Inject - private SolrAuditLogPropsConfig solrAuditLogPropsConfig; + private ConversionService conversionService; + @Inject + private Configuration freemarkerConfiguration; - public AuditLogResponse getLogs(AuditLogSearchCriteria searchCriteria) { - Boolean isLastPage = searchCriteria.isLastPage(); - if (isLastPage) { - SolrQuery lastPageQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - LogSearchResponse logResponse = getLastPage(searchCriteria, LogSearchConstants.AUDIT_EVTTIME, auditSolrDao, lastPageQuery); - if (logResponse == null) { - logResponse = new AuditLogResponse(); - } - return (AuditLogResponse) logResponse; - } - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - return getLogAsPaginationProvided(solrQuery, auditSolrDao); + public AuditLogResponse getLogs(AuditLogRequest auditLogRequest) { + return getLogAsPaginationProvided(conversionService.convert(auditLogRequest, SimpleQuery.class), auditSolrDao, "/audit/logs"); } - private List<LogData> getComponents(CommonSearchCriteria searchCriteria) { - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); + private List<LogData> getComponents(AuditComponentRequest request) { + SimpleFacetQuery facetQuery = conversionService.convert(request, SimpleFacetQuery.class); List<LogData> docList = new ArrayList<>(); - try { - SolrUtil.setFacetField(solrQuery, LogSearchConstants.AUDIT_COMPONENT); - SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); - List<FacetField> facetFields = null; - List<Count> componentsCount = new ArrayList<Count>(); - FacetField facetField = null; + QueryResponse queryResponse = auditSolrDao.process(facetQuery); + List<Count> componentsCount = graphDataGenerator.generateCount(queryResponse); - QueryResponse queryResponse = auditSolrDao.process(solrQuery); - if (queryResponse == null) { - return docList; - } - - facetFields = queryResponse.getFacetFields(); - if (facetFields == null) { - return docList; - } - if (!facetFields.isEmpty()) { - facetField = facetFields.get(0); - } - if (facetField != null) { - componentsCount = facetField.getValues(); - } - - for (Count component : componentsCount) { - SolrComponentTypeLogData logData = new SolrComponentTypeLogData(); - logData.setType(component.getName()); - docList.add(logData); - } - return docList; - } catch (SolrException | SolrServerException | IOException e) { - logger.error("Error during solrQuery=" + solrQuery, e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + for (Count component : componentsCount) { + SolrComponentTypeLogData logData = new SolrComponentTypeLogData(); + logData.setType(component.getName()); + docList.add(logData); } + return docList; } - public GroupListResponse getAuditComponents(CommonSearchCriteria searchCriteria) { + public GroupListResponse getAuditComponents(AuditComponentRequest request) { GroupListResponse componentResponse = new GroupListResponse(); - List<LogData> docList = getComponents(searchCriteria); + List<LogData> docList = getComponents(request); componentResponse.setGroupList(docList); return componentResponse; } - @SuppressWarnings("unchecked") - public BarGraphDataListResponse getAuditBarGraphData(AuditBarGraphSearchCriteria searchCriteria) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - - String from = getFrom(searchCriteria.getStartTime()); - String to = getTo(searchCriteria.getEndTime()); - String unit = getUnit(searchCriteria.getUnit()); - - List<BarGraphData> histogramData = new ArrayList<BarGraphData>(); - String jsonHistogramQuery = queryGenerator.buildJSONFacetTermTimeRangeQuery(LogSearchConstants.AUDIT_COMPONENT, - LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", ""); - - return getGraphResponse(dataList, solrQuery, histogramData, jsonHistogramQuery); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - public NameValueDataListResponse getLiveLogCounts() { - NameValueDataListResponse nameValueList = new NameValueDataListResponse(); - SolrQuery solrQuery = new SolrQuery(); - solrQuery.setParam("event", "/audit/logs/live/count"); - try { - Date[] timeRange = ManageStartEndTime.getStartEndTime(); - String startDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[0]); - String endDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[1]); - - SolrUtil.setMainQuery(solrQuery, null); - SolrUtil.setFacetRange(solrQuery, LogSearchConstants.AUDIT_EVTTIME, startDate, endDate, "+2MINUTE"); - List<RangeFacet.Count> listCount; - - QueryResponse response = auditSolrDao.process(solrQuery); - - List<RangeFacet> rangeFacet = response.getFacetRanges(); - if (rangeFacet == null) { - return nameValueList; - } - RangeFacet range = rangeFacet.get(0); - - if (range == null) { - return nameValueList; - } - - listCount = range.getCounts(); - - List<NameValueData> nameValues = new ArrayList<>(); - int count = 0; - for (RangeFacet.Count cnt : listCount) { - NameValueData nameValue = new NameValueData(); - nameValue.setName("" + count); - nameValue.setValue("" + cnt.getCount()); - nameValues.add(nameValue); - count++; - } - nameValueList.setvNameValues(nameValues); - return nameValueList; - - } catch (SolrException | SolrServerException | ParseException - | IOException e) { - logger.error("Error during solrQuery=" + solrQuery, e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - } - } - - public BarGraphDataListResponse topTenUsers(FieldAuditBarGraphSearchCriteria searchCriteria) { - - String jsonUserQuery = - "{Users:{type:terms, field:reqUser, facet:{ Repo:{ type:terms, field:repo, facet:{eventCount:\"sum(event_count)\"}}}}}"; - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); - SolrUtil.setRowCount(solrQuery, 0); - try { - BarGraphDataListResponse barGraphDataListResponse = new BarGraphDataListResponse(); - QueryResponse queryResponse = auditSolrDao.process(solrQuery); - if (queryResponse == null) { - return barGraphDataListResponse; - } - - NamedList<Object> namedList = queryResponse.getResponse(); - - if (namedList == null) { - return barGraphDataListResponse; - } - - @SuppressWarnings("unchecked") - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets"); - if (jsonFacetResponse == null) { - return barGraphDataListResponse; - } - if (jsonFacetResponse.toString().equals("{count=0}")) { - return barGraphDataListResponse; - } - barGraphDataListResponse = BizUtil.buildSummaryForTopCounts(jsonFacetResponse, "Repo", "Users"); - return barGraphDataListResponse; - - } catch (SolrServerException | SolrException | IOException e) { - logger.error("Error during solrQuery=" + e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - } - } - - public BarGraphDataListResponse topTenResources(FieldAuditLogSearchCriteria searchCriteria) { - - String jsonUserQuery = - "{Users:{type:terms,field:resource,facet:{Repo:{type:terms,field:repo,facet:{eventCount:\"sum(event_count)\"}}}}}"; - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); - SolrUtil.setRowCount(solrQuery, 0); - try { - BarGraphDataListResponse barGraphDataListResponse = new BarGraphDataListResponse(); - QueryResponse queryResponse = auditSolrDao.process(solrQuery); - if (queryResponse == null) { - return barGraphDataListResponse; - } - - NamedList<Object> namedList = queryResponse.getResponse(); - if (namedList == null) { - return barGraphDataListResponse; - } - - @SuppressWarnings("unchecked") - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets"); - - barGraphDataListResponse = BizUtil.buildSummaryForTopCounts(jsonFacetResponse, "Repo", "Users"); - return barGraphDataListResponse; - - } catch (SolrServerException | SolrException | IOException e) { - logger.error("Error during solrQuery=" + solrQuery, e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - } + public BarGraphDataListResponse getAuditBarGraphData(AuditBarGraphRequest request) { + SolrQuery solrQuery = conversionService.convert(request, SolrQuery.class); + QueryResponse response = auditSolrDao.process(solrQuery); + return graphDataGenerator.generateBarGraphDataResponseWithRanges(response, SolrConstants.AuditLogConstants.AUDIT_COMPONENT, true); } - @SuppressWarnings("unchecked") - public BarGraphDataListResponse getRequestUserLineGraph(FieldAuditBarGraphSearchCriteria searchCriteria) { - - String from = getFrom(searchCriteria.getStartTime()); - String to = getTo(searchCriteria.getEndTime()); - String unit = getUnit(searchCriteria.getUnit()); - - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - List<BarGraphData> histogramData = new ArrayList<BarGraphData>(); - - SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX); - - String jsonHistogramQuery = queryGenerator.buildJSONFacetTermTimeRangeQuery(LogSearchConstants.AUDIT_REQUEST_USER, - LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", ""); - - return getGraphResponse(dataList, solrQuery, histogramData, jsonHistogramQuery); + public BarGraphDataListResponse topResources(FieldAuditLogRequest request) { + SimpleFacetQuery facetQuery = conversionService.convert(request, SimpleFacetQuery.class); + QueryResponse queryResponse = auditSolrDao.process(facetQuery); + return graphDataGenerator.generateSecondLevelBarGraphDataResponse(queryResponse, 0); } public String getAuditLogsSchemaFieldsName() { - return convertObjToString(auditSolrDao.schemaFieldNameMap); + return convertObjToString(auditSolrDao.getSolrSchemaFieldDao().getSchemaFieldNameMap()); } - public BarGraphDataListResponse getAnyGraphData(AnyGraphSearchCriteria searchCriteria) { - searchCriteria.addParam("fieldTime", LogSearchConstants.AUDIT_EVTTIME); - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - BarGraphDataListResponse result = graphDataGenerator.getAnyGraphData(searchCriteria, auditSolrDao, solrQuery); - if (result == null) { - result = new BarGraphDataListResponse(); - } - return result; - + public BarGraphDataListResponse getServiceLoad(AuditServiceLoadRequest request) { + SimpleFacetQuery facetQuery = conversionService.convert(request, SimpleFacetQuery.class); + QueryResponse response = auditSolrDao.process(facetQuery); + return graphDataGenerator.generateBarGraphFromFieldFacet(response, AUDIT_COMPONENT); } - @SuppressWarnings({"unchecked"}) - public Response exportUserTableToTextFile(UserExportSearchCriteria searchCriteria) { - String jsonUserQuery = - "{ Users: { type: terms, field: reqUser, facet: {Repo: { type: terms, field: repo, facet: { eventCount: \"sum(event_count)\"}}}},x:{ type: terms,field: resource, facet: {y: { type: terms, field: repo,facet: { eventCount: \"sum(event_count)\"}}}}}"; - - SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - String startTime = searchCriteria.getStartTime(); - String endTime = searchCriteria.getEndTime(); + public Response export(UserExportRequest request) throws TemplateException { + String startTime = request.getFrom(); + String endTime = request.getTo(); + SimpleFacetQuery facetQuery = conversionService.convert(request, SimpleFacetQuery.class); startTime = startTime == null ? "" : startTime; endTime = endTime == null ? "" : "_" + endTime; - SolrUtil.setJSONFacet(solrQuery, jsonUserQuery); - SolrUtil.setRowCount(solrQuery, 0); - - String dataFormat = searchCriteria.getFormat(); + String dataFormat = request.getFormat(); FileOutputStream fis = null; try { - QueryResponse queryResponse = auditSolrDao.process(solrQuery); + QueryResponse queryResponse = auditSolrDao.process(facetQuery); if (queryResponse == null) { VResponse response = new VResponse(); - response.setMsgDesc("Query was not able to execute " + solrQuery); + response.setMsgDesc("Query was not able to execute " + facetQuery); throw RESTErrorUtil.createRESTException(response); } - - NamedList<Object> namedList = queryResponse.getResponse(); - if (namedList == null) { - VResponse response = new VResponse(); - response.setMsgDesc("Query was not able to execute " + solrQuery); - throw RESTErrorUtil.createRESTException(response); - } - BarGraphDataListResponse vBarUserDataList = new BarGraphDataListResponse(); - BarGraphDataListResponse vBarResourceDataList = new BarGraphDataListResponse(); - - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets"); - vBarUserDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse, "Repo", "Users"); - vBarResourceDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse, "y", "x"); + BarGraphDataListResponse vBarUserDataList = graphDataGenerator.generateSecondLevelBarGraphDataResponse(queryResponse, 0); + BarGraphDataListResponse vBarResourceDataList = graphDataGenerator.generateSecondLevelBarGraphDataResponse(queryResponse, 1); String data = ""; - String summary = ""; if ("text".equals(dataFormat)) { - int users = 0; - int resources = 0; - summary += "\n\n\n\n"; - data += addBlank("Users") + "Components/Access" + "\n"; - data += "--------------------------------------------------------------------------\n"; - Collection<BarGraphData> tableUserData = vBarUserDataList.getGraphData(); - for (BarGraphData graphData : tableUserData) { - String userName = graphData.getName(); - String largeUserName = ""; - - if (userName.length() > 45) { - largeUserName = userName.substring(0, 45); - data += addBlank(largeUserName); - } else - data += addBlank(userName); - - Collection<NameValueData> vnameValueList = graphData.getDataCount(); - data = appendNameValueData(data, vnameValueList); - while (largeUserName.length() > 0) { - data += largeUserName.substring(0, 45) + "\n"; - } - - users += 1; - } - data += "\n\n\n\n\n\n"; - data += addBlank("Resources") + "Components/Access" + "\n"; - data += "--------------------------------------------------------------------------\n"; - Collection<BarGraphData> tableResourceData = vBarResourceDataList.getGraphData(); - for (BarGraphData graphData : tableResourceData) { - String resourceName = graphData.getName(); - String largeResourceName = resourceName; - if (largeResourceName.length() > 45) { - resourceName = largeResourceName.substring(0, 45); - largeResourceName = largeResourceName.substring(45, largeResourceName.length()); - } else { - largeResourceName = ""; - } + StringWriter stringWriter = new StringWriter(); + Template template = freemarkerConfiguration.getTemplate(AUDIT_LOG_TEMPLATE); + Map<String, Object> models = new HashMap<>(); + DownloadUtil.fillUserResourcesModel(models, vBarUserDataList, vBarResourceDataList); + template.process(models, stringWriter); + data = stringWriter.toString(); - //resourceName = resourceName.replaceAll("(.{45})", resourceName.substring(0, 45)+"\n"); - data += addBlank(resourceName); - Collection<NameValueData> vnameValueList = graphData.getDataCount(); - data = appendNameValueData(data, vnameValueList); - String tempLargeResourceName = largeResourceName; - while (largeResourceName.length() > 45) { - largeResourceName = tempLargeResourceName.substring(0, 45); - tempLargeResourceName = tempLargeResourceName.substring(45, tempLargeResourceName.length()); - data += largeResourceName + "\n"; - } - if (largeResourceName.length() < 45 && !largeResourceName.isEmpty()) { - data += largeResourceName + "\n"; - } - resources += 1; - } - String header = "--------------------------------SUMMARY-----------------------------------\n"; - summary = header + "Users = " + users + "\nResources = " + resources + "\n" + summary; - data = summary + data; } else { data = "{" + convertObjToString(vBarUserDataList) + "," + convertObjToString(vBarResourceDataList) + "}"; dataFormat = "json"; } String fileName = "Users_Resource" + startTime + endTime + "."; File file = File.createTempFile(fileName, dataFormat); - fis = new FileOutputStream(file); fis.write(data.getBytes()); return Response @@ -419,8 +169,8 @@ public class AuditLogsManager extends ManagerBase<SolrAuditLogData, AuditLogResp .header("Content-Disposition", "attachment;filename=" + fileName + dataFormat) .build(); - } catch (SolrServerException | SolrException | IOException e) { - logger.error("Error during solrQuery=" + e); + } catch (IOException e) { + logger.error("Error during download file (audit log) " + e); throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); } finally { if (fis != null) { @@ -432,97 +182,6 @@ public class AuditLogsManager extends ManagerBase<SolrAuditLogData, AuditLogResp } } - private BarGraphDataListResponse getGraphResponse(BarGraphDataListResponse dataList, SolrQuery solrQuery, - List<BarGraphData> histogramData, String jsonHistogramQuery) { - try { - SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery); - SolrUtil.setRowCount(solrQuery, 0); - QueryResponse response = auditSolrDao.process(solrQuery); - if (response == null) { - return dataList; - } - SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets"); - - if (jsonFacetResponse == null || jsonFacetResponse.toString().equals("{count=0}")) { - return dataList; - } - - auditSolrDao.extractValuesFromBuckets(jsonFacetResponse, "x", "y", histogramData); - - dataList.setGraphData(histogramData); - return dataList; - - } catch (SolrServerException | SolrException | IOException e) { - logger.error(e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - - } - } - - private String appendNameValueData(String data, Collection<NameValueData> vnameValueList) { - int count = 0; - String blank = ""; - for (NameValueData vNameValue : vnameValueList) { - data += blank + vNameValue.getName() + " " + vNameValue.getValue() + "\n"; - if (count == 0) - blank = addBlank(blank); - count++; - } - return data; - } - - private String addBlank(String field) { - int blanks = 50; - int strSize = field.length(); - String fieldWithBlank = field; - for (int i = 0; i < blanks - strSize; i++) { - fieldWithBlank += " "; - } - return fieldWithBlank; - } - - public BarGraphDataListResponse getServiceLoad(CommonSearchCriteria searchCriteria) { - BarGraphDataListResponse dataList = new BarGraphDataListResponse(); - Collection<BarGraphData> vaDatas = new ArrayList<BarGraphData>(); - dataList.setGraphData(vaDatas); - - SolrQuery serivceLoadQuery = queryGenerator.commonAuditFilterQuery(searchCriteria); - - try { - SolrUtil.setFacetField(serivceLoadQuery, LogSearchConstants.AUDIT_COMPONENT); - QueryResponse serviceLoadResponse = auditSolrDao.process(serivceLoadQuery); - if (serviceLoadResponse == null) { - return dataList; - } - FacetField serviceFacetField = serviceLoadResponse.getFacetField(LogSearchConstants.AUDIT_COMPONENT); - if (serviceFacetField == null) { - return dataList; - } - - List<Count> serviceLoadFacets = serviceFacetField.getValues(); - if (serviceLoadFacets == null) { - return dataList; - } - for (Count cnt : serviceLoadFacets) { - List<NameValueData> valueList = new ArrayList<NameValueData>(); - BarGraphData vBarGraphData = new BarGraphData(); - vaDatas.add(vBarGraphData); - NameValueData vNameValue = new NameValueData(); - vNameValue.setName(cnt.getName()); - vBarGraphData.setName(cnt.getName().toUpperCase()); - vNameValue.setValue("" + cnt.getCount()); - valueList.add(vNameValue); - vBarGraphData.setDataCount(valueList); - } - - return dataList; - - } catch (SolrException | SolrServerException | IOException e) { - logger.error("Error during solrQuery=" + e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - } - } - @Override protected List<SolrAuditLogData> convertToSolrBeans(QueryResponse response) { return response.getBeans(SolrAuditLogData.class); http://git-wip-us.apache.org/repos/asf/ambari/blob/c7f1e707/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/ManagerBase.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/ManagerBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/ManagerBase.java index 13df470..45d66cf 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/ManagerBase.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/ManagerBase.java @@ -21,55 +21,28 @@ package org.apache.ambari.logsearch.manager; import java.io.File; import java.io.IOException; -import java.text.ParseException; import java.util.ArrayList; import java.util.Collections; -import java.util.Date; import java.util.List; import java.util.Scanner; -import org.apache.ambari.logsearch.common.LogSearchConstants; import org.apache.ambari.logsearch.common.MessageEnums; import org.apache.ambari.logsearch.model.response.LogData; import org.apache.ambari.logsearch.model.response.LogSearchResponse; -import org.apache.ambari.logsearch.query.model.SearchCriteria; 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; -import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrQuery; -import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocumentList; -import org.apache.solr.common.SolrException; - -import javax.inject.Inject; +import org.springframework.data.solr.core.DefaultQueryParser; +import org.springframework.data.solr.core.query.SimpleQuery; +import org.springframework.data.solr.core.query.SolrDataQuery; public abstract class ManagerBase<LOG_DATA_TYPE extends LogData, SEARCH_RESPONSE extends LogSearchResponse> extends JsonManagerBase { private static final Logger logger = Logger.getLogger(ManagerBase.class); - @Inject - protected QueryGeneration queryGenerator; - - public enum LogType { - SERVICE("Service"), - AUDIT("Audit"); - - private String label; - - private LogType(String label) { - this.label = label; - } - - public String getLabel() { - return label; - } - } - public ManagerBase() { super(); } @@ -103,116 +76,52 @@ public abstract class ManagerBase<LOG_DATA_TYPE extends LogData, SEARCH_RESPONSE } - protected SEARCH_RESPONSE getLastPage(SearchCriteria searchCriteria, String logTimeField, SolrDaoBase solrDoaBase, - SolrQuery lastPageQuery) { - - Integer maxRows = searchCriteria.getMaxRows(); - String givenSortType = searchCriteria.getSortType(); - searchCriteria = new SearchCriteria(); - searchCriteria.setSortBy(logTimeField); - if (givenSortType == null || givenSortType.equals(LogSearchConstants.DESCENDING_ORDER)) { - lastPageQuery.removeSort(LogSearchConstants.LOGTIME); - searchCriteria.setSortType(LogSearchConstants.ASCENDING_ORDER); - } else { - searchCriteria.setSortType(LogSearchConstants.DESCENDING_ORDER); - } - queryGenerator.setSingleSortOrder(lastPageQuery, searchCriteria); - - - Long totalLogs = 0l; - int startIndex = 0; - int numberOfLogsOnLastPage = 0; - SEARCH_RESPONSE logResponse = null; - try { - SolrUtil.setStart(lastPageQuery, 0); - SolrUtil.setRowCount(lastPageQuery, maxRows); - logResponse = getLogAsPaginationProvided(lastPageQuery, solrDoaBase); - totalLogs = countQuery(lastPageQuery,solrDoaBase); - startIndex = Integer.parseInt("" + ((totalLogs / maxRows) * maxRows)); - numberOfLogsOnLastPage = Integer.parseInt("" + (totalLogs - startIndex)); - logResponse.setStartIndex(startIndex); - logResponse.setTotalCount(totalLogs); - logResponse.setPageSize(maxRows); - List<LOG_DATA_TYPE> docList = logResponse.getLogList(); - List<LOG_DATA_TYPE> lastPageDocList = new ArrayList<>(); - logResponse.setLogList(lastPageDocList); - int cnt = 0; - for(LOG_DATA_TYPE doc:docList){ - if(cnt<numberOfLogsOnLastPage){ - lastPageDocList.add(doc); - } - cnt++; + protected SEARCH_RESPONSE getLastPage(SolrDaoBase solrDoaBase, SimpleQuery lastPageQuery, String event) { + int maxRows = lastPageQuery.getRows(); + SEARCH_RESPONSE logResponse = getLogAsPaginationProvided(lastPageQuery, solrDoaBase, event); + Long totalLogs = solrDoaBase.count(lastPageQuery); + int startIndex = Integer.parseInt("" + ((totalLogs / maxRows) * maxRows)); + int numberOfLogsOnLastPage = Integer.parseInt("" + (totalLogs - startIndex)); + logResponse.setStartIndex(startIndex); + logResponse.setTotalCount(totalLogs); + logResponse.setPageSize(maxRows); + List<LOG_DATA_TYPE> docList = logResponse.getLogList(); + List<LOG_DATA_TYPE> lastPageDocList = new ArrayList<>(); + logResponse.setLogList(lastPageDocList); + int cnt = 0; + for (LOG_DATA_TYPE doc : docList) { + if (cnt < numberOfLogsOnLastPage) { + lastPageDocList.add(doc); } - Collections.reverse(lastPageDocList); - - } catch (SolrException | SolrServerException | IOException | NumberFormatException e) { - logger.error("Count Query was not executed successfully",e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); + cnt++; } + Collections.reverse(lastPageDocList); return logResponse; } - protected SEARCH_RESPONSE getLogAsPaginationProvided(SolrQuery solrQuery, SolrDaoBase solrDaoBase) { - try { - QueryResponse response = solrDaoBase.process(solrQuery); - SEARCH_RESPONSE logResponse = createLogSearchResponse(); - SolrDocumentList docList = response.getResults(); - List<LOG_DATA_TYPE> serviceLogDataList = convertToSolrBeans(response); - if (docList != null && !docList.isEmpty()) { - logResponse.setLogList(serviceLogDataList); - logResponse.setStartIndex((int) docList.getStart()); - logResponse.setTotalCount(docList.getNumFound()); - Integer rowNumber = solrQuery.getRows(); - if (rowNumber == null) { - logger.error("No RowNumber was set in solrQuery"); - return createLogSearchResponse(); - } - logResponse.setPageSize(rowNumber); - } - return logResponse; - } catch (SolrException | SolrServerException | IOException e) { - logger.error("Error during solrQuery=" + solrQuery, e); - throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM); - } - } - - protected Long countQuery(SolrQuery query,SolrDaoBase solrDaoBase) throws SolrException, SolrServerException, IOException { - query.setRows(0); - QueryResponse response = solrDaoBase.process(query); - if (response == null) { - return 0l; - } - SolrDocumentList docList = response.getResults(); - if (docList == null) { - return 0l; - } - return docList.getNumFound(); + protected SEARCH_RESPONSE getLogAsPaginationProvided(SolrDataQuery solrQuery, SolrDaoBase solrDaoBase, String event) { + SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(solrQuery); + return getLogAsPaginationProvided(query, solrDaoBase, event); } - protected String getUnit(String unit) { - if (StringUtils.isBlank(unit)) { - unit = "+1HOUR"; - } - return unit; - } - protected String getFrom(String from) { - if (StringUtils.isBlank(from)) { - Date date = DateUtil.getTodayFromDate(); - try { - from = DateUtil.convertGivenDateFormatToSolrDateFormat(date); - } catch (ParseException e) { - from = "NOW"; + protected SEARCH_RESPONSE getLogAsPaginationProvided(SolrQuery solrQuery, SolrDaoBase solrDaoBase, String event) { + QueryResponse response = solrDaoBase.process(solrQuery, event); + SEARCH_RESPONSE logResponse = createLogSearchResponse(); + SolrDocumentList docList = response.getResults(); + List<LOG_DATA_TYPE> serviceLogDataList = convertToSolrBeans(response); + if (docList != null && !docList.isEmpty()) { + logResponse.setLogList(serviceLogDataList); + logResponse.setStartIndex((int) docList.getStart()); + logResponse.setTotalCount(docList.getNumFound()); + Integer rowNumber = solrQuery.getRows(); + if (rowNumber == null) { + logger.error("No RowNumber was set in solrQuery"); + return createLogSearchResponse(); } + logResponse.setPageSize(rowNumber); } - return from; - } - - protected String getTo(String to) { - if (StringUtils.isBlank(to)) { - to = "NOW"; - } - return to; + return logResponse; } protected abstract List<LOG_DATA_TYPE> convertToSolrBeans(QueryResponse response); http://git-wip-us.apache.org/repos/asf/ambari/blob/c7f1e707/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicManager.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicManager.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicManager.java index 82817d6..cbab651 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicManager.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/PublicManager.java @@ -25,11 +25,11 @@ import java.util.List; import org.apache.ambari.logsearch.conf.AuthPropsConfig; import org.apache.ambari.logsearch.model.response.NameValueData; import org.apache.ambari.logsearch.model.response.NameValueDataListResponse; -import org.springframework.stereotype.Component; import javax.inject.Inject; +import javax.inject.Named; -@Component +@Named public class PublicManager extends JsonManagerBase { @Inject