diff options
author | Young Gyu Park <younggyu@google.com> | 2018-08-10 13:16:19 +0900 |
---|---|---|
committer | Young Gyu Park <younggyu@google.com> | 2018-08-10 13:16:19 +0900 |
commit | 91647f1bc86aa3eba3f6d553a97cb61dfccce4be (patch) | |
tree | b71cb2196e5d06121223e21661cb4f022ea1f73a /src/main/java | |
parent | 021de0e7fc01ccdac4039d249cb92f9b6731610b (diff) | |
download | dashboard-91647f1bc86aa3eba3f6d553a97cb61dfccce4be.tar.gz |
Adding null check logic for suite test name
Test: go/vts-web-staging
Bug: 112338819
Change-Id: I8ced065c879354c3946113d331ee9cc8eb52e281
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/android/vts/entity/TestSuiteResultEntity.java | 29 | ||||
-rw-r--r-- | src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java | 139 |
2 files changed, 90 insertions, 78 deletions
diff --git a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java index 82cafd7..b3d24df 100644 --- a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java +++ b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java @@ -16,6 +16,7 @@ package com.android.vts.entity; +import com.google.common.base.Strings; import com.googlecode.objectify.Key; import com.googlecode.objectify.annotation.Cache; import com.googlecode.objectify.annotation.Entity; @@ -23,6 +24,8 @@ import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Ignore; import com.googlecode.objectify.annotation.Index; import com.googlecode.objectify.annotation.Parent; +import java.util.logging.Level; +import java.util.logging.Logger; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; @@ -125,6 +128,8 @@ class TestTypeIndex { @NoArgsConstructor public class TestSuiteResultEntity { + private static final Logger logger = Logger.getLogger(TestSuiteResultEntity.class.getName()); + /** Bug Tracking System Property class */ private static Properties bugTrackingSystemProp = new Properties(); @@ -288,9 +293,27 @@ public class TestSuiteResultEntity { } /** Saving function for the instance of this class */ - public void save() { - this.updated = new Date(); - ofy().save().entity(this).now(); + public void save(TestSuiteFileEntity newTestSuiteFileEntity) { + List<String> checkList = + Arrays.asList( + this.hostName, + this.suitePlan, + this.suiteName, + this.suiteBuildNumber, + this.branch, + this.target, + this.buildId); + boolean isAllTrue = checkList.stream().allMatch(val -> Strings.isNullOrEmpty(val)); + + if (isAllTrue) { + logger.log(Level.WARNING, "There is null or empty string among required fields!"); + } else { + this.updated = new Date(); + ofy().transact(() -> { + newTestSuiteFileEntity.save(); + ofy().save().entity(this).now(); + }); + } } public static void setPropertyValues(Properties newSystemConfigProp) { diff --git a/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java b/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java index 719ba64..c0189b3 100644 --- a/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java +++ b/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java @@ -143,77 +143,70 @@ public class VtsSuiteTestJobServlet extends HttpServlet { } dateStringList.add(todayDateString); - dateStringList.forEach( - dateString -> { - String[] dateArray = dateString.split("-"); - if (dateArray.length == 3) { - - Queue queue = QueueFactory.getQueue(QUEUE); - - List<TaskOptions> tasks = new ArrayList<>(); - - String fileSeparator = FileSystems.getDefault().getSeparator(); - - String year = dateArray[0]; - String month = dateArray[1]; - String day = dateArray[2]; - - List<String> pathList = - Arrays.asList(GCS_SUITE_TEST_FOLDER_NAME, year, month, day); - Path pathInfo = Paths.get(String.join(fileSeparator, pathList)); - - List<TestSuiteFileEntity> testSuiteFileEntityList = - ofy().load() - .type(TestSuiteFileEntity.class) - .filter("year", Integer.parseInt(year)) - .filter("month", Integer.parseInt(month)) - .filter("day", Integer.parseInt(day)) - .list(); - - List<String> filePathList = - testSuiteFileEntityList - .stream() - .map(testSuiteFile -> testSuiteFile.getFilePath()) - .collect(Collectors.toList()); - - Bucket vtsReportBucket = this.storage.get(GCS_BUCKET_NAME); - - Storage.BlobListOption[] listOptions = - new Storage.BlobListOption[] { - Storage.BlobListOption.prefix( - pathInfo.toString() + fileSeparator) - }; - - Iterable<Blob> blobIterable = - vtsReportBucket.list(listOptions).iterateAll(); - Iterator<Blob> blobIterator = blobIterable.iterator(); - while (blobIterator.hasNext()) { - Blob blob = blobIterator.next(); - if (blob.isDirectory()) { - logger.log( - Level.INFO, blob.getName() + " directory will be skipped!"); - } else { - if (filePathList.contains(blob.getName())) { - logger.log( - Level.INFO, - "filePathList contain => " + blob.getName()); - } else if (blob.getName().endsWith(fileSeparator)) { - logger.log(Level.INFO, blob.getName() + " endswith slash!"); - } else { - TaskOptions task = - TaskOptions.Builder.withUrl(SUITE_TEST_URL) - .param("filePath", blob.getName()) - .method(TaskOptions.Method.POST); - tasks.add(task); - } - } - } - TaskQueueHelper.addToQueue(queue, tasks); + for (String dateString : dateStringList) { + String[] dateArray = dateString.split("-"); + if (dateArray.length == 3) { + + Queue queue = QueueFactory.getQueue(QUEUE); + + List<TaskOptions> tasks = new ArrayList<>(); + + String fileSeparator = FileSystems.getDefault().getSeparator(); + + String year = dateArray[0]; + String month = dateArray[1]; + String day = dateArray[2]; + + List<String> pathList = Arrays.asList(GCS_SUITE_TEST_FOLDER_NAME, year, month, day); + Path pathInfo = Paths.get(String.join(fileSeparator, pathList)); + + List<TestSuiteFileEntity> testSuiteFileEntityList = + ofy().load() + .type(TestSuiteFileEntity.class) + .filter("year", Integer.parseInt(year)) + .filter("month", Integer.parseInt(month)) + .filter("day", Integer.parseInt(day)) + .list(); + + List<String> filePathList = + testSuiteFileEntityList + .stream() + .map(testSuiteFile -> testSuiteFile.getFilePath()) + .collect(Collectors.toList()); + + Bucket vtsReportBucket = this.storage.get(GCS_BUCKET_NAME); + + Storage.BlobListOption[] listOptions = + new Storage.BlobListOption[] { + Storage.BlobListOption.prefix(pathInfo.toString() + fileSeparator) + }; + + Iterable<Blob> blobIterable = vtsReportBucket.list(listOptions).iterateAll(); + Iterator<Blob> blobIterator = blobIterable.iterator(); + while (blobIterator.hasNext()) { + Blob blob = blobIterator.next(); + if (blob.isDirectory()) { + logger.log(Level.INFO, blob.getName() + " directory will be skipped!"); } else { - throw new IllegalArgumentException( - todayDateString + " date string not in correct format"); + if (filePathList.contains(blob.getName())) { + logger.log(Level.INFO, "filePathList contain => " + blob.getName()); + } else if (blob.getName().endsWith(fileSeparator)) { + logger.log(Level.INFO, blob.getName() + " endswith slash!"); + } else { + TaskOptions task = + TaskOptions.Builder.withUrl(SUITE_TEST_URL) + .param("filePath", blob.getName()) + .method(TaskOptions.Method.POST); + tasks.add(task); + } } - }); + } + TaskQueueHelper.addToQueue(queue, tasks); + } else { + throw new IllegalArgumentException( + todayDateString + " date string not in correct format"); + } + } } @Override @@ -245,12 +238,8 @@ public class VtsSuiteTestJobServlet extends HttpServlet { if (blobFile.exists()) { TestSuiteFileEntity newTestSuiteFileEntity = new TestSuiteFileEntity(filePath); - newTestSuiteFileEntity.save(); - TestSuiteResultMessageProto.TestSuiteResultMessage testSuiteResultMessage; try { - // String payload = blobFile.getContent().collect(Collectors.joining()); - // byte[] value = Base64.decodeBase64(payload); - testSuiteResultMessage = + TestSuiteResultMessageProto.TestSuiteResultMessage testSuiteResultMessage = TestSuiteResultMessageProto.TestSuiteResultMessage.parseFrom( blobFile.getContent()); @@ -278,7 +267,7 @@ public class VtsSuiteTestJobServlet extends HttpServlet { testSuiteResultMessage.getPassedTestCaseCount(), testSuiteResultMessage.getFailedTestCaseCount()); - testSuiteResultEntity.save(); + testSuiteResultEntity.save(newTestSuiteFileEntity); } catch (IOException e) { ofy().delete().type(TestSuiteFileEntity.class).id(filePath).now(); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); |