package jenkins.slaves; import hudson.ExtensionList; import hudson.ExtensionPoint; import hudson.remoting.Channel; import jenkins.model.Jenkins; import java.io.IOException; /** * Get notified when a channel triggered a ping failure, but before the channel is killed. * * <p> * This provides the opportunity to perform diagnostic activities. * * @author Kohsuke Kawaguchi * @since 1.592 */ public abstract class PingFailureAnalyzer implements ExtensionPoint { /** * * @param c * The channel that caused the ping failure. Because this channel is in a troubled state, * do not attempt a remote call on this channel. Doing so would risk creating a hang. * @param cause * Cause of the ping failure. Informational, and probably uninteresting to most callees. */ public abstract void onPingFailure(Channel c, Throwable cause) throws IOException; public static ExtensionList<PingFailureAnalyzer> all() { return Jenkins.getInstance().getExtensionList(PingFailureAnalyzer.class); } }