Search in sources :

Example 1 with InstanceStateRunning

use of org.jclouds.ec2.predicates.InstanceStateRunning in project legacy-jclouds-examples by jclouds.

the class MainApp method blockUntilInstanceRunning.

static RunningInstance blockUntilInstanceRunning(EC2Client client, RunningInstance instance) throws TimeoutException {
    // create utilities that wait for the instance to finish
    RetryablePredicate<RunningInstance> runningTester = new RetryablePredicate<RunningInstance>(new InstanceStateRunning(client), 180, 5, TimeUnit.SECONDS);
    System.out.printf("%d: %s awaiting instance to run %n", System.currentTimeMillis(), instance.getId());
    if (!runningTester.apply(instance))
        throw new TimeoutException("timeout waiting for instance to run: " + instance.getId());
    instance = findInstanceById(client, instance.getId());
    RetryablePredicate<HostAndPort> socketTester = new RetryablePredicate<HostAndPort>(new InetSocketAddressConnect(), 300, 1, TimeUnit.SECONDS);
    System.out.printf("%d: %s awaiting ssh service to start%n", System.currentTimeMillis(), instance.getIpAddress());
    if (!socketTester.apply(HostAndPort.fromParts(instance.getIpAddress(), 22)))
        throw new TimeoutException("timeout waiting for ssh to start: " + instance.getIpAddress());
    System.out.printf("%d: %s ssh service started%n", System.currentTimeMillis(), instance.getIpAddress());
    System.out.printf("%d: %s awaiting http service to start%n", System.currentTimeMillis(), instance.getIpAddress());
    if (!socketTester.apply(HostAndPort.fromParts(instance.getIpAddress(), 80)))
        throw new TimeoutException("timeout waiting for http to start: " + instance.getIpAddress());
    System.out.printf("%d: %s http service started%n", System.currentTimeMillis(), instance.getIpAddress());
    return instance;
}
Also used : RetryablePredicate(org.jclouds.predicates.RetryablePredicate) HostAndPort(com.google.common.net.HostAndPort) RunningInstance(org.jclouds.ec2.domain.RunningInstance) InetSocketAddressConnect(org.jclouds.predicates.InetSocketAddressConnect) InstanceStateRunning(org.jclouds.ec2.predicates.InstanceStateRunning) TimeoutException(java.util.concurrent.TimeoutException)

Aggregations

HostAndPort (com.google.common.net.HostAndPort)1 TimeoutException (java.util.concurrent.TimeoutException)1 RunningInstance (org.jclouds.ec2.domain.RunningInstance)1 InstanceStateRunning (org.jclouds.ec2.predicates.InstanceStateRunning)1 InetSocketAddressConnect (org.jclouds.predicates.InetSocketAddressConnect)1 RetryablePredicate (org.jclouds.predicates.RetryablePredicate)1