-
Notifications
You must be signed in to change notification settings - Fork 225
Azure Files NFSv4 Support for XFStesting #4253
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
base: main
Are you sure you want to change the base?
Conversation
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.
Pull request overview
This pull request adds comprehensive Azure Files NFSv4.1 protocol support to LISA's testing framework. The changes introduce a unified AzureFileShare class that handles both SMB and NFS protocols through a configurable set_protocol() method, while preserving the legacy Nfs class for backward compatibility.
Changes:
- Adds protocol-aware Azure File Share management with NFS and SMB support via new enums and
set_protocol()configuration - Implements parallel NFSv4.1 xfstests validation (
verify_azure_file_share_nfsv4) with 73 validated test cases across 4 workers - Refactors storage test to use unified AzureFileShare class (
verify_nfsv4_basic, renamed fromverify_azure_file_share_nfs)
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| lisa/sut_orchestrator/azure/features.py | Adds FileShareProtocol/AuthMode/Connectivity enums, unified AzureFileShare with set_protocol() method, NFS-specific storage account configuration, preserves legacy Nfs class |
| lisa/sut_orchestrator/azure/common.py | Implements protocol-aware file share creation/deletion using ARM API for NFS (shared key disabled) and data plane API for SMB |
| lisa/microsoft/testsuites/xfstests/xfstests.py | Adds deferred notification support for parallel workers, file existence timeout handling, random delay to prevent SSH connection pool contention |
| lisa/microsoft/testsuites/xfstests/xfstesting.py | Implements verify_azure_file_share_nfsv4 with parallel workers, NFS worker setup helper, unified cleanup method for SMB/NFS protocols |
| lisa/microsoft/testsuites/core/storage.py | Renames verify_azure_file_share_nfs to verify_nfsv4_basic, migrates from legacy Nfs class to unified AzureFileShare with NFS protocol |
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.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 10 comments.
Pull Request Summary: Azure Files NFSv4 Support
Overview
This PR adds comprehensive NFSv4.1 protocol support for Azure Files testing in LISA, including:
AzureFileShareclass that handles both SMB and NFS protocolsverify_azure_file_share_nfsv4) with parallel worker executionverify_nfsv4_basic) for quick validationNfsclass is preserved for backward compatibility (to be removed in future)Key Changes
1. Unified
AzureFileShareClass with Protocol SupportFile:
lisa/sut_orchestrator/azure/features.pyThe
AzureFileShareclass now supports both SMB and NFS protocols viacreate_share():New Enums Added:
FileShareProtocolFileShareAuthModeNfsSecurityModeFileShareConnectivityStorage Account Naming:
lisafs<random10chars>(supports both SMB and NFS)2. NFS xfstests Test Case:
verify_azure_file_share_nfsv4File:
lisa/microsoft/testsuites/xfstests/xfstesting.pyFully implemented xfstests validation with parallel worker execution:
vers=4,minorversion=1,sec=sysNFS Test Configuration:
3. NFS Smoke Test:
verify_nfsv4_basicFile:
lisa/microsoft/testsuites/core/storage.pyRenamed from
verify_azure_file_share_nfstoverify_nfsv4_basic. Simple NFS mount validation:4. Legacy
NfsClass PreservedFile:
lisa/sut_orchestrator/azure/features.pyThe original
Nfsclass is unchanged and preserved for backward compatibility:AzureFeatureMixin, features.Nfs5. NFS Worker Setup Helper
File:
lisa/microsoft/testsuites/xfstests/xfstesting.pyNew helper method
_setup_azure_nfs_workers()that:AzureFileSharefor NFS protocol_deploy_azure_file_share()NFSClienttoollocal.configfor each workerTechnical Details
Azure Files NFS Requirements
NFS Mount Options
Resource Naming Conventions
lisafs<random10chars><storageaccount>-file-peArchitecture
Protocol Selection Flow
Parallel Worker Architecture (xfstests)
Files Changed
lisa/sut_orchestrator/azure/features.pycreate_share(), preserved Nfs classlisa/microsoft/testsuites/xfstests/xfstesting.pyverify_azure_file_share_nfsv4,_setup_azure_nfs_workers(), NFS test configlisa/microsoft/testsuites/core/storage.pyverify_azure_file_share_nfs→verify_nfsv4_basic, uses unified AzureFileShareTesting
Test Cases
verify_azure_file_share_nfsv4verify_nfsv4_basicverify_azure_file_shareRun Commands
Recommended Test Images
canonical 0001-com-ubuntu-server-jammy 22_04-lts-gen2 latestcanonical ubuntu-24_04-lts server latestredhat rhel 9_5 latestmicrosoftcblmariner azure-linux-3 azure-linux-3-gen2 latestNFS Test Exclusions
Tests excluded due to Azure Files NFS limitations (29 total):
link()syscall not supportedFuture Work
Nfsclass once all consumers migrate toAzureFileShareFileShareAuthMode.MANAGED_IDENTITY)Breaking Changes
verify_azure_file_share_nfsrenamedverify_nfsv4_basicBackward Compatibility
verify_azure_file_share(SMB xfstests)AzureFileShareclassNfsclass (lisa.sut_orchestrator.azure.features)Nfsbase class (lisa.features.nfs)References
Key Test Cases:
verify_azure_file_share_nfsv4 | verify_nfsv4_basicImpacted LISA Features: AzureFileShare, Nfs
Tested Azure Marketplace Images:
canonical 0001-com-ubuntu-server-jammy 22_04-lts-gen2 latestcanonical ubuntu-24_04-lts server latestredhat rhel 9_5 latestmicrosoftcblmariner azure-linux-3 azure-linux-3-gen2 latest