docs: public void completeShutdown() {
          setState(NodeState.Shutdown);
          shutdownAllWorkUnits();
          deleteFromZk();
          if (claimer != null) {
              claimer.interrupt();
                  try {
                      claimer.join();
                  } catch (InterruptedException e) {
                      LOG.warn("Shutdown of Claimer interrupted");
                  }
          }
          // The connection watcher will attempt to reconnect - unregister it
          if (connectionWatcher != null) {
              zk.unregister(connectionWatcher);
          }
          try {
              zk.close();
          } catch (Exception e) {
              LOG.warn("Zookeeper reported exception on shutdown.", e);
          }
          listener.onLeave();
      }