-
Notifications
You must be signed in to change notification settings - Fork 293
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
[PREVIEW] teuthology: add support for graph walks of QA suites #2012
base: main
Are you sure you want to change the base?
Conversation
This is unrelated to graph walking but makes testing much easier to iterate on. It's not necessary to clone the QA suite whenever the commit changes; instead clone once and fetch the difference. Reviewer's note: this commit needs cleaned up, obviously. This is part of a preview. Signed-off-by: Patrick Donnelly <[email protected]>
Reviewer's note: this is part of a preview PR. This lacks tests/docs. There is more documentation to do. Also, the code needs one small improvement: - To maintain consistency with the --subset operator on matrices, we should ensure that each fragment is included at least once in a subset (if the subset is large enough to make that possible). The probable way to do that is to generate the randomized set of children for each node once and always pull the first child if a path should be generated (then put that child at the end of the queue of children). Signed-off-by: Patrick Donnelly <[email protected]>
Reviewer's note: we will probably want to make the matrix representation a valid fallback using a command line switch. This is also important when doing reruns with subsets generated via the matrix representation. Signed-off-by: Patrick Donnelly <[email protected]>
@@ -95,7 +95,7 @@ def current_branch(path: str) -> str: | |||
return result | |||
|
|||
|
|||
def enforce_repo_state(repo_url, dest_path, branch, commit=None, remove_on_error=True): | |||
def enforce_repo_state(dest_clone, dest_path, repo_url, branch, commit=None, remove_on_error=True): |
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.
I'd prefer not to change initial signature and leave repo_url at first position, and add dest_cone
as an optional argument with defaults value.
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.
Sure, there will probably be lots of reworking to this code but it was a dirty hack to start because the clones after every QA suite tweak was driving me nuts. That's why it's in this PR.
This is a preview PR for the branch used for my talk at Cephalocon 2024:
https://ceph2024.sched.com/event/1ktVR/the-art-of-teuthology-patrick-donnelly-ibm-inc
TODO:
should ensure that each fragment is included at least once in a subset
(if the subset is large enough to make that possible). The probable
way to do that is to generate the randomized set of children for each
node once and always pull the first child if a path should be
generated (then put that child at the end of the queue of children).
rados
creates 4455758 jobs whereas graph implementation creates 2792029 jobs. This may be a divergence caused by nested subsets but needs investigation.