gateways = json.loads(out)['gateways']
cmd_dicts = []
- spec = cast(NvmeofServiceSpec,
- self.mgr.spec_store.all_specs.get(daemon_descrs[0].service_name(), None))
-
for dd in daemon_descrs:
+ spec = cast(NvmeofServiceSpec,
+ self.mgr.spec_store.all_specs.get(dd.service_name(), None))
service_name = dd.service_name()
if dd.hostname is None:
err_msg = ('Trying to config_dashboard nvmeof but no hostname is defined')
def _get_default_service(gateways):
if gateways:
- service_name = list(gateways.keys())[0]
+ gateway_keys = list(gateways.keys())
+ # if there are more than 1 gateway, rather than chosing a random gateway
+ # from any of the group, raise an exception to make it clear that we need
+ # to specify the group name in the API request.
+ if len(gateway_keys) > 1:
+ raise DashboardException(
+ msg=(
+ "Multiple NVMe-oF gateway groups are configured. "
+ "Please specify the 'gw_group' parameter in the request."
+ ),
+ component="nvmeof"
+ )
+ service_name = gateway_keys[0]
return service_name, gateways[service_name][0]['service_url']
return None