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;