diff options
Diffstat (limited to 'src/main/java/com/android/vts/api/TestSuiteResultRestServlet.java')
-rw-r--r-- | src/main/java/com/android/vts/api/TestSuiteResultRestServlet.java | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/main/java/com/android/vts/api/TestSuiteResultRestServlet.java b/src/main/java/com/android/vts/api/TestSuiteResultRestServlet.java deleted file mode 100644 index 38be2c0..0000000 --- a/src/main/java/com/android/vts/api/TestSuiteResultRestServlet.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2018 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.api; - -import com.android.vts.entity.TestSuiteFileEntity; -import com.android.vts.entity.TestSuiteResultEntity; -import com.android.vts.proto.TestSuiteResultMessageProto; -import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; -import com.google.api.client.http.javanet.NetHttpTransport; -import com.google.api.client.json.jackson.JacksonFactory; -import com.google.api.services.oauth2.Oauth2; -import com.google.api.services.oauth2.model.Tokeninfo; -import com.google.gson.Gson; -import com.googlecode.objectify.Key; -import org.apache.commons.codec.binary.Base64; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; - -/** REST endpoint for posting test suite data to the Dashboard. */ -public class TestSuiteResultRestServlet extends BaseApiServlet { - private static String SERVICE_CLIENT_ID; - private static final String SERVICE_NAME = "VTS Dashboard"; - private static final Logger logger = - Logger.getLogger(TestSuiteResultRestServlet.class.getName()); - - @Override - public void init(ServletConfig cfg) throws ServletException { - super.init(cfg); - - SERVICE_CLIENT_ID = systemConfigProp.getProperty("appengine.serviceClientID"); - } - - @Override - public void doPost(HttpServletRequest request, HttpServletResponse response) - throws IOException { - // Retrieve the params - TestSuiteResultMessageProto.TestSuiteResultMessage testSuiteResultMessage; - try { - String payload = request.getReader().lines().collect(Collectors.joining()); - byte[] value = Base64.decodeBase64(payload); - testSuiteResultMessage = - TestSuiteResultMessageProto.TestSuiteResultMessage.parseFrom(value); - } catch (IOException e) { - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - logger.log(Level.WARNING, "Invalid proto: " + e.getLocalizedMessage()); - return; - } - - Map<String, Object> resultMap = new HashMap<>(); - // Verify service account access token. - if (testSuiteResultMessage.hasAccessToken()) { - String accessToken = testSuiteResultMessage.getAccessToken(); - logger.log(Level.INFO, "accessToken => " + accessToken); - GoogleCredential credential = new GoogleCredential().setAccessToken(accessToken); - Oauth2 oauth2 = - new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credential) - .setApplicationName(SERVICE_NAME) - .build(); - Tokeninfo tokenInfo = oauth2.tokeninfo().setAccessToken(accessToken).execute(); - - if (tokenInfo.getIssuedTo().equals(SERVICE_CLIENT_ID)) { - String filePath = "suite_result/2019/04/06/132343.bin"; - Key<TestSuiteFileEntity> testSuiteFileParent = - Key.create(TestSuiteFileEntity.class, filePath); - TestSuiteFileEntity newTestSuiteFileEntity = new TestSuiteFileEntity(filePath); - TestSuiteResultEntity testSuiteResultEntity = - new TestSuiteResultEntity( - testSuiteFileParent, - testSuiteResultMessage.getStartTime(), - testSuiteResultMessage.getEndTime(), - testSuiteResultMessage.getTestType(), - testSuiteResultMessage.getBootSuccess(), - testSuiteResultMessage.getResultPath(), - testSuiteResultMessage.getInfraLogPath(), - testSuiteResultMessage.getHostName(), - testSuiteResultMessage.getSuitePlan(), - testSuiteResultMessage.getSuiteVersion(), - testSuiteResultMessage.getSuiteName(), - testSuiteResultMessage.getSuiteBuildNumber(), - testSuiteResultMessage.getModulesDone(), - testSuiteResultMessage.getModulesTotal(), - testSuiteResultMessage.getBranch(), - testSuiteResultMessage.getTarget(), - testSuiteResultMessage.getBuildId(), - testSuiteResultMessage.getBuildSystemFingerprint(), - testSuiteResultMessage.getBuildVendorFingerprint(), - testSuiteResultMessage.getPassedTestCaseCount(), - testSuiteResultMessage.getFailedTestCaseCount()); - - testSuiteResultEntity.save(newTestSuiteFileEntity); - resultMap.put("result", "successfully saved!"); - } else { - logger.log(Level.WARNING, "service_client_id didn't match!"); - logger.log(Level.INFO, "SERVICE_CLIENT_ID => " + tokenInfo.getIssuedTo()); - resultMap.put("result", "Wrong Service Client ID!"); - } - } else { - logger.log(Level.WARNING, "postMessage do not contain any accessToken!"); - resultMap.put("result", "Access Token Missing!"); - } - String json = new Gson().toJson(resultMap); - response.setStatus(HttpServletResponse.SC_OK); - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write(json); - } -} |