Skip to content

feat: Add RDMA install method for Windows and Linux - #5

Merged
adrianlasota merged 1 commit into
mainfrom
rdma_install
Nov 12, 2025
Merged

adrianlasota merged 1 commit into
mainfrom
rdma_install

Conversation

@adrianlasota

Copy link
Copy Markdown
Contributor

This pull request adds support for installing RDMA drivers on both Linux and Windows platforms via a new install_rdma_drivers method in the respective package manager classes. The implementation includes robust error handling, platform-specific logic for locating and installing the drivers, and comprehensive unit tests to verify correct behavior and edge cases. Documentation and usage examples have also been updated to reflect the new functionality.

RDMA Driver Installation Feature

  • Added install_rdma_drivers(self, build_path: "Path | str") -> None method to both LinuxPackageManager and WindowsPackageManager, enabling automated installation of RDMA drivers from a specified build path. This includes extracting driver files, running installation scripts on Linux, and copying/installing INF files and certificates on Windows. [1] [2]
  • Implemented platform-specific logic for locating the correct driver build directories and handling Windows OS version matching with a new mapping and helper method _get_rdma_folder_for_os_version. [1] [2]

Documentation and Usage Examples

  • Updated README.md to document the new install_rdma_drivers method for both Linux and Windows package managers. [1] [2]
  • Added usage examples for the new method in examples/linux_example.py and examples/windows_example.py. [1] [2]

Unit Testing and Error Handling

  • Added comprehensive unit tests for RDMA driver installation, covering successful installation, missing build path, missing tar files, multiple tar files, command execution, and error scenarios for both Linux and Windows. [1] [2]
  • Improved error handling in the RDMA installation flow, raising descriptive exceptions for missing files, directories, or installation failures. [1] [2]

Base Class and Extensibility

  • Added a stub install_rdma_drivers method to the base PackageManager class, raising NotImplementedError, to ensure extensibility and clear API boundaries for platform-specific implementations.

Copilot AI review requested due to automatic review settings November 5, 2025 11:41
@mfd-intel-bot

Copy link
Copy Markdown

We don't publish DEVs .whl.
To build .whl, run 'pip install git+https://github.com/intel/mfd-package-manager@rdma_install'

1 similar comment
@mfd-intel-bot

Copy link
Copy Markdown

We don't publish DEVs .whl.
To build .whl, run 'pip install git+https://github.com/intel/mfd-package-manager@rdma_install'

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds automated RDMA driver installation support for both Linux and Windows platforms through new install_rdma_drivers methods in their respective package manager classes. The implementation handles platform-specific driver location, extraction, and installation workflows with comprehensive error handling and validation.

Key Changes:

  • Added install_rdma_drivers method to LinuxPackageManager and WindowsPackageManager with platform-specific installation logic
  • Implemented Windows OS version mapping for RDMA driver folders and added helper method _get_rdma_folder_for_os_version
  • Added comprehensive unit tests covering success cases, error scenarios, and edge cases for both platforms

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
mfd_package_manager/base.py Added abstract install_rdma_drivers stub method raising NotImplementedError
mfd_package_manager/linux.py Implemented Linux RDMA driver installation with tar extraction and script execution
mfd_package_manager/windows.py Implemented Windows RDMA driver installation with OS version mapping and INF/certificate handling
tests/unit/test_mfd_package_manager/test_base.py Fixed code formatting for multi-line test assertion
tests/unit/test_mfd_package_manager/test_linux.py Added 6 unit tests for Linux RDMA installation covering success and error cases
tests/unit/test_mfd_package_manager/test_windows.py Added 5 unit tests for Windows RDMA installation covering success and error cases
README.md Documented new install_rdma_drivers method for Linux and Windows package managers
examples/linux_example.py Added usage example for Linux RDMA driver installation
examples/windows_example.py Added usage example for Windows RDMA driver installation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread mfd_package_manager/base.py Resolved
Comment thread mfd_package_manager/windows.py Resolved
Comment thread mfd_package_manager/windows.py Resolved
Signed-off-by: Lasota, Adrian <adrian.lasota@intel.com>
abaczek
abaczek previously approved these changes Nov 12, 2025
@mfd-intel-bot

Copy link
Copy Markdown

We don't publish DEVs .whl.
To build .whl, run 'pip install git+https://github.com/intel/mfd-package-manager@rdma_install'

@mfd-intel-bot

Copy link
Copy Markdown

We don't publish DEVs .whl.
To build .whl, run 'pip install git+https://github.com/intel/mfd-package-manager@rdma_install'

@adrianlasota
adrianlasota merged commit 6c4e8bf into main Nov 12, 2025
5 checks passed

This branch was previously deployed

1 inactive deployment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants