Merging upstream version 2.3~rc1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
972d2d9aa2
commit
ca2ec6771a
37 changed files with 1946 additions and 407 deletions
|
@ -18,7 +18,7 @@ import logging
|
|||
import dasbus.connection
|
||||
from gi.repository import Gio, GLib
|
||||
from systemd.daemon import notify as sd_notify
|
||||
from staslib import conf, defs, gutil, log, trid
|
||||
from staslib import conf, defs, gutil, iputil, log, trid
|
||||
|
||||
try:
|
||||
# Python 3.9 or later
|
||||
|
@ -86,6 +86,44 @@ def check_if_allowed_to_continue():
|
|||
sys.exit('Fatal error: missing nvme-tcp kernel module')
|
||||
|
||||
|
||||
# ******************************************************************************
|
||||
def remove_invalid_addresses(controllers: list):
|
||||
'''@brief Remove controllers with invalid addresses from the list of controllers.
|
||||
@param controllers: List of TIDs
|
||||
'''
|
||||
service_conf = conf.SvcConf()
|
||||
valid_controllers = list()
|
||||
for controller in controllers:
|
||||
if controller.transport in ('tcp', 'rdma'):
|
||||
# Let's make sure that traddr is
|
||||
# syntactically a valid IPv4 or IPv6 address.
|
||||
ip = iputil.get_ipaddress_obj(controller.traddr)
|
||||
if ip is None:
|
||||
logging.warning('%s IP address is not valid', controller)
|
||||
continue
|
||||
|
||||
# Let's make sure the address family is enabled.
|
||||
if ip.version not in service_conf.ip_family:
|
||||
logging.debug(
|
||||
'%s ignored because IPv%s is disabled in %s',
|
||||
controller,
|
||||
ip.version,
|
||||
service_conf.conf_file,
|
||||
)
|
||||
continue
|
||||
|
||||
valid_controllers.append(controller)
|
||||
|
||||
elif controller.transport in ('fc', 'loop'):
|
||||
# At some point, need to validate FC addresses as well...
|
||||
valid_controllers.append(controller)
|
||||
|
||||
else:
|
||||
logging.warning('Invalid transport %s', controller.transport)
|
||||
|
||||
return valid_controllers
|
||||
|
||||
|
||||
# ******************************************************************************
|
||||
def tid_from_dlpe(dlpe, host_traddr, host_iface):
|
||||
'''@brief Take a Discovery Log Page Entry and return a Controller ID as a dict.'''
|
||||
|
@ -492,7 +530,9 @@ class ServiceABC(abc.ABC): # pylint: disable=too-many-instance-attributes
|
|||
# elements after name resolution is complete (i.e. in the calback
|
||||
# function _config_ctrls_finish)
|
||||
logging.debug('ServiceABC._config_ctrls()')
|
||||
configured_controllers = [trid.TID(cid) for cid in conf.SvcConf().get_controllers()]
|
||||
configured_controllers = [
|
||||
trid.TID(cid) for cid in conf.SvcConf().get_controllers() + conf.NbftConf().get_controllers()
|
||||
]
|
||||
configured_controllers = remove_excluded(configured_controllers)
|
||||
self._resolver.resolve_ctrl_async(self._cancellable, configured_controllers, self._config_ctrls_finish)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue