This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ignite-9848-3
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ignite-9848-3 by this push:
new d19262f IGNITE-9848: Background upload of all builds from TC to the
bot DB
d19262f is described below
commit d19262faf99f52645dbaf751f95f76c3e5c80fe5
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Mon Oct 29 17:56:30 2018 +0300
IGNITE-9848: Background upload of all builds from TC to the bot DB
---
.../ignite/ci/tcbot/chain/BuildChainProcessor.java | 22 +++++++++++-----------
.../ignite/ci/teamcity/ignited/BuildRefDao.java | 10 ++++++++++
.../ci/teamcity/ignited/ITeamcityIgnited.java | 5 +++++
.../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 5 +++++
4 files changed, 31 insertions(+), 11 deletions(-)
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 07f5fe0..56a9bd1 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
@@ -44,13 +44,13 @@ import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
import org.apache.ignite.ci.di.AutoProfiling;
import org.apache.ignite.ci.tcmodel.hist.BuildRef;
import org.apache.ignite.ci.tcmodel.result.Build;
+import org.apache.ignite.ci.teamcity.ignited.BuildRefDao;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
import org.apache.ignite.ci.util.FutureUtil;
import org.apache.ignite.ci.web.TcUpdatePool;
-import org.apache.lucene.util.IntsRef;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
@@ -69,6 +69,8 @@ public class BuildChainProcessor {
/** Compactor. */
@Inject private IStringCompactor compactor;
+ @Inject private BuildRefDao buildRefDao;
+
/**
* @param teamcity Teamcity.
* @param teamcityIgnited
@@ -97,8 +99,8 @@ public class BuildChainProcessor {
Map<String, MultBuildRunCtx> buildsCtxMap = new ConcurrentHashMap<>();
Stream<? extends BuildRef> uniqueBuldsInvolved = entryPoints.stream()
- .flatMap(ref -> dependencies(teamcityIgnited, builds,
teamcity, ref)).filter(Objects::nonNull)
- .flatMap(ref -> dependencies(teamcityIgnited, builds,
teamcity, ref)).filter(Objects::nonNull)
+ .flatMap(ref -> dependencies(teamcityIgnited, builds,
ref)).filter(Objects::nonNull)
+ .flatMap(ref -> dependencies(teamcityIgnited, builds,
ref)).filter(Objects::nonNull)
.filter(ref -> ensureUnique(unique, ref))
;
@@ -283,10 +285,10 @@ public class BuildChainProcessor {
return branch;
}
- @Nullable private static Stream<? extends BuildRef> dependencies(
+ @Nullable private Stream<? extends BuildRef> dependencies(
ITeamcityIgnited teamcityIgnited,
Map<Integer, FatBuildCompacted> builds,
- ITeamcity teamcity, BuildRef ref) {
+ BuildRef ref) {
FatBuildCompacted buildCompacted = builds.get(ref.getId());
if (buildCompacted != null)
return Stream.of(ref); // already processed build, so just keep
current ID in stream
@@ -298,12 +300,10 @@ public class BuildChainProcessor {
int[] ints = build.snapshotDependencies();
- List<BuildRef> deps = IntStream.of(ints).mapToObj(i-> {
- BuildRef ref1 = new BuildRef();
- ref1.setId(i);
-
- return ref1;
- }).collect(Collectors.toList());
+ //todo
+ List<BuildRef> deps = IntStream.of(ints).mapToObj(i -> {
+ return buildRefDao.getBuildRef(teamcityIgnited.serverId(), i);
+ }).filter(Objects::nonNull).collect(Collectors.toList());
if (deps.isEmpty())
return Stream.of(ref);
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java
index 92b1684..87439fa 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java
@@ -230,4 +230,14 @@ public class BuildRefDao {
return res.array();
}
+
+ public BuildRef getBuildRef(String serverId, int i) {
+ BuildRefCompacted ref = buildRefsCache.get(buildIdToCacheKey(
+ ITeamcityIgnited.serverIdToInt(serverId), i));
+
+ if(ref==null)
+ return null;
+
+ return ref.toBuildRef(compactor);
+ }
}
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
index 9903920..95d05eb 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java
@@ -30,6 +30,11 @@ import
org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
*/
public interface ITeamcityIgnited {
/**
+ * @return Internal server ID as string
+ */
+ String serverId();
+
+ /**
* @return Normalized Host address, ends with '/'.
*/
public String host();
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
index 310ec4e..a964d07 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
@@ -104,6 +104,11 @@ public class TeamcityIgnitedImpl implements
ITeamcityIgnited {
}
/** {@inheritDoc} */
+ @Override public String serverId() {
+ return srvNme;
+ }
+
+ /** {@inheritDoc} */
@Override public String host() {
return conn.host();
}