Example #1
0
 /**
  * Marks the computer as temporarily offline. This retains the underlying {@link Channel}
  * connection, but prevent builds from executing.
  *
  * @param cause If the first argument is true, specify the reason why the node is being put
  *     offline.
  */
 public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) {
   offlineCause = temporarilyOffline ? cause : null;
   this.temporarilyOffline = temporarilyOffline;
   Node node = getNode();
   if (node != null) {
     node.setTemporaryOfflineCause(offlineCause);
   }
   Jenkins.getInstance().getQueue().scheduleMaintenance();
   synchronized (statusChangeLock) {
     statusChangeLock.notifyAll();
   }
   for (ComputerListener cl : ComputerListener.all()) {
     if (temporarilyOffline) cl.onTemporarilyOffline(this, cause);
     else cl.onTemporarilyOnline(this);
   }
 }