Log ssh related messages only once per checkout
authorDmitry Neverov <dmitry.neverov@gmail.com>
Sat, 16 Dec 2017 08:53:12 +0000 (09:53 +0100)
committerDmitry Neverov <dmitry.neverov@gmail.com>
Sat, 16 Dec 2017 08:53:12 +0000 (09:53 +0100)
git-agent/src/jetbrains/buildServer/buildTriggers/vcs/git/agent/GitCommandLine.java
git-agent/src/jetbrains/buildServer/buildTriggers/vcs/git/agent/UpdaterImpl.java

index f07433f49b0710d3d2cd6ea4539696c29bcd25ce..dd7cde59ae428183c2ff7e8d651f758bbb0aa0b9 100644 (file)
@@ -119,12 +119,8 @@ public class GitCommandLine extends GeneralCommandLine {
         }
       }
       if (settings.isUseNativeSsh()) {
-        myLogger.message("Use native ssh (" + PluginConfigImpl.USE_NATIVE_SSH + "=true)");
         if (!myGitVersion.isLessThan(UpdaterImpl.MIN_GIT_SSH_COMMAND) && authSettings.getAuthMethod() == AuthenticationMethod.TEAMCITY_SSH_KEY) {
           configureGitSshCommand(authSettings);
-        } else {
-          myLogger.message("Git " + myGitVersion + " doesn't support the GIT_SSH_COMMAND environment variable, uploaded keys will not work. " +
-                           "Required git version is " + UpdaterImpl.MIN_GIT_SSH_COMMAND);
         }
         return CommandUtil.runCommand(this, settings.getTimeout());
       } else {
index 4875e01f6c3e3bf183c62dbc4a41f8309d7c64b9..44fe5f460d55108d2acc66645af021ad03ce8d1c 100644 (file)
@@ -123,13 +123,32 @@ public class UpdaterImpl implements Updater {
 
 
   public void update() throws VcsException {
-    String msg = "Git version: " + myPluginConfig.getGitVersion();
-    myLogger.message(msg);
-    LOG.info(msg);
+    logInfo("Git version: " + myPluginConfig.getGitVersion());
+    logSshOptions(myPluginConfig.getGitVersion());
     checkAuthMethodIsSupported();
     doUpdate();
   }
 
+  private void logSshOptions(@NotNull GitVersion gitVersion) {
+    if (myPluginConfig.isUseNativeSSH()) {
+      logInfo("Will use native ssh (" + PluginConfigImpl.USE_NATIVE_SSH + "=true)");
+      if (myRoot.getAuthSettings().getAuthMethod() == AuthenticationMethod.TEAMCITY_SSH_KEY && gitVersion.isLessThan(UpdaterImpl.MIN_GIT_SSH_COMMAND)) {
+        logWarn("Git " + gitVersion + " doesn't support the GIT_SSH_COMMAND environment variable, uploaded SSH keys will not work. " +
+                 "Required git version is " + UpdaterImpl.MIN_GIT_SSH_COMMAND);
+      }
+    }
+  }
+
+  private void logInfo(@NotNull String msg) {
+    myLogger.message(msg);
+    LOG.info(msg);
+  }
+
+  private void logWarn(@NotNull String msg) {
+    myLogger.warning(msg);
+    LOG.warn(msg);
+  }
+
   protected void doUpdate() throws VcsException {
     String message = "Update checkout directory (" + myTargetDirectory.getAbsolutePath() + ")";
     myLogger.activityStarted(message, GitBuildProgressLogger.GIT_PROGRESS_ACTIVITY);