]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
python-common: Adding precheck for placement.count_per_host in NFSServiceSpec 68890/head
authorShweta Bhosale <Shweta.Bhosale1@ibm.com>
Wed, 13 May 2026 14:19:11 +0000 (19:49 +0530)
committerShweta Bhosale <Shweta.Bhosale1@ibm.com>
Wed, 13 May 2026 14:21:01 +0000 (19:51 +0530)
NFS service specs should not allow placement.count_per_host.

Fixes: https://tracker.ceph.com/issues/76579
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
src/pybind/mgr/cephadm/tests/services/test_nfs.py
src/python-common/ceph/deployment/service_spec.py

index 376fdea25e30cc834b600cec94fe7d796c19be73..5079a517ebd3dc3488b108e3676ba20dceab4799 100644 (file)
@@ -589,6 +589,15 @@ class TestNFS:
                 assert "NFS_RDMA_Port" not in ganesha_conf
 
 
+def test_nfs_placement_count_per_host_rejected():
+    spec = NFSServiceSpec(
+        service_id='mynfs',
+        placement=PlacementSpec(hosts=['h1'], count_per_host=1),
+    )
+    with pytest.raises(SpecValidationError, match="count_per_host.*not supported"):
+        spec.validate()
+
+
 def test_nfs_colocation_ports_validation():
     """Test validation of colocation_ports in NFSServiceSpec"""
     # Valid case: correct number of colocation_ports (count=3, need 2 additional)
index 857446eb1152577d35340eb5f8fc118544cb15c6..8e274368348079590fe5b1d0622a1e34052987f6 100644 (file)
@@ -1529,6 +1529,11 @@ class NFSServiceSpec(ServiceSpec):
     def validate(self) -> None:
         super(NFSServiceSpec, self).validate()
 
+        if self.placement is not None and self.placement.count_per_host is not None:
+            raise SpecValidationError(
+                "Placement 'count_per_host' is not supported for nfs service."
+            )
+
         if self.virtual_ip and (self.ip_addrs or self.networks):
             raise SpecValidationError("Invalid NFS spec: Cannot set virtual_ip and "
                                       f"{'ip_addrs' if self.ip_addrs else 'networks'} fields")