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;