This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new 05a81e4  Fixed error propagation, improved monitoring
05a81e4 is described below

commit 05a81e4d1fff719616ab1e9b5126661865839f3e
Author: Dmitriy Pavlov <dpav...@apache.org>
AuthorDate: Thu Feb 14 19:27:41 2019 +0300

    Fixed error propagation, improved monitoring
---
 .../ignite/ci/jira/ignited/JiraTicketSync.java     | 16 +++++++++++--
 .../ignite/ci/jira/pure/IJiraIntegration.java      |  6 ++---
 .../java/org/apache/ignite/ci/jira/pure/Jira.java  | 26 ++++------------------
 .../ignite/ci/tcbot/conf/IJiraServerConfig.java    | 20 +++++++++++++++++
 .../apache/ignite/ci/web/rest/TriggerBuilds.java   | 17 ++++++++------
 5 files changed, 51 insertions(+), 34 deletions(-)

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
index dca8033..b269176 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/ignited/JiraTicketSync.java
@@ -30,9 +30,12 @@ import org.apache.ignite.ci.jira.pure.Fields;
 import org.apache.ignite.ci.jira.pure.IJiraIntegration;
 import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
 import org.apache.ignite.ci.jira.pure.Ticket;
+import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
 import org.apache.ignite.internal.util.typedef.F;
 import org.jetbrains.annotations.NotNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.ignite.ci.util.UrlUtil.escape;
 
