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/15 14:23:57 UTC

[ignite-teamcity-bot] branch ignite-10243 updated: IGNITE-10243 Removal of usage og deprecated caches

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

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


The following commit(s) were added to refs/heads/ignite-10243 by this push:
     new 764aa05  IGNITE-10243 Removal of usage og deprecated caches
764aa05 is described below

commit 764aa052f5c245fdb6764f34acfc47a0d0000d5a
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Nov 15 17:23:54 2018 +0300

    IGNITE-10243 Removal of usage og deprecated caches
---
 .../main/java/org/apache/ignite/ci/ITeamcity.java  |  23 ----
 .../apache/ignite/ci/IgnitePersistentTeamcity.java | 127 +--------------------
 .../apache/ignite/ci/IgniteTeamcityConnection.java |  18 ---
 .../java/org/apache/ignite/ci/db/DbMigrations.java |  10 +-
 .../ignite/ci/tcbot/chain/BuildChainProcessor.java |   4 +-
 .../tcbot/chain/TrackedBranchChainsProcessor.java  |  11 +-
 6 files changed, 13 insertions(+), 180 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
index 59f8e82..f6e8949 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
@@ -60,17 +60,6 @@ public interface ITeamcity extends ITeamcityConn {
     CompletableFuture<List<BuildType>> getProjectSuites(String projectId);
 
     /**
-     * @param projectId suite ID (string without spaces).
-     * @param branch Branch name in TC identification.
-     * @param sinceDate Since date.
-     * @param untilDate Until date.
-     * @param sinceBuildId Some build ID in the past to to use as minimal build to export.
-     * @return list of builds in historical order, recent builds coming last.
-     */
-    @Deprecated
-    List<BuildRef> getFinishedBuilds(String projectId, String branch, Date sinceDate, Date untilDate, Integer sinceBuildId);
-
-    /**
      * Includes snapshot dependencies failed builds into list.
      *
      * @param projectId suite ID (string without spaces).
@@ -98,18 +87,6 @@ public interface ITeamcity extends ITeamcityConn {
     @Deprecated
     CompletableFuture<List<BuildRef>> getQueuedBuilds(@Nullable String branch);
 
-    /**
-     * @param projectId Suite ID (string without spaces).
-     * @param branchNameForHist Branch in TC identification.
-     * @param sinceDate Since date.
-     * @param untilDate Until date.
-     * @return List of build numbers in historical order in date interval, recent builds coming last.
-     */
-    @Deprecated
-    default int[] getBuildNumbersFromHistory(String projectId, String branchNameForHist, Date sinceDate, Date untilDate) {
-        return getFinishedBuilds(projectId, branchNameForHist, sinceDate, untilDate, null).stream().mapToInt(BuildRef::getId).toArray();
-    }
-
     @Deprecated
     Build getBuild(String href);
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
index e9befbe..0222d95 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
@@ -36,12 +36,10 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.function.Predicate;
-import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 import javax.annotation.Nullable;
@@ -83,7 +81,6 @@ import org.apache.ignite.ci.util.CollectionUtil;
 import org.apache.ignite.ci.util.ObjectInterner;
 import org.apache.ignite.ci.web.rest.parms.FullQueryParams;
 import org.jetbrains.annotations.NotNull;
-import org.xml.sax.SAXParseException;
 
 import static org.apache.ignite.ci.tcbot.chain.BuildChainProcessor.normalizeBranch;
 
@@ -105,7 +102,7 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
     @Deprecated
     private static final String TEST_FULL = "testFull";
     private static final String BUILD_PROBLEMS = "buildProblems";
-    private static final String BUILD_HIST_FINISHED = "buildHistFinished";
+
     private static final String BUILD_HIST_FINISHED_OR_FAILED = "buildHistFinishedOrFailed";
     public static final String BOT_DETECTED_ISSUES = "botDetectedIssues";
     public static final String TEST_REFS = "testRefs";
@@ -163,7 +160,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
                 buildsFailureRunStatCache(), testRunStatCache(),
                 testFullCache(),
                 buildProblemsCache(),
-                buildHistCache(),
                 buildHistIncFailedCache());
     }
 
@@ -245,15 +241,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
         return getOrCreateCacheV2(ignCacheNme(BUILD_PROBLEMS));
     }
 
-
-
-    /**
-     * @return Build history: {@link BuildRef} lists cache, 32 parts, transactional.
-     */
-    private IgniteCache<SuiteInBranch, Expirable<List<BuildRef>>> buildHistCache() {
-        return getOrCreateCacheV2Tx(ignCacheNme(BUILD_HIST_FINISHED));
-    }
-
     /**
      * @return Build history: {@link BuildRef} lists cache, 32 parts, transactional.
      */
@@ -411,118 +398,6 @@ public class IgnitePersistentTeamcity implements IAnalyticsEnabledTeamcity, ITea
         return lock;
     }
 
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public List<BuildRef> getFinishedBuilds(String projectId,
-                                                      String branch,
-                                                      Date sinceDate,
-                                                      Date untilDate,
-                                                      Integer ignored) {
-        final SuiteInBranch suiteInBranch = new SuiteInBranch(projectId, branch);
-
-        final List<BuildRef> buildsFromRest = new ArrayList<>();
-
-        List<BuildRef> buildRefs = loadBuildHistory(buildHistCache(), 90, suiteInBranch,
-            (key, sinceBuildId) -> {
-            List<BuildRef> reverseList = teamcity.getFinishedBuilds(projectId, branch, sinceDate, untilDate, sinceBuildId);
-
-            Collections.reverse(reverseList);
-
-            buildsFromRest.addAll(reverseList);
-
-            return buildsFromRest;
-        });
-
-        if (sinceDate != null || untilDate != null) {
-            if (!buildsFromRest.isEmpty() && sinceDate != null){
-                int firstBuildId = buildRefs.indexOf(buildsFromRest.get(0));
-
-                if (firstBuildId == 0)
-                    return buildsFromRest;
-
-                int prevFirstBuildId = firstBuildId - 1;
-
-                Build prevFirstBuild = getBuild((buildRefs.get(prevFirstBuildId).href));
-
-                if (prevFirstBuild != null
-                    && !prevFirstBuild.isFakeStub()
-                    && prevFirstBuild.getStartDate().before(sinceDate))
-                    return buildsFromRest;
-            }
-
-            int idSince = 0;
-            int idUntil = buildRefs.size() - 1;
-
-            if (sinceDate != null) {
-                idSince = binarySearchDate(buildRefs, 0, buildRefs.size(), sinceDate, true);
-                idSince = idSince == -2 ? 0 : idSince;
-            }
-
-            if (untilDate != null) {
-                idUntil = idSince < 0 ? -1 : binarySearchDate(buildRefs, idSince, buildRefs.size(), untilDate, false);
-                idUntil = idUntil == -2 ? buildRefs.size() - 1 : idUntil;
-            }
-
-            if (idSince == -3 || idUntil == -3) {
-                AtomicBoolean stopFilter = new AtomicBoolean();
-                AtomicBoolean addBuild = new AtomicBoolean();
-
-                return buildRefs.stream()
-                    .filter(b -> {
-                        if (stopFilter.get())
-                            return addBuild.get();
-
-                        Build build = getBuild(b.href);
-
-                        if (build == null || build.isFakeStub())
-                            return false;
-
-                        Date date = build.getStartDate();
-
-                        if (sinceDate != null && untilDate != null)
-                            if ((date.after(sinceDate) || date.equals(sinceDate)) &&
-                                (date.before(untilDate) || date.equals(untilDate)))
-                                return true;
-                            else {
-                                if (date.after(untilDate)) {
-                                    stopFilter.set(true);
-                                    addBuild.set(false);
-                                }
-
-                                return false;
-                            }
-                        else if (sinceDate != null) {
-                            if (date.after(sinceDate) || date.equals(sinceDate)) {
-                                stopFilter.set(true);
-                                addBuild.set(true);
-
-                                return true;
-                            }
-
-                            return false;
-                        }
-                        else {
-                            if (date.after(untilDate)) {
-                                stopFilter.set(true);
-                                addBuild.set(false);
-
-                                return false;
-                            }
-
-                            return true;
-                        }
-                    })
-                    .collect(Collectors.toList());
-            }
-            else if (idSince == -1 || idUntil == -1)
-                return Collections.emptyList();
-            else
-                return buildRefs.subList(idSince, idUntil + 1);
-        }
-
-        return buildRefs;
-    }
-
     /**
      * @param buildRefs Build refs list.
      * @param fromIdx From index.
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
index 7177654..4f93e28 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityConnection.java
@@ -522,24 +522,6 @@ public class IgniteTeamcityConnection implements ITeamcity {
 
     /** {@inheritDoc} */
     @AutoProfiling
