public void onSuccess(final Boolean wasSuccessful) {
if(wasSuccessful)
{
int limit = startIt ? 15:5;
LongRunningTask poll = new LongRunningTask(new AsyncCommand<Boolean>() {
@Override
public void execute(final AsyncCallback<Boolean> callback) {
hostInfoStore.getServerInstances(hostName, new SimpleCallback<List<ServerInstance>>() {
@Override
public void onSuccess(List<ServerInstance> result) {
serverInstances = result;
boolean keepPolling = false;
for(ServerInstance instance : result) {
if(instance.getServer().equals(serverName)) {
if(startIt)
keepPolling = !instance.isRunning();
else
keepPolling = instance.isRunning();
break;
}
}
// notify scheduler
callback.onSuccess(keepPolling);
if(!keepPolling) {
getView().updateInstances(hostName, result);
// force reload of server selector (LHS nav)
getEventBus().fireEvent(new StaleModelEvent(StaleModelEvent.SERVER_INSTANCES));
}
}
});
}
}, limit);
// kick of the polling request
poll.schedule(500);
}
}
});
}