code: public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) {
          offlineCause = temporarilyOffline ? cause : null;
          this.temporarilyOffline = temporarilyOffline;
          Node node = getNode();
          if (node != null) {
              node.setTemporaryOfflineCause(offlineCause);
          }
          synchronized (statusChangeLock) {
              statusChangeLock.notifyAll();
          }
          for (ComputerListener cl : ComputerListener.all()) {
              if (temporarilyOffline)     cl.onTemporarilyOffline(this,cause);
              else                        cl.onTemporarilyOnline(this);
          }
      }
docs: 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.