Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions changelog/unreleased/SOLR-18234-solr-cli-detangle-core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
title:
Move packagemanager under CLI and stop test-framework from depending on CLI
type: other
authors:
- name: Jalaz Kumar
nick: jaykay12
links:
- name: SOLR-18234
url: https://issues.apache.org/jira/browse/SOLR-18234
16 changes: 8 additions & 8 deletions solr/core/src/java/org/apache/solr/cli/PackageTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

import static org.apache.solr.cli.SolrCLI.printGreen;
import static org.apache.solr.cli.SolrCLI.printRed;
import static org.apache.solr.packagemanager.PackageUtils.format;
import static org.apache.solr.packagemanager.PackageUtils.formatGreen;
import static org.apache.solr.cli.packagemanager.PackageUtils.format;
import static org.apache.solr.cli.packagemanager.PackageUtils.formatGreen;

import java.lang.invoke.MethodHandles;
import java.nio.file.Files;
Expand All @@ -32,16 +32,16 @@
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.lucene.util.SuppressForbidden;
import org.apache.solr.cli.packagemanager.PackageManager;
import org.apache.solr.cli.packagemanager.PackageUtils;
import org.apache.solr.cli.packagemanager.RepositoryManager;
import org.apache.solr.cli.packagemanager.SolrPackage;
import org.apache.solr.cli.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.cli.packagemanager.SolrPackageInstance;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.util.Pair;
import org.apache.solr.packagemanager.PackageManager;
import org.apache.solr.packagemanager.PackageUtils;
import org.apache.solr.packagemanager.RepositoryManager;
import org.apache.solr.packagemanager.SolrPackage;
import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.packagemanager.SolrPackageInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
2 changes: 1 addition & 1 deletion solr/core/src/java/org/apache/solr/cli/ZkCpTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;

import static org.apache.solr.packagemanager.PackageUtils.format;
import static org.apache.solr.cli.packagemanager.PackageUtils.format;

import java.lang.invoke.MethodHandles;
import java.lang.reflect.InvocationTargetException;
Expand Down
2 changes: 1 addition & 1 deletion solr/core/src/java/org/apache/solr/cli/ZkMkrootTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;

import static org.apache.solr.packagemanager.PackageUtils.format;
import static org.apache.solr.cli.packagemanager.PackageUtils.format;

import java.lang.invoke.MethodHandles;
import org.apache.commons.cli.CommandLine;
Expand Down
2 changes: 1 addition & 1 deletion solr/core/src/java/org/apache/solr/cli/ZkMvTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
package org.apache.solr.cli;

import static org.apache.solr.packagemanager.PackageUtils.format;
import static org.apache.solr.cli.packagemanager.PackageUtils.format;

import java.lang.invoke.MethodHandles;
import java.util.Locale;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* limitations under the License.
*/

package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.type.TypeReference;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
* limitations under the License.
*/

package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import static org.apache.solr.packagemanager.PackageUtils.getMapper;
import static org.apache.solr.cli.packagemanager.PackageUtils.getMapper;

import com.jayway.jsonpath.InvalidPathException;
import com.jayway.jsonpath.JsonPath;
Expand All @@ -41,6 +41,9 @@
import org.apache.solr.cli.CLIUtils;
import org.apache.solr.cli.SolrCLI;
import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.cli.packagemanager.SolrPackage.Command;
import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
import org.apache.solr.cli.packagemanager.SolrPackage.Plugin;
import org.apache.solr.client.api.util.SolrVersion;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
Expand All @@ -63,9 +66,6 @@
import org.apache.solr.common.util.Utils;
import org.apache.solr.filestore.DistribFileStore;
import org.apache.solr.handler.admin.ContainerPluginsApi;
import org.apache.solr.packagemanager.SolrPackage.Command;
import org.apache.solr.packagemanager.SolrPackage.Manifest;
import org.apache.solr.packagemanager.SolrPackage.Plugin;
import org.apache.solr.pkg.SolrPackageLoader;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import java.io.IOException;
import java.nio.file.Path;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import static org.apache.solr.client.solrj.util.SolrIdentifierValidator.validateCollectionName;

