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 975a51a  IGNITE-10243 Notify JIRA migrated to new cache
975a51a is described below

commit 975a51a37b4a8236ece932d2d8e24e396d5cac94
Author: Dmitriy Pavlov <dpav...@apache.org>
AuthorDate: Thu Nov 15 18:17:59 2018 +0300

    IGNITE-10243 Notify JIRA migrated to new cache
---
 .../main/java/org/apache/ignite/ci/ITeamcity.java  | 24 ------
 .../apache/ignite/ci/IgnitePersistentTeamcity.java | 89 ++--------------------
 .../apache/ignite/ci/IgniteTeamcityConnection.java | 12 ---
 .../main/java/org/apache/ignite/ci/TcHelper.java   | 41 +++++++---
 .../java/org/apache/ignite/ci/db/DbMigrations.java | 12 +--
 5 files changed, 43 insertions(+), 135 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 f6e8949..f22a6bf 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
@@ -59,30 +59,6 @@ public interface ITeamcity extends ITeamcityConn {
 
     CompletableFuture<List<BuildType>> getProjectSuites(String projectId);
 
-    /**
-     * Includes snapshot dependencies failed builds into list.
-     *
-     * @param projectId suite ID (string without spaces).
-     * @param branch branch in TC identification.
-     * @return list of builds in historical order, recent builds coming last.
-     */
-    @Deprecated
-    default List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String 
projectId, String branch){
-        return getFinishedBuildsIncludeSnDepFailed(projectId, branch, null);
-    };
-
-    /**
-     * Includes 'snapshot dependencies failed' builds into list.
-     * loads build history with following parameter: 
defaultFilter:false,state:finished
-     *
-     * @param projectId suite ID (string without spaces).
-     * @param branch branch in TC identification.
-     * @param sinceBuildId limit builds export with some build number, not 
operational for Persistent connection.
-     * @return list of builds in historical order, recent builds coming last.
-     */
-    @Deprecated
-    List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String projectId, 
String branch, Integer sinceBuildId);
-
     /**   */
     @Deprecated
     CompletableFuture<List<BuildRef>> getQueuedBuilds(@Nullable String branch);
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 0222d95..2229694 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
@@ -103,7 +103,6 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
     private static final String TEST_FULL = "testFull";
     private static final String BUILD_PROBLEMS = "buildProblems";
 
-    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";
     public static final String CONFIGURATIONS = "configurations";
@@ -159,8 +158,7 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
                 buildsCache(), this::addBuildOccurrenceToFailuresStat,
                 buildsFailureRunStatCache(), testRunStatCache(),
                 testFullCache(),
-                buildProblemsCache(),
-                buildHistIncFailedCache());
+                buildProblemsCache());
     }
 
     @Override
@@ -241,13 +239,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>>> 
buildHistIncFailedCache() {
-        return 
getOrCreateCacheV2Tx(ignCacheNme(BUILD_HIST_FINISHED_OR_FAILED));
-    }
-
     /** {@inheritDoc} */
     @AutoProfiling
     @Override public CompletableFuture<List<BuildType>> 
getProjectSuites(String projectId) {
@@ -398,62 +389,6 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
         return lock;
     }
 
-    /**
-     * @param buildRefs Build refs list.
-     * @param fromIdx From index.
-     * @param toIdx To index.
-     * @param key Key.
-     * @param since {@code true} If key is sinceDate, {@code false} is 
untilDate.
-     *
-     * @return {@value >= 0} Build id from list with min interval between key. 
If since {@code true}, min interval
-     * between key and same day or later. If since {@code false}, min interval 
between key and same day or earlier;
-     * {@value -1} If sinceDate after last list element date or untilDate 
before first list element;
-     * {@value -2} If sinceDate before first list element or untilDate after 
last list element;
-     * {@value -3} If method get null or fake stub build.
-     */
-    private int binarySearchDate(List<BuildRef> buildRefs, int fromIdx, int 
toIdx, Date key, boolean since){
-        int low = fromIdx;
-        int high = toIdx - 1;
-        long minDiff = key.getTime();
-        int minDiffId = since ? low : high;
-        long temp;
-        Build highBuild = getBuild(buildRefs.get(high).href);
-        Build lowBuild = getBuild(buildRefs.get(low).href);
-
-        if (highBuild != null && !highBuild.isFakeStub()){
-            if (highBuild.getStartDate().before(key))
-                return since ? -1 : -2;
-        }
-
-        if (lowBuild != null && !lowBuild.isFakeStub()){
-            if (lowBuild.getStartDate().after(key))
-                return since ? -2 : -1;
-        }
-
-        while (low <= high) {
-            int mid = (low + high) >>> 1;
-            Build midVal = getBuild(buildRefs.get(mid).href);
-
-            if (midVal != null && !midVal.isFakeStub()) {
-                if (midVal.getStartDate().after(key))
-                    high = mid - 1;
-                else if (midVal.getStartDate().before(key))
-                    low = mid + 1;
-                else
-                    return mid;
-
-                temp = midVal.getStartDate().getTime() - key.getTime();
-
-                if ((temp > 0 == since) && (Math.abs(temp) < minDiff)) {
-                    minDiff = Math.abs(temp);
-                    minDiffId = mid;
-                }
-            } else
-                return -3;
-        }
-        return minDiffId;
-    }
-
     @NotNull
     @AutoProfiling
     @SuppressWarnings("WeakerAccess")
