public void perform(final Project project, final Runnable onDone) {
      getTaskExecutor().submit(() -> {
        try {
          getAgentTaskExecutor().execute(() -> {
            Deployment deployment = getDeploymentModel();
            CloudAgentLoggingHandler loggingHandler
              = deployment == null
                ? null
                : new CloudLoggingHandlerImpl(deployment.getOrCreateLogManager(project)) {

                @Override
                public void println(String message) {
                  LOG.info(message);
                }
              };
            this.run(loggingHandler);
            return null;
          });
          onDone.run();
        }
        catch (ServerRuntimeException e) {
          getCloudNotifier().showMessage(e.getMessage(), MessageType.ERROR);
        }
      });
    }
public void perform(final Project project, final Runnable onDone)