kevinrr888 commented on code in PR #5332:
URL: https://github.com/apache/accumulo/pull/5332#discussion_r1954850004
##########
server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java:
##########
@@ -40,6 +45,8 @@
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
Review Comment:
`com.google.code.gson` should be used instead for JSON. I don't believe
jackson is a dependency in `server/base`.
##########
server/base/src/main/java/org/apache/accumulo/server/util/ECAdmin.java:
##########
@@ -153,43 +164,104 @@ private void listCompactorsByQueue(ServerContext
context) {
}
}
- private void runningCompactions(ServerContext context, boolean details) {
+ private void runningCompactions(ServerContext context, boolean details,
String format) {
CompactionCoordinatorService.Client coordinatorClient = null;
TExternalCompactionList running;
try {
coordinatorClient = getCoordinatorClient(context);
running = coordinatorClient.getRunningCompactions(TraceUtil.traceInfo(),
context.rpcCreds());
- if (running == null) {
+ if (running == null || running.getCompactions() == null
+ || running.getCompactions().isEmpty()) {
System.out.println("No running compactions found.");
return;
}
- var ecidMap = running.getCompactions();
- if (ecidMap == null) {
- System.out.println("No running compactions found.");
- return;
+
+ // Use StringBuilder for CSV
+ StringBuilder csvOutput = new StringBuilder();
+ List<Map<String,Object>> jsonOutput = new ArrayList<>();
+
+ if ("csv".equalsIgnoreCase(format)) {
+ csvOutput.append(
+
"ECID,Compactor,Kind,Queue,TableId,Status,LastUpdate,Duration,NumFiles,Progress\n");
}
- ecidMap.forEach((ecid, ec) -> {
- if (ec != null) {
- var runningCompaction = new RunningCompaction(ec);
- var addr = runningCompaction.getCompactorAddress();
- var kind = runningCompaction.getJob().kind;
- var queue = runningCompaction.getQueueName();
- var ke = KeyExtent.fromThrift(runningCompaction.getJob().extent);
- System.out.format("%s %s %s %s TableId: %s\n", ecid, addr, kind,
queue, ke.tableId());
+
+ for (var entry : running.getCompactions().entrySet()) {
+ String ecid = entry.getKey();
+ var ec = entry.getValue();
+ if (ec == null)
+ continue;
Review Comment:
```suggestion
if (ec == null) {
continue;
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]