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 2019/10/28 22:01:50 UTC
[lucene-solr] 05/05: Fix latest auto update
This is an automated email from the ASF dual-hosted git repository.
ishan pushed a commit to branch jira/solr-13662-updated
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 362705b4be7c31f48d26c1a4deffc3725c3a568f
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Tue Oct 29 03:31:57 2019 +0530
Fix latest auto update
---
.../apache/solr/packagemanager/SolrPackageManager.java | 10 +++++++++-
solr/core/src/java/org/apache/solr/util/PackageTool.java | 16 +++++++++++-----
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
index 27fb010..a59feed 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
@@ -137,8 +137,11 @@ public class SolrPackageManager implements Closeable {
}
// Set the package version in the collection's parameters
- postJson(solrBaseUrl+"/api/collections/abc/config/params", "{set:{PKG_VERSIONS:{"+packageName+" : '"+(pegToLatest? "$LATEST": version)+"'}}}");
+ postJson(solrBaseUrl+"/api/collections/"+collection+"/config/params", "{set:{PKG_VERSIONS:{"+packageName+" : '"+(pegToLatest? "$LATEST": version)+"'}}}");
+ String paramsJson = SolrPackageManager.get("http://localhost:8983/api/collections/"+collection+"/config/params?omitHeader=true");
+ System.out.println("Posted param: "+paramsJson);
+
// If updating, refresh the package version for this to take effect
if (isUpdate || pegToLatest) {
postJson(solrBaseUrl+"/api/cluster/package", "{\"refresh\" : \""+packageName+"\"}");
@@ -160,6 +163,11 @@ public class SolrPackageManager implements Closeable {
}
}
+ // Set the package version in the collection's parameters
+ postJson(solrBaseUrl+"/api/collections/"+collection+"/config/params", "{update:{PKG_VERSIONS:{'"+packageName+"' : '"+(pegToLatest? "$LATEST": version)+"'}}}");
+ paramsJson = SolrPackageManager.get("http://localhost:8983/api/collections/"+collection+"/config/params?omitHeader=true");
+ System.out.println("Posted param: "+paramsJson);
+
}
// Verify that package was successfully deployed
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 e12af04..1f7e2d4 100644
--- a/solr/core/src/java/org/apache/solr/util/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/util/PackageTool.java
@@ -214,7 +214,7 @@ public class PackageTool extends SolrCLI.ToolBase {
SolrPackageInstance installedPackage = packageManager.getPackage(packageName, "latest");
System.out.println("Updating ["+packageName+"] from " + installedPackage.getVersion() + " to version "+latestVersion);
- List<String> collectionsDeployedIn = getDeployedCollections(zkHost, packageManager, installedPackage);
+ List<String> collectionsDeployedIn = getDeployedCollections(zkHost, packageManager, installedPackage, true);
System.out.println("Already deployed on collections: "+collectionsDeployedIn);
updateManager.updatePackage(packageName, latestVersion);
@@ -228,7 +228,7 @@ public class PackageTool extends SolrCLI.ToolBase {
}
}
- private List<String> getDeployedCollections(String zkHost, SolrPackageManager packageManager, SolrPackageInstance pkg) {
+ private List<String> getDeployedCollections(String zkHost, SolrPackageManager packageManager, SolrPackageInstance pkg, boolean onlyLatest) {
List<String> allCollections;
try (SolrZkClient zkClient = new SolrZkClient(zkHost, 30000)) {
@@ -248,10 +248,16 @@ public class PackageTool extends SolrCLI.ToolBase {
} catch (PathNotFoundException ex) {
// Don't worry if PKG_VERSION wasn't found. It just means this collection was never touched by the package manager.
}
- if ("$LATEST".equals(version) && packageManager.verify(pkg, Collections.singletonList(collection))) {
- deployed.add(collection);
+ if (onlyLatest) {
+ if ("$LATEST".equals(version) && packageManager.verify(pkg, Collections.singletonList(collection))) {
+ deployed.add(collection);
+ } else {
+ System.out.println("Skipping collection: "+collection+", version: "+version);
+ }
} else {
- System.out.println("Skipping collection: "+collection+", version: "+version);
+ if (packageManager.verify(pkg, Collections.singletonList(collection))) {
+ deployed.add(collection);
+ }
}
}
return deployed;