use of org.eclipse.jkube.kit.build.service.docker.wait.WaitTimeoutException in project jkube by eclipse.
the class WaitService method wait.
// ========================================================================================================
public void wait(ImageConfiguration imageConfig, Properties projectProperties, String containerId) throws IOException {
List<WaitChecker> checkers = prepareWaitCheckers(imageConfig, projectProperties, containerId);
int timeout = getTimeOut(imageConfig);
if (checkers.isEmpty()) {
if (timeout > 0) {
log.info("%s: Pausing for %d ms", imageConfig.getDescription(), timeout);
WaitUtil.sleep(timeout);
}
return;
}
String logLine = extractCheckerLog(checkers);
ContainerRunningPrecondition precondition = new ContainerRunningPrecondition(dockerAccess, containerId);
try {
long waited = WaitUtil.wait(precondition, timeout, checkers);
log.info("%s: Waited %s %d ms", imageConfig.getDescription(), logLine, waited);
} catch (WaitTimeoutException exp) {
String desc = String.format("%s: Timeout after %d ms while waiting %s", imageConfig.getDescription(), exp.getWaited(), logLine);
log.error(desc);
throw new IOException(desc);
} catch (PreconditionFailedException exp) {
String desc = String.format("%s: Container stopped with exit code %d unexpectedly after %d ms while waiting %s", imageConfig.getDescription(), precondition.getExitCode(), exp.getWaited(), logLine);
log.error(desc);
throw new IOException(desc);
}
}
Aggregations