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/30 16:26:09 UTC
[ignite-teamcity-bot] branch ignite-10071 updated: IGNITE-10071
Second case of queued build in refs but not in fat builds demo by test
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ignite-10071
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ignite-10071 by this push:
new 0a195d7 IGNITE-10071 Second case of queued build in refs but not in fat builds demo by test
0a195d7 is described below
commit 0a195d709912378b35a2467db0e1e65b3486e712
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Nov 30 19:26:07 2018 +0300
IGNITE-10071 Second case of queued build in refs but not in fat builds demo by test
---
build.gradle | 3 +-
.../ignited/fatbuild/ProactiveFatBuildSync.java | 6 +++-
.../ignited/IgnitedTcInMemoryIntegrationTest.java | 42 +++++++++++++++-------
3 files changed, 36 insertions(+), 15 deletions(-)
diff --git a/build.gradle b/build.gradle
index 50eb5dd..c0e6426 100644
--- a/build.gradle
+++ b/build.gradle
@@ -41,7 +41,8 @@ allprojects {
ext {
jettyVer = '9.4.12.v20180830'
- ignVer = '2.7.0'
+ ignVer = '2.6.0'
+ // ignVer = '2.7.0'
// ignVer = '2.7.0-SNAPSHOT'
guavaVer = '26.0-jre'
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
index 03e6311..65c7320 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
@@ -100,7 +100,6 @@ public class ProactiveFatBuildSync {
if (buildsToAskFromTc.isEmpty())
return;
-
synchronized (this) {
final SyncTask syncTask = getSyncTask(conn);
@@ -237,6 +236,11 @@ public class ProactiveFatBuildSync {
return ProactiveFatBuildSync.class.getSimpleName() +"." + taskName + "." + srvName;
}
+ /**
+ * Schedule missing builds into Fat builds cache. Sync is based by BuildRefs cache.
+ * @param srvName Server name.
+ * @param conn Connection.
+ */
public void invokeLaterFindMissingByBuildRef(String srvName, ITeamcityConn conn) {
scheduler.sheduleNamed(taskName("findMissingBuildsFromBuildRef", srvName),
() -> findMissingBuildsFromBuildRef(srvName, conn), 360, TimeUnit.MINUTES);
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
index eeebd5e..d8a9720 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
@@ -16,7 +16,6 @@
*/
package org.apache.ignite.ci.teamcity.ignited;
-import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
@@ -35,7 +34,6 @@ import javax.xml.bind.JAXBException;
import com.google.inject.internal.SingletonScope;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
-import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.analysis.SuiteInBranch;
import org.apache.ignite.ci.analysis.TestInBranch;
@@ -61,6 +59,7 @@ import org.apache.ignite.ci.teamcity.ignited.fatbuild.ProactiveFatBuildSync;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompactedDao;
import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync;
import org.apache.ignite.ci.teamcity.pure.BuildHistoryEmulator;
+import org.apache.ignite.ci.teamcity.pure.ITeamcityConn;
import org.apache.ignite.ci.teamcity.pure.ITeamcityHttpConnection;
import org.apache.ignite.ci.teamcity.restcached.ITcServerFactory;
import org.apache.ignite.ci.user.ICredentialsProv;
@@ -556,11 +555,11 @@ public class IgnitedTcInMemoryIntegrationTest {
FatBuildDao fatBuildDao = injector.getInstance(FatBuildDao.class).init();
int buildId = 1000042;
- BuildRef ref = new BuildRef();
- ref.buildTypeId = "Testbuild";
- ref.branchName = ITeamcity.REFS_HEADS_MASTER;
- ref.state = BuildRef.STATE_QUEUED;
- ref.setId(buildId);
+ BuildRef refQ = new BuildRef();
+ refQ.buildTypeId = "Testbuild";
+ refQ.branchName = ITeamcity.REFS_HEADS_MASTER;
+ refQ.state = BuildRef.STATE_QUEUED;
+ refQ.setId(buildId);
int buildIdRunning = 1000043;
BuildRef refR = new BuildRef();
@@ -571,16 +570,17 @@ public class IgnitedTcInMemoryIntegrationTest {
String srvId = APACHE;
int srvIdInt = ITeamcityIgnited.serverIdToInt(srvId);
- buildRefDao.saveChunk(srvIdInt, Lists.newArrayList(ref, refR));
+ ITeamcityConn srvConn = injector.getInstance(ITcServerFactory.class).createServer(srvId);
+
+ buildRefDao.saveChunk(srvIdInt, Lists.newArrayList(refQ, refR));
List<BuildRefCompacted> running = buildRefDao.getQueuedAndRunning(srvIdInt);
assertFalse(checkNotNull(running).isEmpty());
- System.out.println("Running builds: " + running);
+ System.out.println("Running builds (before sync): " + printRefs(c, running));
ProactiveFatBuildSync buildSync = injector.getInstance(ProactiveFatBuildSync.class);
- buildSync.invokeLaterFindMissingByBuildRef(srvId,
- injector.getInstance(ITcServerFactory.class).createServer(srvId));
+ buildSync.invokeLaterFindMissingByBuildRef(srvId, srvConn);
FatBuildCompacted fatBuild = fatBuildDao.getFatBuild(srvIdInt, buildId);
System.out.println(fatBuild);
@@ -591,9 +591,25 @@ public class IgnitedTcInMemoryIntegrationTest {
assertTrue(fatBuild.isCancelled(c));
List<BuildRefCompacted> running2 = buildRefDao.getQueuedAndRunning(srvIdInt);
- System.out.println("Running builds (after sync): " +
- running2.stream().map(bref->bref.toBuildRef(c)).collect(Collectors.toList()));
+ System.out.println("Running builds (after sync): " + printRefs(c, running2));
assertTrue(checkNotNull(running2).isEmpty());
+
+ // Now we have 2 fake stubs, retry to actualize
+ buildRefDao.saveChunk(srvIdInt, Lists.newArrayList(refQ, refR));
+
+ List<BuildRefCompacted> running3 = buildRefDao.getQueuedAndRunning(srvIdInt);
+ System.out.println("Running builds (before with fake builds): " + printRefs(c, running3));
+ assertFalse(checkNotNull(running3).isEmpty());
+
+ buildSync.invokeLaterFindMissingByBuildRef(srvId, srvConn);
+
+ List<BuildRefCompacted> running4 = buildRefDao.getQueuedAndRunning(srvIdInt);
+ System.out.println("Running builds (before with fake builds): " + printRefs(c, running4));
+ assertTrue(checkNotNull(running4).isEmpty());
+ }
+
+ @NotNull public List<BuildRef> printRefs(IStringCompactor c, List<BuildRefCompacted> running2) {
+ return running2.stream().map(bref->bref.toBuildRef(c)).collect(Collectors.toList());
}
/**