Merge "Add nfs_versions option for NFS protocol version selection"
diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py
index 03dfafb..decf2ac 100644
--- a/manila_tempest_tests/config.py
+++ b/manila_tempest_tests/config.py
@@ -108,6 +108,12 @@
cfg.ListOpt("enable_ro_access_level_for_protocols",
default=["nfs", ],
help="List of protocols to run tests with ro access level."),
+ cfg.ListOpt("nfs_versions",
+ default=["4", ],
+ help="Specifies the NFS protocol version to use when mounting "
+ "an NFS share. Set to '3' for NFSv3, and '4' or '4.1' "
+ "for NFSv4. Leave it blank to use the default version."),
+
# Capabilities
cfg.StrOpt("capability_storage_protocol",
diff --git a/manila_tempest_tests/tests/scenario/manager_share.py b/manila_tempest_tests/tests/scenario/manager_share.py
index 3e06323..49fa20e 100644
--- a/manila_tempest_tests/tests/scenario/manager_share.py
+++ b/manila_tempest_tests/tests/scenario/manager_share.py
@@ -752,8 +752,11 @@
self.validate_ping_to_export_location(location, ssh_client)
target_dir = target_dir or "/mnt"
+ nfs_version = getattr(self, 'nfs_version', None)
+ version_option = f"-o vers={nfs_version}" if nfs_version else ""
ssh_client.exec_command(
- "sudo mount -vt nfs \"%s\" %s" % (location, target_dir)
+ "sudo mount -vt nfs %s \"%s\" %s" % (
+ version_option, location, target_dir)
)
diff --git a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
index d832974..fbcc87f 100644
--- a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
+++ b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
@@ -417,9 +417,16 @@
"sudo touch %s/file3" % snapshot_dir)
+@ddt.ddt
class TestShareBasicOpsNFS(manager.BaseShareScenarioNFSTest,
ShareBasicOpsBase):
- pass
+
+ @decorators.idempotent_id('4bad2073-a19b-4851-8cbe-75b20ade5cdb')
+ @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)
+ @ddt.data(*utils.deduplicate(CONF.share.nfs_versions))
+ def test_mount_share_one_vm(self, nfs_version):
+ self.nfs_version = nfs_version
+ super(TestShareBasicOpsNFS, self).test_mount_share_one_vm()
class TestShareBasicOpsCIFS(manager.BaseShareScenarioCIFSTest,
diff --git a/releasenotes/notes/nfs-versions-6886a2dd1bab094f.yaml b/releasenotes/notes/nfs-versions-6886a2dd1bab094f.yaml
new file mode 100644
index 0000000..b18d197
--- /dev/null
+++ b/releasenotes/notes/nfs-versions-6886a2dd1bab094f.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+ - |
+ A new configuration option, nfs_version, has been added to control
+ the NFS protocol version used for mounting NFS shares during testing.
+ This option allows users to specify which version of NFS should be used,
+ supporting environments where compatibility with specific versions is
+ required.