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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]