This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new 15ab803d6d Fixed ECAdmin.listCompactorsByQueue (#6092)
15ab803d6d is described below
commit 15ab803d6d20d6bdb13c5b8e1630b1cbcc04fc79
Author: Dave Marion <[email protected]>
AuthorDate: Thu Jan 29 15:00:58 2026 -0500
Fixed ECAdmin.listCompactorsByQueue (#6092)
Closes #6084
---
.../org/apache/accumulo/server/util/ECAdmin.java | 19 +++++++++----
.../java/org/apache/accumulo/test/ECAdminIT.java | 32 ++++++++++++++++++++--
2 files changed, 43 insertions(+), 8 deletions(-)
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java
b/server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java
index fcee95c1e3..8e4afe6f91 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java
@@ -233,7 +233,16 @@ public class ECAdmin implements KeywordExecutable {
ServerContext context = opts.getServerContext();
try {
if (cl.getParsedCommand().equals("listCompactors")) {
- listCompactorsByQueue(context);
+ var map = listCompactorsByQueue(context);
+ if (map.isEmpty()) {
+ System.out.println("No Compactors found.");
+ } else {
+ map.forEach((q, c) -> {
+ System.out.println(q);
+ System.out.println("-".repeat(q.toString().length()));
+ c.forEach(s -> System.out.println("\t" + s.toHostPortString()));
+ });
+ }
} else if (cl.getParsedCommand().equals("cancel")) {
cancelCompaction(context, cancelOps.ecid);
} else if (cl.getParsedCommand().equals("running")) {
@@ -274,16 +283,16 @@ public class ECAdmin implements KeywordExecutable {
}
}
- protected void listCompactorsByQueue(ServerContext context) {
+ protected Map<ResourceGroupId,List<ServerId>>
listCompactorsByQueue(ServerContext context) {
Set<ServerId> compactors =
context.instanceOperations().getServers(ServerId.Type.COMPACTOR);
if (compactors.isEmpty()) {
- System.out.println("No Compactors found.");
+ return Map.of();
} else {
Map<ResourceGroupId,List<ServerId>> m = new TreeMap<>();
compactors.forEach(csi -> {
- m.putIfAbsent(csi.getResourceGroup(), new ArrayList<>()).add(csi);
+ m.computeIfAbsent(csi.getResourceGroup(), (r) -> new
ArrayList<>()).add(csi);
});
- m.forEach((q, c) -> System.out.println(q + ": " + c));
+ return m;
}
}
diff --git a/test/src/main/java/org/apache/accumulo/test/ECAdminIT.java
b/test/src/main/java/org/apache/accumulo/test/ECAdminIT.java
index b858316a78..07c7de23f3 100644
--- a/test/src/main/java/org/apache/accumulo/test/ECAdminIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ECAdminIT.java
@@ -18,12 +18,20 @@
*/
package org.apache.accumulo.test;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP1;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP2;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP3;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP4;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP5;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP6;
import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP7;
+import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.GROUP8;
import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.compact;
import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.createTable;
import static
org.apache.accumulo.test.compaction.ExternalCompactionTestUtils.writeData;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.lang.reflect.Type;
import java.util.ArrayList;
@@ -36,7 +44,9 @@ import java.util.Optional;
import org.apache.accumulo.core.client.Accumulo;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.IteratorSetting;
+import org.apache.accumulo.core.client.admin.servers.ServerId;
import org.apache.accumulo.core.compaction.thrift.TExternalCompactionMap;
+import org.apache.accumulo.core.data.ResourceGroupId;
import org.apache.accumulo.core.iterators.IteratorUtil.IteratorScope;
import org.apache.accumulo.core.util.compaction.ExternalCompactionUtil;
import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
@@ -68,8 +78,8 @@ public class ECAdminIT extends SharedMiniClusterBase {
}
@Override
- protected void listCompactorsByQueue(ServerContext context) {
- super.listCompactorsByQueue(context);
+ protected Map<ResourceGroupId,List<ServerId>>
listCompactorsByQueue(ServerContext context) {
+ return super.listCompactorsByQueue(context);
}
@Override
@@ -84,7 +94,6 @@ public class ECAdminIT extends SharedMiniClusterBase {
@Override
public void configureMiniCluster(MiniAccumuloConfigImpl cfg, Configuration
coreSite) {
ExternalCompactionTestUtils.configureMiniCluster(cfg, coreSite);
- cfg.getClusterServerConfiguration().addCompactorResourceGroup(GROUP7, 1);
}
}
@@ -101,6 +110,23 @@ public class ECAdminIT extends SharedMiniClusterBase {
private final TestECAdmin eca = new TestECAdmin();
+ @Test
+ public void testListCompactors() throws Exception {
+ final Map<ResourceGroupId,List<ServerId>> compactors =
+ eca.listCompactorsByQueue(getCluster().getServerContext());
+ System.out.println(compactors);
+ assertEquals(9, compactors.size());
+ assertTrue(compactors.containsKey(ResourceGroupId.DEFAULT));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP1)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP2)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP3)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP4)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP5)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP6)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP7)));
+ assertTrue(compactors.containsKey(ResourceGroupId.of(GROUP8)));
+ }
+
@Test
public void testListRunningCompactions() throws Exception {