package org.arquillian.cube.docker.impl.await; import java.util.ArrayList; import java.util.List; import org.arquillian.cube.docker.impl.client.config.Await; import org.arquillian.cube.docker.impl.util.Ping; import org.arquillian.cube.spi.Cube; public class StaticAwaitStrategy extends SleepingAwaitStrategyBase { public static final String TAG = "static"; private static final int DEFAULT_POLL_ITERATIONS = 10; private int pollIterations = DEFAULT_POLL_ITERATIONS; private String ip; private List<Integer> ports = new ArrayList<Integer>(); public StaticAwaitStrategy(Cube<?> cube, Await params) { super(params.getSleepPollingTime()); this.ip = params.getIp(); this.ports.addAll(params.getPorts()); if (params.getIterations() != null) { this.pollIterations = params.getIterations(); } } @Override public boolean await() { for (Integer port : this.ports) { if (!Ping.ping(this.ip, port, this.pollIterations, this.getSleepTime(), this.getTimeUnit())) { return false; } } return true; } public String getIp() { return ip; } public List<Integer> getPorts() { return ports; } public int getPollIterations() { return pollIterations; } }