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));