Add upload_file and download_file support#161
Merged
Conversation
speriaswamy-amd
requested changes
May 12, 2026
d7471d2 to
e2b2ffc
Compare
Contributor
Author
|
@speriaswamy-amd addressed all the review comments, introduced ABC and class composition instead of inheritance to ensure all shardable methods of Pssh are implemented in MultiprocessPssh, also dynamically handling shardable methods in run_shard. Removed unnecessary UT's to cover old behaviour |
to MultiProcessPssh with operation registry This commit addresses API incompatibility issues between Pssh and MultiProcessPssh classes and implements a robust operation registry system to prevent future drift. Key Changes: - Add missing upload_file and download_file methods to MultiProcessPssh class - Implement operation registry (SUPPORTED_OPERATIONS) as single source of truth - Use method names directly as operation names to eliminate mapping errors - Add missing detailed parameter support to MultiProcessPssh.exec() API Parity Testing: - Add comprehensive test suite to catch missing methods automatically - Validate method signatures match between Pssh and MultiProcessPssh - Verify operation registry completeness and consistency - Test runtime execution of all sharder operations with proper parameters Operations Updated: - exec -> exec (added detailed parameter support) - upload_file -> upload_file (new operation, matches method name) - download_file -> download_file (new operation, matches method name) This ensures MultiProcessPssh maintains full API compatibility with Pssh and prevents the class of issues that led to missing upload_file/download_file methods. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Ignatious Johnson <ichristo@amd.com>
This commit addresses all PR review comments by completely refactoring the multiprocess SSH architecture to be cleaner, more maintainable, and more robust. Key Architectural Changes: - Replace inheritance with ABC + composition pattern - Eliminate registry + if/elif tree with dynamic method dispatch - Create single source of truth via ShardableSshInterface ABC - Move ABC to separate interfaces.py to avoid circular imports Review Comments Addressed: - #1-#2: Fixed operation name mismatches (upload/download) - #3: Updated test expectations for new calling convention - #4: Proper error handling with early ABC validation - #5: Maintained custom download_file result merging - #6: Implemented exact dynamic approach suggested by reviewer Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Ignatious Johnson <ichristo@amd.com>
e2b2ffc to
7b58cb1
Compare
This was referenced May 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
to MultiProcessPssh with operation registry
This commit addresses API incompatibility issues between Pssh and MultiProcessPssh classes and implements a robust operation registry system to prevent future drift.
Key Changes:
API Parity Testing:
Operations Updated:
This ensures MultiProcessPssh maintains full API compatibility with Pssh and prevents the class of issues that led to missing upload_file/download_file methods.
Motivation
Technical Details
Test Plan
Test Result
Submission Checklist