We attempted to share the code a few years back, but I don't think it got accepted.
And here is a diff of the file /usr/lib/python2.7/site-packages/vdsm/storage/ vs the original for vdsm-4.20.17-1 :
463,498c463,464
<
< # Original Code ##
<
< #iscsi.addIscsiNode(self._iface, self._target, self._cred)
< #timeout = config.getint("irs", "udev_settle_timeout")
< #udevadm.settle(timeout)
<
< ### Altered Code for EqualLogic Direct LUNs for Keele University : G.Lloyd ###
<
< ifaceNames = config.get('irs', 'iscsi_default_ifaces').split(',')
< if not ifaceNames:
< iscsi.addIscsiNode(self._iface, self._target, self._cred)
< else:
< self.log.debug("Connecting on interfaces: {}".format(ifaceNames))
< #for ifaceName in ifaceNames:
< success = False
< while ifaceNames:
< self.log.debug("Remaining interfaces to try: {}".format(ifaceNames))
< ifaceName = ifaceNames.pop()
< try:
< self.log.debug("Connecting on {}".format(ifaceName))
< iscsi.addIscsiNode(iscsi.IscsiInterface(ifaceName), self._target, self._cred)
< self.log.debug("Success connecting on {}".format(ifaceName))
< success = True
< except:
< self.log.debug("Failure connecting on interface {}".format(ifaceName))
< if ifaceNames:
< self.log.debug("More iscsi interfaces to try, continuing")
< pass
< elif success:
< self.log.debug("Already succeded on an interface, continuing")
< pass
< else:
< self.log.debug("Could not connect to iscsi target on any interface, raising exception")
< raise
< timeout = config.getint("irs", "scsi_settle_timeout")
---
> iscsi.addIscsiNode(self._iface, self._target, self._cred)
> timeout = config.getint("irs", "udev_settle_timeout")
501,502d466
< ### End of Custom Alterations ###
<