private List<String> fetchCloudCores() { SolrClient client = getQueryingSolrClient(); CollectionAdminRequest request = new CollectionAdminRequest.List(); List<String> collections = null; try { CollectionAdminResponse response = (CollectionAdminResponse) request.process(client); if (response != null) { collections = (List) response.getResponse().get("collections"); if (LOG.isDebugEnabled()) { for (String collection : collections) { LOG.debug("Fetched Collection '{}' of Solr Cloud", collection); } } } } catch (SolrServerException e) { LOG.error("Error fetching Cloud Cores.", e); } catch (IOException e) { LOG.error("Error fetching Cloud Cores.", e); } return collections; }
@Override public StatusResult getBackendStatus() { int statusCode = -1; try { if(SearchConfiguration.get(SearchConfiguration.SERVER_SOLR_CLOUD, false)) { CollectionAdminRequest request = new CollectionAdminRequest.ClusterStatus(); SolrResponse response = request.process(this.solrClient); statusCode = Integer.valueOf(((NamedList)response.getResponse().get("responseHeader")).get("status").toString()); } else { CoreAdminRequest request = new CoreAdminRequest(); request.setAction(CoreAdminParams.CoreAdminAction.STATUS); CoreAdminResponse response = request.process(this.solrClient); statusCode = response.getStatus(); } if(statusCode != 0) { return StatusResult.down().setDetail("status", statusCode); } else { return StatusResult.up().setDetail("status", statusCode); } } catch (SolrServerException | IOException e) { log.error("Cannot ping server"); throw new SearchServerException("Cannot ping server", e); } }