You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/11/25 14:38:24 UTC

[ignite-teamcity-bot] branch ignite-9542-new-run-stripe updated: IGNITE-9542 Removing old map entries

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-9542-new-run-stripe
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-9542-new-run-stripe by this push:
     new 8b9536a  IGNITE-9542 Removing old map entries
8b9536a is described below

commit 8b9536acf43f794306b5d2b0c7fbc3e3b13af8c7
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sun Nov 25 17:38:24 2018 +0300

    IGNITE-9542 Removing old map entries
---
 .../ci/teamcity/ignited/runhist/Invocation.java    |  5 ++-
 .../teamcity/ignited/runhist/InvocationData.java   | 46 +++++++++++++++-------
 .../teamcity/ignited/runhist/RunHistCompacted.java |  6 +++
 3 files changed, 40 insertions(+), 17 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/Invocation.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/Invocation.java
index ec68b93..5f5bffb 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/Invocation.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/Invocation.java
@@ -23,13 +23,14 @@ public class Invocation {
     int buildId;
     byte status;
     byte changePresent;
+    long startDate;
 
     public Invocation(Integer buildId) {
         this.buildId = buildId;
     }
 
-    @Override
-    public String toString() {
+    /** {@inheritDoc} */
+    @Override public String toString() {
         return MoreObjects.toStringHelper(this)
             .add("buildId", buildId)
             .add("status", status)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
index 03be6f1..3d4798d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
@@ -21,17 +21,15 @@ import com.google.common.base.MoreObjects;
 import java.time.Duration;
 import java.util.List;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.ignite.ci.analysis.RunStat;
 import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.TestCompacted;
 
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.HashMap;
 import java.util.Map;
 import java.util.TreeMap;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.jetbrains.annotations.NotNull;
 
 public class InvocationData {
     public static final int MAX_DAYS = 30;
@@ -59,9 +57,6 @@ public class InvocationData {
     }
 
     public void add(IStringCompactor c, TestCompacted testCompacted, int build, long startDate) {
-        if ((System.currentTimeMillis() - startDate) > Duration.ofDays(MAX_DAYS).toMillis())
-            return;
-
         final boolean failedTest = testCompacted.isFailedTest(c);
 
         final Invocation invocation = invocationMap.computeIfAbsent(build, Invocation::new);
@@ -72,11 +67,22 @@ public class InvocationData {
                         : FAILURE
                 : OK;
 
-        invocation.status = (byte) failCode;
+        invocation.status = (byte)failCode;
+        invocation.startDate = startDate;
 
         allHistRuns++;
         if (failedTest)
             allHistFailures++;
+
+        removeEldiest();
+    }
+
+    void removeEldiest() {
+        invocationMap.entrySet().removeIf(entries -> isExpired(entries.getValue().startDate));
+    }
+
+    public boolean isExpired(long startDate) {
+        return (U.currentTimeMillis() - startDate) > Duration.ofDays(MAX_DAYS).toMillis();
     }
 
     public int allHistFailures() {
@@ -85,16 +91,24 @@ public class InvocationData {
 
     public int notMutedRunsCount() {
         return (int)
-                invocationMap.values()
-                        .stream()
+                invocations()
                         .filter(invocation -> invocation.status != MUTED)
                         .count();
     }
 
+    @NotNull public Stream<Invocation> invocations() {
+        return invocationMap.values()
+            .stream()
+            .filter(this::isActual);
+    }
+
+    private boolean isActual(Invocation invocation) {
+        return !isExpired(invocation.startDate);
+    }
+
     public int failuresCount() {
         return (int)
-                invocationMap.values()
-                        .stream()
+                invocations()
                         .filter(invocation -> invocation.status == FAILURE)
                         .count();
     }
@@ -107,9 +121,11 @@ public class InvocationData {
                 .toString();
     }
 
+    /**
+     *
+     */
     public List<Integer> getLatestRuns() {
-        return invocationMap.values()
-            .stream()
+        return invocations()
             .map(i->(int)i.status)
             .collect(Collectors.toList());
     }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
index 6457c4e..795e00b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/RunHistCompacted.java
@@ -92,6 +92,12 @@ public class RunHistCompacted implements IVersionedEntity, IRunHistory {
         return null;
     }
 
+    /**
+     * @param c Compactor.
+     * @param testCompacted Test compacted.
+     * @param build Build.
+     * @param startDate Start date.
+     */
     public void addTestRun(IStringCompactor c, TestCompacted testCompacted, int build, long startDate) {
         data.add(c, testCompacted, build, startDate);
     }