http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java deleted file mode 100644 index 7a27e1c..0000000 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java +++ /dev/null @@ -1,574 +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.rest; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.apache.ambari.logsearch.common.LogSearchConstants; -import org.apache.ambari.logsearch.common.SearchCriteria; -import org.apache.ambari.logsearch.manager.LogsMgr; -import org.apache.ambari.logsearch.view.VCountList; -import org.apache.ambari.logsearch.view.VNameValueList; -import org.apache.ambari.logsearch.view.VNodeList; -import org.apache.commons.lang.StringEscapeUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; - -import static org.apache.ambari.logsearch.doc.DocConstants.CommonDescriptions.*; -import static org.apache.ambari.logsearch.doc.DocConstants.ServiceDescriptions.*; -import static org.apache.ambari.logsearch.doc.DocConstants.ServiceOperationDescriptions.*; - -@Api(value = "service/logs", description = "Service log operations") -@Path("service/logs") -@Component -@Scope("request") -public class ServiceLogsREST { - - @Autowired - LogsMgr logMgr; - - @GET - @Produces({"application/json"}) - @ApiOperation(SEARCH_LOGS_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FIND_D, name = "find", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = SOURCE_LOG_ID_D, name = "sourceLogId", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = KEYWORD_TYPE_D, name = "keywordType", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TOKEN_D, name = "token", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = IS_LAST_PAGE_D, name = "isLastPage", dataType = "boolean", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String searchSolrData(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("keyword", StringEscapeUtils.unescapeXml(request.getParameter("find"))); - searchCriteria.addParam("sourceLogId", request.getParameter("sourceLogId")); - searchCriteria.addParam("keywordType", - request.getParameter("keywordType")); - searchCriteria.addParam("token", - request.getParameter("token")); - searchCriteria.addParam("isLastPage",request.getParameter("isLastPage")); - return logMgr.searchLogs(searchCriteria); - } - - @GET - @Path("/hosts") - @Produces({"application/json"}) - @ApiOperation(GET_HOSTS_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = QUERY_D, name = "q", dataType = "string", paramType = "query") - }) - public String getHosts(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addParam("q", request.getParameter("q")); - return logMgr.getHosts(); - } - - @GET - @Path("/components") - @Produces({"application/json"}) - @ApiOperation(GET_COMPONENTS_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = QUERY_D, name = "q", dataType = "string", paramType = "query") - }) - public String getComponents(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addParam("q", request.getParameter("q")); - return logMgr.getComponents(); - } - - @GET - @Path("/aggregated") - @Produces({"application/json"}) - @ApiOperation(GET_AGGREGATED_INFO_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getAggregatedInfo(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.addRequiredServiceLogsParams(request); - return logMgr.getAggregatedInfo(searchCriteria); - } - - @GET - @Path("/levels/count") - @Produces({"application/json"}) - @ApiOperation(GET_LOG_LEVELS_COUNT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = QUERY_D, name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public VCountList getLogLevelsCount(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.addParam("q", request.getParameter("q")); - searchCriteria - .addParam("startDate", request.getParameter("start_time")); - searchCriteria.addParam("endDate", request.getParameter("end_time")); - return logMgr.getLogLevelCount(); - } - - @GET - @Path("/components/count") - @Produces({"application/json"}) - @ApiOperation(GET_COMPONENTS_COUNT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = QUERY_D, name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public VCountList getComponentsCount(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.addParam("q", request.getParameter("q")); - searchCriteria - .addParam("startDate", request.getParameter("start_time")); - searchCriteria.addParam("endDate", request.getParameter("end_time")); - return logMgr.getComponentsCount(); - } - - @GET - @Path("/hosts/count") - @Produces({"application/json"}) - @ApiOperation(GET_HOSTS_COUNT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = QUERY_D, name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query") - }) - public VCountList getHostsCount(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(); - searchCriteria.addParam("q", request.getParameter("q")); - searchCriteria - .addParam("startDate", request.getParameter("start_time")); - searchCriteria.addParam("endDate", request.getParameter("end_time")); - searchCriteria.addParam("excludeQuery", StringEscapeUtils - .unescapeXml(request.getParameter("excludeQuery"))); - searchCriteria.addParam("includeQuery", StringEscapeUtils - .unescapeXml(request.getParameter("includeQuery"))); - return logMgr.getHostsCount(); - } - - @GET - @Path("/tree") - @Produces({"application/json"}) - @ApiOperation(GET_TREE_EXTENSION_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public VNodeList getTreeExtension(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("hostName", request.getParameter("hostName")); - return logMgr.getTreeExtension(searchCriteria); - } - - @GET - @Path("/levels/counts/namevalues") - @Produces({"application/json"}) - @ApiOperation(GET_LOG_LEVELS_COUNT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public VNameValueList getLogsLevelCount(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - return logMgr.getLogsLevelCount(searchCriteria); - } - - @GET - @Path("/histogram") - @Produces({"application/json"}) - @ApiOperation(GET_HISTOGRAM_DATA_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = UNIT_D, name = "unit", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getHistogramData(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("unit", request.getParameter("unit")); - return logMgr.getHistogramData(searchCriteria); - } - - @GET - @Path("/request/cancel") - @Produces({"application/json"}) - @ApiOperation(CANCEL_FIND_REQUEST_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = TOKEN_D, name = "token", dataType = "string", paramType = "query"), - }) - public String cancelFindRequest(@Context HttpServletRequest request) { - String uniqueId = request.getParameter("token"); - return logMgr.cancelFindRequestByDate(uniqueId); - } - - @GET - @Path("/export") - @Produces({"application/json"}) - @ApiOperation(EXPORT_TO_TEXT_FILE_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FORMAT_D, name = "format", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = UTC_OFFSET_D, name = "utcOffset", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public Response exportToTextFile(@Context HttpServletRequest request) { - - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("format", request.getParameter("format")); - searchCriteria.addParam("utcOffset", request.getParameter("utcOffset")); - return logMgr.exportToTextFile(searchCriteria); - - } - - @GET - @Path("/hosts/components") - @Produces({"application/json"}) - @ApiOperation(GET_HOST_LIST_BY_COMPONENT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getHostListByComponent(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("componentName", - request.getParameter("componentName")); - return logMgr.getHostListByComponent(searchCriteria); - } - - @GET - @Path("/components/level/counts") - @Produces({"application/json"}) - @ApiOperation(GET_COMPONENT_LIST_WITH_LEVEL_COUNT_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D, name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getComponentListWithLevelCounts( - @Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - return logMgr.getComponentListWithLevelCounts(searchCriteria); - } - - @GET - @Path("/solr/boundarydates") - @Produces({"application/json"}) - @ApiOperation(GET_EXTREME_DATES_FOR_BUNDLE_ID_OD) - public String getExtremeDatesForBundelId(@Context HttpServletRequest request) { - - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addParam(LogSearchConstants.BUNDLE_ID, - request.getParameter("bundle_id")); - - return logMgr.getExtremeDatesForBundelId(searchCriteria); - - } - - @GET - @Path("/fields") - @Produces({"application/json"}) - @ApiOperation(GET_SERVICE_LOGS_FIELD_NAME_OD) - public String getServiceLogsFieldsName() { - return logMgr.getServiceLogsFieldsName(); - } - - @GET - @Path("/schema/fields") - @Produces({"application/json"}) - @ApiOperation(GET_SERVICE_LOGS_SCHEMA_FIELD_NAME_OD) - public String getServiceLogsSchemaFieldsName() { - return logMgr.getServiceLogsSchemaFieldsName(); - } - - @GET - @Path("/anygraph") - @Produces({"application/json"}) - @ApiOperation(GET_ANY_GRAPH_DATA_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = X_AXIS_D, name = "xAxis", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = Y_AXIS_D, name = "yAxis", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = STACK_BY_D, name = "stackBy", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FROM_D, name = "from", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TO_D, name = "to", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = UNIT_D, name = "unit", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getAnyGraphData(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("xAxis", request.getParameter("xAxis")); - searchCriteria.addParam("yAxis", request.getParameter("yAxis")); - searchCriteria.addParam("stackBy", request.getParameter("stackBy")); - searchCriteria.addParam("from", request.getParameter("from")); - searchCriteria.addParam("to", request.getParameter("to")); - searchCriteria.addParam("unit", request.getParameter("unit")); - return logMgr.getAnyGraphData(searchCriteria); - } - - @GET - @Path("/truncated") - @Produces({"application/json"}) - @ApiOperation(GET_AFTER_BEFORE_LOGS_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = HOST_D, name = "host", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_D,name = "component", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ID_D, name = "id", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = SCROLL_TYPE_D, name = "scrollType", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = NUMBER_ROWS_D, name = "numberRows", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = ADVANCED_SEARCH_D, name = "advancedSearch", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = QUERY_D,name = "q", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = LEVEL_D, name = "level", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = TREE_PARAMS_D, name = "treeParams", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COLUMN_QUERY_D, name = "columnQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = I_MESSAGE_D, name = "iMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_E_MESSAGE_D, name = "gEMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = E_MESSAGE_D, name = "eMessage", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = G_MUST_NOT_D, name = "gMustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_BE_D, name = "mustBe", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = MUST_NOT_D, name = "mustNot", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = HOST_NAME_D, name = "host_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = COMPONENT_NAME_D, name = "component_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = FILE_NAME_D, name = "file_name", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = EXCLUDE_QUERY_D, name = "excludeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = INCLUDE_QUERY_D, name = "includeQuery", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = START_TIME_D, name = "start_time", dataType = "string", paramType = "query"), - @ApiImplicitParam(value = END_TIME_D, name = "end_time", dataType = "string", paramType = "query") - }) - public String getAfterBeforeLogs(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addRequiredServiceLogsParams(request); - searchCriteria.addParam("hostLogFile", request.getParameter("host")); - searchCriteria.addParam("compLogFile", - request.getParameter("component")); - searchCriteria.addParam("id", request.getParameter("id")); - searchCriteria.addParam("scrollType", - request.getParameter("scrollType")); - searchCriteria.addParam("numberRows", - request.getParameter("numberRows")); - return logMgr.getAfterBeforeLogs(searchCriteria); - } - - @GET - @Path("/serviceconfig") - @Produces({"application/json"}) - @ApiOperation(GET_HADOOP_SERVICE_CONFIG_JSON_OD) - public String getHadoopServiceConfigJSON() { - return logMgr.getHadoopServiceConfigJSON(); - } -}
http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java new file mode 100644 index 0000000..5400825 --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java @@ -0,0 +1,238 @@ +/* + * 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.rest; + +import javax.inject.Inject; +import javax.ws.rs.BeanParam; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.Response; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.ambari.logsearch.model.request.impl.BaseServiceLogRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceAnyGraphRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceExtremeDatesRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceGraphRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceLogExportRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceLogFileRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceLogRequest; +import org.apache.ambari.logsearch.model.request.impl.ServiceLogTruncatedRequest; +import org.apache.ambari.logsearch.model.response.BarGraphDataListResponse; +import org.apache.ambari.logsearch.model.response.CountDataListResponse; +import org.apache.ambari.logsearch.model.response.GraphDataListResponse; +import org.apache.ambari.logsearch.model.response.GroupListResponse; +import org.apache.ambari.logsearch.model.response.NameValueDataListResponse; +import org.apache.ambari.logsearch.model.response.NodeListResponse; +import org.apache.ambari.logsearch.model.response.ServiceLogResponse; +import org.apache.ambari.logsearch.query.model.CommonSearchCriteria; +import org.apache.ambari.logsearch.query.model.SearchCriteria; +import org.apache.ambari.logsearch.manager.ServiceLogsManager; +import org.apache.ambari.logsearch.query.model.ServiceAnyGraphSearchCriteria; +import org.apache.ambari.logsearch.query.model.ServiceExtremeDatesCriteria; +import org.apache.ambari.logsearch.query.model.ServiceGraphSearchCriteria; +import org.apache.ambari.logsearch.query.model.ServiceLogExportSearchCriteria; +import org.apache.ambari.logsearch.query.model.ServiceLogFileSearchCriteria; +import org.apache.ambari.logsearch.query.model.ServiceLogSearchCriteria; +import org.apache.ambari.logsearch.query.model.ServiceLogTruncatedSearchCriteria; +import org.springframework.context.annotation.Scope; +import org.springframework.core.convert.ConversionService; +import org.springframework.stereotype.Component; + +import static org.apache.ambari.logsearch.doc.DocConstants.ServiceOperationDescriptions.*; + +@Api(value = "service/logs", description = "Service log operations") +@Path("service/logs") +@Component +@Scope("request") +public class ServiceLogsResource { + + @Inject + private ServiceLogsManager serviceLogsManager; + + @Inject + private ConversionService conversionService; + + @GET + @Produces({"application/json"}) + @ApiOperation(SEARCH_LOGS_OD) + public ServiceLogResponse searchSolrData(@BeanParam ServiceLogRequest request) { + return serviceLogsManager.searchLogs(conversionService.convert(request, ServiceLogSearchCriteria.class)); + } + + @GET + @Path("/hosts") + @Produces({"application/json"}) + @ApiOperation(GET_HOSTS_OD) + public GroupListResponse getHosts() { + return serviceLogsManager.getHosts(); + } + + @GET + @Path("/components") + @Produces({"application/json"}) + @ApiOperation(GET_COMPONENTS_OD) + public GroupListResponse getComponents() { + return serviceLogsManager.getComponents(); + } + + @GET + @Path("/aggregated") + @Produces({"application/json"}) + @ApiOperation(GET_AGGREGATED_INFO_OD) + public GraphDataListResponse getAggregatedInfo(@BeanParam BaseServiceLogRequest request) { + return serviceLogsManager.getAggregatedInfo(conversionService.convert(request, CommonSearchCriteria.class)); + } + + @GET + @Path("/levels/count") + @Produces({"application/json"}) + @ApiOperation(GET_LOG_LEVELS_COUNT_OD) + public CountDataListResponse getLogLevelsCount() { + return serviceLogsManager.getLogLevelCount(); + } + + @GET + @Path("/components/count") + @Produces({"application/json"}) + @ApiOperation(GET_COMPONENTS_COUNT_OD) + public CountDataListResponse getComponentsCount() { + return serviceLogsManager.getComponentsCount(); + } + + @GET + @Path("/hosts/count") + @Produces({"application/json"}) + @ApiOperation(GET_HOSTS_COUNT_OD) + public CountDataListResponse getHostsCount() { + return serviceLogsManager.getHostsCount(); + } + + @GET + @Path("/tree") + @Produces({"application/json"}) + @ApiOperation(GET_TREE_EXTENSION_OD) + public NodeListResponse getTreeExtension(@QueryParam("hostName") @ApiParam String hostName, @BeanParam ServiceLogFileRequest request) { + SearchCriteria searchCriteria = conversionService.convert(request, ServiceLogFileSearchCriteria.class); + searchCriteria.addParam("hostName", hostName); // TODO: use host_name instead - needs UI change + return serviceLogsManager.getTreeExtension(searchCriteria); + } + + @GET + @Path("/levels/counts/namevalues") + @Produces({"application/json"}) + @ApiOperation(GET_LOG_LEVELS_COUNT_OD) + public NameValueDataListResponse getLogsLevelCount(@BeanParam ServiceLogFileRequest request) { + return serviceLogsManager.getLogsLevelCount(conversionService.convert(request, ServiceLogFileSearchCriteria.class)); + } + + @GET + @Path("/histogram") + @Produces({"application/json"}) + @ApiOperation(GET_HISTOGRAM_DATA_OD) + public BarGraphDataListResponse getHistogramData(@BeanParam ServiceGraphRequest request) { + return serviceLogsManager.getHistogramData(conversionService.convert(request, ServiceGraphSearchCriteria.class)); + } + + @GET + @Path("/request/cancel") + @Produces({"application/json"}) + @ApiOperation(CANCEL_FIND_REQUEST_OD) + public String cancelFindRequest(@QueryParam("token") @ApiParam String token) { + return serviceLogsManager.cancelFindRequestByDate(token); + } + + @GET + @Path("/export") + @Produces({"application/json"}) + @ApiOperation(EXPORT_TO_TEXT_FILE_OD) + public Response exportToTextFile(@BeanParam ServiceLogExportRequest request) { + return serviceLogsManager.exportToTextFile(conversionService.convert(request, ServiceLogExportSearchCriteria.class)); + + } + + @GET + @Path("/hosts/components") + @Produces({"application/json"}) + @ApiOperation(GET_HOST_LIST_BY_COMPONENT_OD) + public NodeListResponse getHostListByComponent(@BeanParam ServiceLogFileRequest request, @QueryParam("componentName") @ApiParam String componentName) { + SearchCriteria searchCriteria = conversionService.convert(request, ServiceLogFileSearchCriteria.class); + searchCriteria.addParam("componentName", componentName); // TODO: use component_name instead - needs UI change + return serviceLogsManager.getHostListByComponent(searchCriteria); + } + + @GET + @Path("/components/levels/counts") + @Produces({"application/json"}) + @ApiOperation(GET_COMPONENT_LIST_WITH_LEVEL_COUNT_OD) + public NodeListResponse getComponentListWithLevelCounts(@BeanParam ServiceLogFileRequest request) { + return serviceLogsManager.getComponentListWithLevelCounts(conversionService.convert(request, ServiceLogFileSearchCriteria.class)); + } + + @GET + @Path("/solr/boundarydates") + @Produces({"application/json"}) + @ApiOperation(GET_EXTREME_DATES_FOR_BUNDLE_ID_OD) + public NameValueDataListResponse getExtremeDatesForBundelId(@BeanParam ServiceExtremeDatesRequest request) { + return serviceLogsManager.getExtremeDatesForBundelId(conversionService.convert(request, ServiceExtremeDatesCriteria.class)); + } + + @GET + @Path("/fields") + @Produces({"application/json"}) + @ApiOperation(GET_SERVICE_LOGS_FIELD_NAME_OD) + public String getServiceLogsFieldsName() { + return serviceLogsManager.getServiceLogsFieldsName(); + } + + @GET + @Path("/schema/fields") + @Produces({"application/json"}) + @ApiOperation(GET_SERVICE_LOGS_SCHEMA_FIELD_NAME_OD) + public String getServiceLogsSchemaFieldsName() { + return serviceLogsManager.getServiceLogsSchemaFieldsName(); + } + + @GET + @Path("/anygraph") + @Produces({"application/json"}) + @ApiOperation(GET_ANY_GRAPH_DATA_OD) + public BarGraphDataListResponse getAnyGraphData(@BeanParam ServiceAnyGraphRequest request) { + return serviceLogsManager.getAnyGraphData(conversionService.convert(request, ServiceAnyGraphSearchCriteria.class)); + } + + @GET + @Path("/truncated") + @Produces({"application/json"}) + @ApiOperation(GET_AFTER_BEFORE_LOGS_OD) + public ServiceLogResponse getAfterBeforeLogs(@BeanParam ServiceLogTruncatedRequest request) { + return serviceLogsManager.getAfterBeforeLogs(conversionService.convert(request, ServiceLogTruncatedSearchCriteria.class)); + } + + @GET + @Path("/serviceconfig") + @Produces({"application/json"}) + @ApiOperation(GET_HADOOP_SERVICE_CONFIG_JSON_OD) + public String getHadoopServiceConfigJSON() { + return serviceLogsManager.getHadoopServiceConfigJSON(); + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/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 deleted file mode 100644 index 699dc17..0000000 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java +++ /dev/null @@ -1,128 +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.rest; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -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.view.VUserConfig; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; - -import static org.apache.ambari.logsearch.doc.DocConstants.UserConfigDescriptions.*; -import static org.apache.ambari.logsearch.doc.DocConstants.UserConfigOperationDescriptions.*; - -@Api(value = "userconfig", description = "User config operations") -@Path("userconfig") -@Component -@Scope("request") -public class UserConfigREST { - - @Autowired - UserConfigMgr userConfigMgr; - - @POST - @Produces({"application/json"}) - @ApiOperation(SAVE_USER_CONFIG_OD) - public String saveUserConfig(VUserConfig vhist) { - return userConfigMgr.saveUserConfig(vhist); - } - - @PUT - @Produces({"application/json"}) - @ApiOperation(UPDATE_USER_CONFIG_OD) - public String updateUserConfig(VUserConfig vhist) { - return userConfigMgr.updateUserConfig(vhist); - } - - @DELETE - @Path("/{id}") - @ApiOperation(DELETE_USER_CONFIG_OD) - public void deleteUserConfig(@PathParam("id") String id) { - userConfigMgr.deleteUserConfig(id); - } - - @GET - @Produces({"application/json"}) - @ApiOperation(GET_USER_CONFIG_OD) - @ApiImplicitParams(value = { - @ApiImplicitParam(value = USER_ID_D, name = "userId", paramType = "query", dataType = "string"), - @ApiImplicitParam(value = FILTER_NAME_D, name = "filterName", paramType = "query", dataType = "string"), - @ApiImplicitParam(value = ROW_TYPE_D, name = "rowType", paramType = "query", dataType = "string") - }) - public String getUserConfig(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = new SearchCriteria(request); - searchCriteria.addParam(LogSearchConstants.USER_NAME, - request.getParameter("userId")); - searchCriteria.addParam(LogSearchConstants.FILTER_NAME, - request.getParameter("filterName")); - searchCriteria.addParam(LogSearchConstants.ROW_TYPE, - request.getParameter("rowType")); - return userConfigMgr.getUserConfig(searchCriteria); - } - - @GET - @Path("/users/filter") - @Produces({"application/json"}) - @ApiOperation(GET_USER_FILTER_OD) - public String getUserFilter(@Context HttpServletRequest request) { - return userConfigMgr.getUserFilter(); - } - - @POST - @Path("/users/filter") - @Produces({"application/json"}) - @ApiOperation(UPDATE_USER_FILTER_OD) - public String createUserFilter(String json) { - return userConfigMgr.saveUserFiter(json); - } - - @PUT - @Path("/users/filter/{id}") - @Produces({"application/json"}) - @ApiOperation(GET_USER_FILTER_BY_ID_OD) - public String updateUserFilter(String json) { - return userConfigMgr.saveUserFiter(json); - } - - @GET - @Path("/users/names") - @Produces({"application/json"}) - @ApiOperation(GET_ALL_USER_NAMES_OD) - public String getAllUserName() { - return userConfigMgr.getAllUserName(); - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigResource.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigResource.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigResource.java new file mode 100644 index 0000000..fd36978 --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigResource.java @@ -0,0 +1,116 @@ +/* + * 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.rest; + +import javax.inject.Inject; +import javax.ws.rs.BeanParam; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.ambari.logsearch.manager.UserConfigManager; +import org.apache.ambari.logsearch.model.request.impl.UserConfigRequest; +import org.apache.ambari.logsearch.query.model.UserConfigSearchCriteria; +import org.apache.ambari.logsearch.view.VUserConfig; +import org.springframework.context.annotation.Scope; +import org.springframework.core.convert.ConversionService; +import org.springframework.stereotype.Component; + +import static org.apache.ambari.logsearch.doc.DocConstants.UserConfigOperationDescriptions.*; + +@Api(value = "userconfig", description = "User config operations") +@Path("userconfig") +@Component +@Scope("request") +public class UserConfigResource { + + @Inject + private UserConfigManager userConfigManager; + + @Inject + private ConversionService conversionService; + + @POST + @Produces({"application/json"}) + @ApiOperation(SAVE_USER_CONFIG_OD) + public String saveUserConfig(VUserConfig vhist) { + return userConfigManager.saveUserConfig(vhist); + } + + @PUT + @Produces({"application/json"}) + @ApiOperation(UPDATE_USER_CONFIG_OD) + public String updateUserConfig(VUserConfig vhist) { + return userConfigManager.updateUserConfig(vhist); + } + + @DELETE + @Path("/{id}") + @ApiOperation(DELETE_USER_CONFIG_OD) + public void deleteUserConfig(@PathParam("id") String id) { + userConfigManager.deleteUserConfig(id); + } + + @GET + @Produces({"application/json"}) + @ApiOperation(GET_USER_CONFIG_OD) + public String getUserConfig(@BeanParam UserConfigRequest request) { + return userConfigManager.getUserConfig(conversionService.convert(request, UserConfigSearchCriteria.class)); + } + + @GET + @Path("/filters") + @Produces({"application/json"}) + @ApiOperation(GET_USER_FILTER_OD) + public String getUserFilter() { + return userConfigManager.getUserFilter(); + } + + @POST + @Path("/filters") + @Produces({"application/json"}) + @ApiOperation(UPDATE_USER_FILTER_OD) + public String createUserFilter(String json) { + return userConfigManager.saveUserFiter(json); + } + + @PUT + @Path("/filters/{id}") + @Produces({"application/json"}) + @ApiOperation(GET_USER_FILTER_BY_ID_OD) + public String updateUserFilter(String json) { + return userConfigManager.saveUserFiter(json); + } + + @GET + @Path("/names") + @Produces({"application/json"}) + @ApiOperation(GET_ALL_USER_NAMES_OD) + public String getAllUserName() { + return userConfigManager.getAllUserName(); + } + +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/service/UserService.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/service/UserService.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/service/UserService.java index 4b2b918..ba4431d 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/service/UserService.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/service/UserService.java @@ -18,7 +18,6 @@ */ package org.apache.ambari.logsearch.service; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @@ -26,12 +25,14 @@ import org.apache.ambari.logsearch.dao.UserDao; import org.apache.ambari.logsearch.web.model.User; import org.apache.log4j.Logger; +import javax.inject.Inject; + @Service public class UserService implements UserDetailsService { private static final Logger logger = Logger.getLogger(UserService.class); - @Autowired + @Inject private UserDao userDao; @Override http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java new file mode 100644 index 0000000..a3f59f7 --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java @@ -0,0 +1,339 @@ +/* + * 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.solr.model; + +import org.apache.ambari.logsearch.model.response.AuditLogData; +import org.apache.solr.client.solrj.beans.Field; + +import java.util.Date; +import java.util.List; + +public class SolrAuditLogData extends SolrCommonLogData implements AuditLogData { + + @Field("logType") + private String logType; + + @Field("policy") + private String policy; + + @Field("access") + private String access; + + @Field("action") + private String action; + + @Field("agent") + private String agent; + + @Field("agentHost") + private String agentHost; + + @Field("cliIP") + private String clientIp; + + @Field("cliType") + private String clientType; + + @Field("reqContext") + private String requestContext; + + @Field("enforcer") + private String enforcer; + + @Field("evtTime") + private Date eventTime; + + @Field("reason") + private String reason; + + @Field("proxyUsers") + private List<String> proxyUsers; + + @Field("repo") + private String repo; + + @Field("repoType") + private String repoType; + + @Field("reqData") + private String requestData; + + @Field("reqUser") + private String requestUser; + + @Field("resType") + private String responseType; + + @Field("resource") + private String resource; + + @Field("result") + private Integer result; + + @Field("sess") + private String session; + + @Field("tags") + private List<String> tags; + + @Field("tags_str") + private String tagsStr; + + @Field("text") + private String text; + + @Override + public String getText() { + return text; + } + + @Override + public void setText(String text) { + this.text = text; + } + + @Override + public String getTagsStr() { + return tagsStr; + } + + @Override + public void setTagsStr(String tagsStr) { + this.tagsStr = tagsStr; + } + + @Override + public List<String> getTags() { + return tags; + } + + @Override + public void setTags(List<String> tags) { + this.tags = tags; + } + + @Override + public String getSession() { + return session; + } + + @Override + public void setSession(String session) { + this.session = session; + } + + @Override + public Integer getResult() { + return result; + } + + @Override + public void setResult(Integer result) { + this.result = result; + } + + @Override + public String getResource() { + return resource; + } + + @Override + public void setResource(String resource) { + this.resource = resource; + } + + @Override + public String getResponseType() { + return responseType; + } + + public void setResponseType(String responseType) { + this.responseType = responseType; + } + + @Override + public String getRequestUser() { + return requestUser; + } + + @Override + public void setRequestUser(String requestUser) { + this.requestUser = requestUser; + } + + @Override + public String getRequestData() { + return requestData; + } + + @Override + public void setRequestData(String requestData) { + this.requestData = requestData; + } + + @Override + public String getRepoType() { + return repoType; + } + + @Override + public void setRepoType(String repoType) { + this.repoType = repoType; + } + + @Override + public String getRepo() { + return repo; + } + + @Override + public void setRepo(String repo) { + this.repo = repo; + } + + @Override + public List<String> getProxyUsers() { + return proxyUsers; + } + + @Override + public void setProxyUsers(List<String> proxyUsers) { + this.proxyUsers = proxyUsers; + } + + @Override + public String getReason() { + return reason; + } + + @Override + public void setReason(String reason) { + this.reason = reason; + } + + @Override + public Date getEventTime() { + return eventTime; + } + + @Override + public void setEventTime(Date eventTime) { + this.eventTime = eventTime; + } + + @Override + public String getEnforcer() { + return enforcer; + } + + @Override + public void setEnforcer(String enforcer) { + this.enforcer = enforcer; + } + + @Override + public String getRequestContext() { + return requestContext; + } + + @Override + public void setRequestContext(String requestContext) { + this.requestContext = requestContext; + } + + @Override + public String getClientType() { + return clientType; + } + + @Override + public void setClientType(String clientType) { + this.clientType = clientType; + } + + @Override + public String getClientIp() { + return clientIp; + } + + @Override + public void setClientIp(String clientIp) { + this.clientIp = clientIp; + } + + @Override + public String getAgent() { + return agent; + } + + @Override + public void setAgent(String agent) { + this.agent = agent; + } + + @Override + public String getAgentHost() { + return agentHost; + } + + @Override + public void setAgentHost(String agentHost) { + this.agentHost = agentHost; + } + + @Override + public String getAction() { + return action; + } + + @Override + public void setAction(String action) { + this.action = action; + } + + @Override + public String getAccess() { + return access; + } + + @Override + public void setAccess(String access) { + this.access = access; + } + + @Override + public String getPolicy() { + return policy; + } + + @Override + public void setPolicy(String policy) { + this.policy = policy; + } + + @Override + public String getLogType() { + return logType; + } + + @Override + public void setLogType(String logType) { + this.logType = logType; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrCommonLogData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrCommonLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrCommonLogData.java new file mode 100644 index 0000000..d68279d --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrCommonLogData.java @@ -0,0 +1,248 @@ +/* + * 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.solr.model; + +import org.apache.ambari.logsearch.model.response.CommonLogData; +import org.apache.solr.client.solrj.beans.Field; + +import java.util.Date; + +public class SolrCommonLogData implements CommonLogData { + + @Field("id") + private String id; + + @Field("bundle_id") + private String bundleId; + + @Field("case_id") + private String caseId; + + @Field("cluster") + private String cluster; + + @Field("seq_num") + private Long seqNum; + + @Field("log_message") + private String logMessage; + + @Field("logfile_line_number") + private Integer logFileLineNumber; + + @Field("event_dur_m5") + private Long eventDurationMs; + + @Field("file") + private String file; + + @Field("type") + private String type; + + @Field("event_count") + private Long eventCount; + + @Field("event_md5") + private String eventMd5; + + @Field("message_md5") + private String messageMd5; + + @Field("_ttl_") + private String ttl; + + @Field("_expire_at_") + private Date expire; + + @Field("_version_") + private Long version; + + @Field("_router_field_") + private Integer routerField; + + @Override + public String getId() { + return this.id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + @Override + public String getCaseId() { + return this.caseId; + } + + @Override + public void setCaseId(String caseId) { + this.caseId = caseId; + } + + @Override + public String getLogMessage() { + return this.logMessage; + } + + @Override + public String getBundleId() { + return bundleId; + } + + @Override + public void setBundleId(String bundleId) { + this.bundleId = bundleId; + } + + @Override + public Integer getLogFileLineNumber() { + return logFileLineNumber; + } + + @Override + public void setLogFileLineNumber(Integer logFileLineNumber) { + this.logFileLineNumber = logFileLineNumber; + } + + @Override + public void setLogMessage(String logMessage) { + this.logMessage = logMessage; + } + + @Override + public Long getEventDurationMs() { + return eventDurationMs; + } + + @Override + public void setEventDurationMs(Long eventDurationMs) { + this.eventDurationMs = eventDurationMs; + } + + @Override + public String getFile() { + return file; + } + + @Override + public void setFile(String file) { + this.file = file; + } + + @Override + public Long getSeqNum() { + return seqNum; + } + + @Override + public void setSeqNum(Long seqNum) { + this.seqNum = seqNum; + } + + @Override + public String getMessageMd5() { + return messageMd5; + } + + @Override + public void setMessageMd5(String messageMd5) { + this.messageMd5 = messageMd5; + } + + @Override + public String getEventMd5() { + return eventMd5; + } + + @Override + public void setEventMd5(String eventMd5) { + this.eventMd5 = eventMd5; + } + + @Override + public String getCluster() { + return cluster; + } + + @Override + public void setCluster(String cluster) { + this.cluster = cluster; + } + + @Override + public Long getEventCount() { + return eventCount; + } + + @Override + public void setEventCount(Long eventCount) { + this.eventCount = eventCount; + } + + @Override + public String getTtl() { + return this.ttl; + } + + @Override + public void setTtl(String ttl) { + this.ttl = ttl; + } + + @Override + public Date getExpire() { + return expire; + } + + @Override + public void setExpire(Date expire) { + this.expire = expire; + } + + @Override + public Long getVersion() { + return version; + } + + @Override + public void setVersion(Long version) { + this.version = version; + } + + @Override + public Integer getRouterField() { + return this.routerField; + } + + @Override + public void setRouterField(Integer routerField) { + this.routerField = routerField; + } + + @Override + public String getType() { + return type; + } + + @Override + public void setType(String type) { + this.type = type; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrComponentTypeLogData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrComponentTypeLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrComponentTypeLogData.java new file mode 100644 index 0000000..988c878 --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrComponentTypeLogData.java @@ -0,0 +1,38 @@ +/* + * 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.solr.model; + +import org.apache.ambari.logsearch.model.response.ComponentTypeLogData; +import org.apache.solr.client.solrj.beans.Field; + +public class SolrComponentTypeLogData implements ComponentTypeLogData { + + @Field("type") + private String type; + + @Override + public String getType() { + return this.type; + } + + @Override + public void setType(String type) { + this.type = type; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrHostLogData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrHostLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrHostLogData.java new file mode 100644 index 0000000..215b22c --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrHostLogData.java @@ -0,0 +1,38 @@ +/* + * 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.solr.model; + +import org.apache.ambari.logsearch.model.response.HostLogData; +import org.apache.solr.client.solrj.beans.Field; + +public class SolrHostLogData implements HostLogData { + + @Field("host") + private String host; + + @Override + public String getHost() { + return host; + } + + @Override + public void setHost(String host) { + this.host = host; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrServiceLogData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrServiceLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrServiceLogData.java new file mode 100644 index 0000000..890dc7d --- /dev/null +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrServiceLogData.java @@ -0,0 +1,118 @@ +/* + * 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.solr.model; + +import org.apache.ambari.logsearch.model.response.ServiceLogData; +import org.apache.solr.client.solrj.beans.Field; + +import java.util.Date; + +public class SolrServiceLogData extends SolrCommonLogData implements ServiceLogData { + + @Field("level") + private String level; + + @Field("line_number") + private Integer lineNumber; + + @Field("logtime") + private Date logTime; + + @Field("type") + private String type; + + @Field("ip") + private String ip; + + @Field("path") + private String path; + + @Field("host") + private String host; + + @Override + public String getPath() { + return path; + } + + @Override + public void setPath(String path) { + this.path = path; + } + + @Override + public String getIp() { + return ip; + } + + @Override + public void setIp(String ip) { + this.ip = ip; + } + + @Override + public String getType() { + return type; + } + + @Override + public void setType(String type) { + this.type = type; + } + + @Override + public String getHost() { + return host; + } + + @Override + public void setHost(String host) { + this.host = host; + } + + @Override + public Date getLogTime() { + return logTime; + } + + @Override + public void setLogTime(Date logTime) { + this.logTime = logTime; + } + + @Override + public Integer getLineNumber() { + return lineNumber; + } + + @Override + public void setLineNumber(Integer lineNumber) { + this.lineNumber = lineNumber; + } + + @Override + public String getLevel() { + return level; + } + + @Override + public void setLevel(String level) { + this.level = level; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java index bd6cfbb..637a4d7 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java @@ -32,10 +32,10 @@ import java.util.Map.Entry; import java.util.Set; import org.apache.ambari.logsearch.common.LogSearchConstants; -import org.apache.ambari.logsearch.view.VBarDataList; -import org.apache.ambari.logsearch.view.VBarGraphData; +import org.apache.ambari.logsearch.model.response.BarGraphData; +import org.apache.ambari.logsearch.model.response.BarGraphDataListResponse; +import org.apache.ambari.logsearch.model.response.NameValueData; import org.apache.ambari.logsearch.view.VHost; -import org.apache.ambari.logsearch.view.VNameValue; import org.apache.ambari.logsearch.view.VSummary; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -173,41 +173,41 @@ public class BizUtil { } @SuppressWarnings({"unchecked", "rawtypes"}) - public static VBarDataList buildSummaryForTopCounts(SimpleOrderedMap<Object> jsonFacetResponse,String innerJsonKey,String outerJsonKey) { + public static BarGraphDataListResponse buildSummaryForTopCounts(SimpleOrderedMap<Object> jsonFacetResponse, String innerJsonKey, String outerJsonKey) { - VBarDataList vBarDataList = new VBarDataList(); + BarGraphDataListResponse barGraphDataListResponse = new BarGraphDataListResponse(); - Collection<VBarGraphData> dataList = new ArrayList<VBarGraphData>(); + Collection<BarGraphData> dataList = new ArrayList<>(); if (jsonFacetResponse == null) { logger.info("Solr document list in null"); - return vBarDataList; + return barGraphDataListResponse; } List<Object> userList = jsonFacetResponse.getAll(outerJsonKey); if (userList.isEmpty()) { - return vBarDataList; + return barGraphDataListResponse; } SimpleOrderedMap<Map<String, Object>> userMap = (SimpleOrderedMap<Map<String, Object>>) userList.get(0); if (userMap == null) { logger.info("No top user details found"); - return vBarDataList; + return barGraphDataListResponse; } List<SimpleOrderedMap> userUsageList = (List<SimpleOrderedMap>) userMap.get("buckets"); if(userUsageList == null){ - return vBarDataList; + return barGraphDataListResponse; } for (SimpleOrderedMap usageMap : userUsageList) { if (usageMap != null) { - VBarGraphData vBarGraphData = new VBarGraphData(); + BarGraphData barGraphData = new BarGraphData(); String userName = (String) usageMap.get("val"); if (!StringUtils.isBlank(userName)) { - vBarGraphData.setName(userName); + barGraphData.setName(userName); } SimpleOrderedMap repoMap = (SimpleOrderedMap) usageMap.get(innerJsonKey); - List<VNameValue> componetCountList = new ArrayList<VNameValue>(); - List<SimpleOrderedMap> repoUsageList = (List<SimpleOrderedMap>) repoMap.get("buckets"); + List<NameValueData> componetCountList = new ArrayList<NameValueData>(); if (repoMap != null) { + List<SimpleOrderedMap> repoUsageList = (List<SimpleOrderedMap>) repoMap.get("buckets"); for (SimpleOrderedMap repoUsageMap : repoUsageList) { - VNameValue componetCount = new VNameValue(); + NameValueData componetCount = new NameValueData(); if (repoUsageMap.get("val") != null) { componetCount.setName(repoUsageMap.get("val").toString()); } @@ -221,19 +221,19 @@ public class BizUtil { componetCount.setValue(eventCount); componetCountList.add(componetCount); } - vBarGraphData.setDataCounts(componetCountList); - dataList.add(vBarGraphData); + barGraphData.setDataCount(componetCountList); + dataList.add(barGraphData); } }} - vBarDataList.setGraphData(dataList); + barGraphDataListResponse.setGraphData(dataList); logger.info("getting graph data"); - return vBarDataList; + return barGraphDataListResponse; } public static HashMap<String, String> sortHashMapByValues(HashMap<String, String> passedMap) { if (passedMap == null ) { - return passedMap; + return null; } HashMap<String, String> sortedMap = new LinkedHashMap<String, String>(); List<String> mapValues = new ArrayList<String>(passedMap.values()); http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarDataList.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarDataList.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarDataList.java deleted file mode 100644 index b13946c..0000000 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarDataList.java +++ /dev/null @@ -1,46 +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.view; - -import java.util.ArrayList; -import java.util.Collection; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) -public class VBarDataList { - protected Collection<VBarGraphData> graphData; - - public VBarDataList() { - graphData = new ArrayList<VBarGraphData>(); - } - - public Collection<VBarGraphData> getGraphData() { - return graphData; - } - - public void setGraphData(Collection<VBarGraphData> histogramData) { - this.graphData = histogramData; - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/cc429d48/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarGraphData.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarGraphData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarGraphData.java deleted file mode 100644 index 50fe47e..0000000 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/view/VBarGraphData.java +++ /dev/null @@ -1,50 +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.view; - -import java.util.Collection; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) -public class VBarGraphData { - protected Collection<VNameValue> dataCount = null; - protected String name; - - public String getName() { - return name; - } - - public void setName(String level) { - this.name = level; - } - - public Collection<VNameValue> getDataCount() { - return dataCount; - } - - public void setDataCounts(Collection<VNameValue> dateValueCounts) { - this.dataCount = dateValueCounts; - } - -}
