Esempio n. 1
0
 def create(self, sr_uuid, size):
     self.hbasr.attach(sr_uuid)
     if self.mpath == "true":
         self.mpathmodule.refresh(self.SCSIid,0)
     self._pathrefresh(LVHDoHBASR)
     try:
         LVHDSR.LVHDSR.create(self, sr_uuid, size)
     finally:
         if self.mpath == "true":
             self.mpathmodule.reset(self.SCSIid, True) # explicit unmap
             util.remove_mpathcount_field(self.session, self.host_ref, \
                                          self.sr_ref, self.SCSIid)
Esempio n. 2
0
 def create(self, sr_uuid, size):
     self.hbasr.attach(sr_uuid)
     if self.mpath == "true":
         self.mpathmodule.refresh(self.SCSIid,0)
     self._pathrefresh(OCFSoHBASR)
     try:
         super(OCFSoHBASR, self).create(sr_uuid, size)
     finally:
         if self.mpath == "true":
             self.mpathmodule.reset(self.SCSIid, True) # explicit unmap
             util.remove_mpathcount_field(self.session, self.host_ref, \
                                          self.sr_ref, self.SCSIid)
Esempio n. 3
0
 def create(self, sr_uuid, size):
     self.hbasr.attach(sr_uuid)
     if self.mpath == "true":
         self.mpathmodule.refresh(self.SCSIid, 0)
     self._pathrefresh(LVHDoHBASR)
     try:
         LVHDSR.LVHDSR.create(self, sr_uuid, size)
     finally:
         if self.mpath == "true":
             self.mpathmodule.reset(self.SCSIid, explicit_unmap=True)
             util.remove_mpathcount_field(self.session, self.host_ref, \
                                          self.sr_ref, self.SCSIid)
Esempio n. 4
0
    def detach(self, sr_uuid, vdi_uuid):
        scsi_id = self.sm_config['SCSIid']
        xapi_session = self.session.xenapi

        # Multipath disable
        if self.sr.mpath == "true":
            self.sr.mpathmodule.reset(scsi_id, explicit_unmap=True)
            util.remove_mpathcount_field(self.sr.session, self.sr.host_ref,
                                         self.sr.sr_ref, scsi_id)

        # Get size from xapi db
        vdi_ref = xapi_session.VDI.get_by_uuid(vdi_uuid)
        size = int(xapi_session.VDI.get_virtual_size(vdi_ref))

        self.sr.update_stats(-size)
Esempio n. 5
0
    def detach(self, sr_uuid, vdi_uuid):
        scsi_id = self.sm_config["SCSIid"]
        xapi_session = self.session.xenapi

        # Multipath disable
        if self.sr.mpath == "true":
            # devices = scsiutil._genReverseSCSIidmap(scsi_id)
            self.sr.mpathmodule.reset(scsi_id, True)
            util.remove_mpathcount_field(self.sr.session, self.sr.host_ref, self.sr.sr_ref, scsi_id)

        # Get size from xapi db
        vdi_ref = xapi_session.VDI.get_by_uuid(vdi_uuid)
        size = int(xapi_session.VDI.get_virtual_size(vdi_ref))

        self.sr.update_stats(-size)
Esempio n. 6
0
 def _detach_LUN_bylunid(self, lunid, SCSIid):
     if not self.attached:
         raise xs_errors.XenError("SRUnavailable")
     if self.mpath == "true" and len(SCSIid):
         self.mpathmodule.reset(SCSIid, True)
         util.remove_mpathcount_field(self.session, self.host_ref, self.sr_ref, SCSIid)
     for val in self.adapter:
         if not self.pathdict.has_key(val):
             continue
         rec = self.pathdict[val]
         path = os.path.join(rec["path"], "LUN%s" % lunid)
         realpath = os.path.realpath(path)
         if self.devs.has_key(realpath):
             util.SMlog("Found key: %s" % realpath)
             scsiutil.scsi_dev_ctrl(self.devs[realpath], "remove")
             # Wait for device to disappear
             if not util.wait_for_nopath(realpath, MAX_LUNID_TIMEOUT):
                 util.SMlog("Device has not disappeared after %d seconds" % MAX_LUNID_TIMEOUT)
             else:
                 util.SMlog("Device [%s,%s] disappeared" % (realpath, path))
Esempio n. 7
0
    def _detach_LUN_bylunid(self, lunid, SCSIid):
        if not self.attached:
            raise xs_errors.XenError('SRUnavailable')
        if self.mpath == 'true' and len(SCSIid):
            self.mpathmodule.reset(SCSIid, True)
            util.remove_mpathcount_field(self.session, self.host_ref, self.sr_ref, SCSIid)
        for val in self.adapter:
            if not self.pathdict.has_key(val):
                continue
            rec = self.pathdict[val]
            path = os.path.join(rec['path'],"LUN%s" % lunid)            
            realpath = os.path.realpath(path)
            if self.devs.has_key(realpath):
		util.SMlog("Found key: %s" % realpath)
                scsiutil.scsi_dev_ctrl(self.devs[realpath], 'remove')
                # Wait for device to disappear
                if not util.wait_for_nopath(realpath, MAX_LUNID_TIMEOUT):
                    util.SMlog("Device has not disappeared after %d seconds" % \
                               MAX_LUNID_TIMEOUT)
                else:
                    util.SMlog("Device [%s,%s] disappeared" % (realpath,path))