From e3b95a3696c131255ada2c7a2b6f7ba6e3680992 Mon Sep 17 00:00:00 2001 From: Gil Bregman Date: Wed, 22 May 2024 13:41:27 +0300 Subject: [PATCH] Get version string from SPDK. Fixes #642 Signed-off-by: Gil Bregman --- control/config.py | 2 +- control/server.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/control/config.py b/control/config.py index b77583cc..947ad87c 100644 --- a/control/config.py +++ b/control/config.py @@ -78,7 +78,7 @@ def display_environment_info(self, logger): logger.info(f"Using NVMeoF gateway version {ver}") spdk_ver = os.getenv("NVMEOF_SPDK_VERSION") if spdk_ver: - logger.info(f"Using SPDK version {spdk_ver}") + logger.info(f"Configured SPDK version {spdk_ver}") ceph_ver = os.getenv("NVMEOF_CEPH_VERSION") if ceph_ver: logger.info(f"Using vstart cluster version based on {ceph_ver}") diff --git a/control/server.py b/control/server.py index 2e1b4a3d..409d5c97 100644 --- a/control/server.py +++ b/control/server.py @@ -401,6 +401,18 @@ def _start_spdk(self, omap_state): for trtype in spdk_transports.split(): self._create_transport(trtype.lower()) + with self.ping_lock: + try: + return_version = spdk.rpc.spdk_get_version(self.spdk_rpc_ping_client) + try: + version_string = return_version["version"] + self.logger.info(f"Started SPDK with version \"{version_string}\"") + except KeyError: + self.logger.error(f"Can't find SPDK version string in {return_version}") + except Exception: + self.logger.exception(f"Can't read SPDK version") + pass + def _stop_subprocess(self, proc, timeout): """Stops SPDK process.""" assert proc is not None # should be verified by the caller