From: Gil Bregman Date: Tue, 2 Apr 2024 10:23:43 +0000 (+0300) Subject: python-common/ceph/deployment: add nvmeof configuration fields X-Git-Tag: v19.1.0~45^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=de1ff4ac5ce5001a3ced8eb6909810d64f5ad563;p=ceph.git python-common/ceph/deployment: add nvmeof configuration fields Fixes https://tracker.ceph.com/issues/65259 Signed-off-by: Gil Bregman (cherry picked from commit 187baffd56fde2499109e779b3dacd9fa4d52ecf) --- diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index c98dc1fbb1922..77c72f172224d 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -1322,6 +1322,9 @@ class NvmeofServiceSpec(ServiceSpec): enable_prometheus_exporter: Optional[bool] = True, bdevs_per_cluster: Optional[int] = 32, verify_nqns: Optional[bool] = True, + allowed_consecutive_spdk_ping_failures: Optional[int] = 1, + spdk_ping_interval_in_seconds: Optional[float] = 2.0, + ping_spdk_under_lock: Optional[bool] = False, server_key: Optional[str] = None, server_cert: Optional[str] = None, client_key: Optional[str] = None, @@ -1393,6 +1396,12 @@ class NvmeofServiceSpec(ServiceSpec): self.omap_file_lock_retry_sleep_interval = omap_file_lock_retry_sleep_interval #: ``omap_file_update_reloads`` number of attempt to reload OMAP when it differs from local self.omap_file_update_reloads = omap_file_update_reloads + #: ``allowed_consecutive_spdk_ping_failures`` # of ping failures before aborting gateway + self.allowed_consecutive_spdk_ping_failures = allowed_consecutive_spdk_ping_failures + #: ``spdk_ping_interval_in_seconds`` sleep interval in seconds between SPDK pings + self.spdk_ping_interval_in_seconds = spdk_ping_interval_in_seconds + #: ``ping_spdk_under_lock`` whether or not we should perform SPDK ping under the RPC lock + self.ping_spdk_under_lock = ping_spdk_under_lock #: ``bdevs_per_cluster`` number of bdevs per cluster self.bdevs_per_cluster = bdevs_per_cluster #: ``server_key`` gateway server key @@ -1480,6 +1489,12 @@ class NvmeofServiceSpec(ServiceSpec): raise SpecValidationError( 'Invalid SPDK log level. Valid values are: DEBUG, INFO, WARNING, ERROR, NOTICE') + if self.spdk_ping_interval_in_seconds < 1.0: + raise SpecValidationError("SPDK ping interval should be at least 1 second") + + if self.allowed_consecutive_spdk_ping_failures < 1: + raise SpecValidationError("Allowed consecutive SPDK ping failures should be at least 1") + yaml.add_representer(NvmeofServiceSpec, ServiceSpec.yaml_representer)