@Override
    public ClusterNodeInfo getClusterNodeInfo() {
        final ClusterState clusterState = getQuickClusterState();

        // Take a copy of our working variables;
        final List<String> allNodeList = asList(clusterState.getAllNodes());
        final List<String> activeNodeList = asList(clusterState.getEnabledActiveNodes());
        final String thisNodeName = nodeInfo.getThisNodeName();
        final String masterNodeName = clusterState.getMasterNodeName();

        final ClusterNodeInfo clusterNodeInfo = new ClusterNodeInfo(clusterState.getUpdateTime(),
                buildInfo,
                thisNodeName,
                nodeServiceProvider.get().getBaseEndpointUrl(thisNodeName));

        if (masterNodeName != null) {
            for (final String nodeName : allNodeList) {
                clusterNodeInfo.addItem(
                        nodeName,
                        activeNodeList.contains(nodeName),
                        masterNodeName.equals(nodeName));
            }
        }

        return clusterNodeInfo;
    }
Gets the current cluster state or builds a new cluster state if no
current state exists but without locking. This method is quick as either
the current state is returned or a basic state is created that does not
attempt to determine which nodes are active or what the current master
node is.
stroom-cluster/stroom-cluster-impl/src/main/java/stroom/cluster/impl/ClusterNodeManagerImpl.java