You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2020/01/07 17:49:19 UTC
[lucene-solr] branch jira/solr14158 updated: add-key CLI command
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr14158
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/jira/solr14158 by this push:
new 1844cf5 add-key CLI command
1844cf5 is described below
commit 1844cf5f71cd6ad35a885b97c7f5506cd28c5a64
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Tue Jan 7 19:48:37 2020 +0200
add-key CLI command
---
.../java/org/apache/solr/packagemanager/RepositoryManager.java | 7 +++++--
solr/core/src/java/org/apache/solr/util/PackageTool.java | 8 ++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
index 9f39746..a0cc0e1 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
@@ -130,14 +130,17 @@ public class RepositoryManager {
packageManager.zkClient.setData(PackageUtils.REPOSITORIES_ZK_PATH, getMapper().writeValueAsString(repos).getBytes("UTF-8"), true);
}
+ addKey(IOUtils.toByteArray(new URL(uri + "/publickey.der").openStream()), repoName + ".der");
+ }
+
+ public void addKey(byte[] key, String destinationKeyFilename) throws Exception {
// get solr_home directory from info servlet
String systemInfoUrl = solrClient.getBaseURL() + "/solr/admin/info/system";
Map<String,Object> systemInfo = SolrCLI.getJson(solrClient.getHttpClient(), systemInfoUrl, 2, true);
String solrHome = (String) systemInfo.get("solr_home");
// put the public key into package store's trusted key store and request a sync.
- byte[] key = IOUtils.toByteArray(new URL(uri + "/publickey.der").openStream());
- String path = PackageStoreAPI.KEYS_DIR + "/" + repoName + ".der";
+ String path = PackageStoreAPI.KEYS_DIR + "/" + destinationKeyFilename;
PackageUtils.uploadKey(key, path, Paths.get(solrHome), solrClient);
PackageUtils.getJsonStringFromUrl(solrClient.getHttpClient(), solrClient.getBaseURL() + "/api/node/files" + path + "?sync=true");
}
diff --git a/solr/core/src/java/org/apache/solr/util/PackageTool.java b/solr/core/src/java/org/apache/solr/util/PackageTool.java
index f7744c9..be99398 100644
--- a/solr/core/src/java/org/apache/solr/util/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/util/PackageTool.java
@@ -19,7 +19,9 @@ package org.apache.solr.util;
import static org.apache.solr.packagemanager.PackageUtils.printGreen;
import static org.apache.solr.packagemanager.PackageUtils.print;
+import java.io.File;
import java.lang.invoke.MethodHandles;
+import java.nio.file.Paths;
import java.util.Map;
import org.apache.commons.cli.CommandLine;
@@ -44,6 +46,8 @@ import org.apache.solr.util.SolrCLI.StatusTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.drew.tools.FileUtil;
+
public class PackageTool extends SolrCLI.ToolBase {
@@ -92,6 +96,10 @@ public class PackageTool extends SolrCLI.ToolBase {
repositoryManager.addRepository(repoName, repoUrl);
PackageUtils.printGreen("Added repository: " + repoName);
break;
+ case "add-key":
+ String keyFilename = cli.getArgs()[1];
+ repositoryManager.addKey(FileUtil.readBytes(new File(keyFilename)), Paths.get(keyFilename).getFileName().toString());
+ break;
case "list-installed":
PackageUtils.printGreen("Installed packages:\n-----");
for (SolrPackageInstance pkg: packageManager.fetchInstalledPackageInstances()) {