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)
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)
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)
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)
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)
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))
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))