Search in sources :

Example 1 with Status

use of org.gradle.launcher.daemon.protocol.Status in project gradle by gradle.

the class ReportDaemonStatusClient method printRunningDaemons.

@VisibleForTesting
void printRunningDaemons(final List<Status> statuses) {
    if (!statuses.isEmpty()) {
        for (Status status : statuses) {
            Long pid = status.getPid();
            LOGGER.quiet(String.format(STATUS_FORMAT, pid == null ? "PID unknown" : pid, status.getStatus(), status.getVersion()));
        }
    }
}
Also used : ReportStatus(org.gradle.launcher.daemon.protocol.ReportStatus) Status(org.gradle.launcher.daemon.protocol.Status) VisibleForTesting(com.google.common.annotations.VisibleForTesting)

Example 2 with Status

use of org.gradle.launcher.daemon.protocol.Status in project gradle by gradle.

the class ReportDaemonStatusClient method listAll.

public void listAll() {
    final List<DaemonInfo> daemons = daemonRegistry.getAll();
    final List<Status> statuses = Lists.newArrayList();
    for (DaemonInfo daemon : daemons) {
        DaemonClientConnection connection = connector.maybeConnect(daemon);
        if (connection != null) {
            try {
                final ReportStatus statusCommand = new ReportStatus(idGenerator.generateId(), daemon.getToken());
                final Status status = reportStatusDispatcher.dispatch(connection, statusCommand);
                if (status != null) {
                    statuses.add(status);
                } else {
                    // Handle failure
                    statuses.add(new Status(connection.getDaemon().getPid(), "UNKNOWN", "UNKNOWN"));
                }
            } finally {
                connection.stop();
            }
        }
    }
    final List<DaemonStopEvent> stopEvents = DaemonStopEvents.uniqueRecentDaemonStopEvents(daemonRegistry.getStopEvents());
    if (statuses.isEmpty()) {
        LOGGER.quiet(DaemonMessages.NO_DAEMONS_RUNNING);
    }
    if (!(statuses.isEmpty() && stopEvents.isEmpty())) {
        LOGGER.quiet(String.format(STATUS_FORMAT, "PID", "STATUS", "INFO"));
    }
    printRunningDaemons(statuses);
    printStoppedDaemons(stopEvents);
    LOGGER.quiet("");
    LOGGER.quiet(STATUS_FOOTER + " See " + documentationRegistry.getDocumentationFor("gradle_daemon", "sec:status"));
}
Also used : ReportStatus(org.gradle.launcher.daemon.protocol.ReportStatus) Status(org.gradle.launcher.daemon.protocol.Status) DaemonStopEvent(org.gradle.launcher.daemon.registry.DaemonStopEvent) DaemonInfo(org.gradle.launcher.daemon.registry.DaemonInfo) ReportStatus(org.gradle.launcher.daemon.protocol.ReportStatus)

Example 3 with Status

use of org.gradle.launcher.daemon.protocol.Status in project gradle by gradle.

the class ReportStatusDispatcher method dispatch.

public Status dispatch(Connection<Message> connection, Command statusCommand) {
    Status returnedStatus = null;
    Throwable failure = null;
    try {
        connection.dispatch(statusCommand);
        Result result = (Result) connection.receive();
        if (result instanceof Failure) {
            failure = ((Failure) result).getValue();
        } else if (result instanceof Success) {
            returnedStatus = (Status) result.getValue();
        }
        connection.dispatch(new Finished());
    } catch (Throwable e) {
        failure = e;
    }
    if (failure != null) {
        LOGGER.debug(String.format("Unable to get status of %s.", connection), failure);
    }
    return returnedStatus;
}
Also used : Status(org.gradle.launcher.daemon.protocol.Status) Finished(org.gradle.launcher.daemon.protocol.Finished) Failure(org.gradle.launcher.daemon.protocol.Failure) Success(org.gradle.launcher.daemon.protocol.Success) Result(org.gradle.launcher.daemon.protocol.Result)

Example 4 with Status

use of org.gradle.launcher.daemon.protocol.Status in project gradle by gradle.

the class HandleReportStatus method execute.

@Override
public void execute(DaemonCommandExecution execution) {
    if (execution.getCommand() instanceof ReportStatus) {
        String version = GradleVersion.current().getVersion();
        String status = execution.getDaemonStateControl().getState().toString().toUpperCase();
        Status message = new Status(execution.getDaemonContext().getPid(), version, status);
        execution.getConnection().completed(new Success(message));
    } else {
        execution.proceed();
    }
}
Also used : ReportStatus(org.gradle.launcher.daemon.protocol.ReportStatus) Status(org.gradle.launcher.daemon.protocol.Status) ReportStatus(org.gradle.launcher.daemon.protocol.ReportStatus) Success(org.gradle.launcher.daemon.protocol.Success)

Aggregations

Status (org.gradle.launcher.daemon.protocol.Status)4 ReportStatus (org.gradle.launcher.daemon.protocol.ReportStatus)3 Success (org.gradle.launcher.daemon.protocol.Success)2 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 Failure (org.gradle.launcher.daemon.protocol.Failure)1 Finished (org.gradle.launcher.daemon.protocol.Finished)1 Result (org.gradle.launcher.daemon.protocol.Result)1 DaemonInfo (org.gradle.launcher.daemon.registry.DaemonInfo)1 DaemonStopEvent (org.gradle.launcher.daemon.registry.DaemonStopEvent)1