]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
python-common/ceph/deployment: add nvmeof configuration fields
authorGil Bregman <gbregman@il.ibm.com>
Tue, 2 Apr 2024 10:23:43 +0000 (13:23 +0300)
committerAdam King <adking@redhat.com>
Wed, 24 Apr 2024 14:57:36 +0000 (10:57 -0400)
Fixes https://tracker.ceph.com/issues/65259

Signed-off-by: Gil Bregman <gbregman@il.ibm.com>
(cherry picked from commit 187baffd56fde2499109e779b3dacd9fa4d52ecf)

src/python-common/ceph/deployment/service_spec.py

index c98dc1fbb1922a124b7482b78b4d9fb52c7edc74..77c72f172224d40b12ebdee8911ebf0fbe8f75bb 100644 (file)
@@ -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)