diff options
Diffstat (limited to 'src/main/java/com/android/vts/servlet/ShowTableServlet.java')
-rw-r--r-- | src/main/java/com/android/vts/servlet/ShowTableServlet.java | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/src/main/java/com/android/vts/servlet/ShowTableServlet.java b/src/main/java/com/android/vts/servlet/ShowTableServlet.java deleted file mode 100644 index b56ce9c..0000000 --- a/src/main/java/com/android/vts/servlet/ShowTableServlet.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You may - * obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.vts.servlet; - -import com.android.vts.entity.CodeCoverageEntity; -import com.android.vts.entity.TestCaseRunEntity; -import com.android.vts.entity.TestEntity; -import com.android.vts.entity.TestRunEntity; -import com.android.vts.proto.VtsReportMessage.TestCaseResult; -import com.android.vts.util.DatastoreHelper; -import com.android.vts.util.FilterUtil; -import com.android.vts.util.TestResults; -import com.google.appengine.api.datastore.DatastoreService; -import com.google.appengine.api.datastore.DatastoreServiceFactory; -import com.google.appengine.api.datastore.Entity; -import com.google.appengine.api.datastore.Key; -import com.google.appengine.api.datastore.KeyFactory; -import com.google.appengine.api.datastore.Query.Filter; -import com.google.appengine.api.datastore.Query.SortDirection; -import com.google.gson.Gson; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** Servlet for handling requests to load individual tables. */ -public class ShowTableServlet extends BaseServlet { - private static final String TABLE_JSP = "WEB-INF/jsp/show_table.jsp"; - // Error message displayed on the webpage is tableName passed is null. - private static final String TABLE_NAME_ERROR = "Error : Table name must be passed!"; - private static final String PROFILING_DATA_ALERT = "No profiling data was found."; - private static final int MAX_BUILD_IDS_PER_PAGE = 10; - - @Override - public PageType getNavParentType() { - return PageType.TOT; - } - - @Override - public List<Page> getBreadcrumbLinks(HttpServletRequest request) { - List<Page> links = new ArrayList<>(); - String testName = request.getParameter("testName"); - links.add(new Page(PageType.TABLE, testName, "?testName=" + testName)); - return links; - } - - public static void processTestRun(TestResults testResults, Entity testRun) { - TestRunEntity testRunEntity = TestRunEntity.fromEntity(testRun); - if (testRunEntity == null) { - return; - } - - DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); - List<Key> gets = new ArrayList<>(); - for (long testCaseId : testRunEntity.getTestCaseIds()) { - gets.add(KeyFactory.createKey(TestCaseRunEntity.KIND, testCaseId)); - } - - List<Entity> testCases = new ArrayList<>(); - Map<Key, Entity> entityMap = datastore.get(gets); - for (Key key : gets) { - if (entityMap.containsKey(key)) { - testCases.add(entityMap.get(key)); - } - } - - testResults.addTestRun(testRun, testCases); - } - - @Override - public void doGetHandler(HttpServletRequest request, HttpServletResponse response) - throws IOException { - boolean unfiltered = request.getParameter("unfiltered") != null; - boolean showPresubmit = request.getParameter("showPresubmit") != null; - boolean showPostsubmit = request.getParameter("showPostsubmit") != null; - - Long startTime = null; // time in microseconds - Long endTime = null; // time in microseconds - DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); - RequestDispatcher dispatcher = null; - - // message to display if profiling point data is not available - String profilingDataAlert = ""; - - if (request.getParameter("testName") == null) { - request.setAttribute("testName", TABLE_NAME_ERROR); - return; - } - String testName = request.getParameter("testName"); - - if (request.getParameter("startTime") != null) { - String time = request.getParameter("startTime"); - try { - startTime = Long.parseLong(time); - startTime = startTime > 0 ? startTime : null; - } catch (NumberFormatException e) { - startTime = null; - } - } - if (request.getParameter("endTime") != null) { - String time = request.getParameter("endTime"); - try { - endTime = Long.parseLong(time); - endTime = endTime > 0 ? endTime : null; - } catch (NumberFormatException e) { - endTime = null; - } - } - - // If no params are specified, set to default of postsubmit-only. - if (!(showPresubmit || showPostsubmit)) { - showPostsubmit = true; - } - - // If unfiltered, set showPre- and Post-submit to true for accurate UI. - if (unfiltered) { - showPostsubmit = true; - showPresubmit = true; - } - - // Add result names to list - List<String> resultNames = new ArrayList<>(); - for (TestCaseResult r : TestCaseResult.values()) { - resultNames.add(r.name()); - } - - TestResults testResults = new TestResults(testName); - - SortDirection dir = SortDirection.DESCENDING; - if (startTime != null && endTime == null) { - dir = SortDirection.ASCENDING; - } - Key testKey = KeyFactory.createKey(TestEntity.KIND, testName); - - Filter typeFilter = FilterUtil.getTestTypeFilter(showPresubmit, showPostsubmit, unfiltered); - Filter testFilter = - FilterUtil.getTimeFilter( - testKey, TestRunEntity.KIND, startTime, endTime, typeFilter); - - Map<String, String[]> parameterMap = request.getParameterMap(); - List<Filter> userTestFilters = FilterUtil.getUserTestFilters(parameterMap); - userTestFilters.add(0, testFilter); - Filter userDeviceFilter = FilterUtil.getUserDeviceFilter(parameterMap); - - List<Key> gets = - FilterUtil.getMatchingKeys( - testKey, - TestRunEntity.KIND, - userTestFilters, - userDeviceFilter, - dir, - MAX_BUILD_IDS_PER_PAGE); - Map<Key, Entity> entityMap = datastore.get(gets); - for (Key key : gets) { - if (!entityMap.containsKey(key)) { - continue; - } - processTestRun(testResults, entityMap.get(key)); - } - testResults.processReport(); - - if (testResults.profilingPointNames.length == 0) { - profilingDataAlert = PROFILING_DATA_ALERT; - } - - FilterUtil.setAttributes(request, parameterMap); - - request.setAttribute("testName", request.getParameter("testName")); - - request.setAttribute("error", profilingDataAlert); - - // pass values by converting to JSON - request.setAttribute("headerRow", new Gson().toJson(testResults.headerRow)); - request.setAttribute("timeGrid", new Gson().toJson(testResults.timeGrid)); - request.setAttribute("durationGrid", new Gson().toJson(testResults.durationGrid)); - request.setAttribute("summaryGrid", new Gson().toJson(testResults.summaryGrid)); - request.setAttribute("resultsGrid", new Gson().toJson(testResults.resultsGrid)); - request.setAttribute("profilingPointNames", testResults.profilingPointNames); - request.setAttribute("resultNames", resultNames); - request.setAttribute("resultNamesJson", new Gson().toJson(resultNames)); - request.setAttribute("logInfoMap", new Gson().toJson(testResults.logInfoMap)); - - // data for pie chart - request.setAttribute( - "topBuildResultCounts", new Gson().toJson(testResults.totResultCounts)); - request.setAttribute("topBuildId", testResults.totBuildId); - request.setAttribute("startTime", new Gson().toJson(testResults.startTime)); - request.setAttribute("endTime", new Gson().toJson(testResults.endTime)); - request.setAttribute( - "hasNewer", - new Gson() - .toJson( - DatastoreHelper.hasNewer( - testKey, TestRunEntity.KIND, testResults.endTime))); - request.setAttribute( - "hasOlder", - new Gson() - .toJson( - DatastoreHelper.hasOlder( - testKey, TestRunEntity.KIND, testResults.startTime))); - request.setAttribute("unfiltered", unfiltered); - request.setAttribute("showPresubmit", showPresubmit); - request.setAttribute("showPostsubmit", showPostsubmit); - - request.setAttribute("branches", new Gson().toJson(DatastoreHelper.getAllBranches())); - request.setAttribute("devices", new Gson().toJson(DatastoreHelper.getAllBuildFlavors())); - - dispatcher = request.getRequestDispatcher(TABLE_JSP); - try { - dispatcher.forward(request, response); - } catch (ServletException e) { - logger.log(Level.SEVERE, "Servlet Exception caught : " + e.toString()); - } - } -} |