# generate the ganesha config
rdma_port = None
- if spec.enable_rdma and daemon_spec.ports and len(daemon_spec.ports) > 2:
- rdma_port = daemon_spec.ports[2]
+ if spec.enable_rdma and daemon_spec.ports and len(daemon_spec.ports) > 3:
+ rdma_port = daemon_spec.ports[3]
elif spec.enable_rdma:
rdma_port = spec.rdma_port
port=2049,
monitoring_port=9587,
colocation_ports=[
- {'data_port': 3049, 'monitoring_port': 9588},
- {'data_port': 4049, 'monitoring_port': 9589}
+ {'data_port': 3049, 'monitoring_port': 9588, 'cluster_qos_port': 31312},
+ {'data_port': 4049, 'monitoring_port': 9589, 'cluster_qos_port': 31313}
]
)
spec.validate() # Should not raise
placement=PlacementSpec(count=4),
port=2049,
monitoring_port=9587,
- colocation_ports=[{'data_port': 3049, 'monitoring_port': 9588}]
+ colocation_ports=[{'data_port': 3049, 'monitoring_port': 9588, 'cluster_qos_port': 31312}]
)
spec.validate()
assert "colocation_ports requires 3 entries for count=4 (got 1)" in str(e.value)
monitoring_port=9587,
colocation_ports=[
{'data_port': 3049}, # Missing monitoring_port
- {'data_port': 4049, 'monitoring_port': 9589}
+ {'data_port': 4049, 'monitoring_port': 9589, 'cluster_qos_port': 31312}
]
)
spec.validate()
enable_rdma=True,
rdma_port=20049,
colocation_ports=[
- {'data_port': 3049, 'monitoring_port': 9588, 'rdma_port': 20050},
- {'data_port': 4049, 'monitoring_port': 9589, 'rdma_port': 20051},
+ {'data_port': 3049, 'monitoring_port': 9588, 'cluster_qos_port': 31312, 'rdma_port': 20050},
+ {'data_port': 4049, 'monitoring_port': 9589, 'cluster_qos_port': 31313, 'rdma_port': 20051},
]
)
spec.validate()
monitoring_port=9587,
enable_rdma=True,
colocation_ports=[
- {'data_port': 3049, 'monitoring_port': 9588}, # missing rdma_port
- {'data_port': 4049, 'monitoring_port': 9589, 'rdma_port': 20051},
+ {'data_port': 3049, 'monitoring_port': 9588, 'cluster_qos_port': 31312}, # missing rdma_port
+ {'data_port': 4049, 'monitoring_port': 9589, 'cluster_qos_port': 31313, 'rdma_port': 20051},
]
)
spec.validate()
class NFSServiceSpec(ServiceSpec):
- COLOCATION_PORT_FIELDS = ['data_port', 'monitoring_port']
- COLOCATION_PORT_FIELDS_WITH_RDMA = ['data_port', 'monitoring_port', 'rdma_port']
+ COLOCATION_PORT_FIELDS = ['data_port', 'monitoring_port', 'cluster_qos_port']
+ COLOCATION_PORT_FIELDS_WITH_RDMA = [
+ 'data_port',
+ 'monitoring_port',
+ 'cluster_qos_port',
+ 'rdma_port'
+ ]
def __init__(self,
service_type: str = 'nfs',
spec = NFSServiceSpec(service_id='mynfs', placement=PlacementSpec(count=1))
assert spec.enable_rdma is False
assert spec.rdma_port is None
- assert spec.get_port_start() == [2049, 9587]
- assert spec.get_colocation_port_fields() == ['data_port', 'monitoring_port']
+ assert spec.get_port_start() == [2049, 9587, 31311]
+ assert spec.get_colocation_port_fields() == ['data_port', 'monitoring_port', 'cluster_qos_port']
def test_nfs_spec_rdma_enabled():
)
assert spec.enable_rdma is True
assert spec.rdma_port is None
- assert spec.get_port_start() == [2049, 9587, 20049]
- assert spec.get_colocation_port_fields() == ['data_port', 'monitoring_port', 'rdma_port']
+ assert spec.get_port_start() == [2049, 9587, 31311, 20049]
+ assert spec.get_colocation_port_fields() == ['data_port', 'monitoring_port', 'cluster_qos_port', 'rdma_port']
def test_nfs_spec_rdma_custom_port():
)
assert spec.enable_rdma is True
assert spec.rdma_port == 20050
- assert spec.get_port_start() == [3049, 9588, 20050]
+ assert spec.get_port_start() == [3049, 9588, 31311, 20050]
def test_nfs_spec_from_json_rdma():