From 1e2be53680bd9d53f6d112f334f49ad088e222b9 Mon Sep 17 00:00:00 2001 From: Bert Helderman Date: Fri, 6 Feb 2026 16:00:40 +0100 Subject: [PATCH] Add accessible_topology to created volumes, closes #828 Signed-off-by: Bert Helderman --- controllers/servers/csi/csi_controller_server.py | 2 +- controllers/servers/utils.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/controllers/servers/csi/csi_controller_server.py b/controllers/servers/csi/csi_controller_server.py index 51638091d..f48dcd799 100755 --- a/controllers/servers/csi/csi_controller_server.py +++ b/controllers/servers/csi/csi_controller_server.py @@ -142,7 +142,7 @@ def CreateVolume(self, request, context): volume.source_id = source_id response = utils.generate_csi_create_volume_response(volume, array_connection_info.system_id, - source_type) + source_type, topologies) return response except (array_errors.InvalidArgumentError, array_errors.ExpectedSnapshotButFoundVolumeError) as ex: return handle_exception(ex, context, grpc.StatusCode.INVALID_ARGUMENT, csi_pb2.CreateVolumeResponse) diff --git a/controllers/servers/utils.py b/controllers/servers/utils.py index 2c8fb85cb..155f17387 100644 --- a/controllers/servers/utils.py +++ b/controllers/servers/utils.py @@ -390,7 +390,7 @@ def _generate_volumes_response(new_volumes): return volumes -def _generate_volume_response(new_volume, system_id=None, source_type=None): +def _generate_volume_response(new_volume, system_id=None, source_type=None, topologies=None): content_source = None if new_volume.source_id: if source_type == servers_settings.SNAPSHOT_TYPE_NAME: @@ -403,7 +403,8 @@ def _generate_volume_response(new_volume, system_id=None, source_type=None): return csi_pb2.Volume( capacity_bytes=new_volume.capacity_bytes, volume_id=get_volume_id(new_volume, system_id), - content_source=content_source) + content_source=content_source, + accessible_topology=[csi_pb2.Topology(segments=topologies)]) def _generate_volumegroup_volume_response(new_volume, system_id=None): @@ -418,10 +419,10 @@ def _generate_volumegroup_volume_response(new_volume, system_id=None): content_source=content_source) -def generate_csi_create_volume_response(new_volume, system_id=None, source_type=None): +def generate_csi_create_volume_response(new_volume, system_id=None, source_type=None, topologies=None): logger.debug("creating create volume response for volume : {0}".format(new_volume)) - response = csi_pb2.CreateVolumeResponse(volume=_generate_volume_response(new_volume, system_id, source_type)) + response = csi_pb2.CreateVolumeResponse(volume=_generate_volume_response(new_volume, system_id, source_type, topologies)) logger.debug("finished creating volume response : {0}".format(response)) return response