noblepaul commented on a change in pull request #994: SOLR-13662: Package Manager (CLI) URL: https://github.com/apache/lucene-solr/pull/994#discussion_r344444125
########## File path: solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java ########## @@ -0,0 +1,259 @@ +package org.apache.solr.packagemanager; + +import java.io.Closeable; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.common.SolrException; +import org.apache.solr.common.SolrException.ErrorCode; +import org.apache.solr.common.cloud.SolrZkClient; +import org.apache.solr.packagemanager.SolrPackage.Command; +import org.apache.solr.packagemanager.SolrPackage.Metadata; +import org.apache.solr.packagemanager.SolrPackage.Plugin; +import org.apache.solr.util.SolrCLI; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jayway.jsonpath.JsonPath; + +public class SolrPackageManager implements Closeable { + + final String solrBaseUrl; + final SolrClient solrClient; + + final SolrZkClient zkClient; + public SolrPackageManager(String solrBaseUrl, String zkHost) { + this.solrBaseUrl = solrBaseUrl; + this.solrClient = new HttpSolrClient.Builder(solrBaseUrl).build(); + this.zkClient = new SolrZkClient(zkHost, 30000); + System.out.println("Done initializing a zkClient instance..."); + } + + Map<String, List<SolrPackageInstance>> packages = null; + + Metadata fetchMetadata(String manifestFilePath) throws MalformedURLException, IOException { + String metadataJson = PackageUtils.getStringFromStream(solrBaseUrl + "/api/node/files"+manifestFilePath); + System.out.println("Fetched metadata blob: "+metadataJson); + Metadata metadata = new ObjectMapper().readValue(metadataJson, Metadata.class); + System.out.println("Now metadata: "+metadata); + return metadata; + } + + public List<SolrPackageInstance> getPackages() throws SolrException { + System.out.println("Getting packages from clusterprops..."); + List<SolrPackageInstance> ret = new ArrayList<SolrPackageInstance>(); + packages = new HashMap<String, List<SolrPackageInstance>>(); + try { + String clusterPropsJson = null; + Map packagesJson = null; + + if (zkClient.exists("/packages.json", true) == true) { Review comment: do not use ZooKeeper directly, use the http API ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org