public static Status waitForAppStatus()

in java/src/main/java/org/apache/brooklyn/rest/client/BrooklynApiUtil.java [101:128]


    public static Status waitForAppStatus(final BrooklynApi api, final String application, final Status desiredStatus,
            Duration timeout, Duration pollPeriod) {
        final AtomicReference<Status> appStatus = new AtomicReference<>(Status.UNKNOWN);
        final boolean shortcutOnError = !Status.ERROR.equals(desiredStatus) && !Status.UNKNOWN.equals(desiredStatus);
        LOG.info("Waiting " + timeout + " from " + new Date() + " for application " + application + " to be " + desiredStatus);
        Repeater.create("Waiting for application " + application + " status to be " + desiredStatus)
                .every(pollPeriod)
                .limitTimeTo(timeout)
                .rethrowExceptionImmediately()
                .until(new Callable<Boolean>() {
                    @Override
                    public Boolean call() throws Exception {
                        Status status = api.getApplicationApi().get(application).getStatus();
                        LOG.debug("Application " + application + " status is: " + status);
                        appStatus.set(status);
                        return desiredStatus.equals(status) || (shortcutOnError &&
                                (Status.ERROR.equals(status) || Status.UNKNOWN.equals(status)));
                    }
                })
                .run();
        if (appStatus.get().equals(desiredStatus)) {
            LOG.info("Application " + application + " is " + desiredStatus.name());
        } else {
            LOG.warn("Application is not " + desiredStatus.name() + " within " + timeout +
                    ". Status is: " + appStatus.get());
        }
        return appStatus.get();
    }