예제 #1
0
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog(ids)
    adapter = {}
    for host in ids:
        try:
            # For Backward compatibility 
            if hasattr(iscsilib, 'get_targetIQN'):
                targetIQN = iscsilib.get_targetIQN(host)
            else: 
                targetIQN = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/iscsi_session*/targetname' % host)[0])

            if hasattr(iscsilib, 'get_targetIP_and_port'):
                (addr, port) = iscsilib.get_targetIP_and_port(host)
            else:
                addr = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_address' % host)[0])
                port = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_port' % host)[0])

            entry = "%s:%s" % (addr,port)
            adapter[entry] = host
        except Exception, e:
            pass
예제 #2
0
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog(ids)
    adapter = {}
    for host in ids:
        try:
            # For Backward compatibility 
            if hasattr(iscsilib, 'get_targetIQN'):
                targetIQN = iscsilib.get_targetIQN(host)
            else: 
                targetIQN = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/iscsi_session*/targetname' % host)[0])

            if hasattr(iscsilib, 'get_targetIP_and_port'):
                (addr, port) = iscsilib.get_targetIP_and_port(host)
            else:
                addr = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_address' % host)[0])
                port = util.get_single_entry(glob.glob(\
                   '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_port' % host)[0])

            entry = "%s:%s" % (addr,port)
            adapter[entry] = host
        except Exception, e:
            pass
예제 #3
0
파일: mpath_dmp.py 프로젝트: xcp-ng/sm
def refresh(sid, npaths):
    # Refresh the multipath status
    util.SMlog("Refreshing LUN %s" % sid)
    if len(sid):
        path = DEVBYIDPATH + "/scsi-" + sid
        if not os.path.exists(path):
            scsiutil.rescan(scsiutil._genHostList(""))
            if not util.wait_for_path(path, 60):
                raise xs_errors.XenError('Device not appeared yet')
        _refresh_DMP(sid, npaths)
    else:
        raise xs_errors.XenError('MPath not written yet')
예제 #4
0
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog(ids)
    adapter = {}
    for host in ids:
        try:
            targetIQN = iscsilib.get_targetIQN(host)
            (addr, port) = iscsilib.get_targetIP_and_port(host)
            entry = "%s:%s" % (addr, port)
            adapter[entry] = host
        except Exception, e:
            pass
예제 #5
0
파일: mpath_dmp.py 프로젝트: letsboogey/sm
def refresh(sid,npaths):
    # Refresh the multipath status
    util.SMlog("Refreshing LUN %s" % sid)
    if len(sid):
        path = DEVBYIDPATH + "/scsi-" + sid
        if not os.path.exists(path):
            scsiutil.rescan(scsiutil._genHostList(""))
            if not util.wait_for_path(path,60):
                raise xs_errors.XenError('Device not appeared yet')
        if not (mpp_luncheck.is_RdacLun(sid)):
            _refresh_DMP(sid,npaths)
        else:
            _refresh_MPP(sid,npaths)
    else:
        raise xs_errors.XenError('MPath not written yet')
예제 #6
0
파일: BaseISCSI.py 프로젝트: stormi/sm
 def _init_adapters(self):
     # Generate a list of active adapters
     ids = scsiutil._genHostList(ISCSI_PROCNAME)
     util.SMlog(ids)
     self._adapter = {}
     for host in ids:
         try:
             targetIQN = iscsilib.get_targetIQN(host)
             if targetIQN != self.targetIQN:
                 continue
             (addr, port) = iscsilib.get_targetIP_and_port(host)
             entry = "%s:%s" % (addr, port)
             self._adapter[entry] = host
         except:
             pass
     self._devs = scsiutil.cacheSCSIidentifiers()
