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/12/19 05:20:15 UTC

[lucene-solr] branch branch_8_4 updated: SOLR-14108: Handle missing verify commands or missing default params in Package Manager

This is an automated email from the ASF dual-hosted git repository.

ishan pushed a commit to branch branch_8_4
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8_4 by this push:
     new bb1b3ea  SOLR-14108: Handle missing verify commands or missing default params in Package Manager
bb1b3ea is described below

commit bb1b3ea223f0557f93e0fd7e3ebcc843033f1798
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Thu Dec 19 10:38:34 2019 +0530

    SOLR-14108: Handle missing verify commands or missing default params in Package Manager
---
 .../apache/solr/packagemanager/PackageManager.java | 40 +++++++++++-----------
 .../apache/solr/packagemanager/PackageUtils.java   |  6 ++--
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
index ab3b72a..50b43b6 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
@@ -289,27 +289,27 @@ public class PackageManager implements Closeable {
   public boolean verify(SolrPackageInstance pkg, List<String> collections) {
     boolean success = true;
     for (Plugin plugin: pkg.plugins) {
-      for (String collection: collections) {
-        Map<String, String> collectionParameterOverrides = getPackageParams(pkg.name, collection);
-        Command cmd = plugin.verifyCommand;
-
-        Map<String, String> systemParams = PackageUtils.map("collection", collection, "package-name", pkg.name, "package-version", pkg.version);
-        String url = solrBaseUrl + PackageUtils.resolve(cmd.path, pkg.parameterDefaults, collectionParameterOverrides, systemParams);
-        PackageUtils.printGreen("Executing " + url + " for collection:" + collection);
-
-        if ("GET".equalsIgnoreCase(cmd.method)) {
-          String response = PackageUtils.getJsonStringFromUrl(solrClient.getHttpClient(), url);
-          PackageUtils.printGreen(response);
-          String actualValue = JsonPath.parse(response, PackageUtils.jsonPathConfiguration())
-              .read(PackageUtils.resolve(cmd.condition, pkg.parameterDefaults, collectionParameterOverrides, systemParams));
-          String expectedValue = PackageUtils.resolve(cmd.expected, pkg.parameterDefaults, collectionParameterOverrides, systemParams);
-          PackageUtils.printGreen("Actual: "+actualValue+", expected: "+expectedValue);
-          if (!expectedValue.equals(actualValue)) {
-            PackageUtils.printRed("Failed to deploy plugin: " + plugin.name);
-            success = false;
+      Command cmd = plugin.verifyCommand;
+      if (plugin.verifyCommand != null && !Strings.isNullOrEmpty(cmd.path)) {
+        for (String collection: collections) {
+          Map<String, String> collectionParameterOverrides = getPackageParams(pkg.name, collection);
+
+          Map<String, String> systemParams = PackageUtils.map("collection", collection, "package-name", pkg.name, "package-version", pkg.version);
+          String url = solrBaseUrl + PackageUtils.resolve(cmd.path, pkg.parameterDefaults, collectionParameterOverrides, systemParams);
+          PackageUtils.printGreen("Executing " + url + " for collection:" + collection);
+
+          if ("GET".equalsIgnoreCase(cmd.method)) {
+            String response = PackageUtils.getJsonStringFromUrl(solrClient.getHttpClient(), url);
+            PackageUtils.printGreen(response);
+            String actualValue = JsonPath.parse(response, PackageUtils.jsonPathConfiguration())
+                .read(PackageUtils.resolve(cmd.condition, pkg.parameterDefaults, collectionParameterOverrides, systemParams));
+            String expectedValue = PackageUtils.resolve(cmd.expected, pkg.parameterDefaults, collectionParameterOverrides, systemParams);
+            PackageUtils.printGreen("Actual: "+actualValue+", expected: "+expectedValue);
+            if (!expectedValue.equals(actualValue)) {
+              PackageUtils.printRed("Failed to deploy plugin: " + plugin.name);
+              success = false;
+            }
           }
-        } else {
-          throw new SolrException(ErrorCode.BAD_REQUEST, "Non-GET method not supported for setup commands");
         }
       }
     }
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
index 01595a7..a5d4633 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
@@ -172,8 +172,10 @@ public class PackageUtils {
     // TODO: Should perhaps use Matchers etc. instead of this clumsy replaceAll().
 
     if (str == null) return null;
-    for (String param: defaults.keySet()) {
-      str = str.replaceAll("\\$\\{"+param+"\\}", overrides.containsKey(param)? overrides.get(param): defaults.get(param));
+    if (defaults != null) {
+      for (String param: defaults.keySet()) {
+        str = str.replaceAll("\\$\\{"+param+"\\}", overrides.containsKey(param)? overrides.get(param): defaults.get(param));
+      }
     }
     for (String param: overrides.keySet()) {
       str = str.replaceAll("\\$\\{"+param+"\\}", overrides.get(param));