diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/servicebindings/ServiceBinding.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/servicebindings/ServiceBinding.java index a022055a72..0ebcca521e 100644 --- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/servicebindings/ServiceBinding.java +++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/servicebindings/ServiceBinding.java @@ -45,7 +45,7 @@ public abstract class ServiceBinding extends Resource { */ @JsonProperty("last_operation") @Nullable - abstract LastOperation getLastOperation(); + public abstract LastOperation getLastOperation(); /** * The relationships diff --git a/cloudfoundry-util/src/main/java/org/cloudfoundry/util/JobUtils.java b/cloudfoundry-util/src/main/java/org/cloudfoundry/util/JobUtils.java index 92c475f568..22670e1068 100644 --- a/cloudfoundry-util/src/main/java/org/cloudfoundry/util/JobUtils.java +++ b/cloudfoundry-util/src/main/java/org/cloudfoundry/util/JobUtils.java @@ -30,7 +30,9 @@ import reactor.core.publisher.Mono; import java.time.Duration; +import java.util.EnumSet; import java.util.List; +import java.util.Set; import static org.cloudfoundry.util.DelayUtils.exponentialBackOff; @@ -39,6 +41,8 @@ */ public final class JobUtils { + private static final Set FINAL_STATES = EnumSet.of(JobState.COMPLETE, JobState.FAILED); + private static final Integer STATUS_OK = 200; private JobUtils() { @@ -92,7 +96,7 @@ public static Mono waitForCompletion(CloudFoundryClient cloudFoundryClient */ public static Mono waitForCompletion(CloudFoundryClient cloudFoundryClient, Duration completionTimeout, String jobId) { return requestJobV3(cloudFoundryClient, jobId) - .filter(job -> JobState.PROCESSING != job.getState()) + .filter(job -> FINAL_STATES.contains(job.getState())) .repeatWhenEmpty(exponentialBackOff(Duration.ofSeconds(1), Duration.ofSeconds(15), completionTimeout)) .filter(job -> JobState.FAILED == job.getState()) .flatMap(JobUtils::getError);