private NodeCandidate unretire(NodeCandidate candidate) {
        if (candidate.retiredNow()) return candidate;
        if ( ! candidate.allocation().get().membership().retired()) return candidate;
        if ( ! hasCompatibleResources(candidate) ) return candidate;
        var parent = candidate.parentHostname().flatMap(hostname -> allNodes.node(hostname));
        if (parent.isPresent() && (parent.get().status().wantToRetire() || parent.get().status().preferToRetire())) return candidate;
        candidate = candidate.withNode();
        if ( ! requested.isCompatible(candidate.resources()))
            candidate = candidate.withNode(resize(candidate.toNode()));
        return candidate.withNode(candidate.toNode().unretire());
    }
Attempt to unretire the given node if it is retired.
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupAssigner.java