Expand All @@ -35,6 +35,7 @@
import java.util.zip.ZipFile;
import org.apache.commons.io.IOUtils;
import org.apache.solr.cli.CLIUtils;
import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
import org.apache.solr.client.api.model.UploadToFileStoreResponse;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
Expand All @@ -50,7 +51,6 @@
import org.apache.solr.filestore.ClusterFileStore;
import org.apache.solr.filestore.DistribFileStore;
import org.apache.solr.filestore.FileStoreAPI;
import org.apache.solr.packagemanager.SolrPackage.Manifest;
import org.apache.solr.util.SolrJacksonAnnotationInspector;
import org.apache.zookeeper.server.ByteBufferInputStream;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
* limitations under the License.
*/

package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import static org.apache.solr.packagemanager.PackageUtils.getMapper;
import static org.apache.solr.cli.packagemanager.PackageUtils.getMapper;

import java.io.IOException;
import java.io.InputStream;
Expand All @@ -37,6 +37,8 @@
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.cli.packagemanager.SolrPackage.Artifact;
import org.apache.solr.cli.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.client.api.util.SolrVersion;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
Expand All @@ -53,8 +55,6 @@
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.Utils;
import org.apache.solr.filestore.ClusterFileStore;
import org.apache.solr.packagemanager.SolrPackage.Artifact;
import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
import org.apache.solr.pkg.PackageAPI;
import org.apache.solr.pkg.SolrPackageLoader;
import org.apache.zookeeper.KeeperException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* limitations under the License.
*/

package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import java.util.Date;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@
* limitations under the License.
*/

package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.solr.cli.packagemanager.SolrPackage.Manifest;
import org.apache.solr.cli.packagemanager.SolrPackage.Plugin;
import org.apache.solr.common.annotation.JsonProperty;
import org.apache.solr.common.util.ReflectMapWriter;
import org.apache.solr.packagemanager.SolrPackage.Manifest;
import org.apache.solr.packagemanager.SolrPackage.Plugin;

