summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorYoung Gyu Park <younggyu@google.com>2018-05-03 18:29:49 +0900
committerYoung Gyu Park <younggyu@google.com>2018-05-09 10:59:51 +0900
commitd3edb7b7e958bba8aded6057ee6a647906469d35 (patch)
treebdcfd5ac6797c704c42408a524d94c0a4fb1f0e5 /src/main/java
parenta00c785f144e5c3a19b1fe91f8e3ff6d4b24eefd (diff)
downloaddashboard-d3edb7b7e958bba8aded6057ee6a647906469d35.tar.gz
Bugnizer link button
Test: go/vts-web-staging/show_plan_release?plan=vts&type=suite&page=1 Bug: 79183660 Change-Id: I1af599e9a10fa8da6b9966d5cf64899134fddc6e
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/android/vts/entity/TestSuiteResultEntity.java155
-rw-r--r--src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java2
-rw-r--r--src/main/java/com/android/vts/servlet/ShowGcsLogServlet.java3
-rw-r--r--src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java2
4 files changed, 157 insertions, 5 deletions
diff --git a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java
index 9c5422a..3ebece7 100644
--- a/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java
+++ b/src/main/java/com/android/vts/entity/TestSuiteResultEntity.java
@@ -26,13 +26,31 @@ import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.text.StrSubstitutor;
+import org.apache.http.NameValuePair;
+import org.apache.http.ParseException;
+import org.apache.http.client.utils.URIUtils;
+import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.http.message.BasicNameValuePair;
+
+import javax.servlet.ServletContext;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
@@ -46,6 +64,37 @@ import static com.googlecode.objectify.ObjectifyService.ofy;
@NoArgsConstructor
public class TestSuiteResultEntity {
+ /** Bug Tracking System Property class */
+ private static Properties bugTrackingSystemProp = new Properties();
+
+ /** System Configuration Property class */
+ private static Properties systemConfigProp = new Properties();
+
+ static {
+ try {
+ InputStream defaultInputStream =
+ TestSuiteResultEntity.class
+ .getClassLoader()
+ .getResourceAsStream("config.properties");
+ systemConfigProp.load(defaultInputStream);
+
+ String bugTrackingSystem = systemConfigProp.getProperty("bug.tracking.system");
+
+ InputStream btsInputStream =
+ TestSuiteResultEntity.class
+ .getClassLoader()
+ .getResourceAsStream(
+ "bug_tracking_system/"
+ + bugTrackingSystem
+ + "/config.properties");
+ bugTrackingSystemProp.load(btsInputStream);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
public enum TestType {
UNKNOWN(0),
TOT(1),
@@ -253,4 +302,108 @@ public class TestSuiteResultEntity {
return testType;
}
}
+
+ private String getLabInfraIssueDescription() throws IOException {
+
+ String bugTrackingSystem = systemConfigProp.getProperty("bug.tracking.system");
+
+ String templateName =
+ bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".labInfraIssue.template.name");
+
+ InputStream inputStream =
+ this.getClass()
+ .getClassLoader()
+ .getResourceAsStream(
+ "bug_tracking_system/" + bugTrackingSystem + "/" + templateName);
+
+ String templateDescription = IOUtils.toString(inputStream, "UTF-8");
+
+ Map<String, String> valuesMap = new HashMap<>();
+ valuesMap.put("suiteBuildNumber", suiteBuildNumber);
+ valuesMap.put("buildId", buildId);
+ valuesMap.put("modulesDone", Integer.toString(modulesDone));
+ valuesMap.put("modulesTotal", Integer.toString(modulesTotal));
+ valuesMap.put("hostName", hostName);
+ valuesMap.put("resultPath", resultPath);
+ valuesMap.put("buildVendorFingerprint", buildVendorFingerprint);
+ valuesMap.put("buildSystemFingerprint", buildSystemFingerprint);
+
+ StrSubstitutor sub = new StrSubstitutor(valuesMap);
+ String resolvedDescription = sub.replace(templateDescription);
+
+ return resolvedDescription;
+ }
+
+ private String getCrashSecurityDescription() throws IOException {
+
+ String bugTrackingSystem = systemConfigProp.getProperty("bug.tracking.system");
+
+ String templateName =
+ bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".crashSecurity.template.name");
+
+ InputStream inputStream =
+ this.getClass()
+ .getClassLoader()
+ .getResourceAsStream(
+ "bug_tracking_system/" + bugTrackingSystem + "/" + templateName);
+
+ String templateDescription = IOUtils.toString(inputStream, "UTF-8");
+
+ Map<String, String> valuesMap = new HashMap<>();
+ valuesMap.put("suiteBuildNumber", suiteBuildNumber);
+ valuesMap.put("buildId", buildId);
+ valuesMap.put("hostName", hostName);
+ valuesMap.put("resultPath", resultPath);
+ valuesMap.put("buildVendorFingerprint", buildVendorFingerprint);
+ valuesMap.put("buildSystemFingerprint", buildSystemFingerprint);
+
+ StrSubstitutor sub = new StrSubstitutor(valuesMap);
+ String resolvedDescription = sub.replace(templateDescription);
+
+ return resolvedDescription;
+ }
+
+ public String getBuganizerLink() throws IOException, ParseException, URISyntaxException {
+
+ String bugTrackingSystem = systemConfigProp.getProperty("bug.tracking.system");
+
+ List<NameValuePair> qparams = new ArrayList<NameValuePair>();
+ if (!this.bootSuccess || (this.passedTestCaseCount == 0 && this.failedTestCaseCount == 0)) {
+ qparams.add(
+ new BasicNameValuePair(
+ "component",
+ this.bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".labInfraIssue.component.id")));
+ qparams.add(
+ new BasicNameValuePair(
+ "template",
+ this.bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".labInfraIssue.template.id")));
+ qparams.add(new BasicNameValuePair("description", this.getLabInfraIssueDescription()));
+ } else {
+ qparams.add(
+ new BasicNameValuePair(
+ "component",
+ this.bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".crashSecurity.component.id")));
+ qparams.add(
+ new BasicNameValuePair(
+ "template",
+ this.bugTrackingSystemProp.getProperty(
+ bugTrackingSystem + ".crashSecurity.template.id")));
+ qparams.add(new BasicNameValuePair("description", this.getCrashSecurityDescription()));
+ }
+
+ URI uri =
+ URIUtils.createURI(
+ this.bugTrackingSystemProp.getProperty(bugTrackingSystem + ".uri.scheme"),
+ this.bugTrackingSystemProp.getProperty(bugTrackingSystem + ".uri.host"),
+ -1,
+ this.bugTrackingSystemProp.getProperty(bugTrackingSystem + ".uri.path"),
+ URLEncodedUtils.format(qparams, "UTF-8"),
+ null);
+ return uri.toString();
+ }
}
diff --git a/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java b/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java
index e4989fb..1884513 100644
--- a/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java
+++ b/src/main/java/com/android/vts/job/VtsSuiteTestJobServlet.java
@@ -122,7 +122,7 @@ public class VtsSuiteTestJobServlet extends HttpServlet {
super.init(servletConfig);
this.keyFileInputStream =
- this.getServletContext().getResourceAsStream("/WEB-INF/keys/" + GCS_KEY_FILE);
+ this.getClass().getClassLoader().getResourceAsStream("keys/" + GCS_KEY_FILE);
Optional<Storage> optionalStorage = GcsHelper.getStorage(this.keyFileInputStream);
if (optionalStorage.isPresent()) {
diff --git a/src/main/java/com/android/vts/servlet/ShowGcsLogServlet.java b/src/main/java/com/android/vts/servlet/ShowGcsLogServlet.java
index 340edfe..f9b6f85 100644
--- a/src/main/java/com/android/vts/servlet/ShowGcsLogServlet.java
+++ b/src/main/java/com/android/vts/servlet/ShowGcsLogServlet.java
@@ -78,8 +78,7 @@ public class ShowGcsLogServlet extends BaseServlet {
public void init(ServletConfig cfg) throws ServletException {
super.init(cfg);
- this.keyFileInputStream =
- this.getServletContext().getResourceAsStream("/WEB-INF/keys/" + GCS_KEY_FILE);
+ this.keyFileInputStream = this.getClass().getClassLoader().getResourceAsStream("keys/" + GCS_KEY_FILE);
Optional<Storage> optionalStorage = GcsHelper.getStorage(this.keyFileInputStream);
if (optionalStorage.isPresent()) {
diff --git a/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java b/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java
index 4b2ac88..cd1dd41 100644
--- a/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java
+++ b/src/main/java/com/android/vts/servlet/ShowPlanReleaseServlet.java
@@ -302,7 +302,7 @@ public class ShowPlanReleaseServlet extends BaseServlet {
ofy().load()
.type(TestSuiteResultEntity.class)
.filter("suitePlan", testPlan)
- .filter("testType", testCategoryType)
+ .filter("testType", Integer.parseInt(testCategoryType))
.orderKey(true);
Pagination<TestSuiteResultEntity> testSuiteResultEntityPagination =