-
Notifications
You must be signed in to change notification settings - Fork 478
New admin check command structure implementation
#4807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
(Part of apache#4687) - Added new `admin check` command - `admin check list` prints the checks that can be run along with their descriptions and dependencies - `admin check run` runs all the checks or a specified list of checks (explicitly provide each check, provide a regex of the checks to run, or just run all if no further args are provided). The dependencies are run first and if a checks dependency fails, the check is skipped - Current impl of `admin check run` does not do any actual work besides printing that the check is running (to ensure correct run order) and returning an `OK` status - New IT AdminCheckIT - This IT includes a verion of the Checks where no work is actually done (right now, this is equivalent to the actual implementation). This is done so correct run order, correct checks run, etc. can be verified without actually running the checks which may take a long time. More tests can be added later to test the actual check functionality when that is implemented. - No existing functionality was changed
Some example outputs and a sketch of the current dependency tree as support:Sample outputs:In this example, I made |
|
This was created as a replacement for #4806 which targeted elasticity. This PR targets main |
|
Relevant review comment from old PR: |
server/base/src/main/java/org/apache/accumulo/server/util/Admin.java
Outdated
Show resolved
Hide resolved
server/base/src/main/java/org/apache/accumulo/server/util/Admin.java
Outdated
Show resolved
Hide resolved
server/base/src/main/java/org/apache/accumulo/server/util/Admin.java
Outdated
Show resolved
Hide resolved
|
@keith-turner question:
|
|
@kevinrr888 they all seems like good ways to handle the situation. In the examples you posted it seems to come down to
Personally I would go with the option that is the most straightforward to implement an maintain. Option 1 or 3 seem like they are the most straightforward to implement because they do not do transitive analysis. Seems like option 3 chooses |
- Added FILTERED_OUT status for checks that are not specified to run - When checks are specified, no longer run their dependencies first - Switched from static maps for the fields (CHECK_DESCRIPTION, CHECK_DEPENDENCIES, CHECK_RUNNERS) to instead be declared in the enum constructor. - This also meant refactoring AdminCheckIT
|
Addressed review comments:
|
keith-turner
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This foundation looks really good. I think we can merge this as long as we have blocker issues about creating some of the actual checks.
server/base/src/main/java/org/apache/accumulo/server/util/Admin.java
Outdated
Show resolved
Hide resolved
|
Once this is merged, I can create the follow on issue for adding the functionality for these checks |
This is part of #4687
Changes:
admin checkcommandadmin check listprints the checks that can be run along with their descriptions and dependenciesadmin check runruns all the checks or a specified list of checks (explicitly provide each check, provide a regex of the checks to run, or just run all if no further args are provided). The dependencies are run first and if a checks dependency fails, the check is skippedadmin check rundoes not do any actual work besides printing that the check is running (to ensure correct run order) and returning anOKstatusverified without actually running the checks which may take a long time. More tests can be added later to test the actual check functionality when that is implemented.
Questions: