Able to specify logger when calling various command

This commit is contained in:
Robin Shen 2019-06-22 22:05:00 +08:00
parent 649e012095
commit 854c920f9d
33 changed files with 129 additions and 100 deletions

View File

@ -448,14 +448,14 @@ public class DefaultCommitInfoManager extends AbstractEnvironmentManager impleme
revList.revisions(revisions).order(Order.TOPO);
List<ObjectId> historyIds = new ArrayList<>();
for (String commitHash: revList.call())
for (String commitHash: revList.call(null))
historyIds.add(ObjectId.fromString(commitHash));
revList = new RevListCommand(project.getGitDir());
revList.order(null).firstParent(true);
Set<ObjectId> firstParentIds = new HashSet<>();
for (String commitHash: revList.call())
for (String commitHash: revList.call(null))
firstParentIds.add(ObjectId.fromString(commitHash));
/*
@ -565,7 +565,7 @@ public class DefaultCommitInfoManager extends AbstractEnvironmentManager impleme
@Override
public void run() {
try {
log.call();
log.call(null);
} catch (Exception e) {
logException.set(e);
} finally {

View File

@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jgit.lib.ObjectId;
import org.quartz.CronScheduleBuilder;
import org.quartz.ScheduleBuilder;
@ -80,6 +81,7 @@ import io.onedev.server.util.Input;
import io.onedev.server.util.inputspec.InputSpec;
import io.onedev.server.util.inputspec.SecretInput;
import io.onedev.server.util.patternset.PatternSet;
import jersey.repackaged.com.google.common.collect.Sets;
@Singleton
public class DefaultJobManager implements JobManager, Runnable, SchedulableTask, CodePullAuthorizationSource {
@ -246,11 +248,13 @@ public class DefaultJobManager implements JobManager, Runnable, SchedulableTask,
private void execute(Build build) {
try {
String jobId = UUID.randomUUID().toString();
Collection<String> jobSecretsToMask = Sets.newHashSet(jobId);
Job job = build.getJob();
ObjectId commitId = ObjectId.fromString(build.getCommitHash());
JobExecutor executor = getJobExecutor(build.getProject(), commitId, job.getName(), job.getEnvironment());
if (executor != null) {
Logger logger = logManager.getLogger(build, job.getLogLevel());
Logger logger = logManager.getLogger(build, job.getLogLevel(), jobSecretsToMask);
Long buildId = build.getId();
String projectName = build.getProject().getName();
@ -334,7 +338,6 @@ public class DefaultJobManager implements JobManager, Runnable, SchedulableTask,
};
String jobId = UUID.randomUUID().toString();
jobContexts.put(jobId, jobContext);
try {
executor.execute(jobId, jobContext);
@ -356,7 +359,14 @@ public class DefaultJobManager implements JobManager, Runnable, SchedulableTask,
} catch (Exception e) {
if (ExceptionUtils.find(e, InterruptedException.class) == null)
logger.error("Error running build", e);
throw e;
String errorMessage = e.getMessage();
if (errorMessage != null) {
for (String secret: jobSecretsToMask)
errorMessage = StringUtils.replace(errorMessage, secret, SecretInput.MASK);
throw new RuntimeException(errorMessage);
} else {
throw e;
}
} finally {
logger.info("Deleting server workspace...");
executor.cleanDir(serverWorkspace);

View File

@ -92,11 +92,12 @@ public class DefaultLogManager implements LogManager {
}
@Override
public Logger getLogger(Build build, LogLevel loggerLevel) {
public Logger getLogger(Build build, LogLevel loggerLevel, Collection<String> jobSecretsToMask) {
Long projectId = build.getProject().getId();
Long buildId = build.getId();
Long buildNumber = build.getNumber();
Collection<String> secretValuesToMask = build.getSecretValuesToMask();
secretValuesToMask.addAll(jobSecretsToMask);
return new JobLogger(loggerLevel) {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,7 @@
package io.onedev.server.ci.job.log;
import java.io.InputStream;
import java.util.Collection;
import java.util.List;
import org.slf4j.Logger;
@ -9,7 +10,7 @@ import io.onedev.server.model.Build;
public interface LogManager {
Logger getLogger(Build build, LogLevel logLevel);
Logger getLogger(Build build, LogLevel logLevel, Collection<String> jobSecrets);
/**
* Read specified number of log entries from specified build, starting from specified index

View File

@ -193,7 +193,7 @@ public class DefaultCodeCommentManager extends AbstractEntityManager<CodeComment
command.after(DateUtils.addDays(oldestDate, -1));
command.revisions(Lists.newArrayList(commitId.name()));
command.count(MAX_HISTORY_COMMITS_TO_CHECK);
Set<String> revisions = new HashSet<>(command.call());
Set<String> revisions = new HashSet<>(command.call(null));
RevCommit commit = revWalk.parseCommit(commitId);
List<String> newLines = GitUtils.readLines(project.getRepository(), commit, path,

View File

@ -208,7 +208,7 @@ public class DefaultProjectManager extends AbstractEntityManager<Project> implem
public void fork(Project from, Project to) {
save(to);
FileUtils.cleanDir(to.getGitDir());
new CloneCommand(to.getGitDir()).mirror(true).from(from.getGitDir().getAbsolutePath()).call();
new CloneCommand(to.getGitDir()).mirror(true).from(from.getGitDir().getAbsolutePath()).call(null);
commitInfoManager.cloneInfo(from, to);
avatarManager.copyAvatar(from.getFacade(), to.getFacade());
}

View File

@ -157,7 +157,7 @@ public class GitFilter implements Filter {
try {
InputStream is = ServletUtils.getInputStream(request);
OutputStream os = response.getOutputStream();
new UploadCommand(gitDir, environments).input(is).output(os).call();
new UploadCommand(gitDir, environments).input(is).output(os).call(null);
} catch (IOException e) {
throw new RuntimeException(e);
}
@ -174,7 +174,7 @@ public class GitFilter implements Filter {
try {
InputStream is = ServletUtils.getInputStream(request);
OutputStream os = response.getOutputStream();
new ReceiveCommand(gitDir, environments).input(is).output(os).call();
new ReceiveCommand(gitDir, environments).input(is).output(os).call(null);
} catch (IOException e) {
throw new RuntimeException(e);
}
@ -221,13 +221,13 @@ public class GitFilter implements Filter {
if (service.contains("upload")) {
checkPullPermission(request, project);
writeInitial(response, service);
new AdvertiseUploadRefsCommand(gitDir).output(response.getOutputStream()).call();
new AdvertiseUploadRefsCommand(gitDir).output(response.getOutputStream()).call(null);
} else {
if (!SecurityUtils.canWriteCode(project.getFacade())) {
throw new UnauthorizedException("You do not have permission to push to this project.");
}
writeInitial(response, service);
new AdvertiseReceiveRefsCommand(gitDir).output(response.getOutputStream()).call();
new AdvertiseReceiveRefsCommand(gitDir).output(response.getOutputStream()).call(null);
}
}

View File

@ -327,7 +327,7 @@ public class GitUtils {
new FetchCommand(toRepository.getDirectory())
.from(fromRepository.getDirectory().getAbsolutePath())
.refspec(fetchRef)
.call();
.call(null);
} else {
LockUtils.call("repository-fetch:" + fromRepository.getDirectory(), new Callable<Void>() {
@ -340,7 +340,7 @@ public class GitUtils {
new FetchCommand(toRepository.getDirectory())
.from(fromRepository.getDirectory().getAbsolutePath())
.refspec(refUpdate.getName())
.call();
.call(null);
} catch (IOException e) {
throw new RuntimeException(e);
}
@ -356,7 +356,7 @@ public class GitUtils {
if (gitEnvs != null && !gitEnvs.isEmpty()) {
IsAncestorCommand cmd = new IsAncestorCommand(repository.getDirectory(), gitEnvs);
cmd.ancestor(base.name()).descendant(tip.name());
return cmd.call();
return cmd.call(null);
} else {
try (RevWalk revWalk = new RevWalk(repository)) {
RevCommit baseCommit;

View File

@ -27,19 +27,20 @@ public class AdvertiseReceiveRefsCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(output);
Logger effectiveLogger = logger!=null?logger:AdvertiseReceiveRefsCommand.logger;
Commandline cmd = cmd();
cmd.addArgs("receive-pack", "--stateless-rpc", "--advertise-refs", ".");
cmd.execute(output, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -27,19 +27,20 @@ public class AdvertiseUploadRefsCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(output);
Logger effectiveLogger = logger!=null?logger:AdvertiseUploadRefsCommand.logger;
Commandline cmd = cmd();
cmd.addArgs("upload-pack", "--stateless-rpc", "--advertise-refs", ".");
cmd.execute(output, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -78,7 +78,7 @@ public class BlameCommand extends GitCommand<Collection<BlameBlock>> {
}
@Override
public Collection<BlameBlock> call() {
public Collection<BlameBlock> call(Logger logger) {
Preconditions.checkArgument(commitHash!=null && ObjectId.isId(commitHash), "commit hash has to be specified.");
Preconditions.checkNotNull(file, "file parameter has to be specified.");
@ -111,6 +111,7 @@ public class BlameCommand extends GitCommand<Collection<BlameBlock>> {
long time = System.currentTimeMillis();
Logger effectiveLogger = logger!=null?logger:BlameCommand.logger;
ExecuteResult result = cmd.execute(new LineConsumer() {
@Override
@ -159,13 +160,13 @@ public class BlameCommand extends GitCommand<Collection<BlameBlock>> {
public void consume(String line) {
if (line.startsWith("fatal: file ") && line.contains("has only ")) {
endOfFile.set(true);
logger.trace(line.substring("fatal: ".length()));
effectiveLogger.trace(line.substring("fatal: ".length()));
} else {
logger.error(line);
effectiveLogger.error(line);
}
}
});
}, logger);
if (!endOfFile.get())
result.checkReturnCode();

View File

@ -26,26 +26,27 @@ public class CheckoutCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(refspec, "refspec param has to be specified.");
Commandline cmd = cmd().addArgs("checkout", "--quiet", refspec);
Logger effectiveLogger = logger!=null?logger:CheckoutCommand.logger;
cmd.execute(new LineConsumer() {
@Override
public void consume(String line) {
logger.trace(line);
effectiveLogger.trace(line);
}
}, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -24,27 +24,28 @@ public class CleanCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Commandline cmd = cmd().addArgs("clean");
if (options != null)
cmd.addArgs(options);
Logger effectiveLogger = logger!=null?logger:CleanCommand.logger;
cmd.execute(new LineConsumer() {
@Override
public void consume(String line) {
logger.trace(line);
effectiveLogger.trace(line);
}
}, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -61,7 +61,7 @@ public class CloneCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(from, "from has to be specified.");
Commandline cmd = cmd().addArgs("clone");
@ -79,11 +79,12 @@ public class CloneCommand extends GitCommand<Void> {
cmd.addArgs(from);
cmd.addArgs(".");
Logger effectiveLogger = logger!=null?logger:CloneCommand.logger;
cmd.execute(new LineConsumer() {
@Override
public void consume(String line) {
logger.trace(line);
effectiveLogger.trace(line);
}
}, new LineConsumer(){
@ -91,14 +92,14 @@ public class CloneCommand extends GitCommand<Void> {
@Override
public void consume(String line) {
if (line.startsWith("Cloning into ") || line.equals("done."))
logger.trace(line);
effectiveLogger.trace(line);
else if (line.contains("You appear to have cloned an empty repository"))
logger.warn(line);
effectiveLogger.warn(line);
else
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -40,7 +40,7 @@ public class FetchCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(from, "from param has to be specified.");
Commandline cmd = cmd().addArgs("fetch");
@ -52,21 +52,22 @@ public class FetchCommand extends GitCommand<Void> {
for (String each: refspec)
cmd.addArgs(each);
Logger effectiveLogger = logger!=null?logger:FetchCommand.logger;
cmd.execute(new LineConsumer() {
@Override
public void consume(String line) {
logger.trace(line);
effectiveLogger.trace(line);
}
}, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -2,7 +2,6 @@ package io.onedev.server.git.command;
import java.io.File;
import java.util.Map;
import java.util.concurrent.Callable;
import javax.annotation.Nullable;
@ -17,7 +16,7 @@ import io.onedev.commons.utils.command.LineConsumer;
import io.onedev.server.git.GitVersion;
import io.onedev.server.git.config.GitConfig;
public abstract class GitCommand<V> implements Callable<V> {
public abstract class GitCommand<V> {
private static final Logger logger = LoggerFactory.getLogger(GitCommand.class);
@ -38,7 +37,7 @@ public abstract class GitCommand<V> implements Callable<V> {
public GitCommand(File gitDir) {
this(gitDir, null);
}
/**
* Check if there are any errors with git command line.
*
@ -101,7 +100,6 @@ public abstract class GitCommand<V> implements Callable<V> {
return AppLoader.getInstance(GitConfig.class).getExecutable();
}
@Override
public abstract V call();
public abstract V call(@Nullable Logger logger);
}

View File

@ -33,7 +33,7 @@ public class InitCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(from, "from param has to be specified.");
Commandline cmd = cmd().addArgs("fetch");
@ -43,11 +43,12 @@ public class InitCommand extends GitCommand<Void> {
for (String each: refspec)
cmd.addArgs(each);
Logger effectiveLogger = logger!=null?logger:InitCommand.logger;
cmd.execute(new LineConsumer() {
@Override
public void consume(String line) {
logger.trace(line);
effectiveLogger.trace(line);
}
}, new LineConsumer() {
@ -58,13 +59,13 @@ public class InitCommand extends GitCommand<Void> {
|| line.startsWith(" * branch")
|| line.startsWith(" * [new ref]")
|| line.contains("..") && line.contains("->")) {
logger.info(line);
effectiveLogger.info(line);
} else {
logger.error(line);
effectiveLogger.error(line);
}
}
}).checkReturnCode();
}, logger).checkReturnCode();
return null;
}

View File

@ -35,7 +35,7 @@ public class IsAncestorCommand extends GitCommand<Boolean> {
}
@Override
public Boolean call() {
public Boolean call(Logger logger) {
Preconditions.checkNotNull(ancestor, "ancestor has to be specified.");
Preconditions.checkNotNull(descendant, "descendant has to be specified.");
@ -43,6 +43,7 @@ public class IsAncestorCommand extends GitCommand<Boolean> {
cmd.addArgs("merge-base", "--is-ancestor", ancestor, descendant);
Logger effectiveLogger = logger!=null?logger:IsAncestorCommand.logger;
ExecuteResult result = cmd.execute(new LineConsumer() {
@Override
@ -53,10 +54,10 @@ public class IsAncestorCommand extends GitCommand<Boolean> {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
});
}, logger);
if (result.getReturnCode() == 0)
return true;

View File

@ -45,7 +45,7 @@ public class ListChangedFilesCommand extends GitCommand<Collection<String>> {
}
@Override
public Collection<String> call() {
public Collection<String> call(Logger logger) {
Preconditions.checkNotNull(toRev, "toRev has to be specified.");
Preconditions.checkNotNull(fromRev, "fromRev has to be specified.");
@ -58,6 +58,7 @@ public class ListChangedFilesCommand extends GitCommand<Collection<String>> {
if (path != null)
cmd.addArgs("--", path);
Logger effectiveLogger = logger!=null?logger:ListChangedFilesCommand.logger;
cmd.execute(new LineConsumer() {
@Override
@ -70,10 +71,10 @@ public class ListChangedFilesCommand extends GitCommand<Collection<String>> {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return changedFiles;
}

View File

@ -44,7 +44,7 @@ public class ListFileChangesCommand extends GitCommand<Collection<FileChange>> {
}
@Override
public Collection<FileChange> call() {
public Collection<FileChange> call(Logger logger) {
Preconditions.checkNotNull(toRev, "toRev has to be specified.");
Preconditions.checkNotNull(fromRev, "fromRev has to be specified.");
@ -57,6 +57,7 @@ public class ListFileChangesCommand extends GitCommand<Collection<FileChange>> {
if (path != null)
cmd.addArgs("--", path);
Logger effectiveLogger = logger!=null?logger:ListFileChangesCommand.logger;
cmd.execute(new LineConsumer() {
@Override
@ -88,10 +89,10 @@ public class ListFileChangesCommand extends GitCommand<Collection<FileChange>> {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return fileChanges;
}

View File

@ -51,7 +51,7 @@ public abstract class LogCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkArgument(!revisions.isEmpty(), "Log revisions have to be specified");
Commandline cmd = cmd();
@ -83,6 +83,8 @@ public abstract class LogCommand extends GitCommand<Void> {
for (String revision: revisions)
cmd.addArgs(revision);
Logger effectiveLogger = logger!=null?logger:LogCommand.logger;
AtomicReference<GitCommit.Builder> commitBuilderRef = new AtomicReference<>(null);
cmd.execute(new LineConsumer() {
@ -157,13 +159,13 @@ public abstract class LogCommand extends GitCommand<Void> {
public void consume(String line) {
if (line.contains("inexact rename detection was skipped")
|| line.contains("you may want to set your diff.renameLimit variable")) {
logger.trace(line);
effectiveLogger.trace(line);
} else {
logger.error(line);
effectiveLogger.error(line);
}
}
}).checkReturnCode();
}, logger).checkReturnCode();
if (commitBuilderRef.get() != null)
consume(commitBuilderRef.get().build());

View File

@ -36,21 +36,22 @@ public class ReceiveCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(input);
Preconditions.checkNotNull(output);
Commandline cmd = cmd();
cmd.addArgs("receive-pack", "--stateless-rpc", ".");
cmd.execute(output, new LineConsumer() {
Logger effectiveLogger = logger!=null?logger:ReceiveCommand.logger;
cmd.execute(output, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}, input).checkReturnCode();
}, input, logger).checkReturnCode();
return null;
}

View File

@ -165,7 +165,7 @@ public class RevListCommand extends GitCommand<List<String>> {
}
@Override
public List<String> call() {
public List<String> call(Logger logger) {
Commandline cmd = cmd();
cmd.addArgs("rev-list");
@ -218,6 +218,8 @@ public class RevListCommand extends GitCommand<List<String>> {
for (String path: paths)
cmd.addArgs(path);
Logger effectiveLogger = logger!=null?logger:RevListCommand.logger;
List<String> commitHashes = new ArrayList<>();
cmd.execute(new LineConsumer() {
@ -230,10 +232,10 @@ public class RevListCommand extends GitCommand<List<String>> {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}).checkReturnCode();
}, logger).checkReturnCode();
return commitHashes;
}

View File

@ -36,21 +36,22 @@ public class UploadCommand extends GitCommand<Void> {
}
@Override
public Void call() {
public Void call(Logger logger) {
Preconditions.checkNotNull(input);
Preconditions.checkNotNull(output);
Commandline cmd = cmd();
cmd.addArgs("upload-pack", "--stateless-rpc", ".");
Logger effectiveLogger = logger!=null?logger:UploadCommand.logger;
cmd.execute(output, new LineConsumer() {
@Override
public void consume(String line) {
logger.error(line);
effectiveLogger.error(line);
}
}, input).checkReturnCode();
}, input, logger).checkReturnCode();
return null;
}

View File

@ -1303,7 +1303,7 @@ public class Project extends AbstractEntity implements Validatable {
List<User> authors = new ArrayList<>();
UserManager userManager = OneDev.getInstance(UserManager.class);
for (BlameBlock block: cmd.call()) {
for (BlameBlock block: cmd.call(null)) {
User author = userManager.find(block.getCommit().getAuthor());
if (author != null && !authors.contains(author))
authors.add(author);
@ -1434,7 +1434,7 @@ public class Project extends AbstractEntity implements Validatable {
if (gitEnvs != null && !gitEnvs.isEmpty()) {
ListChangedFilesCommand cmd = new ListChangedFilesCommand(getGitDir(), gitEnvs);
cmd.fromRev(oldObjectId.name()).toRev(newObjectId.name());
return cmd.call();
return cmd.call(null);
} else {
return GitUtils.getChangedFiles(getRepository(), oldObjectId, newObjectId);
}

View File

@ -108,7 +108,7 @@ public class PullRequestUpdate extends AbstractEntity {
ListFileChangesCommand cmd = new ListFileChangesCommand(getRequest().getTargetProject().getGitDir());
cmd.fromRev(getBaseCommitHash());
cmd.toRev(getHeadCommitHash());
fileChanges = cmd.call();
fileChanges = cmd.call(null);
}
return fileChanges;
}

View File

@ -96,8 +96,8 @@ public abstract class JobContext {
}
private void fetchAndCheckout(File gitDir) {
new FetchCommand(gitDir).depth(1).from(gitDir.getAbsolutePath()).refspec(commitId.name()).call();
new CheckoutCommand(gitDir).refspec(commitId.name()).call();
new FetchCommand(gitDir).depth(1).from(gitDir.getAbsolutePath()).refspec(commitId.name()).call(logger);
new CheckoutCommand(gitDir).refspec(commitId.name()).call(logger);
}
public void checkoutSource(File dir) {

View File

@ -160,7 +160,7 @@ public class CommitListPanel extends Panel {
if (command.revisions().isEmpty() && getCompareWith() != null)
command.revisions(Lists.newArrayList(getCompareWith()));
commitHashes = command.call();
commitHashes = command.call(null);
} catch (Exception e) {
if (e.getMessage() != null)
error(e.getMessage());

View File

@ -155,7 +155,7 @@ public class TextDiffPanel extends Panel implements SourceAware {
String oldPath = change.getOldBlobIdent().path;
if (oldPath != null) {
cmd.commitHash(getOldCommit().name()).file(oldPath);
for (BlameBlock blame: cmd.call()) {
for (BlameBlock blame: cmd.call(null)) {
for (LinearRange range: blame.getRanges()) {
for (int i=range.getFrom(); i<=range.getTo(); i++)
blameInfo.oldBlame.put(i, blame.getCommit());
@ -165,7 +165,7 @@ public class TextDiffPanel extends Panel implements SourceAware {
String newPath = change.getNewBlobIdent().path;
if (newPath != null) {
cmd.commitHash(getNewCommit().name()).file(newPath);
for (BlameBlock blame: cmd.call()) {
for (BlameBlock blame: cmd.call(null)) {
for (LinearRange range: blame.getRanges()) {
for (int i=range.getFrom(); i<=range.getTo(); i++)
blameInfo.newBlame.put(i, blame.getCommit());

View File

@ -839,7 +839,7 @@ public class SourceViewPanel extends BlobViewPanel implements Positionable, Sear
BlameCommand cmd = new BlameCommand(context.getProject().getGitDir());
cmd.commitHash(commitHash).file(context.getBlobIdent().path);
for (BlameBlock blame: cmd.call()) {
for (BlameBlock blame: cmd.call(null)) {
BlameInfo blameInfo = new BlameInfo();
blameInfo.commitDate = DateUtils.formatDate(blame.getCommit().getCommitter().getWhen());
blameInfo.authorName = HtmlEscape.escapeHtml5(blame.getCommit().getAuthor().getName());

View File

@ -31,7 +31,7 @@ public class BlameCommandTest extends AbstractGitTest {
Collection<BlameBlock> blames = new BlameCommand(git.getRepository().getDirectory())
.commitHash(commitHash)
.file("file")
.call();
.call(null);
assertEquals(1, blames.size());
assertEquals(commitHash + ": 0-8", blames.iterator().next().toString());
@ -53,7 +53,7 @@ public class BlameCommandTest extends AbstractGitTest {
.commitHash(commitHash)
.file("file")
.range(new LinearRange(5, 8))
.call();
.call(null);
assertEquals(2, blames.size());
assertEquals(commitHash + ": 8-8", getBlock(blames, commitHash).toString());
@ -69,7 +69,7 @@ public class BlameCommandTest extends AbstractGitTest {
blames = new BlameCommand(git.getRepository().getDirectory())
.commitHash(commitHash)
.file("file")
.call();
.call(null);
commitHash = git.getRepository().resolve("master~1").name();

View File

@ -78,7 +78,7 @@ public class LogCommandTest extends AbstractGitTest {
commits.add(commit);
}
}.revisions(Lists.newArrayList("master")).call();
}.revisions(Lists.newArrayList("master")).call(null);
assertEquals(2, commits.size());

View File

@ -136,7 +136,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
output.append(line).append("\n");
}
}, newErrorLogger(logger)).checkReturnCode();
}, newErrorLogger(logger), logger).checkReturnCode();
Map<String, Object> map;
try {
@ -160,6 +160,8 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
@Override
public void execute(String jobId, JobContext context) {
Logger logger = context.getLogger();
getCapacityRunner().call(new Callable<Void>() {
@Override
@ -175,7 +177,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
logger.info("Pulling image...") ;
Commandline docker = getDocker();
docker.addArgs("pull", context.getEnvironment());
docker.execute(newInfoLogger(logger), newErrorLogger(logger)).checkReturnCode();
docker.execute(newInfoLogger(logger), newErrorLogger(logger), logger).checkReturnCode();
docker.clearArgs();
String jobInstance = UUID.randomUUID().toString();
@ -256,7 +258,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
logger.info("Stopping container...");
Commandline cmd = getDocker();
cmd.addArgs("stop", jobInstance);
cmd.execute(newInfoLogger(logger), newErrorLogger(logger));
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), logger);
}
}, logger).checkReturnCode();
@ -320,7 +322,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), input).checkReturnCode();
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), input, logger).checkReturnCode();
}
}
@ -415,7 +417,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
Commandline cmd = getDocker();
cmd.addArgs("pull", testData.getDockerImage());
cmd.execute(newInfoLogger(logger), newErrorLogger(logger)).checkReturnCode();
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), logger).checkReturnCode();
boolean windows = getImageOS(logger, testData.getDockerImage()).equals("windows");
@ -453,7 +455,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
else
cmd.addArgs("sh", "-c", "echo hello from container");
cmd.execute(newInfoLogger(logger), newErrorLogger(logger)).checkReturnCode();
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), logger).checkReturnCode();
} finally {
if (workspaceDir != null)
FileUtils.deleteDir(workspaceDir);
@ -467,7 +469,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
logger.info("Checking busybox...");
cmd = getDocker();
cmd.addArgs("run", "--rm", "busybox", "sh", "-c", "echo hello from busybox");
cmd.execute(newInfoLogger(logger), newErrorLogger(logger)).checkReturnCode();
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), logger).checkReturnCode();
}
}
@ -480,7 +482,7 @@ public class ServerDockerExecutor extends JobExecutor implements Testable<TestDa
String containerPath = "/onedev_dir_to_clean";
cmd.addArgs("run", "-v", dir.getAbsolutePath() + ":" + containerPath, "--rm",
"busybox", "sh", "-c", "rm -rf " + containerPath + "/*");
cmd.execute(newInfoLogger(logger), newErrorLogger(logger)).checkReturnCode();
cmd.execute(newInfoLogger(logger), newErrorLogger(logger), logger).checkReturnCode();
}
}