package com.hubspot.baragon;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.slf4j.LoggerFactory;
import com.google.common.base.Optional;
import com.google.common.base.Strings;
import com.google.inject.AbstractModule;
import com.hubspot.baragon.client.BaragonClientModule;
public class DockerTestModule extends AbstractModule {
private static final Pattern DOCKER_HOST_PATTERN = Pattern.compile("tcp://(.*?):(\\d+)");
public static Optional<String> getDockerAddress() {
final String dockerHost = System.getenv("DOCKER_HOST");
if (Strings.isNullOrEmpty(dockerHost)) {
return Optional.absent();
}
final Matcher m = DOCKER_HOST_PATTERN.matcher(dockerHost);
if (m.matches()) {
return Optional.of(m.group(1));
} else {
return Optional.absent();
}
}
@Override
protected void configure() {
final int baragonPort = Integer.parseInt(System.getProperty("baragon.service.port"));
install(new BaragonClientModule(Arrays.asList(String.format("%s:%d", getDockerAddress().or("localhost"), baragonPort))));
BaragonClientModule.bindAuthkey(binder()).toInstance(Optional.fromNullable(Strings.emptyToNull(System.getProperty("baragon.service.auth.key"))));
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger rootLogger = context.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
rootLogger.setLevel(Level.INFO);
}
}