下面列出了org.junit.jupiter.api.extension.BeforeAllCallback#com.palantir.docker.compose.connection.waiting.HealthChecks 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public StandaloneYamlTest(String version, String name) throws IOException {
this.version = version;
this.name = name;
String dockerComposeYmlFile = "target/test-classes/docker-compose-" + version + "-" + name + "Test-yml.yml";
try (InputStream inputStream = StandaloneYamlTest.class.getClassLoader().getResourceAsStream("docker-compose-v1-standalone.yml");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
FileWriter fileWriter = new FileWriter(dockerComposeYmlFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(line.replace("REPLACED_WITH_CONFIG_FILE", getConfigYml()));
bufferedWriter.newLine();
}
}
dockerComposeRule = DockerComposeRule.builder()
.file(dockerComposeYmlFile)
.waitingForService("minifi", HealthChecks.toRespond2xxOverHttp(8000, dockerPort -> "http://" + dockerPort.getIp() + ":" + dockerPort.getExternalPort()))
.build();
}
@Override
public DockerComposeRule createRule() {
return DockerComposeRule.builder()
.file("src/integration/resources/docker-compose.yml")
.waitingForService("artifactory", HealthChecks.toRespond2xxOverHttp(
8081, DockerDelegate::artifactoryHealthUri))
.build();
}
@Test
public void produce_events_on_a_successful_run() throws Throwable {
DockerComposeManager dockerComposeManager = new DockerComposeManager.Builder()
.file(ALL_GOOD_DOCKER_COMPOSE_YAML)
.waitingForService("one", HealthChecks.toHaveAllPortsOpen())
.addEventConsumer(eventConsumer)
.build();
runDockerComposeRule(dockerComposeManager);
List<Event> events = getEvents();
List<Class<?>> expected = ImmutableList.of(
BuildEvent.class,
UpEvent.class,
// 2 cluster waits, one native, one user
ClusterWaitEvent.class,
ClusterWaitEvent.class,
WaitForServicesEvent.class,
ShutdownStopEvent.class,
LogCollectionEvent.class,
ShutdownEvent.class
);
assertThat(events).hasSameSizeAs(expected);
for (int i = 0; i < events.size(); i++) {
assertThat(events.get(i).toString()).contains(expected.get(i).getSimpleName());
}
}
public static Extension startDockerCompose(Path tempFolder) {
if (DockerComposeFactoryProperties.isDockerComposeDisabled()) {
return (BeforeAllCallback) context -> logger.info("Docker Compose installation is disabled!");
}
logger.info("{} = {}", DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_DATAFLOW_VERSIONN,
DockerComposeFactoryProperties.get(DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_DATAFLOW_VERSIONN, DEFAULT_DATAFLOW_VERSION));
logger.info("{} = {}", DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_SKIPPER_VERSIONN,
DockerComposeFactoryProperties.get(DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_SKIPPER_VERSIONN, DEFAULT_SKIPPER_VERSION));
logger.info("{} = {}", DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_STREAM_APPS_URI,
DockerComposeFactoryProperties.get(DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_STREAM_APPS_URI, DEFAULT_STREAM_APPS_URI));
logger.info("{} = {}", DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_TASK_APPS_URI,
DockerComposeFactoryProperties.get(DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_TASK_APPS_URI, DEFAULT_TASK_APPS_URI));
logger.info("{} = {}", DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_PATHS,
DockerComposeFactoryProperties.getDockerComposePaths(DEFAULT_DOCKER_COMPOSE_PATHS));
String[] dockerComposePaths = new ResourceExtractor(tempFolder).extract(
DockerComposeFactoryProperties.getDockerComposePaths(DEFAULT_DOCKER_COMPOSE_PATHS));
logger.info("Extracted docker compose files = {}", Arrays.toString(dockerComposePaths));
return DockerComposeExtension.builder()
.files(DockerComposeFiles.from(dockerComposePaths))
.machine(dockerMachine)
.saveLogsTo("target/dockerLogs/DockerComposeIT")
.waitingForService("dataflow-server", HealthChecks.toRespond2xxOverHttp(9393,
(port) -> port.inFormat("http://$HOST:$EXTERNAL_PORT")), org.joda.time.Duration.standardMinutes(10))
.waitingForService("skipper-server", HealthChecks.toRespond2xxOverHttp(7577,
(port) -> port.inFormat("http://$HOST:$EXTERNAL_PORT")), org.joda.time.Duration.standardMinutes(10))
// set to false to test with local dataflow and skipper images.
.pullOnStartup(DockerComposeFactoryProperties.getBoolean(DockerComposeFactoryProperties.TEST_DOCKER_COMPOSE_PULLONSTARTUP, true))
.build();
}