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 2019/04/12 16:19:58 UTC
[ignite-teamcity-bot] branch ce-cfg-usability updated: GitHub
configurable now using main branches file: fix for bug with incorrect
server config
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ce-cfg-usability
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ce-cfg-usability by this push:
new 38f81ac GitHub configurable now using main branches file: fix for bug with incorrect server config
38f81ac is described below
commit 38f81ac3d40ca67b930efb68a63b775c051ef6d2
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Apr 12 19:19:52 2019 +0300
GitHub configurable now using main branches file: fix for bug with incorrect server config
---
.../main/java/org/apache/ignite/ci/ITeamcity.java | 2 --
.../org/apache/ignite/ci/di/cache/GuavaCached.java | 3 +++
.../ci/github/ignited/GitHubConnIgnitedImpl.java | 27 ++++++++++++++--------
.../ci/github/ignited/GitHubIgnitedProvImpl.java | 14 +++++++----
.../ci/github/ignited/IGitHubConnIgnited.java | 3 +++
.../ci/github/pure/GitHubCachingProvider.java | 14 +++++++----
.../ci/github/pure/GitHubConnectionImpl.java | 5 +++-
.../java/org/apache/ignite/ci/jira/pure/Jira.java | 1 -
.../ci/jira/pure/JiraIntegrationProvider.java | 6 ++---
.../apache/ignite/ci/runners/ClientTmpHelper.java | 13 ++++++++++-
.../ignite/ci/tcbot/conf/BranchesTracked.java | 2 +-
.../apache/ignite/ci/tcbot/conf/GitHubConfig.java | 4 ++++
.../apache/ignite/ci/tcbot/conf/IGitHubConfig.java | 5 ++++
.../ci/tcbot/conf/LocalFilesBasedConfig.java | 8 ++++++-
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 15 +++++++-----
.../restcached/InitializingServerFactory.java | 1 -
16 files changed, 89 insertions(+), 34 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 54bd319..50c088e 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
@@ -79,7 +79,5 @@ public interface ITeamcity extends ITeamcityConn {
Base64Util.encodeUtf8String(user + ":" + pwd));
}
-
User getUserByUsername(String username);
-
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/cache/GuavaCached.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/cache/GuavaCached.java
index a1a0226..126ed93 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/cache/GuavaCached.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/cache/GuavaCached.java
@@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * <b>Note: </b> this cachind annotation ignores object called, may be used only for siglenton-scope classes.
+ */
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD)
public @interface GuavaCached {
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
index e17e7bb..e0f9923 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
@@ -38,16 +38,19 @@ import org.apache.ignite.ci.github.PullRequest;
import org.apache.ignite.ci.github.pure.IGitHubConnection;
import org.apache.ignite.ci.tcbot.conf.IGitHubConfig;
import org.jetbrains.annotations.NotNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*
*/
class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
- /** Cache name. */
- public static final String GIT_HUB_PR = "gitHubPr";
+ /** Logger. */
+ private static final Logger logger = LoggerFactory.getLogger(GitHubConnIgnitedImpl.class);
+
/** Server id. */
- private String srvId;
+ private String srvCode;
/** Pure HTTP Connection API. */
private IGitHubConnection conn;
@@ -64,11 +67,17 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
/** PPs cache. */
private IgniteCache<Long, PullRequest> prCache;
- public void init(String srvId, IGitHubConnection conn) {
- this.srvId = srvId;
+ /**
+ * @param conn Connection.
+ */
+ public void init(IGitHubConnection conn) {
this.conn = conn;
+ srvCode = conn.config().code();
+
+ logger.info("Init of GitHub server: srvCode=" + srvCode+ ", API Url=" +
+ config().gitApiUrl() + " " + config().code());
- srvIdMaskHigh = Math.abs(srvId.hashCode());
+ srvIdMaskHigh = Math.abs(srvCode.hashCode());
prCache = igniteProvider.get().getOrCreateCache(TcHelperDb.getCache8PartsConfig(GIT_HUB_PR));
}
@@ -113,11 +122,11 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
*/
@NotNull
private String taskName(String taskName) {
- return IGitHubConnIgnited.class.getSimpleName() + "." + taskName + "." + srvId;
+ return IGitHubConnIgnited.class.getSimpleName() + "." + taskName + "." + srvCode;
}
private void actualizePrs() {
- runActualizePrs(srvId, false);
+ runActualizePrs(srvCode, false);
// schedule full resync later
scheduler.invokeLater(
@@ -129,7 +138,7 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
*
*/
private void fullReindex() {
- runActualizePrs(srvId, true);
+ runActualizePrs(srvCode, true);
}
/**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
index bba2356..fe23792 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubIgnitedProvImpl.java
@@ -16,6 +16,7 @@
*/
package org.apache.ignite.ci.github.ignited;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -39,12 +40,17 @@ class GitHubIgnitedProvImpl implements IGitHubConnIgnitedProvider {
.build();
/** {@inheritDoc} */
- @Override public IGitHubConnIgnited server(String srvId) {
+ @Override public IGitHubConnIgnited server(String srvCode) {
try {
- return srvs.get(Strings.nullToEmpty(srvId), () -> {
- IGitHubConnection srv = pureConnProv.server(srvId);
+ return srvs.get(Strings.nullToEmpty(srvCode), () -> {
+ IGitHubConnection srv = pureConnProv.server(srvCode);
+
+ Preconditions.checkState(srv.config().code().equals(srvCode));
+
GitHubConnIgnitedImpl ignited = ignitedProvider.get();
- ignited.init(srvId, srv);
+ ignited.init(srv);
+
+ Preconditions.checkState(ignited.config().code().equals(srvCode));
return ignited;
});
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java
index 10d14aa..8134726 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/IGitHubConnIgnited.java
@@ -25,6 +25,9 @@ import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
*
*/
public interface IGitHubConnIgnited {
+ /** Cache name. */
+ public static final String GIT_HUB_PR = "gitHubPr";
+
/**
* @return Config of GH project.
*/
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
index 67adcae..2a082df 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubCachingProvider.java
@@ -16,6 +16,7 @@
*/
package org.apache.ignite.ci.github.pure;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -26,7 +27,8 @@ import javax.inject.Provider;
import org.apache.ignite.ci.util.ExceptionUtil;
class GitHubCachingProvider implements IGitHubConnectionProvider {
- @Inject Provider<IGitHubConnection> factory;
+ @Inject private Provider<IGitHubConnection> factory;
+
private final Cache<String, IGitHubConnection> srvs
= CacheBuilder.newBuilder()
.maximumSize(100)
@@ -35,11 +37,15 @@ class GitHubCachingProvider implements IGitHubConnectionProvider {
.build();
/** {@inheritDoc} */
- @Override public IGitHubConnection server(String srvId) {
+ @Override public IGitHubConnection server(String srvCode) {
try {
- return srvs.get(Strings.nullToEmpty(srvId), () -> {
+ return srvs.get(Strings.nullToEmpty(srvCode), () -> {
IGitHubConnection conn = factory.get();
- conn.init(srvId);
+
+ conn.init(srvCode);
+
+ Preconditions.checkState(conn.config().code().equals(srvCode));
+
return conn;
});
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
index 62f6b81..27b5d3b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
@@ -87,6 +87,8 @@ class GitHubConnectionImpl implements IGitHubConnection {
/** {@inheritDoc} */
@Override public void init(String srvCode) {
+ Preconditions.checkState(this.srvCode == null, "Server re-init is not supported");
+
this.srvCode = srvCode;
}
@@ -170,8 +172,9 @@ class GitHubConnectionImpl implements IGitHubConnection {
}
/** {@inheritDoc} */
- @GuavaCached(softValues = true, expireAfterWriteSecs = 3 * 60)
@Override public IGitHubConfig config() {
+ Preconditions.checkNotNull(srvCode);
+
return cfg.getGitConfig(srvCode);
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
index c362775..264715f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/Jira.java
@@ -84,7 +84,6 @@ class Jira implements IJiraIntegration {
}
/** {@inheritDoc} */
- @GuavaCached(softValues = true, expireAfterWriteSecs = 3 * 60)
@Override public IJiraServerConfig config() {
return cfg.getJiraConfig(srvCode);
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
index e3b4100..0aaac76 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/JiraIntegrationProvider.java
@@ -43,12 +43,12 @@ class JiraIntegrationProvider implements IJiraIntegrationProvider {
.build();
/** */
- @Override public IJiraIntegration server(String srvId) {
+ @Override public IJiraIntegration server(String srvCode) {
try {
- return srvs.get(Strings.nullToEmpty(srvId), () -> {
+ return srvs.get(Strings.nullToEmpty(srvCode), () -> {
IJiraIntegration jiraIntegration = factory.get();
- jiraIntegration.init(srvId);
+ jiraIntegration.init(srvCode);
return jiraIntegration;
});
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
index 89912f7..48b4e34 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/runners/ClientTmpHelper.java
@@ -20,6 +20,7 @@ package org.apache.ignite.ci.runners;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.ci.db.TcHelperDb;
+import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
import org.apache.ignite.ci.issue.Issue;
import org.apache.ignite.ci.issue.IssuesStorage;
@@ -30,7 +31,7 @@ public class ClientTmpHelper {
/**
* @param args Args.
*/
- public static void main(String[] args) {
+ public static void mainConsistCheck(String[] args) {
int inconsistent;
try (Ignite ignite = TcHelperDb.startClient()) {
RemoteClientTmpHelper.DUMPS = "dumpsLocal";
@@ -62,4 +63,14 @@ public class ClientTmpHelper {
ignite.close();
}
+
+
+ public static void mainDeletePRs(String[] args) {
+ Ignite ignite = TcHelperDb.startClient();
+
+ IgniteCache<Object, Object> cache = ignite.cache(IGitHubConnIgnited.GIT_HUB_PR);
+
+ cache.clear();
+ ignite.close();
+ }
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BranchesTracked.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BranchesTracked.java
index dfe7cd1..e20b6f0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BranchesTracked.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/BranchesTracked.java
@@ -109,6 +109,6 @@ public class BranchesTracked {
}
public Optional<GitHubConfig> getGitHubConfig(String code) {
- return gitHubConfigs.stream().filter(s -> code.equals(s.getCode())).findAny();
+ return gitHubConfigs.stream().filter(s -> code.equals(s.code())).findAny();
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/GitHubConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/GitHubConfig.java
index 6078dec..00c0215 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/GitHubConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/GitHubConfig.java
@@ -104,6 +104,10 @@ public class GitHubConfig implements IGitHubConfig {
}
+ @Override public String code() {
+ return code;
+ }
+
/**
* @return Github API url configured, probably without ending slash.
*/
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IGitHubConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IGitHubConfig.java
index 4f06662..299a7c9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IGitHubConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IGitHubConfig.java
@@ -23,6 +23,11 @@ import javax.annotation.Nullable;
*
*/
public interface IGitHubConfig {
+ /**
+ * @return server (service) code.
+ */
+ public String code();
+
/** Git branch prefix for search ticket-related TC runs in PR-less contributions. */
@Nonnull
public String gitBranchPrefix();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
index 4ea16af..0aef665 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/LocalFilesBasedConfig.java
@@ -16,8 +16,10 @@
*/
package org.apache.ignite.ci.tcbot.conf;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import java.io.File;
+import java.util.Objects;
import java.util.Properties;
import org.apache.ignite.ci.HelperConfig;
import org.apache.ignite.ci.di.cache.GuavaCached;
@@ -58,10 +60,14 @@ public class LocalFilesBasedConfig implements ITcBotConfig {
/** {@inheritDoc} */
@Override public IGitHubConfig getGitConfig(String srvCode) {
- return getTrackedBranches().getGitHubConfig(srvCode)
+ GitHubConfig cfg = getTrackedBranches().getGitHubConfig(srvCode)
.orElseGet(() -> new GitHubConfig()
.code(srvCode)
.properties(loadOldAuthProps(srvCode)));
+
+ Preconditions.checkState(Objects.equals(cfg.code(), srvCode));
+
+ return cfg;
}
/** {@inheritDoc} */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
index f9b05d8..9af9f2b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java
@@ -18,6 +18,7 @@
package org.apache.ignite.ci.tcbot.visa;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.inject.Provider;
import java.text.DateFormat;
@@ -520,27 +521,29 @@ public class TcBotTriggerAndSignOffService {
}
/**
- * @param srvId Server id.
+ * @param srvCode Server (service) internal code.
* @param prov Prov.
* @param prId Pr id from {@link ContributionToCheck#prNumber}. Negative value imples branch number (with
* appropriate prefix from GH config).
*/
- public Set<ContributionCheckStatus> contributionStatuses(String srvId, ICredentialsProv prov,
+ public Set<ContributionCheckStatus> contributionStatuses(String srvCode, ICredentialsProv prov,
String prId) {
Set<ContributionCheckStatus> statuses = new LinkedHashSet<>();
- ITeamcityIgnited teamcity = tcIgnitedProv.server(srvId, prov);
+ ITeamcityIgnited teamcity = tcIgnitedProv.server(srvCode, prov);
+
+ IGitHubConnIgnited ghConn = gitHubConnIgnitedProvider.server(srvCode);
- IGitHubConnIgnited ghConn = gitHubConnIgnitedProvider.server(srvId);
+ Preconditions.checkState(ghConn.config().code().equals(srvCode));
- List<String> compositeBuildTypeIds = findApplicableBuildTypes(srvId, teamcity);
+ List<String> compositeBuildTypeIds = findApplicableBuildTypes(srvCode, teamcity);
for (String btId : compositeBuildTypeIds) {
List<BuildRefCompacted> compBuilds = findBuildsForPr(btId, prId, ghConn, teamcity);
statuses.add(compBuilds.isEmpty()
? new ContributionCheckStatus(btId, branchForTcDefault(prId, ghConn))
- : contributionStatus(srvId, btId, compBuilds, teamcity, ghConn, prId));
+ : contributionStatus(srvCode, btId, compBuilds, teamcity, ghConn, prId));
}
return statuses;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
index c77e5ed..06a6f4a 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/restcached/InitializingServerFactory.java
@@ -20,7 +20,6 @@ import com.google.common.base.Strings;
import javax.inject.Inject;
import javax.inject.Provider;
import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
-import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.IgniteTeamcityConnection;
import org.apache.ignite.ci.web.TcUpdatePool;