@@ -468,28 +403,16 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
         return new ArrayList<>(merge.values());
     }
 
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String 
projectId,
-                                                                        String 
branch,
-                                                                        
Integer ignored) {
-        final SuiteInBranch suiteInBranch = new SuiteInBranch(projectId, 
branch);
-
-        return loadBuildHistory(buildHistIncFailedCache(), 91, suiteInBranch,
-            (key, sinceBuildId) -> 
teamcity.getFinishedBuildsIncludeSnDepFailed(projectId, branch, sinceBuildId));
-    }
-
-
     private <K, V> CompletableFuture<V> 
loadAsyncIfAbsentOrExpired(ConcurrentMap<K, Expirable<V>> cache,
                                                                    K key,
                                                                    
ConcurrentMap<K, CompletableFuture<V>> cachedComputations,
                                                                    Function<K, 
CompletableFuture<V>> realLoadFunction,
                                                                    int 
maxAgeSecs,
                                                                    boolean 
alwaysProvidePersisted) {
-        @Nullable final Expirable<V> persistedValue = cache.get(key);
+        @Nullable final Expirable<V> persistedVal = cache.get(key);
 
-        if (persistedValue != null && 
persistedValue.isAgeLessThanSecs(maxAgeSecs))
-            return CompletableFuture.completedFuture(persistedValue.getData());
+        if (persistedVal != null && persistedVal.isAgeLessThanSecs(maxAgeSecs))
+            return CompletableFuture.completedFuture(persistedVal.getData());
 
         AtomicReference<CompletableFuture<V>> submitRef = new 
AtomicReference<>();
 
@@ -519,8 +442,8 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
             return res;
         });
 
-        if (alwaysProvidePersisted && persistedValue != null)
-            return CompletableFuture.completedFuture(persistedValue.getData());
+        if (alwaysProvidePersisted && persistedVal != null)
+            return CompletableFuture.completedFuture(persistedVal.getData());
 
         return loadFut;
     }
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 4f93e28..18b2b3d 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
@@ -521,18 +521,6 @@ public class IgniteTeamcityConnection implements ITeamcity 
{
     }
 
     /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String 
projectId, String branch) {
-        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
null);
-    }
-
-    /** {@inheritDoc} */
-    @AutoProfiling
-    @Override public List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String 
projectId, String branch, Integer sinceBuildId) {
-        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
sinceBuildId);
-    }
-
-    /** {@inheritDoc} */
     @Override
     @AutoProfiling public CompletableFuture<List<BuildRef>> 