@@ -40,6 +43,9 @@ import static org.apache.ignite.ci.util.UrlUtil.escape;
  * Sync serving requests for all JIRA servers.
  */
 public class JiraTicketSync {
+    /** Logger. */
+    private static final Logger logger = 
LoggerFactory.getLogger(JiraTicketSync.class);
+
     /** Scheduler. */
     @Inject private IScheduler scheduler;
 
@@ -94,18 +100,23 @@ public class JiraTicketSync {
             .map(Field::getName)
             .collect(Collectors.joining(","));
 
-        String projectCode = jira.config().projectCodeForVisa();
+        IJiraServerConfig cfg = jira.config();
+        String projectCode = cfg.projectCodeForVisa();
         String baseUrl = "search?jql=" + escape("project=" + projectCode + " 
order by updated DESC")
             + "&" +
             "fields=" + reqFields +
             "&maxResults=100";
 
+
         String url = baseUrl;
+
+        logger.info("Requesting JIRA tickets using URL " + url + ("\n" + 
cfg.restApiUrl() + url));
         Tickets tickets = jira.getTicketsPage(url);
         Collection<Ticket> page = tickets.issuesNotNull();
 
         if (F.isEmpty(page))
-            return "Something went wrong - no tickets found. Check jira 
availability.";
+            return "Something went wrong - no tickets found. Check jira 
availability: " +
+                "[project=" + projectCode + ", url=" + url + "]";
 
         int ticketsSaved = jiraDao.saveChunk(srvIdMaskHigh, page, projectCode);
 
@@ -115,6 +126,7 @@ public class JiraTicketSync {
             while (tickets.nextStart() > 0) {
                 url = baseUrl + "&startAt=" + tickets.nextStart();
 
+                logger.info("Requesting JIRA tickets using URL " + url + ("\n" 
+ cfg.restApiUrl() + url));
                 tickets = jira.getTicketsPage(url);
 
                 page = tickets.issuesNotNull();
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
index 1af7fdc..891997a 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/jira/pure/IJiraIntegration.java
@@ -59,8 +59,8 @@ public interface IJiraIntegration {
      */
     public String generateCommentUrl(String ticketFullName, int commentId);
 
-    String restApiUrl();
-
-
+    /**
+     *
+     */
     public IJiraServerConfig config();
 }
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 33f9d8d..fab758a 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
@@ -61,9 +61,9 @@ class Jira implements IJiraIntegration {
             String errMsg = "Exception happened during receiving JIRA tickets 
" +
                 "[url=" + url + ", errMsg=" + e.getMessage() + ']';
 
-            logger.error(errMsg);
+            logger.error(errMsg, e);
 
-            return new Tickets();
+            throw new IllegalStateException(errMsg, e);
         }
     }
 
@@ -92,36 +92,18 @@ class Jira implements IJiraIntegration {
     /** {@inheritDoc} */
     @AutoProfiling
     @Override public String postJiraComment(String ticket, String comment) 
throws IOException {
-        String jiraApiUrl = restApiUrl();
+        String jiraApiUrl = config().restApiUrl();
 
         String url = jiraApiUrl + "issue/" + ticket + "/comment";
 
         return 
HttpUtil.sendPostAsStringToJira(config().decodedHttpAuthToken(), url, 
"{\"body\": \"" + comment + "\"}");
     }
 
-    /** {@inheritDoc} */
-    @Override @NotNull public String restApiUrl() {
-        String jiraUrl = config().getUrl();
-
-        if (isNullOrEmpty(jiraUrl))
-            throw new IllegalStateException("JIRA API URL is not configured 
for this server.");
-
-        StringBuilder apiUrl = new StringBuilder();
-
-        apiUrl.append(jiraUrl);
-        if (!jiraUrl.endsWith("/"))
-            apiUrl.append("/");
-
-        apiUrl.append("rest/api/2/");
-
-        return apiUrl.toString();
-    }
-
     /**
      * @param url Url, relative, should not contain any start slashes.
      * @return Response as gson string.
      */
     public String sendGetToJira(String url) throws IOException {
-        return HttpUtil.sendGetToJira(config().decodedHttpAuthToken(), 
restApiUrl() + url);
+        return HttpUtil.sendGetToJira(config().decodedHttpAuthToken(), 
config().restApiUrl() + url);
     }
 }
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
index a48b0f8..06933cf 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/IJiraServerConfig.java
@@ -19,6 +19,8 @@ package org.apache.ignite.ci.tcbot.conf;
 import com.google.common.base.Strings;
 import org.jetbrains.annotations.Nullable;
 
+import static com.google.common.base.Strings.isNullOrEmpty;
+
 /**
  * Abstract JIRA server config.
  */
@@ -52,4 +54,22 @@ public interface IJiraServerConfig {
         return !Strings.isNullOrEmpty(decodedHttpAuthToken());
     }
 
+
+    public default String restApiUrl() {
+        String jiraUrl = getUrl();
+
+        if (isNullOrEmpty(jiraUrl))
+            throw new IllegalStateException("JIRA API URL is not configured 
for this server.");
+
+        StringBuilder apiUrl = new StringBuilder();
+
+        apiUrl.append(jiraUrl);
+        if (!jiraUrl.endsWith("/"))
+            apiUrl.append("/");
+
+        apiUrl.append("rest/api/2/");
+
+        return apiUrl.toString();
+    }
+
 }
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
index 037cead..bd953d7 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuilds.java
@@ -36,6 +36,8 @@ import org.apache.ignite.ci.github.pure.IGitHubConnection;
 import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
 import org.apache.ignite.ci.jira.pure.IJiraIntegration;
 import org.apache.ignite.ci.jira.pure.IJiraIntegrationProvider;
+import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
+import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
 import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
@@ -111,24 +113,25 @@ public class TriggerBuilds {
 
     @GET
     @Path("integrationUrls")
-    public Set<ServerIntegrationLinks> getIntegrationUrls(@NotNull 
@QueryParam("serverIds") String srvIds) {
+    public Set<ServerIntegrationLinks> getIntegrationUrls(@NotNull 
@QueryParam("serverIds") String srvCodes) {
         ICredentialsProv prov = ICredentialsProv.get(req);
 
         Injector injector = CtxListener.getInjector(ctx);
 
+        ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class);
         ITeamcityIgnitedProvider tcIgnProv = 
injector.getInstance(ITeamcityIgnitedProvider.class);
 
-        String[] srvIds0 = srvIds.split(",");
+        String[] srvCodesArr = srvCodes.split(",");
 
-        return Arrays.stream(srvIds0).map(srvId -> {
-            if (!tcIgnProv.hasAccess(srvId, prov))
+        return Arrays.stream(srvCodesArr).map(srvCode -> {
+            if (!tcIgnProv.hasAccess(srvCode, prov))
                 return null;
 
-            IJiraIntegration jira = 
injector.getInstance(IJiraIntegrationProvider.class).server(srvId);
+            IGitHubConnection gh = 
injector.getInstance(IGitHubConnectionProvider.class).server(srvCode);
 
-            IGitHubConnection gh = 
injector.getInstance(IGitHubConnectionProvider.class).server(srvId);
+            IJiraServerConfig jiraCfg = cfg.getJiraConfig(srvCode);
 
-            return new ServerIntegrationLinks(srvId, gh.gitApiUrl(), 
jira.restApiUrl());
+            return new ServerIntegrationLinks(srvCode, gh.gitApiUrl(), 
jiraCfg.restApiUrl());
         }).filter(Objects::nonNull).collect(Collectors.toSet());
     }
 }

Reply via email to