예제 #7
0
파일: ISCSISR.py 프로젝트: fudong1127/sm
 def _init_adapters(self):
     # Generate a list of active adapters
     ids = scsiutil._genHostList(ISCSI_PROCNAME)
     util.SMlog(ids)
     self.adapter = {}
     for host in ids:
         try:
             targetIQN = iscsilib.get_targetIQN(host)
             if targetIQN != self.targetIQN:
                 continue
             (addr, port) = iscsilib.get_targetIP_and_port(host)
             entry = "%s:%s" % (addr,port)
             self.adapter[entry] = host
         except:
             pass
     self.devs = scsiutil.cacheSCSIidentifiers()
예제 #8
0
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog(ids)
    adapter = {}
    for host in ids:
        try:
            targetIQN = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/iscsi_session*/targetname' % host)[0])
            addr = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_address' % host)[0])
            port = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_port' % host)[0])
            entry = "%s:%s" % (addr, port)
            adapter[entry] = host
        except Exception, e:
            pass
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog(ids)
    adapter = {}
    for host in ids:
        try:
            targetIQN = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/iscsi_session*/targetname' % host)[0])
            addr = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_address' % host)[0])
            port = util.get_single_entry(glob.glob(\
                '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_port' % host)[0])
            entry = "%s:%s" % (addr,port)
            adapter[entry] = host
        except Exception, e:
            pass
예제 #10
0
파일: mpath_dmp.py 프로젝트: euanh/sm
def refresh(sid, npaths):
    # Fix udev bug (?): make sure it updates /dev/disk/by-id
    # Trigger the old way, if possible
    if os.path.exists("/sbin/udevtrigger"):
        util.pread2(["/sbin/udevtrigger"])
    else:
        util.pread2(["/sbin/udevadm", "trigger"])

    # Refresh the multipath status
    util.SMlog("Refreshing LUN %s" % sid)
    if len(sid):
        path = DEVBYIDPATH + "/scsi-" + sid
        if not os.path.exists(path):
            scsiutil.rescan(scsiutil._genHostList(""))
            if not util.wait_for_path(path, 60):
                raise xs_errors.XenError('Device not appeared yet')
        if not (mpp_luncheck.is_RdacLun(sid)):
            _refresh_DMP(sid, npaths)
        else:
            _refresh_MPP(sid, npaths)
    else:
        raise xs_errors.XenError('MPath not written yet')
예제 #11
0
파일: mpath_dmp.py 프로젝트: johnelse/sm
def refresh(sid,npaths):
    # Fix udev bug (?): make sure it updates /dev/disk/by-id
    # Trigger the old way, if possible
    if os.path.exists("/sbin/udevtrigger"):
        util.pread2(["/sbin/udevtrigger"]) 
    else:
        util.pread2(["/sbin/udevadm","trigger"])

    # Refresh the multipath status
    util.SMlog("Refreshing LUN %s" % sid)
    if len(sid):
        path = DEVBYIDPATH + "/scsi-" + sid
        if not os.path.exists(path):
            scsiutil.rescan(scsiutil._genHostList(""))
            if not util.wait_for_path(path,60):
                raise xs_errors.XenError('Device not appeared yet')
        if not (mpp_luncheck.is_RdacLun(sid)):
            _refresh_DMP(sid,npaths)
        else:
            _refresh_MPP(sid,npaths)
    else:
        raise xs_errors.XenError('MPath not written yet')
예제 #12
0
def _init_adapters():
    # Generate a list of active adapters
    ids = scsiutil._genHostList(ISCSI_PROCNAME)
    util.SMlog("Host ids: %s" % ids)
    adapter = {}
    for host in ids:
        try:
            if hasattr(iscsilib, 'get_targetIP_and_port'):
                (addr, port) = iscsilib.get_targetIP_and_port(host)
            else:
                addr = util.get_single_entry(
                    glob.glob(
                        '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_address'
                        % host)[0])
                port = util.get_single_entry(
                    glob.glob(
                        '/sys/class/iscsi_host/host%s/device/session*/connection*/iscsi_connection*/persistent_port'
                        % host)[0])
            adapter[host] = (addr, port)
        except Exception, e:
            XenCertPrint("Ignore host %d IP because of exception %s" %
                         (host, str(e)))