getQueuedBuilds(@Nullable String branch) {
         return supplyAsync(() -> getBuildsInState(null, branch, 
BuildRef.STATE_QUEUED), executor);
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
index 12a4f03..41da43f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
@@ -18,18 +18,30 @@
 package org.apache.ignite.ci;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.atomic.AtomicBoolean;
+import javax.inject.Inject;
 import org.apache.ignite.ci.conf.BranchesTracked;
 import org.apache.ignite.ci.issue.IssueDetector;
 import org.apache.ignite.ci.issue.IssuesStorage;
 import org.apache.ignite.ci.jira.IJiraIntegration;
-import org.apache.ignite.ci.tcmodel.hist.BuildRef;
-import org.apache.ignite.ci.web.model.JiraCommentResponse;
-import org.apache.ignite.ci.web.model.Visa;
+import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
+import org.apache.ignite.ci.tcmodel.result.Build;
 import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
+import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
+import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
+import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.user.UserAndSessionsStorage;
+import org.apache.ignite.ci.web.model.JiraCommentResponse;
+import org.apache.ignite.ci.web.model.Visa;
 import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
 import org.apache.ignite.ci.web.model.current.SuiteCurrentStatus;
 import org.apache.ignite.ci.web.model.current.TestFailure;
@@ -40,10 +52,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.inject.Inject;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicBoolean;
-
 import static org.apache.ignite.ci.analysis.RunStat.MAX_LATEST_RUNS;
 import static org.apache.ignite.ci.util.XmlUtil.xmlEscapeText;
 
@@ -71,6 +79,10 @@ public class TcHelper implements ITcHelper, IJiraIntegration 
{
 
     @Inject private PrChainsProcessor prChainsProcessor;
 
+    @Inject private ITeamcityIgnitedProvider tcProv;
+
+    @Inject private IStringCompactor compactor;
+
     /** */
     private final ObjectMapper objectMapper;
 
@@ -148,19 +160,26 @@ public class TcHelper implements ITcHelper, 
IJiraIntegration {
     ) {
         IAnalyticsEnabledTeamcity teamcity = server(srvId, prov);
 
-        List<BuildRef> builds = 
teamcity.getFinishedBuildsIncludeSnDepFailed(buildTypeId, branchForTc);
+        ITeamcityIgnited tcIgnited = tcProv.server(srvId, prov);
+
+        List<Integer> builds = 
tcIgnited.getLastNBuildsFromHistory(buildTypeId, branchForTc, 1);
 
         if (builds.isEmpty())
             return new Visa("JIRA wasn't commented - no finished builds to 
analyze.");
 
-        BuildRef build = builds.get(builds.size() - 1);
+        Integer buildId = builds.get(0);
+
+        FatBuildCompacted fatBuild = tcIgnited.getFatBuild(buildId);
+        Build build = fatBuild.toBuild(compactor);
+
+        build.webUrl = tcIgnited.host() + "viewLog.html?buildId=" + 
build.getId() + "&buildTypeId=" + build.buildTypeId;
 
         int blockers;
 
         JiraCommentResponse res;
 
         try {
-            List<SuiteCurrentStatus> suitesStatuses =  
getSuitesStatuses(buildTypeId, build.branchName, srvId, prov);
+            List<SuiteCurrentStatus> suitesStatuses = 
getSuitesStatuses(buildTypeId, build.branchName, srvId, prov);
 
             String comment = generateJiraComment(suitesStatuses, build.webUrl);
 
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 f86a8eb..f0cc7eb 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
@@ -95,7 +95,10 @@ public class DbMigrations {
     @Deprecated
     private static final String BUILD_HIST_FINISHED = "buildHistFinished";
 
-    /** Cache name */
+    @Deprecated
+    private static final String BUILD_HIST_FINISHED_OR_FAILED = 
"buildHistFinishedOrFailed";
+
+    @Deprecated
     public static final String TEAMCITY_BUILD_CACHE_NAME_OLD = "teamcityBuild";
 
 
@@ -125,8 +128,7 @@ public class DbMigrations {
             IgniteCache<SuiteInBranch, RunStat> suiteHistCache,
             IgniteCache<TestInBranch, RunStat> testHistCache,
             Cache<String, TestOccurrenceFull> testFullCache,
-            Cache<String, ProblemOccurrences> problemsCache,
-            Cache<SuiteInBranch, Expirable<List<BuildRef>>> 
buildHistInFailedCache) {
+            Cache<String, ProblemOccurrences> problemsCache) {
 
         doneMigrations = doneMigrationsCache();
 
@@ -355,8 +357,7 @@ public class DbMigrations {
         });
         applyV1toV2Migration(PROBLEMS, problemsCache);
 
-
-        applyV1toV2Migration(FINISHED_BUILDS_INCLUDE_FAILED, 
buildHistInFailedCache);
+        applyDestroyIgnCacheMigration(FINISHED_BUILDS_INCLUDE_FAILED);
 
         Cache<IssueKey, Issue> issuesCache = 
IssuesStorage.botDetectedIssuesCache(ignite);
         applyMigration(ISSUES + "-to-" + issuesCache.getName() + "V2", () -> {
@@ -424,6 +425,7 @@ public class DbMigrations {
 
         applyDestroyIgnCacheMigration(FINISHED_BUILDS);
         applyDestroyIgnCacheMigration(BUILD_HIST_FINISHED);
+        applyDestroyIgnCacheMigration(BUILD_HIST_FINISHED_OR_FAILED);
     }
 
     private void applyDestroyIgnCacheMigration(String cacheName) {

Reply via email to