class NVMeoFClient(object):
pb2 = pb2
- def __init__(self, gw_group: Optional[str] = None):
+ def __init__(self, gw_group: Optional[str] = None, traddr: Optional[str] = None):
logger.info("Initiating nvmeof gateway connection...")
try:
if not gw_group:
f'Unable to retrieve the gateway info: {e}'
)
+ # While creating listener need to direct request to the gateway
+ # address where listener is supposed to be added.
+ if traddr:
+ gateways_info = NvmeofGatewaysConfig.get_gateways_config()
+ matched_gateway = next(
+ (
+ gateway
+ for gateways in gateways_info['gateways'].values()
+ for gateway in gateways
+ if traddr in gateway['service_url']
+ ),
+ None
+ )
+ if matched_gateway:
+ self.gateway_addr = matched_gateway.get('service_url')
+ logger.debug("Gateway address set to: %s", self.gateway_addr)
+
root_ca_cert = NvmeofGatewaysConfig.get_root_ca_cert(service_name)
if root_ca_cert:
client_key = NvmeofGatewaysConfig.get_client_key(service_name)