/** Describes one instance of a package as it exists in Solr when installed. */
public class SolrPackageInstance implements ReflectMapWriter {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
*/

/** This package contains Package Manager (CLI) implementation */
package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice change

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.cloud;
package org.apache.solr.cli;

import java.lang.invoke.MethodHandles;
import java.nio.file.Files;
Expand All @@ -23,16 +23,9 @@
import java.util.concurrent.TimeUnit;
import org.apache.commons.cli.CommandLine;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.cli.CLITestHelper;
import org.apache.solr.cli.CLIUtils;
import org.apache.solr.cli.CreateTool;
import org.apache.solr.cli.DeleteTool;
import org.apache.solr.cli.HealthcheckTool;
import org.apache.solr.cli.PostTool;
import org.apache.solr.cli.SolrCLI;
import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.client.solrj.request.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.util.ExternalPaths;
import org.junit.Test;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.packagemanager;
package org.apache.solr.cli.packagemanager;

import com.jayway.jsonpath.InvalidPathException;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
import org.apache.solr.common.util.SuppressForbidden;
import org.apache.solr.common.util.Utils;
import org.apache.solr.embedded.JettySolrRunner;
import org.apache.solr.packagemanager.PackageUtils;
import org.apache.solr.util.LogLevel;
import org.apache.zookeeper.server.ByteBufferInputStream;
import org.junit.Before;
Expand Down Expand Up @@ -330,7 +329,13 @@ public static <T extends NavigableObject> T assertResponseValues(
public static void uploadKey(byte[] bytes, String path, MiniSolrCloudCluster cluster)
throws Exception {
JettySolrRunner jetty = cluster.getRandomJetty(random());
PackageUtils.uploadKey(bytes, path, jetty.getCoreContainer().getSolrHome());

FileStoreAPI.MetaData metaData = ClusterFileStore._createJsonMetaData(bytes, null);
DistribFileStore._persistToFile(
jetty.getCoreContainer().getSolrHome(),
path,
ByteBuffer.wrap(bytes),
ByteBuffer.wrap(Utils.toJSON(metaData)));

final var syncReq = new FileStoreApi.SyncFile(path);
final var syncRsp = syncReq.process(jetty.getSolrClient());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.apache.solr.cli.CLITestHelper;
import org.apache.solr.cli.StatusTool;
import org.apache.solr.client.solrj.RemoteSolrException;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.jetty.HttpJettySolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.GenericSolrRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.RequestWriter.StringPayloadContentWriter;
import org.apache.solr.client.solrj.request.SystemInfoRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.request.V2Request;
import org.apache.solr.client.solrj.request.beans.PluginMeta;
Expand Down Expand Up @@ -283,10 +283,11 @@ public void testBasicAuth() throws Exception {
verifySecurityStatus(httpClient, baseUrl + "/admin/info/key", "key", NOT_NULL_PREDICATE, 20);
assertAuthMetricsMinimums(17, 8, 8, 1, 0, 0);

String[] toolArgs = new String[] {"status", "--solr-url", baseUrl};
int res = CLITestHelper.runTool(toolArgs, StatusTool.class);
if (res == 0) {
fail("Request should have failed because of missing auth");
try (SolrClient unauthorizedClient = new HttpJettySolrClient.Builder(baseUrl).build()) {
RemoteSolrException statusExp =
expectThrows(
RemoteSolrException.class, () -> new SystemInfoRequest().process(unauthorizedClient));
assertEquals(401, statusExp.code());
}

SolrParams params = new MapSolrParams(Map.of("q", "*:*"));
Expand Down
1 change: 0 additions & 1 deletion solr/test-framework/build.gradle
Comment thread
dsmiley marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ dependencies {
implementation libs.slf4j.api
implementation libs.apache.log4j.api
implementation libs.apache.log4j.core
implementation libs.commonscli.commonscli
implementation libs.opentelemetry.api
implementation(libs.opentelemetry.exporter.prometheus) {
transitive = false // most things don't want or already have
Expand Down
2 changes: 1 addition & 1 deletion solr/test-framework/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ com.google.protobuf:protobuf-java:4.36.2=annotationProcessor,errorprone,testAnno
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,testRuntimeClasspath
com.jayway.jsonpath:json-path:3.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,testRuntimeClasspath
commons-cli:commons-cli:1.11.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
commons-cli:commons-cli:1.11.0=jarValidation,runtimeClasspath,testRuntimeClasspath
commons-codec:commons-codec:1.22.1=jarValidation,runtimeClasspath,testRuntimeClasspath
commons-io:commons-io:2.22.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.dropwizard.metrics:metrics-core:4.2.39=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,6 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import org.apache.solr.BaseDistributedSearchTestCase;
import org.apache.solr.cli.ConfigSetUploadTool;
import org.apache.solr.cli.DefaultToolRuntime;
import org.apache.solr.cli.SolrCLI;
import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrRequest.METHOD;
Expand Down Expand Up @@ -100,6 +96,7 @@
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.TimeSource;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.ConfigSetService;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.Diagnostics;
import org.apache.solr.core.MockDirectoryFactory;
Expand Down Expand Up @@ -2224,19 +2221,16 @@ public static void copyConfigUp(
Path configSetDir, String srcConfigSet, String dstConfigName, String zkAddr)
throws Exception {

Path fullConfDir = configSetDir.resolve(srcConfigSet);
String[] args =
new String[] {
"--conf-name", dstConfigName,
"--conf-dir", fullConfDir.toAbsolutePath().toString(),
"-z", zkAddr
};

ToolRuntime runtime = new DefaultToolRuntime();
ConfigSetUploadTool tool = new ConfigSetUploadTool(runtime);

int res = tool.runTool(SolrCLI.processCommandLineArgs(tool, args));
assertEquals("Tool should have returned 0 for success, returned: " + res, 0, res);
Path confPath =
ConfigSetService.getConfigsetPath(
configSetDir.resolve(srcConfigSet).toString(), configSetDir.toString());
try (SolrZkClient zkClient =
new SolrZkClient.Builder()
.withUrl(zkAddr)
.withTimeout(AbstractZkTestCase.TIMEOUT, TimeUnit.MILLISECONDS)
.build()) {
zkClient.upConfig(confPath, dstConfigName);
}
}

@Override
Expand Down
Loading