-    @Override public List<BuildRef> getFinishedBuilds(String projectId,
-                                            String branch,
-                                            Date sinceDate,
-                                            Date untilDate,
-                                            @Nullable Integer sinceBuildId) {
-        List<BuildRef> finished = getBuildHistory(projectId,
-            UrlUtil.escape(branch),
-            true,
-            null,
-            sinceDate,
-            untilDate,
-            sinceBuildId);
-
-        return finished.stream().filter(BuildRef::isNotCancelled).collect(Collectors.toList());
-    }
-
-    /** {@inheritDoc} */
-    @AutoProfiling
     @Override public List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String projectId, String branch) {
         return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, null);
     }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
index fd5865f..f86a8eb 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java
@@ -92,6 +92,9 @@ public class DbMigrations {
     @Deprecated
     public static final String ISSUES = "issues";
 
+    @Deprecated
+    private static final String BUILD_HIST_FINISHED = "buildHistFinished";
+
     /** Cache name */
     public static final String TEAMCITY_BUILD_CACHE_NAME_OLD = "teamcityBuild";
 
@@ -123,7 +126,6 @@ public class DbMigrations {
             IgniteCache<TestInBranch, RunStat> testHistCache,
             Cache<String, TestOccurrenceFull> testFullCache,
             Cache<String, ProblemOccurrences> problemsCache,
-            Cache<SuiteInBranch, Expirable<List<BuildRef>>> buildHistCache,
             Cache<SuiteInBranch, Expirable<List<BuildRef>>> buildHistInFailedCache) {
 
         doneMigrations = doneMigrationsCache();
@@ -352,7 +354,8 @@ public class DbMigrations {
             }
         });
         applyV1toV2Migration(PROBLEMS, problemsCache);
-        applyV1toV2Migration(FINISHED_BUILDS, buildHistCache);
+
+
         applyV1toV2Migration(FINISHED_BUILDS_INCLUDE_FAILED, buildHistInFailedCache);
 
         Cache<IssueKey, Issue> issuesCache = IssuesStorage.botDetectedIssuesCache(ignite);
@@ -418,6 +421,9 @@ public class DbMigrations {
 
         applyDestroyIgnCacheMigration(CHANGE_INFO_FULL);
         applyDestroyIgnCacheMigration(CHANGES_LIST);
+
+        applyDestroyIgnCacheMigration(FINISHED_BUILDS);
+        applyDestroyIgnCacheMigration(BUILD_HIST_FINISHED);
     }
 
     private void applyDestroyIgnCacheMigration(String cacheName) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
index 24778e9..81bfbfc 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
@@ -82,7 +82,7 @@ public class BuildChainProcessor {
      */
     public List<SuiteLRTestsSummary> loadLongRunningTestsSummary(
         ITeamcityIgnited teamcityIgnited,
-        Collection<BuildRef> entryPoints
+        Collection<Integer> entryPoints
     ) {
         final List<SuiteLRTestsSummary> res = new ArrayList<>();
 
@@ -91,7 +91,7 @@ public class BuildChainProcessor {
 
         Map<Integer, FatBuildCompacted> builds = new ConcurrentHashMap<>();
 
-        final Stream<FatBuildCompacted> entryPointsFatBuilds = entryPoints.stream().map(BuildRef::getId)
+        final Stream<FatBuildCompacted> entryPointsFatBuilds = entryPoints.stream()
             .filter(Objects::nonNull)
             .filter(id -> !builds.containsKey(id)) //load and propagate only new entry points
             .map(id -> builds.computeIfAbsent(id, teamcityIgnited::getFatBuild));
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
index 386d227..5096e31 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
@@ -147,17 +147,10 @@ public class TrackedBranchChainsProcessor {
 
                 ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvId, creds);
 
-                final List<BuildRef> buildsList = teamcity.getFinishedBuildsIncludeSnDepFailed(
-                    chainTracked.getSuiteIdMandatory(),
-                    branchForTc);
 
-                List<BuildRef> chains = buildsList.stream()
-                    .filter(ref -> !ref.isFakeStub())
-                    .sorted(Comparator.comparing(BuildRef::getId).reversed())
-                    .limit(1)
-                    .filter(b -> b.getId() != null).collect(Collectors.toList());
+                List<Integer> history = tcIgnited.getLastNBuildsFromHistory(chainTracked.getSuiteIdMandatory(), branchForTc, 1);
 
-                return chainProc.loadLongRunningTestsSummary(tcIgnited, chains);
+                return chainProc.loadLongRunningTestsSummary(tcIgnited, history);
             })
             .forEach(summary::addSuiteSummaries);