diff --git a/src/main/groovy/org/jenkinsci/plugins/sshsteps/SSHService.groovy b/src/main/groovy/org/jenkinsci/plugins/sshsteps/SSHService.groovy index 457ad14..f32422b 100644 --- a/src/main/groovy/org/jenkinsci/plugins/sshsteps/SSHService.groovy +++ b/src/main/groovy/org/jenkinsci/plugins/sshsteps/SSHService.groovy @@ -27,6 +27,7 @@ class SSHService implements Serializable { private final boolean dryRunFlag private final transient PrintStream logger private final transient Service ssh + private boolean verbose = false /** * Constructor. @@ -63,6 +64,10 @@ class SSHService implements Serializable { } } + void setVerbose(boolean verbose) { + this.verbose = verbose + } + private void validateRemote() { new Common(logger).validateRemote(this.remote) } @@ -234,6 +239,14 @@ class SSHService implements Serializable { def get(String from, String into, String filterBy, String filterRegex) { registerLogHandler("Receiving a file/directory from $remote.name[$remote.host]: from: $from into: $into") defineRemote(remote) + + // Suppress SCP logs unless verbose explicitly enabled + if (!verbose && remote.fileTransfer?.equalsIgnoreCase('scp')) { + logger.println("Suppressing SCP transfer logs for $from (enable verbose: true for debugging)") + ssh.remotes."$remote.name".logging = LoggingMethod.none + ssh.remotes."$remote.name".interaction = {} + } + ssh.run { session(ssh.remotes."$remote.name") { if (filterBy && filterRegex) diff --git a/src/main/java/org/jenkinsci/plugins/sshsteps/steps/GetStep.java b/src/main/java/org/jenkinsci/plugins/sshsteps/steps/GetStep.java index fc7b370..f78891a 100644 --- a/src/main/java/org/jenkinsci/plugins/sshsteps/steps/GetStep.java +++ b/src/main/java/org/jenkinsci/plugins/sshsteps/steps/GetStep.java @@ -45,6 +45,10 @@ public class GetStep extends BasicSSHStep { @DataBoundSetter private boolean override = false; + @Setter + @DataBoundSetter + private boolean verbose = false; + @DataBoundConstructor public GetStep(String from, String into) { this.from = from; @@ -118,6 +122,7 @@ public GetCallable(GetStep step, TaskListener listener, String into) { @Override public Object execute() { final GetStep step = (GetStep) getStep(); + getService().setVerbose(step.isVerbose()); return getService().get(step.getFrom(), into, step.getFilterBy(), step.getFilterRegex()); } }