kevinrr888 commented on code in PR #4806:
URL: https://github.com/apache/accumulo/pull/4806#discussion_r1717177266
##########
server/base/src/main/java/org/apache/accumulo/server/util/Admin.java:
##########
@@ -1113,4 +1206,129 @@ private static void getAllFateIds(TabletMetadata
tabletMetadata,
fateIdConsumer.accept(tabletMetadata.getOperationId().getFateId());
}
}
+
+ @VisibleForTesting
+ public static void executeCheckCommand(ServerContext context, CheckCommand
cmd) {
+ List<CheckCommand.Check> checks;
+
+ validateAndTransformCheckCommand(cmd);
+
+ if (cmd.list) {
+ listChecks();
+ } else if (cmd.run) {
+ checks =
cmd.checks.stream().map(CheckCommand.Check::valueOf).collect(Collectors.toList());
+ executeRunCheckCommand(checks);
+ }
+ }
+
+ private static void validateAndTransformCheckCommand(CheckCommand cmd) {
+ Preconditions.checkArgument(cmd.list != cmd.run, "Must use either 'list'
or 'run'");
+ if (cmd.list) {
+ Preconditions.checkArgument(cmd.checks == null,
+ "'list' does not expect any further arguments");
+ } else if (cmd.useRegex) {
+ // run with regex provided
+ Preconditions.checkArgument(cmd.checks != null, "Expected a regex
pattern to be provided");
+ Preconditions.checkArgument(cmd.checks.size() == 1,
+ "Expected one argument (the regex pattern)");
+ String regex = cmd.checks.get(0).toUpperCase();
+ List<String> matchingChecks = new ArrayList<>();
+ var pattern = Pattern.compile(regex);
+ for (CheckCommand.Check check : CheckCommand.Check.values()) {
+ if (pattern.matcher(check.name()).matches()) {
+ matchingChecks.add(check.name());
+ }
+ }
+ Preconditions.checkArgument(!matchingChecks.isEmpty(),
+ "No checks matched the given pattern: " + regex);
+ cmd.checks = matchingChecks;
+ } else {
+ // run without regex provided
+ if (cmd.checks == null) {
+ cmd.checks =
EnumSet.allOf(CheckCommand.Check.class).stream().map(Enum::name)
+ .collect(Collectors.toList());
+ }
+ }
+ }
+
+ private static void listChecks() {
Review Comment:
If we want the output to go to a file, we can just redirect the output there.
--
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]