summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java')
-rw-r--r--src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java150
1 files changed, 0 insertions, 150 deletions
diff --git a/src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java b/src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java
deleted file mode 100644
index 309c3e2..0000000
--- a/src/main/java/com/android/vts/api/TestAcknowledgmentRestServlet.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * 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.TestAcknowledgmentEntity;
-import com.android.vts.util.DatastoreHelper;
-import com.google.appengine.api.datastore.DatastoreFailureException;
-import com.google.appengine.api.datastore.DatastoreService;
-import com.google.appengine.api.datastore.DatastoreServiceFactory;
-import com.google.appengine.api.datastore.DatastoreTimeoutException;
-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;
-import com.google.appengine.api.datastore.Transaction;
-import com.google.appengine.api.users.User;
-import com.google.appengine.api.users.UserService;
-import com.google.appengine.api.users.UserServiceFactory;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.ConcurrentModificationException;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/** Servlet for handling requests to fetch test acknowledgments. */
-public class TestAcknowledgmentRestServlet extends HttpServlet {
- protected static final Logger logger =
- Logger.getLogger(TestAcknowledgmentRestServlet.class.getName());
-
- /** Read all test acknowledgments. */
- @Override
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
-
- Query ackQuery = new Query(TestAcknowledgmentEntity.KIND);
- List<JsonObject> testAcks = new ArrayList<>();
- for (Entity ackEntity :
- datastore.prepare(ackQuery).asIterable(DatastoreHelper.getLargeBatchOptions())) {
- TestAcknowledgmentEntity ack = TestAcknowledgmentEntity.fromEntity(ackEntity);
- if (ack == null) continue;
- testAcks.add(ack.toJson());
- }
- response.setContentType("application/json");
- PrintWriter writer = response.getWriter();
- writer.print(new Gson().toJson(testAcks));
- writer.flush();
- }
-
- /** Create a test acknowledgment. */
- @Override
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
- UserService userService = UserServiceFactory.getUserService();
- if (!userService.isUserAdmin()) {
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
- return;
- }
- User currentUser = userService.getCurrentUser();
- DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
-
- StringBuilder sb = new StringBuilder();
- BufferedReader br = new BufferedReader(request.getReader());
- String str;
- while ((str = br.readLine()) != null) {
- sb.append(str);
- }
- JsonObject json;
- try {
- json = new JsonParser().parse(sb.toString()).getAsJsonObject();
- } catch (IllegalStateException e) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- TestAcknowledgmentEntity ack = TestAcknowledgmentEntity.fromJson(currentUser, json);
- Transaction txn = datastore.beginTransaction();
- try {
- Key key = datastore.put(ack.toEntity());
- txn.commit();
-
- response.setContentType("application/json");
- PrintWriter writer = response.getWriter();
- writer.print(new Gson().toJson(KeyFactory.keyToString(key)));
- writer.flush();
- } catch (ConcurrentModificationException
- | DatastoreFailureException
- | DatastoreTimeoutException e) {
- txn.rollback();
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- } finally {
- if (txn.isActive()) {
- logger.log(Level.WARNING, "Transaction rollback forced acknowledgment post.");
- txn.rollback();
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- }
- response.setStatus(HttpServletResponse.SC_OK);
- }
-
- /** Remove a test acknowledgment. */
- @Override
- public void doDelete(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
- UserService userService = UserServiceFactory.getUserService();
- if (!userService.isUserAdmin()) {
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
- return;
- }
- DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
- String stringKey = request.getPathInfo();
- if (stringKey == null) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- if (stringKey.startsWith("/")) {
- stringKey = stringKey.substring(1);
- }
- Key key = KeyFactory.stringToKey(stringKey);
- if (!key.getKind().equals(TestAcknowledgmentEntity.KIND)) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- datastore.delete(key);
- response.setStatus(HttpServletResponse.SC_OK);
- }
-}