Class SnapshotPredicates
java.lang.Object
org.jclouds.openstack.cinder.v1.predicates.SnapshotPredicates
Tests to see if snapshot has reached status. This class is most useful when paired with a RetryablePredicate as
in the code below. This class can be used to block execution until the Snapshot status has reached a desired state.
This is useful when your Snapshot needs to be 100% ready before you can continue with execution.
Snapshot snapshot = snapshotApi.create(volumeId);
RetryablePredicate<String> awaitAvailable = RetryablePredicate.create(
SnapshotPredicates.available(snapshotApi), 600, 10, 10, TimeUnit.SECONDS);
if (!awaitAvailable.apply(snapshot.getId())) {
throw new TimeoutException("Timeout on snapshot: " + snapshot);
}
You can also use the static convenience methods as so.
Snapshot snapshot = snapshotApi.create(volumeId);
if (!SnapshotPredicates.awaitAvailable(snapshotApi).apply(snapshot.getId())) {
throw new TimeoutException("Timeout on snapshot: " + snapshot);
}
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic com.google.common.base.Predicate
<Snapshot> awaitAvailable
(SnapshotApi snapshotApi) Wait until a Snapshot is Available.static com.google.common.base.Predicate
<Snapshot> awaitDeleted
(SnapshotApi snapshotApi) Wait until a Snapshot no longer exists.static com.google.common.base.Predicate
<Snapshot> awaitStatus
(SnapshotApi snapshotApi, Volume.Status status, long maxWaitInSec, long periodInSec)
-
Constructor Details
-
SnapshotPredicates
public SnapshotPredicates()
-
-
Method Details
-
awaitAvailable
Wait until a Snapshot is Available.- Parameters:
snapshotApi
- The SnapshotApi in the region where your Snapshot resides.- Returns:
- RetryablePredicate That will check the status every 5 seconds for a maxiumum of 20 minutes.
-
awaitDeleted
Wait until a Snapshot no longer exists.- Parameters:
snapshotApi
- The SnapshotApi in the region where your Snapshot resides.- Returns:
- RetryablePredicate That will check the whether the Snapshot exists every 5 seconds for a maxiumum of 20 minutes.
-
awaitStatus
public static com.google.common.base.Predicate<Snapshot> awaitStatus(SnapshotApi snapshotApi, Volume.Status status, long maxWaitInSec, long periodInSec)
-