This is an automated email from the ASF dual-hosted git repository. ddanielr pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit 4e0153bd1d027f3d1084c5ea4a9da8f329d273ef Merge: 53d0297655 188fc549a6 Author: Daniel Roberts ddanielr <[email protected]> AuthorDate: Thu Jul 24 23:09:53 2025 +0000 Merge branch '2.1' Removed CSV output option from merge commit .../org/apache/accumulo/server/util/Admin.java | 11 +++-- .../accumulo/server/util/ServiceStatusCmd.java | 4 +- .../util/serviceStatus/ServiceStatusReport.java | 54 ++++++++++++---------- .../server/util/serviceStatus/StatusSummary.java | 22 +++++++++ .../accumulo/server/util/ServiceStatusCmdTest.java | 2 +- 5 files changed, 60 insertions(+), 33 deletions(-) diff --cc server/base/src/main/java/org/apache/accumulo/server/util/Admin.java index 89755b94b8,69c4ca4a7f..9f476d6603 --- a/server/base/src/main/java/org/apache/accumulo/server/util/Admin.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/Admin.java @@@ -396,11 -263,16 +396,12 @@@ public class Admin implements KeywordEx @Parameters(commandDescription = "show service status") public static class ServiceStatusCmdOpts extends SubCommandOpts { - @Parameter(names = "--json", description = "provide output in json format (--noHosts ignored)") + @Parameter(names = "--json", + description = "provide output in json format (--showHosts ignored)") boolean json = false; - @Parameter(names = "--noHosts", - description = "provide a summary of service counts without host details") - boolean noHosts = false; + @Parameter(names = "--showHosts", + description = "provide a summary of service counts with host details") + boolean showHosts = false; - - @Parameter(names = "--csv", - description = "provide output in csv format (--json and --noHost ignored)") - boolean csv = false; } public static void main(String[] args) { @@@ -532,9 -432,8 +533,9 @@@ executeFateOpsCommand(context, fateOpsCommand); } else if (cl.getParsedCommand().equals("serviceStatus")) { ServiceStatusCmd ssc = new ServiceStatusCmd(); - ssc.execute(context, serviceStatusCommandOpts.json, serviceStatusCommandOpts.noHosts); - ssc.execute(context, serviceStatusCommandOpts.json, serviceStatusCommandOpts.showHosts, - serviceStatusCommandOpts.csv); ++ ssc.execute(context, serviceStatusCommandOpts.json, serviceStatusCommandOpts.showHosts); + } else if (cl.getParsedCommand().equals("check")) { + executeCheckCommand(context, checkCommand, opts); } else if (cl.getParsedCommand().equals("stopManager") || cl.getParsedCommand().equals("stopAll")) { boolean everything = cl.getParsedCommand().equals("stopAll"); diff --cc server/base/src/main/java/org/apache/accumulo/server/util/ServiceStatusCmd.java index 85b644d0d6,dc8a47715b..6700d0d6c9 --- a/server/base/src/main/java/org/apache/accumulo/server/util/ServiceStatusCmd.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/ServiceStatusCmd.java @@@ -54,24 -54,30 +54,24 @@@ public class ServiceStatusCmd * Read the service statuses from ZooKeeper, build the status report and then output the report to * stdout. */ - public void execute(final ServerContext context, final boolean json, final boolean noHosts) { - public void execute(final ServerContext context, final boolean json, final boolean showHosts, - final boolean csv) { ++ public void execute(final ServerContext context, final boolean json, final boolean showHosts) { - ZooReader zooReader = context.getZooReader(); - - final String zooRoot = context.getZooKeeperRoot(); - LOG.trace("zooRoot: {}", zooRoot); + if (LOG.isTraceEnabled()) { + LOG.trace("zooRoot: {}", ZooUtil.getRoot(context.getInstanceID())); + } final Map<ServiceStatusReport.ReportKey,StatusSummary> services = new TreeMap<>(); - services.put(ServiceStatusReport.ReportKey.MANAGER, getManagerStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.MONITOR, getMonitorStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.T_SERVER, getTServerStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.S_SERVER, getScanServerStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.COORDINATOR, - getCoordinatorStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.COMPACTOR, getCompactorStatus(zooReader, zooRoot)); - services.put(ServiceStatusReport.ReportKey.GC, getGcStatus(zooReader, zooRoot)); + services.put(ServiceStatusReport.ReportKey.MANAGER, getManagerStatus(context)); + services.put(ServiceStatusReport.ReportKey.MONITOR, getMonitorStatus(context)); + services.put(ServiceStatusReport.ReportKey.T_SERVER, getTServerStatus(context)); + services.put(ServiceStatusReport.ReportKey.S_SERVER, getScanServerStatus(context)); + services.put(ServiceStatusReport.ReportKey.COMPACTOR, getCompactorStatus(context)); + services.put(ServiceStatusReport.ReportKey.GC, getGcStatus(context)); - ServiceStatusReport report = new ServiceStatusReport(services, noHosts); + ServiceStatusReport report = new ServiceStatusReport(services, showHosts); - if (csv) { - System.out.println(report.toCsv()); - } else if (json) { + if (json) { System.out.println(report.toJson()); } else { StringBuilder sb = new StringBuilder(8192); diff --cc server/base/src/main/java/org/apache/accumulo/server/util/serviceStatus/ServiceStatusReport.java index d05bb22d6f,7ae71a0cbb..2deb9be4fb --- a/server/base/src/main/java/org/apache/accumulo/server/util/serviceStatus/ServiceStatusReport.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/serviceStatus/ServiceStatusReport.java @@@ -91,26 -119,21 +95,26 @@@ public class ServiceStatusReport .reduce(Integer::sum).orElse(0); sb.append("ZooKeeper read errors: ").append(zkErrors).append("\n"); - fmtResourceGroups(sb, ReportKey.MANAGER, summaries.get(ReportKey.MANAGER), noHosts); - fmtResourceGroups(sb, ReportKey.MONITOR, summaries.get(ReportKey.MONITOR), noHosts); - fmtResourceGroups(sb, ReportKey.GC, summaries.get(ReportKey.GC), noHosts); - fmtResourceGroups(sb, ReportKey.T_SERVER, summaries.get(ReportKey.T_SERVER), noHosts); - fmtResourceGroups(sb, ReportKey.S_SERVER, summaries.get(ReportKey.S_SERVER), noHosts); - fmtResourceGroups(sb, ReportKey.COMPACTOR, summaries.get(ReportKey.COMPACTOR), noHosts); - fmtServiceStatus(sb, ReportKey.MANAGER, summaries.get(ReportKey.MANAGER), showHosts); - fmtServiceStatus(sb, ReportKey.MONITOR, summaries.get(ReportKey.MONITOR), showHosts); - fmtServiceStatus(sb, ReportKey.GC, summaries.get(ReportKey.GC), showHosts); - fmtServiceStatus(sb, ReportKey.T_SERVER, summaries.get(ReportKey.T_SERVER), showHosts); ++ fmtResourceGroups(sb, ReportKey.MANAGER, summaries.get(ReportKey.MANAGER), showHosts); ++ fmtResourceGroups(sb, ReportKey.MONITOR, summaries.get(ReportKey.MONITOR), showHosts); ++ fmtResourceGroups(sb, ReportKey.GC, summaries.get(ReportKey.GC), showHosts); ++ fmtResourceGroups(sb, ReportKey.T_SERVER, summaries.get(ReportKey.T_SERVER), showHosts); + fmtResourceGroups(sb, ReportKey.S_SERVER, summaries.get(ReportKey.S_SERVER), showHosts); - fmtServiceStatus(sb, ReportKey.COORDINATOR, summaries.get(ReportKey.COORDINATOR), showHosts); + fmtResourceGroups(sb, ReportKey.COMPACTOR, summaries.get(ReportKey.COMPACTOR), showHosts); sb.append("\n"); LOG.trace("fmtStatus - with hosts: {}", summaries); return sb.toString(); } + /** + * This method can be used instead of + * {@link #fmtResourceGroups(StringBuilder, ReportKey, StatusSummary, boolean)} if there are + * services that do not make sense to group by a resource group. With the data in ServiceLock, all + * services has at least the default group. + */ private void fmtServiceStatus(final StringBuilder sb, final ReportKey displayNames, - final StatusSummary summary, boolean noHosts) { + final StatusSummary summary, boolean showHosts) { if (summary == null) { sb.append(displayNames).append(": unavailable").append("\n"); return; @@@ -118,14 -141,14 +122,14 @@@ fmtCounts(sb, summary); - // skip host info if requested - if (noHosts) { + // skip host info if NOT showing hosts + if (!showHosts) { return; } - + sb.append(I2).append("resource group: (default)").append("\n"); if (summary.getServiceCount() > 0) { var hosts = summary.getServiceByGroups(); - hosts.values().forEach(s -> s.forEach(h -> sb.append(I2).append(h).append("\n"))); + hosts.values().forEach(s -> s.forEach(h -> sb.append(I4).append(h).append("\n"))); } } @@@ -144,12 -167,6 +148,12 @@@ sb.append(reportKey).append(": unavailable").append("\n"); return; } + // only default group is present, omit grouping from report + if (!summary.getResourceGroups().isEmpty() + && summary.getResourceGroups().equals(Set.of(DEFAULT_RESOURCE_GROUP_NAME))) { - fmtServiceStatus(sb, reportKey, summary, noHosts); ++ fmtServiceStatus(sb, reportKey, summary, showHosts); + return; + } fmtCounts(sb, summary); diff --cc server/base/src/test/java/org/apache/accumulo/server/util/ServiceStatusCmdTest.java index 2d81f8b6c7,2b9027725a..c25b4a91d6 --- a/server/base/src/test/java/org/apache/accumulo/server/util/ServiceStatusCmdTest.java +++ b/server/base/src/test/java/org/apache/accumulo/server/util/ServiceStatusCmdTest.java @@@ -496,10 -397,11 +496,10 @@@ public class ServiceStatusCmdTest @Test public void testServiceStatusCommandOpts() { - replay(zooReader); // needed for @AfterAll verify + replay(zooReader, zooCache); Admin.ServiceStatusCmdOpts opts = new Admin.ServiceStatusCmdOpts(); assertFalse(opts.json); - assertFalse(opts.noHosts); + assertFalse(opts.showHosts); - assertFalse(opts.csv); } }
