mlbiscoc commented on code in PR #2935: URL: https://github.com/apache/solr/pull/2935#discussion_r1911140452
########## solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java: ########## @@ -413,6 +418,30 @@ public String getQuorumHosts() { return String.join(",", this.liveNodes); } + /** Live nodes should always have the latest set of live nodes but never remove initial set */ + private void setLiveNodes(Set<String> nodes) { + Set<String> liveNodes = new HashSet<>(nodes); + liveNodes.addAll(this.initialNodes); + this.liveNodes = Set.copyOf(liveNodes); Review Comment: My idea was to not do another loop through if liveNodes was exhausted. `initalNodes` would always exist in liveNodes with this set method. Let me refactor again from your suggestion comment ########## solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java: ########## @@ -413,6 +418,30 @@ public String getQuorumHosts() { return String.join(",", this.liveNodes); } + /** Live nodes should always have the latest set of live nodes but never remove initial set */ + private void setLiveNodes(Set<String> nodes) { + Set<String> liveNodes = new HashSet<>(nodes); + liveNodes.addAll(this.initialNodes); + this.liveNodes = Set.copyOf(liveNodes); + } + + public Set<String> getNodeNamesFromSolrUrls(List<String> urls) + throws URISyntaxException, MalformedURLException { + Set<String> set = new HashSet<>(); + for (String url : urls) { + String nodeNameFromSolrUrl = getNodeNameFromSolrUrl(url); + set.add(nodeNameFromSolrUrl); + } + return Collections.unmodifiableSet(set); + } + + /** URL to cluster state node name (http://127.0.0.1:12345/solr to 127.0.0.1:12345_solr) */ + public String getNodeNameFromSolrUrl(String solrUrl) + throws MalformedURLException, URISyntaxException { + URL url = new URI(solrUrl).toURL(); + return url.getAuthority() + url.getPath().replace('/', '_'); + } Review Comment: Hmm maybe... I found `getBaseUrlForNodeName` but it's going the other way nodeName->url. Let me look around more -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org